JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=6a6613c829ff950f38a7994a69c67b89Medaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Vor dem Programmieren

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Dragon
Super JLI'ler


Alter: 38
Anmeldedatum: 24.05.2004
Beiträge: 340
Wohnort: Sachsen
Medaillen: Keine

BeitragVerfasst am: 06.04.2005, 18:53    Titel: Vor dem Programmieren Antworten mit Zitat

mich würde mal interessieren, was ihr macht bevor ihr anfängt mit den Programmieren eines spiels.

Macht ihr euch Skizzen, Klassendiagramme, Struktogramme und wenn ja, welche und wie? Macht ihr das auf einem extra Zettel oder doch elekronisch (z.B. Write, Calc)? Dokumentiert ihr eure Entwicklung?

Also ich hab immer einen block auch meinem Schreibtisch. Auf den Kritzel ich immer rum. Mach mir manchmal skizzen für Kollisionen und Modelle, die es später mal geben soll. Klassen stelle ich immer in Kästen da (nach UML) aber ohne Methode aber mit beziehungen und vererbung. Als Skizze mach ich mir auch immer, wie ein level aussehen soll.

Was macht ihr? Oder macht ihr gar nichts und programmiert einfach drauf los?
_________________
Nur wenn man ein Ziel sieht, kann man es auch treffen.
___________
Mein Leben, Freunde und die Spieleentwicklung
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Fallen
JLI MVP
JLI MVP


Alter: 40
Anmeldedatum: 08.03.2003
Beiträge: 2860
Wohnort: Münster
Medaillen: 1 (mehr...)

BeitragVerfasst am: 06.04.2005, 18:56    Titel: Antworten mit Zitat

Ich durchdenke das ganz kurz und dann gehts ab Smile

Das dabei was halbwegs anständiges rauskommt sieht man ja im Projekte Forum.

Grössere Dinge (Team) bespreche ich und plane sie natürlich.
_________________
"I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse."
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Patrick
Dark JLI Master



Anmeldedatum: 25.10.2004
Beiträge: 1895
Wohnort: Düren
Medaillen: Keine

BeitragVerfasst am: 06.04.2005, 19:08    Titel: Antworten mit Zitat

Hi,

bei mir Privat läuft das folgendermaßen ab:

Ich fange oft aus Langeweile einfach an kleine Hilfsklassen zu Coden die ich mir vorher im Kopf ausgedacht habe. Momentanes Beispiel: cpu
CPP:
// ###########################################################################
// Datei:        cpu.h
// ###########################################################################
// Autor:        Patrick Ullmann
// Erstellt:     05.04.2005
// Änderungen:   05.04.2005 (Patrick)  Datei erstellt
// ###########################################################################
// Beschreibung: Helfer um die CPU zu erkennen

#if !defined(__cpu_h__)
#define __cpu_h__

// I N C L U D E S ###########################################################
#include <windows.h>
#include <cstdio>
#include <string>

// S T R U K T U R E N #######################################################
class cpu
{
private:
        // Con- und Destructor
    cpu  (void);
    cpu  (const cpu& other);
    ~cpu (void);

        // Es gibt nur eine Instanz. Jede Zuweisung wäre eine Selbstzuweisung.
        // Da Selbstzuweisungen selten Sinn machen, ist der op= privat
    cpu& operator= (const cpu& other);

public:
        // Diese statische Methode erzeugt die einzige Instanz.
        // Nur über diese Methode erhalten Anwender den Zugriff auf
        // die Instanz.
    inline static cpu& getInstance (void)
    {
            // Die Instanz wird erst beim ersten Aufruf erzeugt.
            // Endet das Programm, wird Instanz vernichtet.
        static cpu instance;
        return (instance);
    }

        // struktur initialisieren
    void detect (void);

        // Abfrage ob eine SIMD-Technik unterstützt wird
    inline const bool isMMXSupported (void)         // MMX
    { return (cpu_info_._MMX && os_info_._MMX); }
    inline const bool isMMXExSupported (void)         // MMX (AMD specific extensions)
    { return (cpu_info_._MMXEx && os_info_._MMXEx); }
    inline const bool isSSESupported (void)         // SSE
    { return (cpu_info_._SSE && os_info_._SSE); }
    inline const bool isSSE2Supported (void)        // SSE2
    { return (cpu_info_._SSE2 && os_info_._SSE2); }
    inline const bool is3DNowSupported (void)         // 3DNow!
    { return (cpu_info_._3DNow && os_info_._3DNow); }
    inline const bool is3DNowExSupported (void)         // 3DNow! (AMD specific extensions)
    { return (cpu_info_._3DNowEx && os_info_._3DNowEx); }

        // diverse getter:
    inline const ::std::basic_string<char> getCPUVendor (void)
    { return (::std::basic_string<char>(cpu_info_._vendor)); }

    inline const ::std::basic_string<char> getCPUName (void)
    { return (::std::basic_string<char>(cpu_info_._name)); }

