Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 20 von 33

Thema: Programmiersprache für games

  1. #1

    Programmiersprache für games

    Bevor jetz die standardsprüche kommen wie: Fürn game braucht man jahrelange übung in ner programmiersprache blabla. ich weiß aber wennn ich net anfang zu lern kann ichs in ein paar jahren immer noch net. welche sprache wäre dafür am meisten geeignet? muss kein super game mit hammer grafik werden

  2. #2
    Auf dieser Seite gibts ne Menge Tipps dazu:

    http://www.spieleprogrammieren.com/

  3. #3
    Dieser Standardspruch kommt von denen, die keine Ahnung haben. Worin du Erfahrung brauchst ist nicht die Programmiersprache direkt, denn das macht nur einen sehr kleinen Anteil der Voraussetzungen aus, sondern Entwicklungswerkzeuge wie Compiler, Debugger, IDE, die Schnittstellen, die dein Spiel anspricht, wie Grafik/Video, Audio, Netzwerk, Dateisystem, etc, sowie Bibliotheken, die diese vereinfachen/erweitern oder bestimmte Dinge bereits realisiert haben und dir damit Arbeit ersparen. Darüber hinaus brauchst du eventuell tiefergehende Kenntnisse über die Funktionsweise des Computers, bestimmter Hardware, zumindest aber das grundlegende Wissen, denn darauf baut alles auf. Nicht zu vergessen essentielle Dinge wie Spiellogik, Algorithmen zur Lösung bestimmter Probleme wie zum Beispiel Wegfindung, diverse Datenstrukturen, mathematisches Grundwissen und eventuell Weiterführendes wie Vektor-/Matrizenrechnung und anderes.

    Es spricht aber nichts dagegen direkt mit der Spieleprogrammierung anzufangen, ohne all das, was du später benötigen wirst bereits zu kennen und dein Wissen iterativ während der Entwicklung zu erweitern, im Gegenteil, das ist das, wozu ich raten würde.

    Und zu deiner Frage: Heutzutage gibt es Programmiersprachen, die einen Einstieg sehr leicht machen, dennoch aber mächtig genug sind um damit auch Spiele zu realisieren und vieles mehr. Beispiele wären Python und Lua. Das wäre wohl das erste womit du dich beschäftigen müsstest.

    Geändert von Kyuu (21.08.2010 um 19:32 Uhr)

  4. #4
    Hey danke für die antworten^^

    @ Kyuu: Meine Rede. Klar ist es sauschwer un man braucht ewig zum lernen aber wenn man nie anfängt ändert sich daran nichts^^

  5. #5
    falls es 3d sein soll kann ich dir die engine unity empfehlen. gibt es kostenlos und unterstützt 3 sprachen javascript, c# und phyton. ka wie einfach sie 2d sachen damit verwirklichen lassen. jedoch kann man sich relativ schnell was zusammen zimmern und spass haben.

    http://unity3d.com/

  6. #6
    Zitat Zitat
    falls es 3d sein soll kann ich dir die engine unity empfehlen. gibt es kostenlos und unterstützt 3 sprachen javascript, c# und phyton. ka wie einfach sie 2d sachen damit verwirklichen lassen. jedoch kann man sich relativ schnell was zusammen zimmern und spass haben.

    http://unity3d.com/
    Es gibt mehrere Engines für 3D Spiele:
    http://www.blender.org/
    http://www.udk.com/

    UDK und Unity sind wohl die besten.
    Blender funktioniert auch mit Phyton und mit UDK kenn ich mich nicht richtig aus.
    Und nun eine Frage von mir:

    Was ist eigentlich besser UDK oder Unity??

  7. #7
    Unity brauch sich sicherlich nicht hinter der Unreal Engine 3 verstecken, aber dennoch ist die UE3 das augereiftere, hochqualitativere Produkt. Dafür fällt der Einstieg mit Unity leichter und der UE3 wird oft nachgesagt, dass sie diesen eigenwilligen Look hat, der nicht jedem gefällt.

    @Kyuu & Threadersteller:
    Wenn es Spieleprogrammierung auf hohem Level sein soll, kommt man irgendwann nicht mehr um C/C++ herum. Man sollte aber auch nicht den Anfängerfehler machen und sich gleich die erstbeste 3D-Engine schnappen und drauf hoffen, dass irgendwas geiles bei rumkommt. Grundzüge der Programmierung lernt man am besten mit Sprachen mit einfacher Syntax, wie Pascal oder Java. Damit lässt sich auch schon Mächtiges erschaffen. Man sollte aber immer klein anfangen.

    Minispiele á la Tetris, Snake lassen dich spielend Programmieren lernen.

    Geändert von Papa Justify (22.08.2010 um 12:31 Uhr)

  8. #8
    Im Normalfall ist ein Spiel in mehrere Ebenen aufgeteilt. Als Grundsatz existiert die Engine, die im Prinzip, wie der Name schon sagt, der "Motor" eines Spieles ist. Bei einer engine handelt es sich um eine Programmsammlung, die bestimmte Dinge wie etwa grafische Darstellungen, Netzwerk, Sound oder Physik übernimmt. Zu der Engine kommt dann ein Toolset aus einem oder mehreren Editoren, mit denen Inhalte für die Engine, also das eigentliche Spiel erstellt werden. Engine und Entwicklungsumgebung sind der Teil eines Spieles, bei deren Entwicklung wirklich programmiert wird. Genau diese beiden Dinge existieren beim RPG-Maker schon, nämlich die RPG_RT.exe als Engine und der RPG-Maker als Toolset, mit dem sich Inhalte dafür erstellen lassen.

    Wenn du dir vorstellst, dass du mithilfe einer Programmiersprache ein ganzes Spiel erstellen kannst, liegst du falsch. Du erstellst damit lediglich das Fundament, auf dem dein Spiel aufbaut. Es kommen aber immer noch weitere Dinge hinzu wie Grafiken erstellen, Sounds erstellen, Animieren usw.

    Dies gilt aber nur für ausgefeilte, wirklich komplexe Spiele. Kleine Dinger wie Snake lassen sich auch ohne großartige Aufteilung in diverse Ebenen programmieren. Bei komplexeren Projekten ist so etwas aber unerlässlich, wenn man keinen gigantischen Aufwand haben will.

    Sich dem Aufbau eines Spiels bewusst zu werden ist aber auf jeden Fall der beste Einstieg und wesentlich sinnvoller als sich gleich zu Anfang in irgendeine Engine reinzufuxen.

    Geändert von Satyras (30.08.2010 um 20:53 Uhr)

  9. #9
    C++. Es lohnt sich.

    2D:
    C++&SDL
    3D
    C++&SDL+OpenGL

    Wenn du alles selbst schreibst hast du keine Kosten und bist vor allem bei gutem Code auch plattformunabhängig. Im Idealfall läuft dein Spiel dann auch auf deinem Toaster.

  10. #10
    Zitat Zitat von Aperetif Beitrag anzeigen
    @Kyuu & Threadersteller:
    Wenn es Spieleprogrammierung auf hohem Level sein soll, kommt man irgendwann nicht mehr um C/C++ herum.
    Wie bitte?

    Zitat Zitat von elvissteinjr Beitrag anzeigen
    C++. Es lohnt sich.

    2D:
    C++&SDL
    3D
    C++&SDL+OpenGL

    Wenn du alles selbst schreibst hast du keine Kosten und bist vor allem bei gutem Code auch plattformunabhängig. Im Idealfall läuft dein Spiel dann auch auf deinem Toaster.
    Du bist witzig.

  11. #11
    Rein theoretisch lässt sich ein Spiel in jeder Sprache schreiben, wobei natürlich anzumerken ist, dass der syntaktische Aufbau mancher Sprachen besser geeignet ist als der anderer, um damit ein Spiel zu entwickeln. Letztendlich kommt es aber nicht nur auf die Sprache an sich an, sondern genauso auf den Maschinencodeübersetzer. Hier unterscheidet man zwischen Compilern und Interpretern, es gibt auch Hyrbiden aus den beiden, aber dazu später mehr.

    So ein Übersetzer übersetztr nun also das Programm in für den Computer ausführbare Maschinensprache und die Art wie sie dies tun ist ausschlaggebend für die Unterscheidung. Ein Compiler übersetzt den Code ein einziges mal als ganzes in Maschinensprache. Dies dauert meistens eine längere Zeit, je nach Umfang des Programmes, dafür ist der Maschinencode, der am Ende herauskommt sehr schnell. Ein Interpreter hingegen übersetzt den Code während dem Ausführen des Programmes, was zwar dafür sorgt, dass das Programm sofort läuft, aber ebenso Performanceeinbußen mit sich bringt.

    Nun gitb es auch Hybriden aus diesen beiden, etwa die Standard-Java-Laufzeitumgebung von Sun oder das .net-Framework, die euren Code ersteinmal durch einen Compiler jagen, der den Code aber nicht direkt zu Maschinencode macht, sondern zu einer Art Zwischencode, der dann wiederum von einem Interpreter übersetzt wird.

    Für ein größeres Spieleprojekt ist eine Sprache, für die ein guter Compiler vorliegt silcherlich die beste Wahl.

  12. #12
    Zitat Zitat von Kyuu Beitrag anzeigen
    Wie bitte?
    Wenn man irgendwann mal professionell arbeiten will, wird man aufgrund von Industriestandards und Mächtigkeit der Sprache und der Vielfalt an Bibliotheken nicht um C/C++ herumkommen, capisci?

  13. #13
    Zitat Zitat von elvissteinjr Beitrag anzeigen
    C++. Es lohnt sich.

    2D:
    C++&SDL
    3D
    C++&SDL+OpenGL

    Wenn du alles selbst schreibst hast du keine Kosten und bist vor allem bei gutem Code auch plattformunabhängig. Im Idealfall läuft dein Spiel dann auch auf deinem Toaster.
    +1

    Am besten die Kombination von C++, SDL (und OpenGL) innerhalb von Eclipse mit CDT-Plugin.

    btw. Ich muss mal schauen, wie ich SourceCode unter Windows kompiliert kriege mit MinGW. Unter Ubuntu Linux ist das kein Problem.

  14. #14
    Zitat Zitat von niR-kun Beitrag anzeigen
    btw. Ich muss mal schauen, wie ich SourceCode unter Windows kompiliert kriege mit MinGW. Unter Ubuntu Linux ist das kein Problem. :D
    Ich hab zwar Code::Blocks als bevorzugte IDE, da es flott läuft und plattformunabhängig ist, aber um SDL in MingGW laufen zu kriegen musste ich erstmal folgende Linker Flags reinschmeißen:
    Zitat Zitat
    -lmingw32
    -lSDLmain
    -lSDL
    -lSDL_image
    Wobei -lSDL_image offensichtlich optional ist, nur BMPs zu verwenden würde ich aber niemandem raten. Auch wichtig ist es auf den richtigen #include zu achten. Bei den SDL Libs, die ich unter Windows habe ist es beispielsweise SDL_Image.h während es unter Ubuntu SDL_image.h ist.



    Zitat Zitat
    Du bist witzig.
    Bau einen Rechner oder zumindest nen Prozessor+Grafikprozessor in deinen Toaster und es wird laufen.

  15. #15
    Zitat Zitat von Aperetif Beitrag anzeigen
    Wenn man irgendwann mal professionell arbeiten will, wird man aufgrund von Industriestandards und Mächtigkeit der Sprache und der Vielfalt an Bibliotheken nicht um C/C++ herumkommen, capisci?
    Erweitere deinen Horizont, wir befinden uns nicht mehr in den 80-ern. Professionelle Spiele (wenn du schon derart stark pauschalisierst) nutzen weit mehr als C/C++ und ich rede nicht mal von Indies.

    Das heute ausschlaggebende für C/C++ ist zwar tatsächlich das breitgefächerte Angebot an qualitativen Compilern, Entwicklungswerkzeugen und Bibliotheken, aber das muss nicht bedeuten, dass es außerhalb nichts gibt, das mindestens als Gleichwertig betrachtet werden kann. Im letzten Jahrzehnt wurden viele neue Sprachen entwickelt, die performancetechnisch mindestens mit C/C++ gleichziehen, weit weniger komplexe Implementierung haben und mächtiger sind. Sie sind damit für zukünftige und teilweise bereits für heutige (professionelle) Spieleentwickler attraktiv und gewinnen immer mehr an Attraktivität mit jeder neuen unterstützten Plattform, jeder neuen damit geschriebenen Bibliothek und jedem neuen Projekt, das es verwendet. Mindestens für C++ sieht die Zukunft schlecht aus, auch wenn es nie ganz von der Bildfläche verschwinden wird. Die Sprache ist veraltet, zu komplex, schwer zu warten, führt zu fehleranfälligem Code und steht bei vielen (besonders im akademischen Bereich und damit bei denen, die ihre Zukunft in den Händen halten werden) in einem schlechten Licht.

    Ach so, ein Industriestandard ist C++ schon länger nicht mehr. C#, Java und andere haben sich längst durchgesetzt.


    Zitat Zitat von elvissteinjr Beitrag anzeigen
    Bau einen Rechner oder zumindest nen Prozessor+Grafikprozessor in deinen Toaster und es wird laufen.
    Das war nichtmal das Witzige.

    Geändert von Kyuu (23.08.2010 um 22:17 Uhr)

  16. #16
    Zitat Zitat von Rayo Beitrag anzeigen
    Es gibt mehrere Engines für 3D Spiele:
    http://www.blender.org/
    http://www.udk.com/

    UDK und Unity sind wohl die besten.
    Blender funktioniert auch mit Phyton und mit UDK kenn ich mich nicht richtig aus.
    Und nun eine Frage von mir:

    Was ist eigentlich besser UDK oder Unity??
    keine ahnung welche besser ist hab nur unity getestet... bzw. sie dazu benutzt durch meine 3d kreationen zu schlendern und das geht mit wenigen klicks

  17. #17
    Zitat Zitat von Kyuu Beitrag anzeigen
    Erweitere deinen Horizont...
    Verstehe meine Aussage! Ich behaupte nicht, dass man nur mit C Spiele programmieren kann. Ich weiß selbst, dass es noch ganz viele andere Fische im Meer gibt. Und ich weiß, dass es genug einfachere Alternativen zu C/C++ gibt. Trotzdem ist gerade in der Spieleentwicklung immernoch das Nonplusultra und muss zurzeit höchstens mit Java konkurrieren, dass ich zumindest in Sachen Spieleprogrammierung noch hinten dran sehe (und durch die Geschichte mit Oracle, aber da muss man erstmal schauen).

    Letztendlich kann man mit jeder Programmiersprache fast alles realisieren mit mehr oder weniger Aufwand.
    Ich bleibe aber bei meiner (scheinbar beschränkten) Meinung, dass man heutzutage C/C++ und Java können muss, als professioneller Programmierer.

  18. #18
    Zitat Zitat von Kyuu Beitrag anzeigen
    Ach so, ein Industriestandard ist C++ schon länger nicht mehr. C#, Java und andere haben sich längst durchgesetzt.
    Mal sehen...

    C# läuft nur im .net Framework, also nur unter Windows und leider nur sehr schlecht mit Mono. Dadurch dass beim .net Framework nur Bytecode, aber kein Maschienencode erzeugt wird, sind die Programme prinzipiell Plattformunabhängig, sind es in der Praxis aber nicht wegen oben genanntem.

    Java läuft in der Java Virtual Machine, welche den Bytecode wie bei .net während der Laufzeit kompiliert. Die Programme sind plattformunabhängig, solange eine JVM auf dem Gerät vorhanden ist.

    Nur haben beide eines gemeinsam: Durch die Laufzeitkompilierung sind die Sprachen ein gutes Stück langsamer als jede kompilierte Sprache.
    Wie kann C++ kein Industriestandard mehr sein, in einer Industrie wo jedes FPS zählt? Sicher kann man gute Spiele mit den erwähnten Sprachen programmieren, aber die Spieleindustrie muss so viel wie möglich an Leistung rausquetschen können. Da ist eine laufzeitkompilierte Sprache fehl am Platz.


    Zitat Zitat
    Das war nichtmal das Witzige.
    Witzig ist das nur weil es dann wirklich laufen würde.

  19. #19
    Zitat Zitat von elvissteinjr Beitrag anzeigen
    Java läuft in der Java Virtual Machine, welche den Bytecode wie bei .net während der Laufzeit kompiliert. Die Programme sind plattformunabhängig, solange eine JVM auf dem Gerät vorhanden ist.

    Nur haben beide eines gemeinsam: Durch die Laufzeitkompilierung sind die Sprachen ein gutes Stück langsamer als jede kompilierte Sprache.
    Naja, durch den JIT-Compiler kompiliert Java seinen Programmcode zum Teil auch in Maschinencode. Und das unter Umständen sogar effizienter als C/C++, da zur Laufzeit mehr Informationen zur Verfügung stehen.
    Mittlerweile ist C++ vielleicht 25%-50% schneller als Java - wenn es effizient programmiert ist. Das ist aber kein nennenswerter Geschwindigkeitsunterschied. Entscheidender ist, wie effizient man seinen Code gestaltet.

    Ich halte von Java und C# auch mehr als von C++, aber das ist nur meine persönliche Meinung. Auf jeden Fall sollte man sich mit mehreren Sprachen beschäftigen und sich nicht von vornherein auf eine Sprache festlegen.

  20. #20
    Zitat Zitat von -KD- Beitrag anzeigen
    Ich halte von Java und C# auch mehr als von C++, aber das ist nur meine persönliche Meinung. Auf jeden Fall sollte man sich mit mehreren Sprachen beschäftigen und sich nicht von vornherein auf eine Sprache festlegen.
    Das ist sowieso das Beste. Java muss sein, genaso wie C und im Endeffekt kann man dann auch schon fast C# , da es im Grunde eine Mischung aus beidem ist.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •