Wo fange ich mit der Spieleentwicklung an? [geschlossen]

65

Ich habe dies früher in diesem Thread auf stackoverflow.com gefragt. Einer der frühen Kommentare hat mich hierher zu gamedev.stackexchange.com weitergeleitet, also reposte ich hier.

Auf der Suche nach verwandten Fragen habe ich eine Reihe sehr spezifischer Fragen gefunden, aber ich fürchte, die Details haben sich für mich als nutzlos erwiesen, und nach 4 Stunden bei Google bin ich nicht näher dran als ich begonnen habe in Ordnung.

Erstens mein Ziel: Ich habe noch nie ein Spiel gemacht, obwohl ich mehrmals über die Möglichkeit nachgedacht habe. Ich beschloss, mich endlich hinzusetzen und zu lernen, wie man Spiele codiert, Game Engines verwendet usw. So dass ich eines Tages (hoffentlich bald) in der Lage sein werde, funktionierende (wenn auch einfache) Spiele zu entwickeln. Ich kann später anfangen, die Komplexität zu erhöhen, denn jetzt wäre ich froh, eine tastaturgesteuerte Kamera zu haben, die sich in einer 3D-Welt ohne weitere Interaktion bewegt.

Mein Hintergrund: Ich habe in MEHREREN Programmiersprachen gearbeitet, von PHP über C ++ über Java bis hin zu ASM. Ich habe keine Angst vor Herausforderungen, die mit dem Erlernen der neuen Syntax oder den Einschränkungen einer neuen Sprache einhergehen. Alle meine bisherigen Programmiererfahrungen waren jedoch rein nicht grafisch und normalerweise mit wenig oder extrem einfacher Interaktion während der Ausführung. Ich habe umfangreiche und brillante Algorithmen zur Lösung logischer und mathematischer Probleme sowie zur Darstellung von Problemen entwickelt. In jedem Fall wurde die Eingabe jedoch entweder in einer Datei definiert, in einem HTML-Formular übergeben oder in die Konsole eingegeben. Die Interaktion in Echtzeit mit dem Benutzer ist etwas, mit dem ich keine Erfahrung habe.

Meine Frage: Wo soll ich anfangen, um Spiele zu machen? Besser noch - wo soll ich anfangen, um eine mit der Tastatur navigierbare 3D-Umgebung zu erstellen? Bei der Online-Suche habe ich mehrere Ressourcen gefunden, die mit Game-Engines, Grafik-Engines und Physik-Engines verknüpft sind. Hier ist eine kurze Zusammenfassung meiner Erfahrungen mit einigen Motoren, die ich ausprobiert habe:

Unreal SDK: In den Tutorial-Videos wird davon ausgegangen, dass Sie bereits über fundierte Kenntnisse in Bezug auf 3D-Modellierung, Grafik-Engines, Animationen usw. verfügen bin schon vertraut mit. Nachdem ich das SDK heruntergeladen und es gestartet hatte, um zu prüfen, ob die Tools so intuitiv waren, wie sie behaupteten, wurde ich mit etwa 60 Schaltflächen und einer leeren Leere für meine 3D-Modellierung begrüßt. Durch Klicken auf "Add Volume" (um zu versuchen, einen Basiswürfel hinzuzufügen) wurde ich mit einem Menü mit 30 Optionen konfrontiert. In Panik schloss ich den Editor.

Crystal Space: Die Website schien eher informativ zu sein und erklärte, dass Crystal Space nur für Grafiken gedacht war und die Companion-Software CEL eine Entitätslogik für die Erstellung von Spielen lieferte. Es wurde ein Demo-Spiel zur Verfügung gestellt, das mit "CELStart" erstellt wurde, dem einfachen Tool für Leute, die keine Kenntnisse in der Programmierung von Spielen haben. Ich habe das Spiel gestartet, um zu sehen, worauf ich mich freuen könnte. Es fror mehrmals ein, die Menüs waren fehlerhaft, es gab Tausende von Grafikfehlern, Feinde reagierten nicht auf Schaden, und als ich das Spiel schloss, war es gesperrt. Hat diesen Motor aufgegeben.

IrrLicht: In diesem Tutorial wird davon ausgegangen, dass ich Visual Studio 6.0 (Visual Studio 2010) habe. Ihren Anweisungen folgend konnte ich die Bibliothek nicht ordnungsgemäß in Visual Studio importieren und keine der Funktionen aufrufen, die sie weiterhin verwendeten. Manuelles Kopieren von Header-Dateien, Klassendateien und DLLs in den Ordner meines Projekts - das Projekt konnte nicht ordnungsgemäß kompiliert werden.

