Was muss ich wissen um ein Strategiespiel programmieren zu können?
Ein paar Freunde und ich haben vor ein Strategiespiel zu machen. Uns ist bewusst dass solch eine Produktion mehrere Jahre in Anspruch nehmen kann und am Ende nicht wie ein High Quality Produkt von Ubisoft oder so aussehen wird, dennoch haben wir beschlossen es als Hobby aufzunehmen und uns dem Programmieren zu witmen.
WIr haben vor ein Echtzeitstrategiespiel zu machen, dass ein paar Elemente aus bereits bekannten Spielen beinhaltet wie Civilization 3 und 4 oder Age of Empire 2.
Nun zu meiner Frage: Über was muss ich mich dafür informieren? Mir ist klar dass das Spektrum riesig ist allerdings will ich mich nur mit der Materie befassen die nötig ist dieses Spiel zu entwickeln. Ich habe bereits von Java, C++, Unity Engine und so weiter gehört aber erhoffe mir hier einen konkreten Tipp zu bekommen, mit welchem Programm es besser ist solch ein Spiel zu kreieren damit ich mich darüber informieren kann und dementsprechende Bücher kaufen und studieren kann.
Noch zu uns: Wir sind alle männlich, 18 -20 Jahre alt und fertig mit der Schule also wir haben viel Zeit :D
Ich bedanke mich jetzt schon mal bei euch und freue mich auf ehrliche und hilfreiche Antworten ;)
4 Antworten
LOL – Der ist gut! :-D
Das ist ungefähr so, als wenn Du zum Autofahren-Lernen eine Mondrakete bauen willst.
Ich will Dir/Euch jetzt nicht den Mut nehmen, aber für Strategiespiele müsst Ihr Kenntnisse in Logik-Strategien haben. Sonst bastelt ihr für jede Eventualität eine eigene Routine und dann wird das Ding gewaltig riesig und ist immer noch bestenfalls geeignet für Unter-10-jährige.
C/C++ ist schon mal ein guter Anfang. Aber leider kann man nicht einfach mal mit Programmieren anfangen. Da muss man sich von klein auf durch arbeiten. Hast Du mal im Englisch-LK Shakespear im Original gelesen? Das ist Euer Ziel. Aber ihr könnt noch nicht einmal das normale Englisch. Das müsst Ihr jetzt erst lernen, wie damals in der 5. Klasse.
Nehmt Euch mal einfache Übungsprojekte vor, die erst mal nicht unbedingt etwas mit Spielen zu tun haben müssen, damit Ihr erst einmal die Logik des Programmierens erlernen könnt.
Schreib mal einen einfachen Text-Editor und dann erweitere den zu einem MDI-Editor und dann mit typografischen Elementen (Fett, Kursiv, Schrift-Größe, etc.). Das hört sich vielleicht popelig an, ist aber irgend wann eine harte Nuss und man muss sich schon tief rein graben.
Oder bastel mal so etwas "Einfaches" wie Tron. Unter DOS war das mal einfacher, aber in einer GUI ist das sehr umständlich geworden.
Jetzt hast Du mal einen Anfang, in welche Richtung das geht. Eigentlich seid Ihr damit bereits auf dem richtigen Weg. Der Rest, was Ihr dann noch braucht, ergibt sich auf Eurem Weg und in der Fall-Recherche.
Also ohne Englisch geht sowieso gar nichts und Mathe ist bei dem, was Ihr vorhabt, auch recht "hilfreich". Das hört sich vielversprechend an.
Allerdings muss man beim Programmieren schon etwas umdenken. Nicht alles, was in Mathe geht, geht auch beim Programmieren so 1:1. Aber einmal kapiert – kein Ding!
Mit Büchern habe ich das nicht so. Ich habe das alles autodidaktisch gelernt und durch experimentieren. Dadurch habe ich zwar manchmal auf dem Schlauch gestanden, aber durch das harte Erarbeiten habe ich vieles richtig gut gelernt.
Meine Empfehlung ist, erst mal mit etwas Einfachem wie einer Script-Sprache (z.B. JavaSkript oder Bash) anzufangen, damit erst einmal die Grundzüge der Programmierung verstanden werden können, ohne sich mit dem ganzen Umbau zu beschäftigen. Der ist erst mal sehr abstrakt und unverständlich, wenn man nicht weiß, wie ein Computer so tickt. Dafür allerdings wiederum sollte man sich auch mal mit Assembler auseinander setzen.
Ich habe das mal mit einem uralten Buch (Peter Norton's Assemblerbuch, 1988 – ja, genau der Norton) für den 8086 Prozessor (der Urahn des Intel-Prozessors) gelernt. Das war noch recht überschaubar, weil es ein 16bit-Prozessor mit wenigen Registern war und auch noch ohne GUI-OS programmiert wurde. Heute ist der Markt einfach unüberschaubar. Da kannst Du auch sowas wie "JavaScript/Assembler für Dummies" nehmen.
Als Anfänger solltest Du auf jeden Fall eine IDE mit Syntax-Highlighting, Auto-Vervollständigung und integrierter Hilfe nehmen. Das ist Gold wert, wenn man zur Befehls-Hilfe einfach per Kontext/[F1] kommt.
Unity Engine habe ich selbst noch nicht mit gearbeitet, aber es scheint mir für Anfänger einfach zu heavy. 3D-Programmierung ist echt die Königsklasse und – mit Verlaub – Ihr habt Euch noch nicht mal zum Knecht hoch gearbeitet. Ich hoffe Du verstehst, worauf ich hinaus will.
Das alles soll dich aber nicht entmutigen! Wenn Ihr da intensiv ran geht und erst mal mit kleinen Schritten anfangt, dann kommt auch schnell der Erfolg und der ist extrem wichtig für die Motivation. Wenn Du gleich mit so einem Hammer-Teil anfängst, bist Du völlig überfordert und weist nicht mehr, wo oder wer Du bist.
Stell Dir vor, Du möchtest fliegen lernen und man setzt Dich gleich auf den Pilotensitz einer Boing 747:
http://images.forwallpaper.com/files/thumbs/preview/78/785708__boeing-747-cockpit_p.jpg
WTF! o..O
So sieht's aus!
Allerdings muss ich auf den zweiten Gedanken sagen, das Unity Enigine eher etwas für solche 3D-Spiele in der Art von GTA oder WOW ist. Wenn Ihr Euer Strategie-Spiel natürlich so gestalten wollt, dann ist das keine schlechte Idee.
Andererseits würde ich mich erst einmal mit Strategie-Algorithmen aus Schach oder Mühle befassen. Das ist dasselbe Prinzip und man muss sich auch erst mal nicht mit dem Design befassen.
Um das Design kann man sich kümmern, wenn Ablauf-Plan und -Steuerung fertig entwickelt sind.
Die Leute, die solche Spiele programmieren, haben sich schon seit Jahren mit diesen Dingen beschäftigt. Ihr solltet vielleicht auch mal vorher verstehen, dass Euer Vorhaben – je nach Schwierigkeitsgrad des Spiels – mehrere Jahre in Anspruch nehmen wird. Aber keine Jahre, wie bisher in der Schule, sondern eher so was hier:
http://newvaluestreams.com/wordpress/wp-content/uploads/2009/12/computer_nerd.jpeg
Das hier hat sich auch schon jeder Programmierer mal gewünscht:
http://static-1.mojvideo.com/foto57662-1937-57513/computer-freak.jpg
Also,
http://images5.fanpop.com/image/photos/28000000/DON-T-PANIC-micketo-28047682-1024-768.jpg
Ich stimme MarkusGenervt voll und ganz zu, den der Weg dort hin, zu dem ihr wollt ist ziemlich schwer und erfordert viel Kompetenz, die ihr von Anfang an mitbringen müsst, wie z.B. sehr gute Mathematik Kenntnisse und Englisch.
Ihr werdet sehr viele Englische Dokumentationen lesen und so komplexe Spiele erfordern viele komplizierte Algorithmus.
Ich hoffe ihr wart gut in Mathe AnaIysis und der Zufallsrechnung, den damit werdet ihr später auch noch zu tun bekommen.
konkreter tipp: unity engine und die online unity kurse :)
für anfänger find ich Unity sehr sehr klasse, auch für fortgeschrittene oder propfis, die Engine ist einfach gut.
gibt wie gesagt sehr gute freie Kurse aber auch kostenpflichtige klassen.
sogar assets kannst dir kaufen damit du nicht alle dinge selbst designen musst.
Zuerst einmal würde ich als Einstieg in die Logik des Programmierens einen Java Kurs machen (Gibt es online).
Dann z. B. auf C++ Umsteigen.
Vielen Dank dir Markus erstmal für diese aufwendige Antwort!
Mathe und Englisch können wir alle eig. ziemlich gut also das dürfte kein Problem werden. Wüsstest du vllt ein gutes Einsteigerbuch ins "Programmierwesen" oder so etwas ähnliches das handfest ist?
Übrigens, was hältst du persönlich von der Unity Engine, die wird ja überall hochgelobt und magicdrummer empfiehlt sie mir auch oder ist die für diese Art von Spiele eher ungeeignet? :/