Wie programmiert man ein Spiel?



  • (C) Copyright bei mir. Die habe ja meine IP 🙂

    Ich entwickle gerade ein Spiel und habe versucht eine Leitfaden für die Programmierer im Team zu schreibe. Aber ich bin über jede Erweiterung dankbar. Wenn es fertig ist kann man es ja in die FAQ stellen.



  • Was hast du denn bisher für Spiele programmiert ?



  • tipp :

    Die Implementierung
    Nach den vorgeferitgten Skizzen beginnt man ...

    Tipp:
    Die vorgefertigten Skizzen sind eindeutig Teil der Vorbereitung. diese erst in der Implementierung zu erwähnen ist vielleicht nicht der richtige Anstz. Zur planung musst Du ein wenige mehr sagen, also mögliche Vorgehensweisen erläutern, etc.

    Am Besten ist es, wenn bei der Planungsphase ein Papier rauskommt, das den Spielverlauf in sämtlichen Einzelheiten beschreibt und auch schon grobe Algorithmen vorschlägt, an denen man sich orientieren kann.
    Hierzu gibts Mindmaps, Brainstormings, Storyboards und noch einiges mehr, was man machen kann..

    (Soll ich im Treffen 2004 mal nen Projektplanungsseminar machen? 😉 )



  • Die Planung
    ...Am besten macht man sich Notizen zum Ablauf des Spiels....

    Sollte eigentlich darauf hinweisen. 🙄

    Das mit den Brainstormings sollte man erwähnen. Da hast du recht. 👍



  • Ich weiß, dass des drauf hinweisen sollte, aber Du musst lernen, Dinge so zu erklären, dass sich der Leser wohl fühlt, was bedeutet, dass er nicht denken muss. Nix voraus setzen und lieber einiges doppelt schreiben. 😉

    Auch Tutorials schreiben muss man üben *gg+ - wobei ich jetzt nicht sagen möchte, dass ich darin perfekt bin 🙄



  • Ich weiss. Ich bin immer froh wenn ich was dazu lernen kann. Deshalb danke für die Hinweise. 🙂



  • Sorry, aber das ist aus dem Buch von TomasRiker geklaut. 😮 😮



  • Nö, stimmt nicht :p
    Ich hab diesen Part ein bisschen mehr auseinander gezogen.



  • LUCAS schrieb:

    Einleitung
    ...
    Die Planung
    ... Obwohl die Planung zum wichtigsten Teil gehört wird es nie möglich sein alles vorherzusehen.
    ...

    sorry, aber LOL! Jeder (gute) Software-Entwickler Plant alles vorher. Es sollte im regelfall keine zeile code geschrieben werden bevor nicht die komplette planung steht, oder die Schnittstellen definitiv festgelegt wurden. Was soll man denn nicht vorhersehen können? Gerade bei der Spieleentwicklung kann eigentlich fast nix dazwischen kommen, da die Firmen meist nicht für einen Kunden arbeiten ( der von heute auf morgen alles anders haben möchte), sonder relativ unabhängig entwickeln.
    Das das in der realität ein wenig anders aussieht ist mir klar. Dann liegt das aber nicht an irgendwelchen unvorhergesehenen Problemen, sondern ehr daran das die SW-Entwickler nicht nachgedacht haben.
    Genau das thema hat mein SWE Prof. letzte woche besprochen.



  • Gerade bei der Spieleentwicklung kann eigentlich fast nix dazwischen kommen

    sorry, aber LOL! 😃



  • tonque schrieb:

    Gerade bei der Spieleentwicklung kann eigentlich fast nix dazwischen kommen

    sorry, aber LOL! 😃

    dann nen mir etwas. Mit begründung!! Stell dir mal vor so würde man Häuser bauen. "Oh, wir hätten vielleicht doch mit dem keller anfangen sollen". Oder wie??



  • Stell dir mal vor, der Quellcode wird gestohlen. 😉



  • xroads42 schrieb:

    dann nen mir etwas.

    Zum Beispiel war doch da ein Problem mit Half-Life 2 und den NVidia-Grafikkarten. Die unterstützten irgendein "Centroid-Sampling" nicht, was man vorher aber wohl nicht wusste, und das hat zu Problemen geführt.
    Es könnte außerdem passieren, dass ein Algorithmus, den man plante zu verwenden, sich als zu langsam herausstellt und man einen neuen suchen muss etc..
    Was meinst Du wohl, warum die meisten Spiele unzählige Patches benötigen, bis sie einmal richtig spielbar sind? Das wäre doch wohl kaum der Fall, wenn nicht unerwartete Probleme aufträten.



  • TomasRiker schrieb:

    xroads42 schrieb:

    dann nen mir etwas.

    Zum Beispiel war doch da ein Problem mit Half-Life 2 und den NVidia-Grafikkarten. Die unterstützten irgendein "Centroid-Sampling" nicht, was man vorher aber wohl nicht wusste, und das hat zu Problemen geführt.
    Es könnte außerdem passieren, dass ein Algorithmus, den man plante zu verwenden, sich als zu langsam herausstellt und man einen neuen suchen muss etc..
    Was meinst Du wohl, warum die meisten Spiele unzählige Patches benötigen, bis sie einmal richtig spielbar sind? Das wäre doch wohl kaum der Fall, wenn nicht unerwartete Probleme aufträten.

    Hm, ok, das mit der HW sehe ich ein.
    Das mit den Algorithmus aber nicht. Es gibt Laufzeitabschätzungen ( stichwort O-notation ) für Algorithmen. Und wenn man einen neuen entwickelt sollte man so eine berechnung vorher machen, bevor man diesen in ein System einbaut.

    Leider steckt das Software Engeniering noch in den "Kinderschuhen". Aber für einen guten Softwareentwickler ( und damit meine ich >10 Jahre berufserfahrung ) sollte es möglich sein eine Software so zu planen, dass solche "unvorhersehbaren" ereignisse nicht eintreten, bzw. wenn man sich auf dritte verlässt ( wie z.B. das mit der GraKa), dass solche dinge handbar sind.

    Die ganzen Patches liegen daran das die meisten Spiele firmen nicht die regeln des SWE-prozesses einhalten. Was meinst du was passieren würde wenn die SW eines medizinisches gerätes so programmiert werden würde. "Ach, da ist jemand gestorben. Hm, bringen wir halt einen patch raus". ok, ok, da geht auch Qualität vor Quantiät.

    Das ist das Problem von Software heutzutage. Laut meinen Prof sind nur ~20% der SW im zeitramen, ~40% liegen drüber, und der rest wird gar nicht fertig gestellt... Damit sowas besser wird, wird ja auch massig geforscht. ⚠

    Es ist schwierig alles zu planen. Aber man sollte nicht so herrangehen, dass man sagt, das kann ich erst sehen wenn ich das implementiere. Geht bei der Implementierung was schief, kann man ( je nach Modell - z.B. Wasserfallmodell) alles neu machen.



  • Wie programmierst du? Ich meine ein etwas größeres Projekt kann man schon nicht mehr bis ins letzt Detail planen.
    Natürlich geht es nicht ohne Planung. Doch ein Programmieranfänger wird schon hier seine Probleme haben. Oder kennst du Projekte die gleich von Anfang an 100% liefen?
    Ich habe mal gelesen das es billiger ist eine Software zu implementieren und danach auftretende Fehler zu beseitigen. Als alles von Anfang an zu 100% bis in letzte Detail zu planen.



  • xroads42 schrieb:

    Was meinst du was passieren würde wenn die SW eines medizinisches gerätes so programmiert werden würde. "Ach, da ist jemand gestorben. Hm, bringen wir halt einen patch raus". ok, ok, da geht auch Qualität vor Quantiät.

    Die müssen sich ja auch nicht mit verschiedener Hardware und scheiß Treibern rumplagen... 🙄
    Nach Deiner Argumentation dürften die Chips in so "lebensbedrohenden" Dingen wie Fahrzeugen ja auch einwandfrei funktionieren.
    Tun sie aber nicht! Da fällt einem Golf mal mitten im Überholmanöver der Motor aus, weil die CPU irgendwie wat anders sah als der Fahrer. Meinem Vater sind bei voller Fahrt im Winter mal ohne ersichtlichen Grund alle Fenster und Schiebedach aufgegangen, in einem 7er BMW wohlgemerkt!
    Les mal Auto Motor & Sport... 😉
    Und Konsolenspiele sind - bei milchmädchenrechnung gleicher Komplexität - ja nun (meistens) absolut bugfrei.
    Die Komplexität des "Baukasten-System PC" mit GraKa vom Hersteller X, Prozzi von Y, und CD-ROM von Z sollte nun mal nicht unterschätzt werden...


Anmelden zum Antworten