Es ist klar, dass ich nicht gut anfange und mich im Kreis bewege. Kann mich jemand in die richtige Richtung weisen? Soll ich zuerst ein Programm wie Blender herunterladen und 3D-Modellierung lernen, oder soll ich lernen, wie man eine Grafik-Engine verwendet? Sollte ich nach einer All-Inclusive-Game-Engine suchen oder ist es besser, meine eigene Spielelogik zu programmieren? Wenn jemand tatsächlich seine eigenen Spiele gemacht hat, würde ich lieber hören, wie sie angefangen haben.

Auch Unterricht an meiner Schule ist keine Option. Es wird nichts angeboten.

stevendesu
quelle
3
+1 Gute Programmierkenntnisse für spezielle Anforderungen.
Will Marcouiller
6
+1, dies ist eine gut durchdachte und recherchierte Frage, wie man mit der Spieleentwicklung beginnt. Ich spüre auch Ihren Schmerz in Bezug auf das Unreal SDK.
James
Ich empfehle, die Tutorials von Raven67854 für das UDK zu lesen . Sie sind unter Videos aufgelistet, die Leute scheinen sie zu mögen.
Jesse Dorsey
Mein Rat ist, einfach etwas zu machen. Normalerweise möchten Leute, die diese Art von Fragen gestellt haben, ihren Weg linear ebnen (weil ich diese Art von Frage einmal gestellt habe). Nach meiner bisherigen Erfahrung ist die Lernkurve für die Spieleentwicklung jedoch eine nichtlineare Kurve. Normalerweise bewege ich mich von Problem zu Problem - wenn ich stecken geblieben bin, frage ich / suche nach einer Antwort. Probieren Sie es einfach aus und lernen Sie aus Versuch und Irrtum. Normalerweise beginne ich mit den Tutorials. Diese Tutorials haben jedoch nie genug Details geliefert, daher muss ich nach Antworten fragen / suchen / experimentieren.
user1542

Antworten:

38

Ich habe eine solche Frage gestellt, als ich zu GD kam. Hier sind einige Links, die für Sie von Interesse sein könnten und die Sie hoffentlich zu Ihrem Ziel führen werden.

Kurz gesagt, ich würde mitgehen XNA Game Studio, um die Spieleentwicklung in den Griff zu bekommen. Fahren Sie dann mit dem fort, was Sie als Wissen / Technologie erreichen möchten. XNAbrachte mir das Arbeiten mit Sprites bei und ermöglichte mir, einige meiner Kenntnisse von Beginn meiner Lernkurve an anzuwenden, damit ich schnell genug verstehen konnte, wie ich mein Spiel für die Verwendung von Klassen während der Arbeit gestalten sollte Abhängigkeitsinjektion und so weiter. Also lasse ich dich nicht länger warten.

  1. Wo fange ich an, Spiele, Tutorials oder ähnliches zu schreiben?
  2. Was sind die Grundlagen der Spieleentwicklung? (Interessante Frage, IMHO)
  3. Trennung von Physik und Spielelogik vom UI-Code
  4. Verschieben meines Sprites in XNA mithilfe von Klassen

Warum fragst du XNA? Einfach wegen Ihres Java-Hintergrunds. XNA verwendet C #, das Java in mehrfacher Hinsicht ähnelt, und es ist auch ein einfaches Framework, das den Game Loop und andere Dinge abstrahiert, damit Sie sich auf das konzentrieren können, was wichtig ist.

Ich hoffe wirklich, dass Sie damit anfangen. =)

Will Marcouiller
quelle
1
Entschuldigung für die verspätete Antwort =) Ich habe alle Beiträge gelesen, zu denen Sie mich umgeleitet haben (außerdem einer der Beiträge, die mit einer MSDN-Seite zum Erstellen von 3D-Spielen mit XNA verknüpft sind, was mich interessierte, da die Seite der XNA-Spiele-Engine ursprünglich so aussah war ausschließlich für 2D-Spiele). Ich denke auf jeden Fall, dass dies ein guter Ausgangspunkt ist. Danke. Ich werde heute Abend XNA herunterladen und ins Bett gehen, dann kann ich hoffentlich morgen versuchen, Pong oder so etwas zu machen.
Stevendesu
@Steven: Kein Problem! Ich habe diese Antwort gepostet, um einem begeisterten Entwickler wie mir zu helfen, der um Rat gefragt hat! Ich hoffe es gefällt euch! Meine erste und immer noch große Herausforderung besteht darin, ein einfaches Arkanoid-ähnliches Spiel zu entwickeln, in dem ich mich auf die Kollisionserkennung einarbeiten muss, während ich für jedes Raumfahrzeug, den Energieball und den Stein eine Klasse geschrieben habe. Dann wird meine Game1Klasse als Gamecontroller verwendet, was meiner Meinung nach die Klasse ist, die die anderen Klassen steuern und ihnen sagen soll, was zu tun ist usw. Ich erkläre diesen Aspekt ein wenig mit den Verknüpfungen Nr. 4 und Nr. 5.
Will Marcouiller
Möglicherweise stelle ich sehr bald (morgen) eine andere Frage xx XNA Game Studio 4.0 wurde heruntergeladen, installiert .... Und es gab keine offensichtlichen Anweisungen, was als Nächstes zu tun wäre. Auf der gesamten offiziellen XNA-Website steht nur "Spiele für Windows Phone 7 erstellen" - nichts über das Erstellen von Spielen für Windows. Ich werde es morgen früh herausfinden oder hier fragen, ob ich nicht kann.
Schlafenszeit
1
Erstellen Sie ein neues Projekt mit Visual Studio, und wählen Sie dann XNA aus, wo Sie den Projekttyp auswählen können. Dann fang an, Spiele für Windows zu machen! Ihre XNA-Spielprojektvorlage (neues Projekt) wird nativ unter Windows kompiliert und ausgeführt. XNA ist die Microsoft-Bibliothek für die Spieleentwicklung. Daher können Sie Spiele für Windows und XBox entwickeln.
Will Marcouiller
1
Für die Zukunft ist es wichtig darauf hinzuweisen, dass XNA im Wesentlichen veraltet ist, aber Monogame lebt weiter. In den meisten Fällen funktioniert derselbe Code.
Magus
8

