kostenloser Webspace werbefrei: lima-city


Allgemeines zum Thema Spieleentwicklung

lima-cityForumProgrammiersprachenC/C++ und D

  1. Autor dieses Themas

    e*****r

    Hallo Freunde,

    Da dieses Thema hier im Forum regelm??ig auftaucht (Und ich regelm??ig schockiert bin ?ber den Unsinn der erz?hlt wird) m?chte ich mal ein paar allgemeine Dinge zum Thema Spieleentwicklung festhalten! Man m?ge mich gerne verbesser bzw. fehlendes erg?nzen!


    Zun?chst einmal sollte man das Wort "Spiele" etwas differenzierter betrachten als es hier meistens der Fall ist! Unter Spielentwicklung hier im C/C++ Forum fallen prinzipiell nur Spiele die direkt als bin?rcode auf dem Prozessor ausgef?hrt werden! Daszu z?hlen folgende nicht:

    - Brettspiele (wer h?tte das gedacht)!
    - Browsergames (Wir nicht auf dem Clientrecher ausgef?hrt und sind auch selten in C/C++ geschrieben)!
    - FlashGames (kein C/C++ und auch kein Bin?rcode)!

    und ?hnliches. Wor?ber ich hier schreiben m?chte sind richtige 2D/3D Games die in C/C++ geschrieben sind und zu Bin?rcode kompiliert wurden (ja nat?rlich sind das auch Textadventures)!


    Prinzipielles:

    - Spieleentwicklung ist kein Pappenstiel
    - Spieleentwicklung braucht (meist) zumindest Grundlagen in C/C++ und etwas Organisationstalent!
    - Einfach losprogrammieren f?hrt meist nur zu Gullasch oder absolut un?bersichtlichem Code!
    - GameMaker ist leicht zu bedienen aber bringt euch Erfahrungstechnisch kein deut weiter!
    - Jedes komplexere Spiel sollte von OOP exessiv gebrauch machen!
    - Ohne Konzept geht nix!


    Nun alles sch?n und gut aber wie fange ich nun an?


    Als ALLER erstes MUSS man f?r ein Spiel das offensichtlich schon etwas aufwendiger wird ein Konzept erstellen. Das kann auch einfach mal alles sein was einem einf?llt Anfangs! Wichtig ist das man erst mal in Worte fasst was man eigentlich erreichen will und was das Spiel k?nnen sollte?!

    Wenn man das soweit aufgestellt hat sollte man sich OBJEKTIV ?berlegen was man davon ?berhaupt verwirklichen kann mit den geistigen und finanziellen und zeitlichen Mitteln die einem zur verf?gung stehen. Sonst gibt man auf der h?lfte der Strecke auf weil man merkt das es zu viel wird!

    Wenn mein seine W?nsche und M?glichkeiten abgeglichen hat, steht man nun vor etwas konkretem! Etwas das man will und auch in der Lage ist umzusetzten! Nun ist es nat?rlich sehr unterschiedlich was der einzelne kann und was er vor allem will! Unter Umst?nden ist es sinnvoll sich eine zweite, dritte oder sogar vierte Person zu dem Projekt hinzu zu nehmen die Erfahrung in anderen Schwerpunkten hat! Baue dein Team sorgf?ltig zusammen! Denn wenn dein Engine Programmierer nach 2 Wochen wegl?uft und die Kommunikation m?ll war, ist die Arbeit futsch!

    Wenn man sein Team zusammen hat sollte man sich an diesem Punkt klar werden was die beste M?glichkeit ist zu kommunizieren. Das ist enorm wichtig bei einem gr??eren Projekt! Und man sollte sich in regelm??igen Abst?nden treffen (virtuell oder real) um sicherzustellen das alle Teile des Teams noch in die selbe Richtung arbeiten! Wenn man die Termine und Kommunikationsart gew?hlt hat kommt der wichtigste Teil der Teamarbeit:

    Die Aufgabenverteilung!

    Ohne richtige Planung f?hrt es meistens dazu das z.B. alle an der 3D Grafik arbeiten aber keiner an der Steuerung! Oder alle arbeiten an den Modellen aber keiner macht die passenden Skins! Sowas ist fatal und f?hr unweigerlich zu Frust, Streit und letztendlich zur zerschlagung des Projekts! Also: fr?hzeitig Aufgaben verteilen und wenn zu wenig Personen da sind ruhig noch welche dabeiholen.. besser zu diesem Zeitpunkt als das sie sich sp?ter in fremden Sourccode einarbeiten m?ssen! Das kostet enorm viel Zeit und Aufwand! Au?erdem hat ein guter Programmierer meist keine Lust in ein seit Ewigkeiten bestehendes Team eingegliedert zu werden! Man sollte sich auch tunlichst lieber untersch?tzen als ?bersch?tzen was die eigenen F?higkeiten angeht! Kein guter Programmierer schreibt eine Engine und nebenher noch die Steuer und vielleicht auch noch die Kameraroutinen f?r ein gr??eres Projekt! Abreitsteilung ist hier das A und O!


    Und dann kommt ein weiterer SEHR wichtiger Punkt! Schnittstellen definieren! Es werden gemeinsame Schnittstellen zwischen den einzelnen Komponenten definiert! D.h. Der Engineprogrammieren kann ?ndern was er will an seinem Code.. solange die Schnittstelle genormt bleibt passt die Steuerungskomponente immer an die Engine! Und vor allem so wenig Schnittstellen wie m?glich! Lieber ein paar Wrapper-Klassen die Befehle zusammenf?hren und am Ende alles nur ?ber eine Funktion bzw. Klasse an n?chstes Element senden! Sonst hat man sp?ter beim Debuggen keine Chance mehr den Signalweg von Events zur?ck zu verfolgen!


    Hat man alle Punkte beachtet steht einen guten Team und einem manierlichen Endergebniss nur noch Leistungsbereitschaft und Engagement im Wege! Und jeder gute Spieleentwickler wei?: Es macht s?chtig und nach einiger Zeit h?rt man quasi auf zu schlafen nur um noch ein paar Zeilen Code zu schreiben :biggrin:!


    Ich w?nsche euch viel Freude beim Spielecoden! Bei Fragen oder Anregungen nur zu! Ich freue mich immer!

    Euer Elandir


    P.S. FINGER WEG VON GAMEMAKER! DAS IS M?LL UND VERSAUT JEDEN POTENTIELLEN SPIELEENTWICKLER! :mad:
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. e*****************t

    Was du vielleicht vergessen hast aufzuz?hlen ist die Spieleprogrammierung in Java.
    Mit Java hat man sowohl die M?glichkeit 2D als auch 3D Spiele zu entwickeln.
    Fr?her war es so, dass Java eine nur unzureichend schnelle Anbindung an die Hardware besa? und deutlich langsamer als C/C++ war. Dies ist seit einigen Versionen von Java nicht mehr so und damit ist Java eine mehr oder weniger ernst zu nehmende Konkurrenz f?r C/C++, vor allem weil es Plattform unabh?ngiger ist.

    Ich selbst programmiere immer ohne Konzept. Ich plane nicht und denke w?hrend des Programmierens nicht dar?ber nach, was ich gerade schreibe.
    Nach unz?hligen Kompilierversuchen macht es dann pl?tzlich BING und das Programm l?uft.
    Wenn ich mir danach den Code ansehe, stelle ich fest, dass ich sonderbarerweise sogar eine sinnvolle Struktur programmiert habe.
    Ein Kumpel von mir macht genau dasselbe. Erstmal wird programmiert - dann wird geguckt, ob was dabei herausgekommen ist. :biggrin:
  4. Autor dieses Themas

    e*****r

    Hi,

    Also Punkt eins.. das is hier nicht das Java forum sondern das C/C++ Forum! Punkt 2 im Bereich (und ich rede von wirklich ernsthaften Dingen) Spieleentwicklung spiel Java eine v?llig untergeordnete Rolle.. und der Grund liegt auf der Hand: Java ist auf Grund mangelnder Pointer unflexibler UND alle 3D/2D Librarys sind f?r C/C++ entwickelt worden! Aber viel gravierender ist: Java produziert keinen Bin?rcode sondern Bytecode! Und ganz gleich wie sehr du den optimierst, er wird IMMER langsamer als ein Bin?rcode sein der genau so effizient geschrieben ist! Ganz einfach weil er ja nicht direkt auf dem Prozi ausgef?hrt wird sondern erst mal durch den Interpreter laufen muss! Soviel zu Java.


    Was das munter drauf losprogrammieren angeht so amche ich das nat?rlich auch! Aber NICHT bei gr??eren Projekten! Etweder verheddert man sich in seinem eigenen Code, oder aber (wenn man wirklich was lauff?higes zustande bringt) ist das was man geschrieben hat meist extrem uneffizient! Weil viele Sachen einfacher gehen w?rden h?tte man ein wenig dar?ber nachgedacht! Und bei Spieleentwicklung z?hlt nunmal jedes Qu?ntchen an Geschwindigkeit und jedes Bit an Speicher im Ram/GK/HDD! Was ?brigens ein weiterer Grund ist warum das programmieren von JavaSpielen nicht effizient ist! Die Speicherverwaltung wurde dem Programmierer entrissen! Und die ist sehr wichtig f?r die SE!


    Elandir
  5. s*****y


    Hallo Freunde,

    Da dieses Thema hier im Forum regelm??ig auftaucht (Und ich regelm??ig schockiert bin ?ber den Unsinn der erz?hlt wird) m?chte ich mal ein paar allgemeine Dinge zum Thema Spieleentwicklung festhalten! Man m?ge mich gerne verbesser bzw. fehlendes erg?nzen!


    Zun?chst einmal sollte man das Wort "Spiele" etwas differenzierter betrachten als es hier meistens der Fall ist! Unter Spielentwicklung hier im C/C++ Forum fallen prinzipiell nur Spiele die direkt als bin?rcode auf dem Prozessor ausgef?hrt werden! Daszu z?hlen folgende nicht:

    - Brettspiele (wer h?tte das gedacht)!
    - Browsergames (Wir nicht auf dem Clientrecher ausgef?hrt und sind auch selten in C/C++ geschrieben)!
    - FlashGames (kein C/C++ und auch kein Bin?rcode)!

    und ?hnliches. Wor?ber ich hier schreiben m?chte sind richtige 2D/3D Games die in C/C++ geschrieben sind und zu Bin?rcode kompiliert wurden (ja nat?rlich sind das auch Textadventures)!


    Prinzipielles:

    - Spieleentwicklung ist kein Pappenstiel
    - Spieleentwicklung braucht (meist) zumindest Grundlagen in C/C++ und etwas Organisationstalent!
    - Einfach losprogrammieren f?hrt meist nur zu Gullasch oder absolut un?bersichtlichem Code!
    - GameMaker ist leicht zu bedienen aber bringt euch Erfahrungstechnisch kein deut weiter!
    - Jedes komplexere Spiel sollte von OOP exessiv gebrauch machen!
    - Ohne Konzept geht nix!


    Nun alles sch?n und gut aber wie fange ich nun an?


    Als ALLER erstes MUSS man f?r ein Spiel das offensichtlich schon etwas aufwendiger wird ein Konzept erstellen. Das kann auch einfach mal alles sein was einem einf?llt Anfangs! Wichtig ist das man erst mal in Worte fasst was man eigentlich erreichen will und was das Spiel k?nnen sollte?!

    Wenn man das soweit aufgestellt hat sollte man sich OBJEKTIV ?berlegen was man davon ?berhaupt verwirklichen kann mit den geistigen und finanziellen und zeitlichen Mitteln die einem zur verf?gung stehen. Sonst gibt man auf der h?lfte der Strecke auf weil man merkt das es zu viel wird!

    Wenn mein seine W?nsche und M?glichkeiten abgeglichen hat, steht man nun vor etwas konkretem! Etwas das man will und auch in der Lage ist umzusetzten! Nun ist es nat?rlich sehr unterschiedlich was der einzelne kann und was er vor allem will! Unter Umst?nden ist es sinnvoll sich eine zweite, dritte oder sogar vierte Person zu dem Projekt hinzu zu nehmen die Erfahrung in anderen Schwerpunkten hat! Baue dein Team sorgf?ltig zusammen! Denn wenn dein Engine Programmierer nach 2 Wochen wegl?uft und die Kommunikation m?ll war, ist die Arbeit futsch!

    Wenn man sein Team zusammen hat sollte man sich an diesem Punkt klar werden was die beste M?glichkeit ist zu kommunizieren. Das ist enorm wichtig bei einem gr??eren Projekt! Und man sollte sich in regelm??igen Abst?nden treffen (virtuell oder real) um sicherzustellen das alle Teile des Teams noch in die selbe Richtung arbeiten! Wenn man die Termine und Kommunikationsart gew?hlt hat kommt der wichtigste Teil der Teamarbeit:

    Die Aufgabenverteilung!

    Ohne richtige Planung f?hrt es meistens dazu das z.B. alle an der 3D Grafik arbeiten aber keiner an der Steuerung! Oder alle arbeiten an den Modellen aber keiner macht die passenden Skins! Sowas ist fatal und f?hr unweigerlich zu Frust, Streit und letztendlich zur zerschlagung des Projekts! Also: fr?hzeitig Aufgaben verteilen und wenn zu wenig Personen da sind ruhig noch welche dabeiholen.. besser zu diesem Zeitpunkt als das sie sich sp?ter in fremden Sourccode einarbeiten m?ssen! Das kostet enorm viel Zeit und Aufwand! Au?erdem hat ein guter Programmierer meist keine Lust in ein seit Ewigkeiten bestehendes Team eingegliedert zu werden! Man sollte sich auch tunlichst lieber untersch?tzen als ?bersch?tzen was die eigenen F?higkeiten angeht! Kein guter Programmierer schreibt eine Engine und nebenher noch die Steuer und vielleicht auch noch die Kameraroutinen f?r ein gr??eres Projekt! Abreitsteilung ist hier das A und O!


    Und dann kommt ein weiterer SEHR wichtiger Punkt! Schnittstellen definieren! Es werden gemeinsame Schnittstellen zwischen den einzelnen Komponenten definiert! D.h. Der Engineprogrammieren kann ?ndern was er will an seinem Code.. solange die Schnittstelle genormt bleibt passt die Steuerungskomponente immer an die Engine! Und vor allem so wenig Schnittstellen wie m?glich! Lieber ein paar Wrapper-Klassen die Befehle zusammenf?hren und am Ende alles nur ?ber eine Funktion bzw. Klasse an n?chstes Element senden! Sonst hat man sp?ter beim Debuggen keine Chance mehr den Signalweg von Events zur?ck zu verfolgen!


    Hat man alle Punkte beachtet steht einen guten Team und einem manierlichen Endergebniss nur noch Leistungsbereitschaft und Engagement im Wege! Und jeder gute Spieleentwickler wei?: Es macht s?chtig und nach einiger Zeit h?rt man quasi auf zu schlafen nur um noch ein paar Zeilen Code zu schreiben :biggrin:!


    Ich w?nsche euch viel Freude beim Spielecoden! Bei Fragen oder Anregungen nur zu! Ich freue mich immer!

    Euer Elandir


    P.S. FINGER WEG VON GAMEMAKER! DAS IS M?LL UND VERSAUT JEDEN POTENTIELLEN SPIELEENTWICKLER! :mad:


    Sag mal, soll man sich das alles durchlesen?
    also ich lese mir das jetzt nicht durch, aber sage trotzdem zur Spielentwicklung was.

    Das es immer mehr und neuere Spiele gibt ist v?llig in Ordnung.
    Aber es kommen ja auch viele Spiele heraus, zum Beipiel Computerspiele, die total unsinnig sind.
    Und solche Spiele verbl?den unsere heutige Jugend.

    Also meiner Meinung nach, geh?ren viele Spiele einfahc verboten!
  6. Autor dieses Themas

    e*****r

    Hi,

    Nix gegen deine Meinung aber erstens hat das nun wirklich rein garnix mit C/C++ zu tun noch mit dem Thread! Zweitens gibts es Gesetzliche Regelung die verhindern sollen das die Jugend an solche Spiele kommt! Tut sie es doch versagen hier eindeutig mal die Eltern der jugendlichen die nicht kontrollieren was diese spielen! Und drittens m?sste man dann jede Art von Gewaldarstellung verbieten! Auch das Fernsehn und Videos und die ganzen stupiden Playstations! Au?erdem alle Comics wo sich die Figuren gegenseitig die K?pfe einschlagen und danach immer noch rumlaufen k?nnen ohne was zu haben! Das ist denke ich mal viel Jugendgef?hrendender als Computerspiele! Weil hier behauptet wird das man andere verletzten kann ohne das es Folgen hat! Also? Wer verbietet das?? Erst mal nachdenken bevor man sich blind einen Feindbild schafft von dem man auch noch keine Ahnung hat!


    Elandir
  7. Autor dieses Themas

    e*****r

    Hi,

    Werd denk ich auf jeden Fall ne kleine Einf?hrung schreiben! Will das aber dann erst noch etwas mehr ausarbeiten. Man will den Usern ja auch was bieten :biggrin:! Mich w?rde mal interessieren ob hier auch prinzipiell Interesse an ein paar (eine Serien) Tutorials zur Einf?hrung in die OpenGL Programmierung besteht? Bei Interesse w?r ich gern bereit mir die Arbeit zu machen und dann auch Quellcode in C/C++,Java,Delphi und anderen Sprachen zur Verf?gung zu stellen.


    Elandir
  8. also ich geb dir mal voll und ganz recht.

    und tutorials sind immer gut, wenn sie gut sind :D

    was mich auch sehr als tutorial reizen w?rde, w?re wie man am besten eigene SDL (falls du das kannst) Klassen schreibt (meine sind kagge)
  9. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!