pondělí 20. října 2008

Tvoříme hru 4: Nástroje k řízení projektu

Pokud chcete dotáhnout svůj nápad na hru do konce, obvykle nestačí pouze dát dohromady skupinu nadšenců a sehnat si všechny možné i nemožné programy. Je potřeba mít PLÁN. A je potřeba, aby všichni členové týmu znali svoji roli v tomto plánu a věděli, jak jsou na tom a jak práce pokračují. Proč je to potřeba, nebudu moc rozepisovat, ale má to co dělat s motivací a vědomím, že se celý projekt někam hýbe. Jak toho dosáhnout?
Existuje velké množství různých aplikací, které mají pomoci s řízením projektu. Celá oblast vývoje, která toto řeší má dokonce označení. Říká se jí Configuration Management. Opět se tím nebudu moc zaobírat, pokud vás to zajímá, podrobnosti najdete třeba na Wikipedii. Budeme řešit pouze případ náš. Tedy situaci, kdy chcete vytvořit fanouškovskou hru. Co k tomu potřebujete za prostředky?

Geek v týmu
První věc, která se opravdu hodí, je mít v týmu minimálně jednoho IT blázna, který pochopí následující řádky a bude schopen je přenést do praxe. Je velice pravděpodobně, že takových bláznů máte v týmu hned několik, možná celý tým. Pokud nikoliv, zkuste najít někoho v okolí. Následující problematické činnosti, které budu popisovat, se naštěstí většinou musí dělat jenom jednou.

Hardware - server
Jelikož se dá předpokládat, že hru budete tvořit v delším časovém horizontu a váš tým nebude celou dobu pohromadě, je potřeba použít webové aplikace. K něčemu takovému je nejlepší mít k dispozici počítač, který by se dal nazvat server. Vzhledem k rozsahu hry a množství aplikací, které by na něm měly běžet, není potřeba nějak zvlášť výkonný stroj. Když jsme my vytvářeli Fest Trip, náš server byl (a stále je) osm let starý AMD Duron.

Server se válí u mě doma, připojený přes router do sítě poskytovatele kabelového internetu. Z toho také plyne, že není potřeba nějaká úžasná rychlost připojení. Nové (čti pár let staré) routery podporují připojení na poskytovatele jakými jsou DynDNS, díky kterým si poradíte s problémem, že váš poskytovatel může měnit vaši adresu v síti. Tito poskytovatelé vám umožní nastavit si alias pro svůj počítač a router jim pouze posílá informaci, jakou IP adresu momentálně máte. V praxi pak můžete mít jakoukoliv adresu, ale vždy se na svůj server dostanete přes adresu například http://nasehra.selfip.org/. Pokud máte pevnou adresu, tak tento problém nemusíte řešit.
My na tomto serveru máme nainstalovaný Linux (Debian, pokud vás to zajímá - hlavně díky možnosti snadného updatování a nahrávání balíčků). Všechny následující aplikace, o kterých budu mluvit, jsou k dispozici jako balíčky Debian Linuxu.

Webový server
První věcí, kterou budete potřebovat, je webový server. K tomu dobře poslouží nejpoužívanější webový server na světě - Apache 2.

Verzovací systém
V průběhu tvorby hry vznikají desítky různých souborů - obrázky, dokumenty, zdrojové kódy... Je žádoucí, aby všichni vývojáři měli jedno místo, kam tyto soubory budou nahrávat, a mohli se tak navzájem synchronizovat. Mnoho souborů také má více verzí - například obrázek po komentářích může projít i desítkami úprav. Je přitom vhodné, aby jeden obrázek nebyl na jednom místě desetkrát, ale mohli jste bez nebezpečí přemazávat a systém si pamatoval historii verzí. Systému, který si toto pamatuje, se říká verzovací. Jak už to tak bývá, je jich hodně. Velmi používané jsou CVS, SubVersion a z nových například git.
V ToTanu používáme SubVersion (svn), který si dobře rozumí s dalšími námi používanými nástroji.

Systém pro management
Na počátku článku jsem psal, že je potřeba mít PLÁN. Plán můžete vnímat jako rozpis jednotlivých dílčích úkolů, přiřazených jednotlivým osobám. Na to lze použít i obyčejný spreadsheet tabulkového procesoru. Je však lepší mít možnost připisovat si k úkolům poznámky a další doplňující data. Tohoto úkolu se může zhostit celá řada nástrojů.

  • Trac - tento nástroj používáme v ToTanu. Je naprogramován v Pythonu a má relativně snadnou instalaci. Můžete si vést seznam úkolů, obsahuje i wiki. Pokud používáte SubVersion, můžete navzájem provázat verze souborů a úkoly. Existuje spousta pluginů a rozšíření.
  • Redmine - dokonalejší než Trac, naprogramovaný v Ruby on Rails. Instalace není zcela triviální. Podporuje celou řadu verzovacích systémů. CVS, SubVersion, git...
  • Google Code - jednoduché řešení od Google pro open source projekty. Musíte si dát pozor, zda všechny části vaší hry mají licenci, která patří mezi podporované. Součástí je i verzovací systém.
  • ...

Sledování chyb
Neexistuje program bez chyb. Pokud se k tomuto faktu postavíte čelem a budete s ním počítat v plánování, nebudete nepříjemně překvapeni odkládáním vydání hry, případně hlášeními od hráčů. Pokud si seženete testery, může být vhodné poskytnout jim systém pro hlášení chyb. Pro sledování chyb se dají použít i dříve jmenované management systémy, takže snad jenom pro doplnění je potřeba zmínit jeden z nejznámějších systémů na hlášení chyb a tím je BugZilla.

Komunikační platforma pro členy týmu
Pokud budete používat metodu distribuovaného vývoje (což budete), je potřeba zajistit dokonalou komunikaci mezi členy týmu. Zde snad nemusím nic víc říkat - různých IRC, Hofylandů, Otakulandů, phpBB fór a podobných věci jsou tisíce. Záleží na vás. Často, pokud je komunikace v týmu dobrá, není potřeba mít systém na sledování chyb, protože si členové týmu chybu sdělí a okamžitě opraví (tak to bylo v našem případě).
Další variantou je používat možností, které poskytuje Google v podobě Google Docs. Pokud máte účet na Google, můžete využívat možností "Google Office" a navzájem si sdílet klíčové dokumenty - například seznam chyb či návrhy scénáře.

2 komentáře:

  1. Configuration Management na řízení projektu?

    OdpovědětVymazat
  2. Záleží na tom, jak moc člověk zahrnuje pod CM:
    http://en.wikipedia.org/wiki/Image:ConfiurationActivityModel.png

    OdpovědětVymazat