    inline const int getCPUIDNumber (void)
    { return (cpu_info_._IDnumber); }

private:
        // Hilfsstruktur für die CPU
    struct cpu_info
    {
        int  _IDnumber;     // Identifikationscode
        bool _SSE;          // Streaming SIMD Extensions
        bool _SSE2;         // Streaming SIMD Extensions II
        bool _3DNow;        // 3DNow! (vendor independant)
        bool _3DNowEx;      // 3DNow! (AMD specific extensions)
        bool _MMX;          // MMX Support
        bool _MMXEx;        // MMX (AMD specific extensions)
        bool _ext;          // extended features available
        char _vendor[13];   // vendor name
        char _name[48];     // cpu name
    };

        // Hilfsstruktur für das Betriebssystem
    struct os_info
    {
        bool _SSE;          // Streaming SIMD Extensions
        bool _SSE2;         // Streaming SIMD Extensions II
        bool _3DNow;        // 3DNow! (vendor independant)
        bool _3DNowEx;      // 3DNow! (AMD specific extensions)
        bool _MMX;          // MMX Support
        bool _MMXEx;        // MMX (AMD specific extensions)
        bool _ext;          // extended features available
    };
        // Private daten über OS und CPU
    cpu_info    cpu_info_;
    os_info     os_info_;

        // Für den CPU-Namen die defintionen
    void getCPUName (char* name, int n, const char* vendor);

        // Abfrage ob das Betriebssystem eine SIMD-Technik unterstützt
    bool isOSSupportingSSE (void);  // SSE (I)
    bool isOSSupportingSSE2 (void);  // SSE (II)
    bool isOSSupporting3DNow (void);  // 3DNow!
    bool isOSSupporting3DNowEx (void);  // 3DNow! (AMD specific extensions)
};

#endif


Dabei habe ich nur einfach "drauf los" gecodet mit sehr geringer Planung. Wenn das Grundkonzept steht versuche ich es so lange zu verbessern bis es für mich "Zukunftstauglich" ist, das bedeutet im Klartext: Das ich sie die nächsten Jahre auch weiterhin benutzen kann.

Dann kommen noch weitere dazu wie z.B. einen ini-Fileloader oder Klassen zum Laden verschiedener Grafikformate. Bis sich soviel zusammen getragen hat das ich es später für etwas größeres zusammensetzen kann Smile

Beruflich ist das alles nur gähnende Planung. Smile

- Patrick
_________________
'Wer der Beste sein will muss nach Perfektion streben und jede Gelegenheit nutzen sich zu verbessern.' - KIA
[ German Game Dev | Boardsuche hilft sehr oft | Google rockt | Wie man Fragen richtig stellt | ICQ#: 143040199 ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
DirectXer
Dark JLI'ler



Anmeldedatum: 05.02.2005
Beiträge: 1201
Wohnort: Köln
Medaillen: Keine

BeitragVerfasst am: 06.04.2005, 19:08    Titel: Antworten mit Zitat

hast du das 2.Buch? Dann guck mal auf S.381/382 da stehts; so mach ichs auf jeden Fall...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
JkerryZ
JLI Master Trainee



Anmeldedatum: 18.05.2004
Beiträge: 575
Wohnort: Wolfsburg
Medaillen: Keine

BeitragVerfasst am: 06.04.2005, 20:17    Titel: Antworten mit Zitat

Ich mache das immer so:
Abends wältze ich mich Stundenlang im Bett herum und überlege, was ich morgen denn mal wieder schönes Prgrammieren kann. Ist mir was eingefallen, überlege ich wie ich das umsetzen kann.
Kann ich es mit meinen Kentnissen programmieren, programmiere ich es nächsten Tag.
Kann ich es nicht, schreibe ich mir für irgendwann mal auf.
Sollte dies der Fall sein, überlege ich mir noch was anderes.
Zur Zeit sind mir allerdings die Ideen ausgegangen Laughing

Und während ich dann am programmieren bin, fällt mir immer ein, was ich noch ganz gerne einbauen würde...
Dann probier ich das aus, wenn es klappt ist gut, wenn nicht probier ich es nen Tag später nocheinmal in Ruhe...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Hazel
JLI MVP
JLI MVP


Alter: 39
Anmeldedatum: 19.07.2002
Beiträge: 1761

Medaillen: Keine

BeitragVerfasst am: 06.04.2005, 20:20    Titel: Antworten mit Zitat

Ich zünde ein paar Pflänzchen und Fliegenpilze an und warte bis mein Zimmer voll Rauch ist... dann meditiere ich zwei Stunden vor meinem Schrein und warte auf eine Bewusstseinserweiterung. Danach steige ich empor zu den Göttern und hole mir einen heiligen Auftrag, den ich dann umsetze.

[Nachtrag]
Nein, natürlich nicht. ;)
Es kommt immer auf die Größe des Problems an. Für einen Taschenrechner werde ich kein Designdokument schreiben, es sei denn es soll so etwas wie MathCAD werden. Außerdem habe ich eine stylische Konferenzmappe mit Papier, Bleistift und Ratzefummel wo ich reinkritzle wenn mir spontan 'ne Idee kommt.
_________________
*click* Dabuu!?
Twitter: http://twitter.com/Ollie_R
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
The Lord of Programming
Living Legend


