Mein Sohn (15) hat entschieden, dass er eine Karriere als Spieleprogrammierer anstreben möchte. Ich habe gesagt, dass er jetzt mit einem einfachen Spiel anfangen sollte. Er hat noch keine Programmiererfahrung, aber ich bin ein Programmierer (Geschäftsanwendungen, keine Spiele), damit ich ihm Programmieren beibringen kann. Aber was wäre eine gute Plattform für ihn, um anzufangen? Zunächst suche ich nach etwas, das schnelle Ergebnisse liefert, um seine Begeisterung aufrechtzuerhalten.
Was würdest du vorschlagen?
Antworten:
XNA ist eine gute Lösung für einen ziemlich selbstbewussten Programmierer. Es wäre ein gutes Ziel, in Zukunft anzustreben.
Das Unreal Development Kit ist eine Möglichkeit, Ergebnisse viel schneller und einfacher zu erzielen, und möglicherweise ein guter Ausgangspunkt. Kommentare haben gezeigt, dass das UDK tatsächlich eine ziemlich schlechte Alternative ist, daher kann ich es nicht empfehlen.
Unity ist eine Alternative, es läuft auf Handys, was UDK nicht kann (soweit ich weiß). Also, wenn er Spiele für Handys programmiert, wäre die Einheit vielleicht besser?
quelle
Ich bin auch 15, also könnte das helfen? : P
Ich habe kürzlich angefangen, Python zu lernen (mache seit ungefähr einem Jahr C ++) und finde es viel einfacher zu lernen als C ++. Es gibt viel weniger Fallstricke und Sie benötigen wenig Code, um etwas auf den Bildschirm zu bringen - was ich finde, bringt Sie dazu, fortzufahren.
Und es gibt Wrapper wie Pygame und Pyglet über SDL / OpenGL für die Grafikseite.
Bevor er anfängt, einfache Spiele zu machen, würde ich raten, eine Sprache für mindestens ein paar Monate zu lernen. (Natürlich sind textbasierte Spiele wie "Rate die Zahl" und "Henker" in dieser Zeit gute Übungen.)
quelle
Eine etwas unorthodoxe Antwort hier:
Starcraft II Galaxy Editor.
Sie können in Starcraft 2 fast jedes Spiel erstellen.
Außerdem werden die meisten Programmierkonstrukte wie Schleifen und if-Anweisungen auf eine GUI-zentrierte Art und Weise unterrichtet.
Sobald er mit den Grundlagen vertraut ist, können Sie ihm Skriptmaterial geben.
Wenn er es gut kann und es interessant findet, wird er es lieben, richtig zu programmieren.
quelle
Ich würde Spielentwicklungswerkzeuge grob in drei große Kategorien einteilen:
Für Leute ohne Programmiererfahrung rate ich normalerweise, in der ersten Kategorie zu beginnen, nur um etwas zu tun. Wenn sie sich mit einem bestimmten Authoring-Tool wohl fühlen, aber wirklich das Gefühl haben, dass die Einschränkungen die Vorteile überwiegen, ist es Zeit, etwas in der nächsten Kategorie zu lernen.
quelle
Ich weiß, das wird mich etwas datieren, aber als ich aufwuchs, hat mir P-Robots sehr gut gefallen . Es gibt ein wirklich einfaches Ziel (schlagen Sie die anderen Roboter), eine einfache API und eine kurze Zeitspanne zwischen Codeänderungen und dem Anzeigen der Ergebnisse. Es geht um KI, Entwurfsmuster und eine noch umfangreichere Codestruktur (einige dieser Roboter können ziemlich groß werden - und wie sieht es mit dem Teilen von Code zwischen Robotern aus?). Wenn Sie etwas Ähnliches, aber Neueres finden, ist dies ein guter Weg, um den Teil "Erste Schritte beim Programmieren" zu erhalten. Vorschläge:
Sobald dies erledigt ist, sollten Sie sich für einen wirklich einfachen 2D-Scrolling-Shooter, -Plattformer oder ein ähnliches Spiel im Arcade-Stil entscheiden - Sie können SDL oder XNA oder das verwenden, was Ihnen am vertrautesten ist. Sogar einen Pong-Klon zum Laufen zu bringen, ist nicht ganz trivial. Dies gibt Ihnen einen kleinen Eindruck davon, wie es ist, etwas "von Grund auf" aufzubauen.
Anschließend erkunden Sie: einen Mod für ein vorhandenes 3D-Spiel (ein neues Objekt oder ein Bot oder etwas anderes), um einen kleinen Einblick in größere Engines zu erhalten.
Die Schlüssel, so wie ich sie gesehen habe, scheinen zu sein:
quelle
Mein Rat ist, webbasierte Spiele zu machen. Warum? Zunächst einmal ist JavaScript eine schöne Sprache, die ihm alle grundlegenden Konzepte der Programmierung beibringt, und Sie können damit tatsächlich ein großartiges, kompetentes und plattformübergreifendes Spiel erstellen. Es wird ihn auch für viele andere Dinge qualifizieren, als nur Spiele zu machen ... Wenn Sie aus irgendeinem Grund nicht möchten, dass Ihr Sohn in die Webentwicklung einsteigt, dann schlage ich vor, Python mit einem Modul namens PyGame zu verwenden. Ich habe auch Erfahrung damit und es ist großartig. Was ich nicht vorschlage, ist, mit C / C ++ anzufangen. Das habe ich getan und es ist schrecklich und könnte ihn für die gesamte Programmierung unmotiviert machen.
Außerdem bist du wahrscheinlich ein großartiger Vater, herzlichen Glückwunsch!
quelle
Mindstorms Roboter sind wirklich cool. Wir haben ein paar NXT's in der Schule und letzte Woche haben wir angefangen, Dinge zu programmieren, wie eine Linie zu folgen und so. Sie können leicht Ergebnisse erzielen.
Auch www.3dgamestudio.de habe ich vor einiger Zeit gefunden. Ich bin nicht mehr darauf eingegangen, aber es war wirklich interessant. Sie können mit lite-C programmieren:
Unter http://tutorial.3dgamestudio.net/ gelangen Sie hinein. Außerdem gibt es einen Level-, Modell- und Terrain-Editor.
ps: Ich bin 16 und habe mit einem Freund angefangen, der eine Website programmiert und einen programmierten Spieleserver anpasst. Das könnte ihn also auch interessieren.
quelle
Ich kann das nicht genug vorschlagen, aber seine eigenen Levels für sein Lieblingsspiel der Wahl zu bauen .
Für jemanden dieses Alters / Könnens sollten sie zunächst Levels in ihrer bevorzugten Spiel-Engine bauen .
Viele großartige Spiele verfügen über einen Level-Editor, der viele Freiheitsgrade zulässt.
RPG : Obsidians NWN 2 Elektronenset-Serie , Elder scrollt
RTS : Der Level-Editor von Warcraft III ist ein fantastischer RTS-Editor und hat sogar ein eigenes Spiel ( League of Legends und Heroes of Newerth ) entwickelt.
FPS : Hammer für Halbwertszeit 2. Counterstrike war ursprünglich ein Halbwertszeit-Mod.
Beginnen Sie hier . Das Erstellen von Levels für Ihr Lieblingsspiel ist wahrscheinlich der beste Ausgangspunkt.
quelle
Obwohl alle Informationen hier hilfreich sind, möchte ich erwähnen, dass die STEM Challenge (ein nationaler Spielewettbewerb, der vom Weißen Haus und der ESA gefördert wird) einige Vorschläge zu Plattformen enthält: http://www.stemchallenge.org/about/Default.aspx
Gamestar Mechanic, Gamemaker, Kodu, Scratch, PBS KIDS Bereit zum Lernen Stream
Ich habe das Gefühl, dass es zu diesen Plattformen Community-Ressourcen gibt, die sich speziell auf STEM beziehen.
Siehe auch dieses hervorragende Tutorial über Python und Pygame (das auch ein Online-Buch ist) http://inventwithpython.com/chapters/ hier ist das PDF der Fortsetzung des Buches speziell über Pygame http://inventwithpython.com/blog/making -Spiele-mit-Python-Pygame /
Hier ist ein weiterer Artikel von NYT: http://www.nytimes.com/2011/11/10/technology/personaltech/computer-programming-for-children-minus-cryptic-syntax.html?_r=2&sq=mitchel+resnick&st=cse&adxnnl= 1 & scp = 1 & adxnnlx = 1322489239-tMp1Wjl9FUcI8rLaJ6cbOw
Update: Hier ist eine Slashdot-Diskussion: http://ask.slashdot.org/story/11/12/27/152228/ask-slashdot-tools-for-teaching-high-school-kids-how-to-make-games
quelle
Game Maker ist eine ausgezeichnete Wahl für Leute ohne Programmiererfahrung. Es hat eine kostenlose Version und eine relativ günstige kostenpflichtige Version. Sie können damit schnell Spiele mit einer Drag-and-Drop-Oberfläche erstellen, unterstützen aber auch fortgeschrittene Skripterstellung.
quelle
Wie Martin sagte, ist das UDK wahrscheinlich der schnellste Weg, um etwas zum Laufen zu bringen, da es so viele vorgefertigte Dinge wie KI, Modelle und auch eine Fülle von Büchern enthält. Es hat einen sehr guten Karteneditor und die Sprache ist Java-esque (und ECMA-scriptartig).
Eine Alternative könnte sein, Spiele in Flash oder Silverlight zu spielen - beginnen Sie mit einfachen 2D-Spielen. Welches Genre von Spielen er mag, bestimmt das Toolkit.
quelle
Ab einem 14-Jährigen kann dieser Rat hilfreich sein. Ich finde, der beste Weg, eine Plattform auszuwählen, ist die Plattform, die am besten für den Zweck geeignet ist. Ich habe diesen Beitrag schon oft gemacht.
Von Reddit -
Schau dir Spiele wie Minecraft an. Sicher, es ist in Java geschrieben, einer Sprache, die einen extrem geringen Marktanteil in der Spieleentwicklungsbranche hat. Interessieren sich die Verbraucher dafür? Nein, sie kümmern sich um die Funktionalität.
Da Ihr Sohn jedoch keine Programmiererfahrung hat, empfehle ich Ihnen, eine Sprache zu lernen, die schnell zu programmieren ist, z. B. Python, oder eine vorhandene Plattform wie XNA zu verwenden. Persönlich liebe ich Slick2D mit Java, aber ich denke, das ist meine Vorliebe ...
quelle
Ich wurde in jungen Jahren (jünger als 15 Jahre) in das Programmieren eingeführt, und mein Vater entschied sich für VB (1.0). Wir haben eine verdrehte Version von Pong mit einem Timer-Objekt und einer GDI-Zeichnung erstellt. Mir hat das gefallen, weil wir mit einer leeren Leinwand angefangen haben und die Grundlagen der Programmierung von Strukturen gelernt haben, während wir versucht haben, etwas Spaß zu machen.
Heute würde ich XNA wählen und ein einfaches 2D-Spiel auswählen. C # und XNA sind recht einfach und lassen Ihnen viel Platz zum Wachsen und sie sind frei.
quelle
Wenn er nur Spiele machen möchte, sollte er XNA, Unreal, Unity usw. verwenden. Wenn er ein Spieleprogrammierer sein möchte, sollte er zuerst C / C ++ und OpenGL / SDL oder D3D lernen.
XNA, Unreal, Unity usw. sind großartig, um Spiele zu machen, aber wirklich schlecht, um viel zu viel für dich zu tun. Ich bin mir sicher, dass die Leute mir diesbezüglich nicht zustimmen werden, aber diese machen Sie im Grunde genommen zu einem faulen Programmierer, und wenn es an der Zeit ist, Dinge wie Punkte in C ++ zu lernen, wird es schwieriger, weil Sie zuerst die einfacheren Optionen gewählt haben.
Peronal empfehle ich niemals etwas anderes C / C ++ als die erste Sprache, die Sie lernen sollten, wenn Sie ein Spieleprogrammierer sein möchten. Der Hauptgrund ist, dass selbst wenn Sie C # / XNA lernen, Sie C oder C ++ irgendwann einmal kennen müssen, wenn Sie ernsthaft Spieleentwickler werden möchten, weil Sie sonst niemand einstellen wird. Wenn es ihnen also ernst ist mit dem Beruf, dann verzögern Sie nur das Lernen, was von Ihnen erwartet wird.
quelle