About Projects and Teamwork (german)
From GameStudio Wiki
Contents |
Über Projekt, Teamarbeit und Entwicklungsprobleme
von Timo Stark
Guten Tag, Beinahe jeden Tag kommt es in den 3D-Gamestudio Forum vor, dass ein gerade erst mit viel Mut angefangenes Projekt, wegen schlechter Planung oder Kommunikation innerhalb des Teams beendet wird. Da kann man sich natürlich die Frage stellen woran das liegt. Zum einem an mangelnder Planung, fehlender Team-Kommunikation oder anderer Probleme innerhalb der Entwicklung. In den folgenden Artikeln werde ich darauf eingehen, was Sie vor dem Anfang eines neuen Projektes beachten müssen um auch nur eine theoretische Chance zu haben, das Projekt fertig zu stellen. Des Weiteren werde ich Tipps & Hinweise geben wie Sie in einem Team die Zusammenarbeit verbessern können und welche Schritte zur besseren und schnelleren Entwicklung eines Projektes notwendig sind. Bevor Ich allerdings mit den eigentlichen Artikel anfange, hier noch ein paar grundlegende Hinweise:
- Auch wenn Ihnen dass so mancher weismachen will. Die Spielentwicklung macht zu 90% keinen Spaß, sondern bedeutet schwere und harte Arbeit. Dies werden Sie spätestens nach dem ersten großen Motivations-Schub, den jedes neues Projekt gibt, merken.
- Passen Sie das Projekt Ihren Kenntnissen an. Lügen Sie sich hierbei auf keinen Fall etwas vor, das würde am Ende das Projekt nur zum scheitern verurteilen.
- Sehr oft ist es mit solchen Artikeln so, dass Sie durchgelesen werden, Ihnen möglicherweise zugestimmt wird, aber sie nicht befolgt werden. Ich will ehrlich sein, falls schon die Erstellung eines Designdokumentes oder einer To-Do Liste zu viel Arbeit für Sie darstellt, sollten werden Sie auch nie ein etwas komplexeres Projekt fertig stellen können.
- Die Welt ist hart. Auch in dem Spielentwicklungs-Sektor. Es ist unmöglich ohne Geld und guter Planung ein Spiel zu entwickeln das auch nur im Mindesten an aktuelle Vollpreistitel herankommt.
Ein Neues Projekt
Falls Sie schon ein Projekt angefangen haben und die Organisation nur noch optimieren wollen können Sie dieses Kapitel getrost überspringen.
Die Idee
„Am Anfang von jedem Projekt steht die Idee“. So oft, wie Sie diesen Satz schon gehört haben, so wahr ist er auch. Es ist einfach unmöglich auf ein Projekt einfach so hinzuarbeiten, ohne eine mehr oder weniger detaillierte Idee zu haben. Diese Idee kann sowohl ein Spielkonzept, als auch eine Story sein. Sogar in heutigen Zeiten, in denen Grafik, Sound und Atmosphäre immer wichtigere Rollen übernehmen, ist ein Spiel ohne Idee, so simpel sie auch sein mag (z.B. Retter der Welt – „Serious Sam 2“), unvorstellbar.
Nun, Sie haben eine Idee. Sie meinen, dass Sie unglaublich gut ist oder aber auch nur zweckdienlich? Egal, was der Fall ist, die Idee muss als erstes Mal Ihnen alleine gefallen. Es ist komplett unsinnig, ein Spiel zu entwickeln, von dessen Grundidee man nicht komplett überzeugt ist. Jetzt, nachdem Sie die Grundidee haben, müssen Sie diese Idee(n) ausführlich ausformulieren. Wichtig hierbei ist, dass Sie die Ideen noch nicht unbedingt nach Ihrem Sinn bewerten, sondern erstmal ein so genanntes Brain Storming durchführen. Das heißt, Sie schreiben wirklich alle Ideen ausformuliert auf, die Ihnen einfallen. Erstellen Sie ruhig eine Word Datei, in der Sie sich alle Ideen ausformulieren (dies wird Ihr so genanntes Designdokument sein, das Sie über die ganze Entwicklung lang begleiten wird).
Nach diesem Schritt lesen Sie sich jede einzelne ausformulierte Idee noch einmal genau durch und überprüfen sie auf ihre Ausführbarkeit. Dies ist ein sehr wichtiger Schritt. Viele Ideen wie z.B. „riesige Schlacht zwischen 4000 Orks und 3000 Menschen“ klingen zwar nett, sind aber kaum umzusetzen. Auch andere kleinere Features sollten Sie überprüfen. Es mag lächerlich klingen, aber an diesem Schritt kann ihr gesamtes Projekt fallen. Nach der Überprüfung der Idee und allen Features kommt der nächste wichtige Schritt: Lesen Sie sich nochmals alle Ideen durch und überprüfen Sie nun gewissenhaft, ob dieses Spiel nicht nur Ihnen sondern auch anderen Spaß machen könnte. Schicken Sie eventuell das Designdokument zu Freunden und lassen Sie die Idee von ihnen beurteilen und/oder verbessern.
Als letzter wichtiger Schritt kommt noch das Aussortieren. Gehen Sie zum letzten Mal alle Ideen durch und entfernen Sie alles was: a) Nicht umsetzbar erscheint b) Nicht zum restlichen Teil des Spiels passt c) Ihnen einfach nicht gefällt
Nachdem Sie all diese Schritte durchgegangen sind, sollten Sie schon eine recht detaillierte Vorstellung des fertigen Spiels im Kopf haben.
Die Story
Neben einer einfachen Idee braucht auch jedes Spiel eine mehr oder weniger einfache Story. Diese Geschichte dient dazu, den Spieler tiefer in die Welt des Games zu bringen und ihm ein Ziel zu geben. Grundsätzlich sind bei dem Design der Story unter anderem folgende Dinge zu beachten:
- Humor, vor allem Selbstironie, tut den meisten Spielen gut. Hierbei sollten Sie allerdings darauf achten, dass Sie nicht unbedingt in einer der spannendsten Horrorszenen des Spiels einen Witz reißen sollten ;-)
- Es muss zu jeder Zeit des Spiels ein Ziel für den Spieler erkennbar sein. Ob dies nun die Vernichtung eines Bösewichts oder auch das Lösen eines Rätsels ist, bleibt Ihnen überlassen. Für den Spieler ist es einfach extrem demotivierend, ohne ersichtliches Ziel (wobei dieses Ziel natürlich auch erstmal nur „Überleben Sie“ heißen kann) in der Welt herumzulaufen.
- Wendungen wirken Wunder. Auch wenn Sie es nicht unbedingt übertreiben sollten! So ist es nicht sonderlich motivierend zum hunderstenten Mal nur einen scheinbaren Oberdämon getötet zu haben…
- Der Spieler sollte den Eindruck haben, dass, wie auch in echt, alle Charakter sich innerhalb des Spiels verändern. Dies muss nicht unbedingt im Aussehen passieren, sondern viel mehr in der Einstellung des jeweiligen Charakters. So könnte ein am Anfang böser Gegner dem Spieler am Ende das Leben retten.
- Formulieren Sie die Story nicht zu umständlich. Kein Spieler hat Lust bei einem eigentlich einfach Ego-Shooter 100 Dialoge durchzulesen um nur einen Teil der Story zu verstehen. Kurz aber gut sollte die Devise heißen (wobei dies nicht auf alle Genres zutrifft. Bei Adventures oder Rollenspielen kann zum Beispiel eine lange und komplexere Geschichte Vorteile haben).
- Eine dynamische Story ist in vielen Fällen eine fantastische Möglichkeit, dem Spieler mehr Freiheiten zu geben. Sie ist allerdings auch sehr schwer umzusetzen. Planen Sie solch eine Story, in der der Spieler die Entscheidungsgewalt über die Fortsetzung der Geschichte hat, nur, falls Sie schon lange Erfahrungen im Game-Design haben!
Die Prioritätenliste
Sehr viele Entwickler fangen bei Projekten oft mit unwichtigen, oder das allgemeine Spielgefühl nicht beeinträchtigenden Themen an. Hier müssen Sie unbedingt auf die Prioritäten achten. Es ist z.B. vollkommen unsinnig, als erstes ein Menü oder ein Intro zu erstellen, falls noch nicht mal die Spielmechanik steht. Daher eine wichtige Regel: Erstellen Sie als aller erstes die Grundsätze der Spielmechanik (bei einem Ego-Shooter wäre das ein erstes Level, eine Waffe, Gegner und Bewegungssystem) bevor Sie sich um andere Feinheiten (Intro, Menü, Shader usw.) kümmern. Nachdem Sie das Grundgerüst Ihres Projekts erstellt haben, werden Sie noch genug Zeit haben sich um andere unwichtigere Sachen zu kümmern.
Die To-Do-Liste
Zu jeder Zeit der Entwicklung sollten Sie immer vor Augen haben, an was Sie als Nächstes arbeiten müssen. Hierzu ist eine so genannte To-Do-Liste ("To-Do" engl. für "[noch] zu tun"), auf der alle noch zu erledigen Aufgaben stehen, sehr wichtig und auch motivierend, wenn man einen Schritt nach dem anderen abarbeitet. Auf eine solche Liste schreiben Sie alle Dinge, die Sie in naher Zukunft entwickeln und einbauen wollen, aber auch Bugs, die Ihnen während dem Testen aufgefallen sind und behoben werden müssen, damit diese auf keinen Fall später übersehen werden.
Teamarbeit
Fast jedes Projekt muss mit Hilfe eines Teams fertig gestellt werden, da kaum jemand alleine in der Lage ist, in angemessener Zeit, Modelle, Scripte, Sounds, Texturen usw. herzustellen. Daher gehe ich in diesem Kapitel darauf ein wie Sie ein Team zusammenstellen und organisieren können. Dieses Kapitel ist auch nützlich für bereits existierende Teams.
Zusammenstellen eines Teams
Oft wird geglaubt, dass zum Zusammenstellen eines Teams bereits ein einfacher Post a là:
Guten Tag Ich suche einen Scripter, einen Modler und einen Musiker für mein aktuelles Projekt. Danke für die Meldung.
reicht. Dem ist aber (leider) nicht so. Sie erwarten durch solch einen Post einen Team Member der Ihnen in der Entwicklung eines kompletten Projektes, das gut und gerne 2 Jahre dauern könnte, helfen soll. Hierzu ist also wesentlich mehr nötig als diese 2 Sätze.
Empfehlenswert für einen guten Post im Jobs-Offered Forum sind folgende Dinge:
- Ausführliche Beschreibung Ihrer Idee und der Story
- Informationen über Sie selbst (Alter, 3D-Gamestudio Version, Erfahrungen)
- Informationen & Anforderungen für die Jobs, die Sie anbieten (welche Erfahrungen braucht jemand um sich bei Ihnen zu bewerben, in welchen Themenbereichen suchen Sie genau einen Mitarbeiter, was soll dieser machen?)
- Geben Sie Informationen zu der Bezahlung des Projekts (je höher die Bezahlung, desto höher die Wahrscheinlichkeit, dass sich jemand meldet).
- Achten Sie sehr genau auf Rechtschreibfehler und Grammatikfehler. Diese sind nicht nur peinlich, sondern schrecken Mitarbeiter eventuell auch ab.
- Falls vorhanden, zeigen Sie Screenshots zu Ihrem Projekt. Ein guter Jobs-Offered Post darf gut und gerne 2 Seiten ohne Screenshots umfassen. Seien Sie dabei aber nicht zu umschweifend.
Trotz allem ist es nicht immer einfach, Mitarbeiter zu finden. Notfalls versuchen Sie Mitglieder des Forums persönlich anzusprechen.
Organisieren eines Teams
Nun gut, Sie haben jetzt alle Mitglieder des Teams zusammen. Was jetzt? Es bringt ganz sicher nichts wenn jetzt plötzlich alle Mitarbeiter durcheinander arbeiten und jeder das macht was er meint. Denn so wird der eine einen Fehler im Quellcode beheben, den der andere zeitgleich gerade auch auf eine andere Weise behoben hat. Das verbraucht unnötige Zeit und wirft außerdem die Frage auf, wessen Modifikation/Verbesserung nun in die aktuelle Version übernommen werden soll. Und schließlich soll das Spiel ja auch eine gemeinsame Linie haben, und nicht jeder frei nach seinen Ideen daran arbeiten, wie er will (was sonst sicher ein ziemliches Stückwerk ergäbe). Es gibt also eine Menge Dinge zu tun, um das Team sinnvoll und gut zu organisieren.
Kommunikation
Jedes Team sollte über schnelle & simple Kommunikationsmöglichkeiten verfügen. Das heißt, dass alle Teammitglieder untereinander in der Lage sein müssen , sich zu verständigen, auch ohne bei möglicherweise wichtigen Fragen den Aufwand zu scheuen. Dazu gibt es folgende Möglichkeiten, von denen mindestens 2-3 gegeben sein sollten:
- Teamtreffen: Das Treffen des Teams an einen bestimmten Ort (z.B. bei einem Teammember). Dies ist die beste Methode für das Austauschen großer Informationsmengen, da man hier schnell und einfach Gedanken und Fortschritte austauschen kann, und Missverständnisse wegen der direkten Kommunikation von Gesicht zu Gesicht selten sind (verglichen zu reiner Textkommunikation). Für die rasche Rückfrage zwischendurch ist solch ein Treffen eher weniger geeignet, es sei denn, das Teammitglied wohnt ziemlich in der Nähe.
- Ein Programm, mit denen sich mehrere Leute sich auf einmal über ein Headset verständigen können, ist ebenfalls sehr wichtig, da man grundsätzlich über reden besser mehr Informationen austauschen kann als über das reine Schreiben (Ein Beispiel für eine solche Software ist Teamspeak, das extra für solche Angelegenheiten gedacht ist).
- Ein Forum sollte jedes Team eingerichtet haben. Hier kann man Gedanken, Fortschritte usw. diskutieren, selbst wenn nicht alle User online sind, da diese wie auf einem schwarzen Brett für alle archiviert bleiben (Beispiel für eine Forumsoftware: phpBB).
- Ein Instant Messenger (oder andere Chatart) ist auch wichtig. Über solch einen Messanger kann man sich über das Internet Dateien schicken und Diskussionen anfangen. Mögliche Softwares sind MSN oder auch ICQ Multi Chat. Man kann statt Instant Messengern auch das IRC benutzen, wo man sich in einem Chatraum mit allen Teammitgliedern treffen und so gemeinsam chatten kann. Die Möglichkeiten, Mitgliedern, die gerade offline sind, Nachrichten zu senden, sind aber in Instant Messengern besser ausgeprägt.
Organisation der Daten
Sehr wichtig für eine gute Teamarbeit ist unter anderem auch, dass jedes Mitglied des Teams zu jedem Zeitpunkt die gleichen Daten auf dem PC hat. Dies dient dazu, dass alle Mitglieder auf dem gleichen Stand sind und wissen, was getan werden muss. Auch hierzu gibt es verschiedene Lösungen, die ich Ihnen im Folgendem mit dem jeweiligen Kostenpunkt vorstellen werde:
- Ein Festplattenserver: Wenn man den Stromverbrauch des Dauerbetriebs nicht scheut und eine Internetflatrate hat, ist dies die beste Lösung. Ein Teammember kauft sich eine Festplatte, die als FTP-Server benutzt werden kann (Beispiel: Storage Bird LAN von Fujitsu Siemens). Auf diese Festplatte kann dann jeder Teammember per FTP zugreifen und seine Dateien hier hinschicken und/oder herunterladen. Mindestens jede Woche sollte jeder Team-Member ein Komplett-Update alle Dateien durchführen. Empfiehlt sich nicht, wenn die Internetleitung desjenigen, der den Festplattenserver betreibt, zu langsam ist. Kostenpunkt 80 – 150 Euro.
- Statt den Kaufs eines Festplattenservers empfiehlt sich auch ein gemieteter Webspace/Webserver (ersteres genügt völlig), den man zum Beispiel bei all-inkl.com bekommen kann. Zugriff erfolgt im Normalfall ebenfalls per FTP mit einem FTPclient, ist aber auch über entsprechende PHPSkripte bequem über den Browser möglich. Auf einem Webspace/Webserver könnte auch ein Forumserver gehostet werden. Wichtig ist, dass man den im Kaufvertrag beinhalteten Traffic beachtet (das ist die Größe der Herauf-/Heruntergeladenen Dateien in Gigabyte/Megabyte, also die Messung des ganzen Internetverkehrs, der auf den Webspace/-server und von diesem wieder herunter geflossen ist), den für diesen gibt es oft ein Limit (meist monatlich, z.B. 200 Gigabyte im Monat), dessen Überschreitung oft horrende Zusatzkosten bedeutet. Kostenpunkt pro Monat ca. 2-30 Euro.
- Als letzte Lösung bietet sich noch die Versendung der Dateien via Instant Messanger an. Dies ist allerdings nicht zu empfehlen, da in diesem Fall alle Daten bei einem Teammember gelagert werden müssten, der dann in einem aufwändigen und langwierigen Verfahren die Dateien an alle Teammitglieder neu verschicken müsste, sobald sich irgendetwas ändert. Kostenpunkt 0 Euro.
Teamleader
Ein so genannter Teamleader, der viele wichtige Aufgaben übernimmt, ist sehr wichtig und sollte von dem Team, wenn möglich, demokratisch ernannt werden. Zu dem Aufgaben des Teamleaders gehört unter anderem:
- Organisation der Daten.
- Organisieren von Treffen im Chat, per Headset oder in echt.
- Wenn möglich, Vorbild für andere sein. In Sachen Arbeit und Motivation.
Vor allem der letzte Punkt ist sehr wichtig.
Was wird von wem entwickelt?
Ein wichtiger Punkt in der Organisation ist die Festlegung, welcher Bereich von welchem Teammember entwickelt wird. Hierfür ist wieder der Teamleader eine sehr wichtige Person. Er organisiert die Aufgaben für jede einzelne Person und fügt diese dann am Ende zusammen. Beispiel: Skripter 1 programmiert ein Waffensystem, Skripter 2 ein Bewegungssystem. Die beiden schicken diese Skripte an den Lead- Programmer oder Teamleader, der diese Skripte dann zu einem zusammenfügt. Nützlich ist auch eine To-Do Liste im Internet, auf die jeder zugreifen kann. Hier wird dann geregelt, wer was als nächstes macht. Es ist wichtig, dass immer Aufgaben für jedes Mitglied vorhanden sind, sonst kann die Motivation schwinden, die sehr schwer wieder herzustellen ist.
Was tun, wenn die Motivation schwindet?
Trotz der besten Planung darf man sich nichts vormachen. Es wird der Zeitpunkt kommen, wo die Motivation im Team schwindet. Ob dies nun an einem schwierigen Problem in der Entwicklung liegt, oder einfach daran, dass man schon seit einem Jahr am selben Projekt arbeitet, ist eigentlich irrelevant. Bei manchen Leuten trifft der Motivationsverlust auch dann auf, wenn sie merken, dass Spieleentwicklung Arbeit und nicht nur Spaß bedeutet. Diese Motivationsverlustsphasen sind die schwierigsten Phasen der Entwicklung, an der 90% aller Projekte scheitern, durch die man sich aber durchkämpfen muss.
Ich kann nur folgende Tipps geben:
- Falls der Teamleader merkt, dass bei einem Mitglied die Motivation schwindet, sollte er am Besten persönlich über Headset mit ihm reden (andersrum natürlich genauso).
- Falls man hier zu keinem Ergebnis kommt, sollte man dieses Teammitglied für 1-3 Wochen vom Projekt absondern.
- Es ist sehr ungünstig, ein Projekt komplett für mehrere Wochen zu stoppen. Meist ist das nur der Anfang vom Ende. Versuchen Sie sich hier durchzubeißen.
- Jedes einzelne Mitglied sollte in dieser Phase versuchen, kleine Sachen fertig zu stellen (z.B. ein kleines Model vom Modeller), damit die Motivation im Team wieder langsam steigen kann.
- Versuchen Sie auf keinen Fall, solch einen Motivationsschub zu „erpressen“. Das führt zum gegenteiligen Effekt.
Fazit
Denken Sie daran, dass Planung und Organisation ebenso wichtig, wenn nicht sogar wichtiger sind, als die eigentliche Kompetenz beim Programmieren selbst. Ein wegen einem Motivationstief und schlechter Organisation nicht fertiggestelltes Projekt bereichert die Spielewelt deutlich weniger bis gar nicht (weil es dann meist in den tiefen des Papierkorbs verschwindet), wohingegen ein mittelmäßiges, aber wenigstens zu Ende gebrachtes Spiel durchaus Spaß & Spannung erzeugen kann, und eine gute Anregung für andere Entwickler darstellt.
Ich hoffe, Sie haben durch diesen Artikel etwas über die Teamzusammenarbeit gelernt und wenden dieses Wissen auf die Planung Ihres jetzigen / zukünftigen Projektes an, damit dieses vielleicht nicht scheitert, wie so viele andere es tun.
Mit freundlichen Grüßen Timo Stark (Triple-X, Yarcanox)