Alter: 37
Anmeldedatum: 14.03.2003
Beiträge: 3122

Medaillen: Keine

BeitragVerfasst am: 06.04.2005, 20:51    Titel: Antworten mit Zitat

Also wenn ich am Anfang eines Spiels stehe, mache ich mir erst mal ein Designdokument, in dem zuerst mal die Grundsachen und später immer mehr Details stehen.
Für grafische Objekte zeichne ich mir meistens ein paar Bleistiftzeichnungen, mit denen ich dann eine bessere Vorstellung davon bekomme. Selbstverständlich gibts für jede Kategorie eine ToDo-Liste, in der ich vermerke, was z.Z. in Arbeit ist und was noch zu tun ist(ich will ja nix vergessen Cool ).
Wenns um konkrete Codeschnipsel, Funktionen oder Klassen geht, dann mache ich mir meistens schon vorher Gedanken, was die Funktion machen soll und (bei Klassen) welche Methoden es überhaupt geben soll. In der Schule gibts meistens genug Zeit nebenher, sodass ich mir da immer wieder Notizen mache oder sogar Codeschnipsel anfange oder fertigschreibe.

Bevor ich das alles mache, gehört natürlich jede Menge Vordenkarbeit und Inspiration dazu. D.h. ich mach mir erst mal ein relativ komplettes und klares Bild im Kopf von dem, was ich machen will, natürlich mit viel Schwärmerei *g* und mache mich dann an die Arbeit.
_________________
www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console


Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Jonathan_Klein
Living Legend


Alter: 37
Anmeldedatum: 17.02.2003
Beiträge: 3433
Wohnort: Siegerland
Medaillen: Keine

BeitragVerfasst am: 06.04.2005, 21:01    Titel: Antworten mit Zitat

jup, also mir kommt meistens so einfach ne Idee was ich aml machen sollte. Ich meine einerseits wil ich ncht so billigspielchen machen aber andererseits auch nix was ich net kann. Also warte ich einfach bis mir irgendwas passendes einfällt.
Und entweder überlege ihc mir vorher erst ganz genau wie das Spiel aussehen soll. Die Gedanken tippe ich manchmal aus Spaß in Word ein. Und dann wenn ich weiß wie das Spiel aussehen soll, überlege ich mir grob, wie ich es proggen muss. Manchmal hab ich dann neue Ideen, die ich mit wenig aufwand mit einbauen kann und manchmal lass ich was weg weils mir zu kompliziert würde.
Und dann mach ic erstmal wieder furchtbar viele Klassen also hab ich dann sehr viele sehr kleine Dateien, aber das sollte einfacher sein, als hinterher alles um zu struktureiren, weil das nie driekt klappt und sehr aufwendig ist.
Bilder oder Zeichnungen mahc ich selten, weil ich eh eigneltihc nur progge.
_________________
https://jonathank.de/games/
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
xardias
JLI Master


Alter: 38
Anmeldedatum: 28.12.2003
Beiträge: 804
Wohnort: Palo Alto, CA
Medaillen: Keine

BeitragVerfasst am: 07.04.2005, 06:38    Titel: Antworten mit Zitat

Also ich hab hier so ein kleines DinA5 Ringbuch in das ich spontane idee rein kritzeln kann. Pseodo uml diagramme mache ich oft vor größeren projekten um meine gedanken zu ordnen.
Aber meistens schaut es so aus, dass ich zu allererst ein wenig experimentiere (z.B. momentan mit der OGRE engine) und mir dann gedanken dazu mache, wie man das spiel am besten umsetzen könne.
Das Design kommt also oft erst wärend der programmierung Wink ist alles andere als optimal, daher schreibe ich auch öfters sachen neu, aber ich komme so gut klar.
Eine ausnahme bildet unser Thor Framework. das habe ich vorher komplett durchgedacht und nach einem halben jahr bin ich immer noch beim selben konzept mit nur kleinen änderungen. Aber ein Framework zu programmieren ist ja was anderes als ein spiel zu programmieren. alleine schon, weil das Framework so gut dokumentiert und aufgebaut sein muss, dass andere Leute das auch ohne probleme benutzen können.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
C++Builder
Senior JLI'ler



Anmeldedatum: 04.10.2003
Beiträge: 235

Medaillen: Keine

BeitragVerfasst am: 08.04.2005, 20:41    Titel: Antworten mit Zitat

also wenn ich eine Idee habe denke ich erst auch eine ganze Weile wie ich es realisieren könnte und was ich noch einbauen kann.

Wenn es dann so viel wird, dass ich es mir nicht mehr alles Merken kann/will fange ich an die Headerdateien zu schreiben also die einzelnen Klassen und dokumentiere alles was ich mir so ausgedacht habe dazu und kommentiere jede Membervariable/-funktion.

Wenn ich mir irgendwas nicht gleich veranschaulichen kann, dann greif ich auch zum guten alten Blockpapier.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung Alle Zeiten sind GMT
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum