Im Team programmieren?
Übersicht

![]() |
FirstdeathmakerBetreff: Im Team programmieren? |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hai,
Ich habe vor mit einem Freund zusammen in den Osterferien ein Spiel zu programmieren. Wir haben jetzt ein brainstorming gemacht, also die Richtung des Spieles geklärt, und auch schon einige Problemlösungen erdacht, aber eine Frage die mich sehr interessiert ist: Wie kann man größere Projekte am besten in einem Team organisieren, d.h. wenn man mehr als einen Coder hat und die Coder immer Teile des Programms verfassen, welche dann später zum Programm zusammengefügt werden sollen? Also wie organisiert man das am besten, dass man später nicht den Überblick verliert? Gibt es hier welche die damit schon Erfahrung gemacht haben und uns Tipps geben können was man am besten dabei beachten sollte und wie man so was angeht? |
||
www.illusion-games.de
Space War 3 | Space Race | Galaxy on Fire | Razoon Gewinner des BCC #57 User posted image |
![]() |
sbrog |
![]() Antworten mit Zitat ![]() |
---|---|---|
Am besten du benutzt kein Blitzbasic dazu. Blitzbasic ist absolut nicht geeignet, im Team zu proggen, keine Namespaces (Gleichnamige Variablen können nur einmal vorkommen), Datenkapselung usw. | ||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Zitat: Am besten du benutzt kein Blitzbasic dazu. Blitzbasic ist absolut nicht geeignet, im Team zu proggen, keine Namespaces (Gleichnamige Variablen können nur einmal vorkommen), Datenkapselung usw.
sicher nicht der Idealkandidat, da stimme ich dir zu. Aber unter der Voraussetzung dass man sich auf feste Namenskonventionen einigt und diese konsequent einhält (zB hat jeder im Team ein eigenes Präfix, globale Vars die mehrere Teile gemeinsam nutzen werden im Team abgesprochen bevor sie eingeführt werden), und wenn mann möglichst auf globale verzichtet und das Game in Funktionsblöcke teilt lässt sich schon viel erreichen. Disziplin ist natürlich vonnöten. ![]() |
||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
![]() |
Firstdeathmaker |
![]() Antworten mit Zitat ![]() |
---|---|---|
Naja, Variablen einzelner Bereiche können doch auch durch Definierte Abkürzungen getrennt werden. Also da sehe ich das geringste Problem. | ||
www.illusion-games.de
Space War 3 | Space Race | Galaxy on Fire | Razoon Gewinner des BCC #57 User posted image |
Klaas |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hier ein paar Tips:
- schreibt alles bis ins kleinste auf damit später beim Arbeiten keine Frage ungeklärt bleibt. - benutze "Prefix's"; jede Funktion, Variable, Type etc. einen Buchstaben davor. Z.B.: Code: [AUSKLAPPEN] function p_sfx_loadSound()
p steht dann für Peter sfx steht dafür das es was mit sound zu tun hat und loadsound dann der eigentliche Name. - definiert alle Datenstrukturen bevor ihr anfangt zu coden. - macht euch für das gesamte Projekt eine ToDo liste. Am besten auf nem Server damit jeder jederzeit nachschauen kann wie weit der andere ist. (dafür gibt es bereits Programme, einfach mal danach googeln) - macht einmal im Monat eine große Sitzung indem ihr alle eure Erfahrungen oder Probleme austauscht. - Teilt die Arbeit logisch auf sodas jeder einen "abgeschlossenen" Bereich zu bearbeiten hat. (das geht natürlich nicht vollends aber viele Köche verderben den Brei.) Das größte Problem ist die Motivation! Ihr müßt euch alle einig sein was das Spiel betrifft. Leute die nicht wirklich überzeugt von ihrem tun sind verlieren schnell die Lust. Motiviert euch gegenseiteitig am Ball zu bleiben. hier gibts ein Designdokument Beispiel: http://www.digipen.edu/~dquinn/beatman/gdd.html Dieses Buch enthält ein großes Kapitel über dein Vorhaben: http://www.amazon.de/exec/obid...27-3240853 |
||
![]() |
Firstdeathmaker |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ahh, ja, genau so in der Richtung wollte ich das auch anfangen, eure Tipps sind große Hilfen.
Also zuerst das ganze Spiel funktionstechnisch, also vom Ablauf her total auseinandernehmen und in abgeschlossene Bereiche aufteilen. Ok, vielen Dank. Ich werde mich mal mit den Links beschäftigen! |
||
www.illusion-games.de
Space War 3 | Space Race | Galaxy on Fire | Razoon Gewinner des BCC #57 User posted image |
dubitat |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
achso jeder sollte an einer eigenen datei basteln... dann braucht ihr nachher nur in dem eigentlich game die beiden code datein includen und fertig is... sonst bauste da irgendwas in eine nicht aktuelle version vom spiel rein und dann darfste das nochmal machen ![]() |
||
Erare humanum est - Irren ist Menschlich |
#pointer#Gast |
![]() Antworten mit Zitat |
|
---|---|---|
ich würd's so machen:
ich würde das ganz Programm in Funktionen einteilen, und diese Funktionen in eine externe Datei speichern, wo dann jeder coder seine Funktionen einfügt. Dann includet ihr das ganz. Das ist praktisch und übersichtlich. |
||
![]() |
Firstdeathmaker |
![]() Antworten mit Zitat ![]() |
---|---|---|
Also, ich hab mir das bis jetzt so gedacht:
Wir bauen das Programm in Modulen auf. Zuerst werden wir uns auf dem Papier das ganze Programm skizzieren (Also den Programmablauf) und dann schauen wie man es am besten unterteilt. Dann werden wir an den einzelnen Modulen arbeiten. Ich habe dafür folgende Richtlinien aufgestellt (vielleicht habt ihr ja Verbesserungsvorschläge dafür): Versionsnummern Code: [AUSKLAPPEN] Module sollten in der Datei als erstes direkt hinter dem Namen immer die Versionsnummer stehen haben. Wenn man an einem Modul arbeitet, öffnet man dieses am besten, hängt an die fortlaufende Versionsnummer ein "wird gerade bearbeitet von "+name dran und ändert die Versionsnummer nach oben ab. Sofort speichern und dann erst anfangen zu arbeiten.
Die Versionsnummern: Nummern < 0 bedeutet, dass das Modul noch nicht funktionstüchtig ist. 1<Nummer<2 bedeutet, dass das Modul soweit läuft. Variablen+Funktionen Bezeichnungen Code: [AUSKLAPPEN] Eine Variable wird folgendermaßen benannt:
Präfixe für die bestimmte Variablengruppen. Dieses richtet sich nach dem Anwendungsgebiet (Bei Bereichsübergreifenden) oder dem Bereich in dem es genutzt wird. Z.B. bekommt eine Variable die den Bildschirmwert speichert, das Präfix "sys". Folgende Gruppen kommen mir schonmal direkt in den Sinn: sys - Spielsystemvariablen wie z.B. SYS_GFX_X, SYS_SFX_MUSICVOLUME#, SYS_GAMESPEED# net - Netzwerkwichtige Variablen wie z.B. net_inputstream oder... eine Variable im Modul zur Systemspeederkennung (Modul "SPEED") würde z.B. so lauten können: speed_time SPEED_TIMEMOD Der Unterschied zwischen SPEED_TIMEMOD# und SYS_SFX_MUSICVOLUME# liegt in den Schreib/Leserechten: Die Variable SPEED_TIMEMOD wird nur im Modul SPEED verändert, alle anderen Bereiche nutzen die Variable zwar vielleicht, dürfen sie aber nicht verändern. Die Variable SYS_SFX_MUSICVOLUME dagegen kann/darf von allen Bereichen modifiziert werden. -Globale Variablen die für das ganze Spiel gebraucht werden (z.B. SYS_GFX_X), werden komplett groß geschrieben. -Bei globalen Variablen die nur für den eigenen Bereich gebraucht werden in dem sie erstellt wurden (z.B. SPEED_lasttime) wird nur das Präfix groß geschrieben. -Bei lokalen Variablen wird die ganze Variable plus Präfix klein geschrieben. -Globale Funktionen (also Funktionen die vom gesammten Programm gebraucht werden) werden komplett groß geschrieben. -Bei lokalen Funktionen die nur zur Unterstürzung von anderen Funktionen dienen wir das Präfix groß geschrieben, der Rest klein. Beispiel Modul SPEED: global SPEED_lasttime,SPEED_GAMESPEED#,SPEED_TIMEMOD,SPEED_TIME Function SPEED_UPDATE() SPEED_TIME=millisecs() SPEED_TIMEMOD=((SPEED_TIME-SPEED_lasttime)/1000.0)*SPEED_GAMESPEED SPEED_LASTTIME=SPEED_TIME Return 1 End Function Function SPEED_RESET() SPEED_TIME=Millisecs() SPEED_lasttime=SPEED_TIME SPEED_TIMEMOD=0 Return 1 End Function Ich hoffe dadurch bekommen wir ein bestimmtes System in das Programm hinein, sodass sich keine Variablen überschneiden und man auf einen Blick sieht wofür eine Variable oder Funktion gut ist. |
||
www.illusion-games.de
Space War 3 | Space Race | Galaxy on Fire | Razoon Gewinner des BCC #57 User posted image |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group