Sie könnten Unity 3D ausprobieren , weil

  • Es kann in JavaScript, C # oder Boo programmiert werden
  • es hat ein gutes Tutorial über hier
  • Die Lernkurve ist nicht so steil
  • Es gibt Unity Answers , wo Sie noch mehr Ressourcen finden.

(Haftungsausschluss: Ich bin in keiner Weise mit den Machern von Unity verwandt, ich benutze es einfach selbst und fand es ein großartiges Werkzeug, um die Grundlagen zu lernen.)

Aber ja - Sie haben sich auf eine ziemliche Aufgabe eingestellt. Ich bin jetzt in meinem 6. Semester und studiere Game Design. Ich habe immer noch nicht das Gefühl, mehr als die Oberfläche zu kratzen. Es ist kein Wunder, dass die Branche Spezialisten für nahezu alle Aspekte des Entwicklungsprozesses eines Spiels hat.

Bearbeiten: Es wurde ein Kommentar darüber abgegeben, dass Unity nicht als "richtige" Spiel-Engine angesehen wird, der falsch verstanden werden könnte, wenn ich das sage - daher die folgenden Kommentare. Es war nicht meine Absicht vorzuschlagen, dass Unity nicht verwendet werden könnte, um das richtige Spieldesign zu erstellen, im Gegenteil. Ich benutze es selbst und ich mag es. ;)

Xeophin
quelle
3
Was ist daran falsch?
Lathomas64
Ich bin auch neugierig.
Jesse Dorsey
Vielleicht die Tatsache, dass es (wie Flash oder Java) ein Container-Programm benötigt, um zu laufen, so dass er es als "unangemessen" ansieht, weil es nicht einfach kompiliert und problemlos an ein großes Publikum verteilt werden kann? In jedem Fall schaue ich gerade in XNA. Ich kann Unity3D ausprobieren, wenn sich XNA als zu schwierig erweist.
Stevendesu
Nun, ich hörte Leute sagen, dass Unity für "richtiges" Spieldesign nicht ernst zu nehmen ist. Wie gesagt - ich benutze es selbst und bin ziemlich zufrieden damit. In einigen Fällen macht Unity die Sache verdächtig einfach, denke ich ...;) Ich habe mich nur abgesichert, weil ich nicht wusste, wie die Leute hier auf die Erwähnung von Unity reagieren würden. Vielleicht hat das die Ablehnung verursacht?
Xeophin
@steven_desu: Eigentlich brauchst du nur ein Containerprogramm für den Webplayer. Spiele, die für Windows oder Mac kompiliert wurden, sind völlig eigenständig.
Xeophin
2

Na wenn du Probleme mit irrlicht hattest, solltest du auch Ogre3D ausprobieren; Es ist nicht einfacher, aber es könnte besser funktionieren, wenn Sie etwas Zeit investieren. Das Wichtigste, was Sie verstehen müssen, ist, was ein Framelistener ist, wie Sie die Zeit abrufen können, seit das letzte Bild angezeigt wurde, und das ist so ziemlich das einzige, was Sie verstehen müssen, wenn Sie diese Anwendung erstellen möchten, über die Sie sprechen.

Ich hatte auch einige Schwierigkeiten mit irrlicht, die Tutorials sind nicht sehr aktuell, aber du hättest die Samples ausprobieren sollen!

Ich bin zu Beginn auch viel im Kreis herumgelaufen, habe mit Panda3D und anderen Dingen wie Pygame usw. gespielt. Versuche, mich auf eine Spielidee zu konzentrieren und eine Sache nach der anderen zu implementieren.

Und versuchen Sie, sich ein bisschen Mathe zu merken, es wird in 3D von Nutzen sein!

jokoon
quelle
2

Ich habe vor kurzem die gleiche Verfolgung wie Sie begonnen. Ich bin auf eine reine Java-Engine namens jMonkeyEngine gestoßen, die mich durch eine fantastische Reihe von Tutorials geführt hat. Ich weiß nicht, ob es wirklich das Spieledesign in großem Umfang erklärt, aber es bringt Sie auf die grafische Front.

Es enthält Vorschläge / Links zu Tools, die Sie für die Modellierung verwenden können, sowie kopier- und einfügebare, gut beschriebene Beispiele, die Sie durch das Einrichten der Physik-Engine auf dem Bildschirm führen.

Auf jeden Fall eine Lektüre wert - ich hatte eine gute Vorstellung davon, was ich nach nur einigen Stunden tat.

Brian
quelle
Die Tutorials sind eine Lektüre wert, auch wenn Sie die Engine nicht benutzen. Es gibt auch nette Tutorials zu einigen 3D-Mathematiken.
8.
2

Du solltest unbedingt Flixel ausprobieren http://flixel.org/ Ich habe mein erstes "Demo" -Spiel mit Flixel gemacht. Nette Community, nette Tutorials.

Es ist nicht 3D, aber es hat viele nette Funktionen, die Ihnen den Einstieg in die Programmierumgebung erleichtern.

So, dass: Tausende sich bewegender Objekte anzeigen
Grundlegende Kollisionen zwischen Objekten
Objekte der Einfachheit halber gruppieren
Partikel einfach generieren und ausgeben
Spielebenen mithilfe von Kachelkarten erstellen
Textanzeige, Spiele speichern, Scrollen
Maus- und Tastatureingabe
Mathematik- und Farbdienstprogramme

Und es ist kostenlos für die kommerzielle Nutzung, was großartig ist.

user9471
quelle
1

Wenn Sie überhaupt nicht mit Grafiken gearbeitet haben. Bevor Sie Open Gl oder Direct X lernen, ist dies ein Anfang. Ich habe mein erstes Spiel so programmiert. Unsere Firmen-Engines sind in Eigenregie und die meisten Systeme unterstützen Open Gl in irgendeiner Form. Ich habe bei der Arbeit gelernt, indem ich den Code durchgesehen habe, bevor ich angefangen habe zu arbeiten. Vielleicht möchten Sie sich einige Open-Source-Projekte ansehen, um zu sehen, wie eine Spielstruktur aufgebaut ist, und diese ändern, bis Sie sich sicher fühlen, Ihr eigenes Ding zu beginnen. Ich empfehle auch "Game Coding Complete" als großartige Referenz für all die kleinen Teile der Spielprogrammierung, von denen Sie nicht wissen, dass sie vorhanden sind, wie eine ordnungsgemäße Dateistruktur und Ressourcenverwaltung.

user5877
quelle
1

Probieren Sie Source Engine . Es ist einfach, Spiele darauf zu entwickeln, und Sie können eine Vertriebsplattform (Steam) erwerben und Ihr Spiel kostenlos verkaufen, wenn Sie eine Vereinbarung mit Valve Corportaion unterzeichnen.

Triang3l
quelle
1

Ich würde empfehlen, mit Flash-Spielen zu beginnen, da Sie wirklich alles in einem Paket haben, um einfache Spiele zu erstellen. Es gibt Unmengen von Blogs mit Lösungswegen, zum Beispiel von Emanuele Feronato . Er hat sogar ein Buch mit 10 kompletten Spielen oder so.

Ich habe FlashDevelop verwendet, was für die Entwicklung ausreicht.

Chris Möllers "Erstellen eines Asteroiden-Flash-Spiels" ist ein hervorragendes Beispiel dafür, mit einem vollständigen schrittweisen Ansatz unter Verwendung von Flash-Entwicklung.

Für Tile-basierte Spiele gibt es ein exzellentes Tutorial bei Ironcoding .

Ausgerüstet mit all dem ist es meine Empfehlung, einen Ort zu finden, an dem es eine Herausforderung für Videospiele gibt, mit einer Community von Menschen, die Spiele bauen. Erstellen Sie ein Videospiel pro Monat und konzentrieren Sie sich auf etwas, das Sie fertigstellen, polieren und präsentieren können, bevor Sie mit Ihrem nächsten Projekt beginnen. Ich bin in einer monatlichen Videospiel - Herausforderung teilnehmen hier .

Halten Sie es klein, damit Sie es beenden und freigeben können.

NetSquirrel
quelle