C++ fuer Spieleprogrammierung?



  • Hey,

    ich spiele leidentschaftlich gerne MMORPGs und Shooter.
    Irgendwann kommt einem dann mal der Gedanke selbst ein Spiel
    zu erstellen. Ich habe mich mal im Internet ein Bisschen schlau gemacht
    und weiss jetzt, dass es gaaaaaaaaaaaanz lange dauert sich die
    Voraussetzungen anzueignen 🙂

    Ich moechte gerne auf das Ziel hinarbeiten, in ca. 2 Jahren ein kleinen
    3D Shooter fuer 2-3 Personen in max. 5 Raeumen zu erstellen.
    Im Internet findet man aber nur Fetzen von Informationen, daher richte ich
    jetzt einmal einige fragen an auch.

    1. Welche Programmiersprachen muss ich fuer die 3D-Spieleerstellung beherrschen?
    2. Was gibt es ausser den Sprachen noch fuer Voraussetzungen?
    3. Wo lerne die Benoetigten Sprachen am besten und an wen kann ich mich wenden wenn ich einmal entwas nicht verstehe?
    4. Wie lange dauert es in etwa bis man die ersten Erfolge verzeichnen kann um nicht die Lust am Lernen zu verlieren?

    Ich hoffe, ich bekomme moeglichst zeitnah gute Antworten und bedanke mich
    schon im Voraus herzlich bei euch.
    Liebe Gruesse,
    Smiley



  • C++ ist die richtige Sprache. Davon solltest du erst mal die Grundlagen beherrschen, bevor du dich an ein Spiel wagst. Allerdings ist 2 Jahre wirklich sehr optimistisch. Ich geb dir 4 Jahre.



  • zu 1: Im Grunde ist es mit fast jeder Programmiersprache möglich 3D-Programe zu erstellen. Kann man also so nur schwer beantworten. C++ ist natürlich eine populäre Möglichkeit, allerdings ist C++ auch durchaus anspruchvoll, wenn es um das Erlernen geht. Mit anderen Sprachen kommt man ggf. schneller zum Ziel(C# bspw.).

    zu 2: Neben der Sprache musst du natürlich auch eine Engine/Framerwork oder eine API(Direct X/OpenGL) beherrschen, mit der du das Spiel programmieren willst. Hinzu kommmt Grafik, Sound, Leveldesign etc.

    zu 3: Zum Einsteigen in eine Sprache empfehle ich ganz klar, ein Buch zu verwenden. Tutroials im Internet gibt es oft nur wenige gute. Und bei Fragen wendest du dich einfach an das Forum deines Vertrauens ;).

    zu 4: Das kann man so nicht beantworten. Der eine lernt schneller, der andere langsamer. Der eine 10 Stunden am Tag, der andere eine. Es kommt also auf dich an. Jedoch solltest du nicht erwarten, in wenigen Wochen schon ein 3D-Spiel programmieren zu können. Also die Grundlagen einer Sprache zu erlernen und zu verstehen kann sehr leich mehrere Monate in Anspruch nehmen. Und danach ist man mit Sicherheit noch nicht der Überflieger in einer Programmiersprache, sonder entwickelt sich stetig weiter.

    Wenn es dir aber darum geht, ein Spiel zu programmieren, kannst du dir auch mal Systeme, wie Unity3D oder das UDK ansehen. Damit sollten sich relativ schnell gute Erfolge erzielen lassen.



  • 1.- C++ ist ok, aber eig tuts fast jede andere programmiersprache auch (java -> java3D, C# mit XNA, C -> weil fast wie ~C++, Basic -> da gibts viele bibliotheken)

    2.- naja du solltest ein gutes mathematisches verständnis haben und auch modells entwerfen können 8wobei da strichmännchen reichen)

    3.- selbst aneignen

    4.- lange xD je anchdem wie intensiv du dich damit beschäftigst und wie stark du dich einsetzt



  • 314159265358979 schrieb:

    C++ ist die richtige Sprache.

    Eine differenzierte Sichtweise ist dir wohl fern.

    Erste Erfolge wird er schnell mal haben, weil er sicher Bücher oder Tutorials findet, die ihn C++ und Spieleprogrammierung lehren. Nur leider kommt er damit nicht viel weiter, erst einmal muss er die Sprache beherrschen und bis er Einsicht zeigt, können durchaus viele Jahre vergehen.



  • Vielen Dank erstmal fuer die ganzen Antworten 😉
    Ich bin durchaus bereit Einsatz zu zeigen, aber 4 Jahre zu investieren
    um ein vergleichsweise "kleines" Spiel zu machen?
    Das ist mir dann schon etwas viel, weil ich mich im Moment hauptsaechlich darauf konzentriere HTML und CSS besser zu vertiefen.

    Gibt es also auch Software oder Programme mit denen man 3D-Spiele
    (wie in meinem ersten Beitrag beschrieben) anfertigen kann?
    ich waere bereit zu zahlen, jedoch soltle sich das in einem Rahmen halten
    und nicht zu viel kosten 😉

    Und notfalls ein Programm das 3D-Spiele ermoeglicht die man alleine spielt oder zu zweit an einem PC.

    Lg und nochmals danke 😉



  • Die Anderen übertreiben.
    An die 3D-Programmierung kannst du dich recht schnell wagen, acker einfach den C++ Primer durch bis du ihn verstehst. Dann kannst du dir ja mal diverse Engines anschauen. Ich würde dir raten einfach mal die Ogre Tutorial-Reihe durchzumachen.

    Praktisch learning-by-doing mit einem guten Buch als Grundlage.
    Bis du dich etwas sicher fühlst, kannst du ja kleine Konsolenspiele bauen.

    Viel Spaß! 🙂



  • hey,
    ich habe mir jetzt mal das 3D-Game Studio angeschaut und finde das hoert sich doch erstmal ganz gut an.
    Kennt sich jemand damit aus?
    Wenn ja, wuerde es mich freuen, wenn ich mich per Email mit demjenigen in Kontakt setzen koennte sodass mir ein paar Basics beigebracht werden koennten 😉
    Liebe Gruesse,
    TheSmiley



  • Ich bin durchaus bereit Einsatz zu zeigen, aber 4 Jahre zu investieren
    um ein vergleichsweise "kleines" Spiel zu machen?

    Das ist etwas kurz gedacht. Das Spiel ist unwichtig, wichtiger ist, dass du danach halbwegs vernünftig programmieren kannst. Wenn man ernsthaft mit Computern arbeitet, ist das IMO etwas, das man beherrschen sollte.

    ich habe mir jetzt mal das 3D-Game Studio angeschaut und finde das hoert sich doch erstmal ganz gut an.
    Kennt sich jemand damit aus?

    Nein, aber ich denke, von der 3D-Programmierung solltest du erstmal absehen. Einfache 2D-Spiele kannst du schon nach wenigen Wochen schreiben, aber du wirst anfangs wahrscheinlich auf genug Probleme stoßen, als dass du auch noch die zusätzliche Komplexität der dritten Dimension gebrauchen könntest.
    Warte also, bis du dich beim Schreiben von 2D-Spielen sicher fühlst.



  • Es gibt auch Meinungen, dass 3D-Spiele sogar einfacher als 2D sind, einfach weil es für 3D viel ausgereiftere Frameworks gibt während man bei 2D noch viel selbst machen muss. Ich kann das nicht einschätzen, kann aber die Erklärung nachvollziehen.

    Und auch da gilt: prinzipiell kann man mit einem guten Framework und einem führenden Buch ein einfaches 3D-Spiel in wenigen Wochen programmieren. Trivial ist es natürlich nicht, aber machbar. Bevor du allerdings "gute" Spiele machst (also solche, für die sich unter Umständen sogar Leute finden, die sie spielen würden), brauchst du sicherlich ein paar Jahre zum Aneignen der nötigen Erfahrung. Hinter so einem Spiel steckt ja letztendlich nicht nur Programmierung, viel Arbeit macht auch Leveldesign, Texturen, Meshes, Story usw. Und z.B. 3D-Modellierung hat man auch nicht in ein paar Tagen zur Perfektion gebracht.

    Ach ja: ein (einfacher) Shooter mag gehen, aber von einem MMORPG solltest du zumindest fürs erste die Finger lassen.



  • Schau dir mal z.B. http://nehe.gamedev.net/ an und arbeite die Lessons 1 - 48 durch. Die Tutorials sind zwar schon ziemlich alt und der Code auch in C und nicht C++, aber das kannst du auch ohne Probleme alles in C++ umschreiben.



  • Wie ich bereits in meinem ersten Posts erwähnte: Unity oder das Unreal Development Kit(Links siehe mein vorheriger Post) sind eben solche Editoren, mit denen man "verhältnismäßig" leicht eigene Spiele erstellen kann. Ist für dich denke ich auf jeden Fall mal einen Blick wert.



  • Game Maker von Mark Overmass oder so. Einfach "yoyo games" googln.^^



  • Ich habe gehört, dass "C++ für Spieleprogrammierer" ganz gut sein soll.
    Es ist keins der Bücher, die sofort mit einem Spiel anfangen wollen, sondern bringt nur die Grundlagen der Sprache bei, aber eben kombiniert mit Spieleprogrammierung 🙂



  • ipsec schrieb:

    Es gibt auch Meinungen, dass 3D-Spiele sogar einfacher als 2D sind, einfach weil es für 3D viel ausgereiftere Frameworks gibt während man bei 2D noch viel selbst machen muss. Ich kann das nicht einschätzen, kann aber die Erklärung nachvollziehen.

    Wenn man Frameworks wie SFML anschaut, entsteht aber ein anderer Eindruck. Hingegen kenne ich nicht wirklich Open-Source-Bibliotheken für 3D-Spiele/Grafikprogrammierung, die so ein schönes Design haben.

    Student83 schrieb:

    Schau dir mal z.B. http://nehe.gamedev.net/ an und arbeite die Lessons 1 - 48 durch.

    Ich denke nicht, dass pures OpenGL ein guter Einstieg ist, dazu sind die NeHe-Tutorials auch noch veraltet.

    Ich persönlich würde nicht mit irgendeinem "Spieleprogrammierer"-Buch gleichzeitig C++ und Spieleprogrammierung lernen. Lieber, man nimmt sich ein reines C++-Buch wie den Primer vor und hängt sich ein paar Monate voll rein. Ist zwar vielleicht anfänglich etwas langweilig, dafür lernt man sicher das Richtige. Auf diese Weise hat man, wenn man zur Spieleprogrammierung übergeht, ein solides Fundament und kann selbst entscheiden, wie man etwas umsetzen will, da man die Sprache bereits einigermassen gut kennt. Ausserdem ist man freier in der Auswahl der benutzten Bibliotheken.

    Viele Leute machen den Fehler, dass sie sich aufgrund ihrer Ungeduld zu schnell an komplexen Dingen wie Spieleprogrammierung versuchen, ohne die Grundlagen verstanden zu haben. Man bringt meist schon etwas zustande, aber man schreibt umständlichen und schlecht wartbaren, fehleranfälligen Code. Im Endeffekt braucht es um einiges mehr Zeit (und vor allem mehr Nerven), als wenn man anfänglich etwas Zeit investiert, um die Sprache richtig zu beherrschen.



  • Wurst schrieb:

    Ich habe gehört, dass "C++ für Spieleprogrammierer" ganz gut sein soll.

    Ist es nicht. Man soltle zuerst die Werkzeuge lernen, bevor man die Anwendungen kennen lernt. Beides gleichzeitig führt nur zu murks. Volkard hatte dazu etwas intelligentes vor ein paar Tagen geschrieben.



  • Kann hier mal einer erläutern wie die Lizenzen von Unreal Development Kit funktioneren?



  • Ich habe mich jetzt fuer die Unity 3D Engine entschieden
    und werde versuchen damit ein simples 3D Singleplayer Spiel
    zu erstellen. Wenn ich das dann irgendwann mal kann (:D), dann
    werde ich mich mal an ein MMORPG wagen. Wenn jemand gute Einsteigertutorials
    auf deutsch fuer Unity 3D kennt, die 0 Wissen mit dem Programm voraussetzen, wuerde ich mich sehr ueber Links freuen.
    Liebe Gruesse und eine angenehme Nachtruhe 😉



  • TheSmiley schrieb:

    Ich habe mich jetzt fuer die Unity 3D Engine entschieden
    und werde versuchen damit ein simples 3D Singleplayer Spiel
    zu erstellen. Wenn ich das dann irgendwann mal kann (:D), dann
    werde ich mich mal an ein MMORPG wagen. Wenn jemand gute Einsteigertutorials
    auf deutsch fuer Unity 3D kennt, die 0 Wissen mit dem Programm voraussetzen, wuerde ich mich sehr ueber Links freuen.
    Liebe Gruesse und eine angenehme Nachtruhe 😉

    http://lmgtfy.com/?q=unity3d+tutorial

    War das so schwer:-P? Schau dir mal gleich das 1.Ergebnis an, kenn die Engine zwar nicht, aber das Tutorial( Video-Tutorial ) sieht sehr gut aus. Dort wird so wie ich es verstanden habe ein Rennspiel erstellt.

    Lg freeG



  • TheSmiley schrieb:

    Wenn ich das dann irgendwann mal kann (:D), dann
    werde ich mich mal an ein MMORPG wagen.

    Stell das MMORPG lieber ein bisschen weiter nach hinten. Ich glaube du unterschätzt, welcher immenser Aufwand hinter einem solchen Projekt steht. Davon wirst du aber denke ich ein besseres Bild haben, nachdem du dein "simples" Spiel fertig gestellt hast.

    Mir ist jedenfalls kein MMORPG bekannt, das eine einzelne Person begonnen und fertig gestellt hat. Selbst kleinere Teams scheitern unverhältnismäßig oft. Bedenke allein die Arbeit um eine einigermaßen große Spielwelt zu modellieren. Dazu ein Haufen NPCs, Items, Quests, Mobs etc. Und mit Programmieren hast du dann noch gar nicht angefangen.
    Also tue dir selbst einen Gefallen und mach erstmal ein paar mehr einfacherer Sachen, bis du das besser einschätzen kannst. Natürlich kannst du dich aber trotzdem schon an Multiplayer-Komponenten versuchen, das ist zwar auch nicht trivial, aber trotzdem bei weitem einfacher als eine persistente Spielwelt mit hunderten Spielern.


Anmelden zum Antworten