2009-07-11 5 views
4

Ich bin ein Hobby-Konsolen-C++ - Entwickler. Ich habe mit Zeigern, Arrays, std :: vectors, std :: strings, Klassen und mehreren Datenstrukturen gearbeitet, einschließlich Stacks und Binärbäumen. Ich habe etwas Erfahrung in der linearen Algebra und Geometrie und kenne die Grundlagen der Physik. Ich habe keine Erfahrung mit Win32, QT, OpenGL, DX9, OGRE, etc. Ich lerne immer noch über die wertvolleren Teile von OOP, wie Polymorphie.Wann sollte ich in GUI/Spieleentwicklung einsteigen?

Ich begann C++ als erste Sprache und habe keine Erfahrung mit anderen Sprachen. Ich könnte wahrscheinlich mit C arbeiten, aber ich muss mich daran gewöhnen, char * und reguläre Arrays zu manipulieren (und Variablen nicht zu initieren).

Meine Frage ist, mit meiner Erfahrung, wann sollte ich in die Entwicklung von GUI-Anwendungen/Spielanwendungen einbrechen? Muss ich mich in bestimmten Bereichen der Mathematik stärker verankern, mich mit win32 vertraut machen, mich an SDK gewöhnen?

Wenn diese Frage für Sie zu subjektiv ist, um bequem Ratschläge geben zu können, wann haben Sie dann in die GUI/Spieleentwicklung eingebrochen und welche Schritte haben Sie unternommen, um sich damit vertraut zu machen?

Bearbeiten Sie dies, so wird es bestoßen. Hat jemand andere Meinungen?

+0

Bitte lesen Sie den gesamten Beitrag vor der Abstimmung zu schließen/Aufruf es subjektiv. Ich habe dir eine alternative Antwort gegeben, bitte tu das. – jkeys

Antwort

5

Vorbehalt: Ich bin ein sehr "learn-by-doing" Art von Person, also nehmen Sie dies mit einem Körnchen Salz.

Klingt, als ob Sie genug Programmiergrundlagen kennen, um in etwas realistischeres zu springen, und genug Hintergrund haben, um dieses realistische Projekt zu rechtfertigen, ein Spiel zu sein.

Ich würde empfehlen, Visual C# Express und Microsoft's XNA Game Studio 3.0 herunterzuladen.

XNA ist ein Spielframework, das viele Dinge für Sie erledigt (Sound, Sprites, 3D-Unterstützung usw.), die auf einer professionellen C# -Plattform aufbauen und es wäre ein guter Ausgangspunkt. Erstellen Sie ein neues XNA-Projekt und spielen Sie herum. Holen Sie sich ein paar Dinge, die auf dem Bildschirm erscheinen sollen, und lernen Sie dann, sie mit Benutzereingaben zu manipulieren. Wenn Sie an 3D interessiert sind, erstellen Sie eine 3D-Form wie ein Dreieck. Dann dreh es. Dann drehen Sie es basierend auf Benutzereingaben. Fügen Sie dann weitere Objekte und Kollisionen hinzu.

Sicher wird es Dinge im Rahmen geben, die Sie nicht verstehen. Tackle sie so, wie sie kommen - nutze Google und stelle Fragen, bis du sie verstanden hast. Machen Sie einen Schritt nach dem anderen und es sollte Ihnen gut gehen.

1

Ich würde Ihnen persönlich empfehlen, mit Win32 zu beginnen; Versuchen Sie, ein Basisfenster zu erstellen & weiter von diesem Punkt aus. Versuchen Sie, eine einfache 2D-Spielengine zu erstellen, in der Sie ein Spiel wie Schach oder so machen können. Dies könnte auch als Projekt dienen, für das Sie eine KI schreiben könnten; Das ist ein weiterer Teil der Spieleentwicklung!

Nachdem Sie das abgeschlossen haben, sollte der nächste Schritt 3D sein. Sie könnten die Engine, die Sie zuvor geschrieben haben, verwenden und sie von 2D nach 3D ändern. Wählen Sie eine 3D API; OpenGL oder DirectX. Sobald Sie eine grundlegende Engine haben, beginnen Sie ein Spiel zu schreiben. Brauchen Sie zusätzliche Funktionalität? Dann füge es der Engine hinzu!

Math-weise sollten Sie wissen, welche Matrizen sind. Trigonometrie kann ebenfalls nützlich sein.

Ich würde meine Zeit mit Xna nicht verschwenden, es ist nur ein Hype. : P

1

Es scheint, dass Sie bereits die grundlegenden Kenntnisse einer Programmiersprache erworben haben, um Spielprogrammierung zu starten. Ich bin dabei, aufbauend auf dem, was Sie bereits gelernt haben, wie OOP zu lernen und mehr mit Zeigern zu üben.Ich empfehle, dass Sie weitermachen und nicht ein anderes Werkzeug "Programmiersprache" lernen, um Ihre Ziele zu erreichen.

Also, wenn Sie sich für Spiele-Programmierung interessieren, empfehle ich Ihnen, wählen Sie ein C++ - Framework und arbeiten daran, werden Sie definitiv erfahrenere Programmierung lernen, indem Sie es einfach verwenden.

Ich empfehle Gosu. Es ist nicht voll von erweiterten Funktionen, was ein Vorteil sein kann, aber es hat ein sehr sauberes Design und verwendet C++ in einer eleganten und modernen Art und Weise. Das macht es besonders für Anfänger sehr freundlich.

Auch HGE ist eine weitere gute 2D-Engine.

Zusammenfassend, tauchen Sie ein in die Programmierung, indem Sie mit dem, was Sie jetzt haben, tatsächlich "machen". So werden Sie Fortschritte machen und Sie werden von den Ergebnissen begeistert sein. Und wenn "doing it" nicht durch andere Sprachen und Werkzeuge gestört wird, kennen Sie bereits etwas Ähnliches und gleichzeitig lernen Sie ein Werkzeug, das Ihnen hilft, Ihr aktuelles Wissen aufzubauen, in Ihrem Fall das C++ Engine, wählen Sie nicht sehr komplizierte (IMO, wie OpenGL, DirectX, Win32 ... etc), weil Sie am Ende Zeit auf das Lernen des Tools nicht verwenden werden, und es gibt eine große Chance, dass Sie frustriert werden. Du kannst die Dinge auf niedriger Stufe später immer lernen und es wird viel mehr Sinn machen.

1

wie diese Frage ist irgendwie subjektiv, weil jeder Programmierer eine Lieblingsbibliothek zu Beginn hat, werde ich SDL empfehlen, da es einfach, gut strukturiert und sehr komplett ist, gibt es viele Tutorials da draußen, um Sie zu führen Schritt für Schritt vom einfachen Fenster zur komplexen 3D-Manipulation. Alles kann mit Leichtigkeit umgesetzt werden.

Als eine Randnotiz, wenn Sie mit der Programmierung Spiele beginnen möchten, würde ich auch empfehlen, dass Sie einige Tuts oder Bücher über ein Spiel Grundlagen lesen (Initialisierung, Spielschleife, Update-Zyklen), so dass Sie wissen, wie setze dein Wissen in die gute Arbeit ein.