článek

Tipy na vedení projektů od Joshe Sawyerse

Věnujete se developingu z pozice lídra nějakého OPRAVDU VELKÉHO projektu? Možná vám přijde vhod trocha rad a inspirace od profíků - v tomto případě od Joshe Sawyerse, který se podílel hned na několika AAA projektech firem jako Black Isle Studios, Midway San Diego či aktuálně Obsidian Ent.

Ahoj, jsem Josh Sawyers a pracuji jako vývojář, původně u Black Isle Studious, nyní u Midway San Diego. Nejsem sice expert na proces vývoje hry, ale pracoval jsem pro několik různých šéfů a měl jsem možnost vidět (a zažít) hodně různých stylů řízení projektu. Také vím o mnoha ambiciozních lidech, kteří zakládají různé mody, z nichž minimálně devadesát procent není nikdy dokončeno. Podle mě to není způsobeno nedostatkem nápadů nebo neschopností, ale protože mody jsou a) špatně naplánovány, b) špatně časově rozvrženy a za c) obecně špatně řízeny. Není obvyklé, aby byl úspěšný projekt, který je špatně řízen. Samozřejmě můžete vyvinout hru bez striktního řízení, ale stejně tak dobře si můžete něco v hlavě přát, sednout si na židli a doufat, že ostatní se udělá samo. Management zabírá čas a není ani zábavný, ani atraktivní, ale je naprosto nezbytný, abyste vaše úsilí dotáhli do úspěšného konce. Mám několik všeobecných nápadů a doporučení, jak na vývoj modu. Moje nápady nemusí být nejlepší na světě - dokonce si můžete myslet, že jsou nesmyslné, přesto, z mého pohledu fungují. Předpokládám, že vy, iniciátor tvorby modu, jste šéf týmu / producent / bůh. Nechme titulů, pokud jednoduše máte na starost koordinaci ostatních členů, pak je následující text určen pro vás. Než začnu s rozdělením práce do různých fází, tak bych rád poznamenal několik obecných rad:








Vytvořte si na webu fórum, IRC kanál, mailing list, databázi chyb (bugtracker) a sežeňte si prostor na nějakém ftp serveru. Existuje mnoho různých fór, osvědčilo se mi třeba ezboard. Najít server pro IRC kanál není těžké, ale může to zabrat nějaký čas, což se však bohatě vyplatí - diskuse naživo jednou za týden zlepšuje týmového ducha a odstraňuje případná nedorozumění. Mailing list je šikovný, pokud máte hodně členů, kteří se na fórum nedostanou každý den nebo těch, kteří teprve čekají, než se stanou součástí týmu. Jen ho nezneužívejte. Bugzilla je výborný open source bugtracker (hezky česky). Pochopit ftp je pro některé lidi náročné, ale získáte velice užitečný nástroj pro organizaci práce. Jednoduše lidem přiřaďte právo nahrávat soubory, vytvořte rozumnou strukturu adresářů a tím se všechno usnadní.



Nerozmělňujte pozornost týmu. Držte členy soustředěné na jednotlivé realizovatelné úkoly. Hodně dobrovolníků chce jen dělat zábavné věci, třeba náhodná setkání. Bohužel, většina věcí není během vývoje her zábavná. Když udržíte lidi soustředěné na naplánovanou práci a oni uvidí pokrok, pak se i nudné úkoly stanou zábavnými. Jestliže je to možné, používejte něco jako wiki pro všechny důležité dokumenty. Vždycky zálohujte zdrojové kódy, ale je nejlepší, jestliže celý tým má přístup k jedné verzi dokumentů. Zabráníte neshodám a nepochopení při případných změnách. Samozřejmě každého informujte, pokud dokumenty přepracujete a napište týmu, v čem se změnily a kde si změnu můžou všichni dohledat.



Vize (vedení týmu)



Stanovte si, čeho chcete s modem dosáhnout. Jenom nové levely? Nebo změnit celý HUD? Přidáte nové zbraně? Přidáte nové postavy s novými animacemi? Kolik? Kolik nových levelů? Kolik nových příšerek?



Zdůvodněte si, proč by si někdo proboha měl vašeho snažení všímat. Proč je to zábavné? Chcete udělat mod, protože si sami, na rozdíl od ostatních, myslíte, že je vaše vize zábavná? Pak je všechno v pořádku. Je však mnohem jednodušší ostatní zaujmout tím, co děláte, jestliže jste schopni bleskově a srozumitelně vysvětlit proč to, co děláte, bude zábavné.



Když jste rozhodnuti, co chcete dělat a proč, všechno sepište, včetně podmínek pro ostatní, kteří chtějí na vašem modu pracovat. Rozhodně nechcete, aby někdo, koho jste zapojili, utekl v půlce od rozdělané práce (nebo se vás zbavil), protože nepochopil, čeho chcete se svým týmem dosáhnout. Držte všechny členy soustředěné na vaše cíle hned na začátku a připomínejte si je během práce na projektu.



Podle rozsahu modu odhadněte čas nutný pro dokončení a počet nutných členů. V této fázi jen hádáte, protože ještě úplně nevíte, co takový mod obnáší, přesto byste měli některé věci stanovit. Pokud děláte nové levely a používáte existující nástroje, nebudete potřebovat programátory. Budete ale muset sehnat někoho na návrh levelů a nějaké schopné grafiky na textury. Rozdělte jednotlivé úkoly do malých sekcí - design, grafika, programování a zvuk.



Pro každou sekci, kterou budete obsazovat, sežeňte někoho skutečně schopného. Nesnažte se sehnat všechny potřebné členy naráz. Jako šéf máte určitou vizi celého modu, ale můžete se ztratit v nepodstatných detailech. Než pro vás začne pracovat 4-8 grafiků, potřebujete nejdřív někoho, kdo se v grafice vyzná, ale kdo zároveň zná priority vašeho modu. Najděte dobrého grafika, pokud můžete. Najděte dobrého programátora, pokud nějakého potřebujete. Když se náhle na začátku nabídne hodně lidí, poděkujte jim a řekněte, že se ozvete později. Udržujte s nimi kontakt, aby vám neutekli. TIP: můžete narazit na lidi, kteří hodně umí a kteří vám budou hrozně ochotní pomoci, ale zrovna náhodou nemají čas. Požádejte je, slušně, aby vám poradili s výběrem ostatních zájemců a jejich selekcí podle schopností a disciplíny. Teď, když máte základ týmu, se můžeme pustit do další fáze.









Preprodukce (Vedení a jádro týmu)



Máte jádro týmu a je tedy čas analyzovat původní vizi modu. Cílem jádra týmu je rozebrat, co je a co není reálné, a rozdělit plán do malých úkolů. SEZNAM ÚKOLŮ JE ŽIVOTNĚ DŮLEŽITÝ PRO ÚSPĚCH MODU. Nezapomínejte, cokoliv naplánujete musí někdo skutečně udělat. Věci se nestanou sami od sebe. I nejmenší úkoly by měli být zapsány (samozřejmě v rozumné míře). Společně se seznamem úkolů by měl existovat i seznam objektů (obvykle grafiky), které je nutné vytvořit pro hru. Příklad: jeden úkol je vytvořit model Příšerky X. Na ní navazuje vytvoření dat Příšerky (skript chování, animace,...). Když úkoly zadáváte, můžete je seskupit, třeba jako Animace Příšerky X, ale nezapomeňte všechny potřebné objekty sepsat. Pokud je nesepíšete, můžete rovnou předpokládat, že nikdy nevzniknou.



Sepište základní dokumenty pro každou sekci. Tyto dokumenty se stanou základními plány a návody pro dokončení vašeho modu. budou na ně odkazovat další členové jádra týmu a celý tým v další fázi. Dokumenty by měly vysvětlovat, jaké kroky jsou nutné pro splnění každého úkolu. Pokud programátoři potřebují určitý překladač nebo sadu knihoven, specificky uveďte jaké. Pokud musí být velikost textur násobkem dvou, textury musí mít 4 bity, nesmí být větší než 512x512, ve formátu .tga a maximálně 2 MB, pak určitě bude užitečné tohle všechno prozradit. Organizace dokumentů by měla být v týmu prodiskutována, ale jejich formát rozhodne šéf.



Projděte si seznam úkolů, odstraňte zbytečnosti. Zdůrazňujte komunikaci mezi členy týmu, abyste odhalili případné vzájemné závislosti úkolů a rizika. Můžete zjisti, že někteří členové týmu považují části vaší vize za příliš náročné nebo dokonce nebezpečné pro mod. Pokud se na tom tým shodne, skutečně zvažte, zda není čas vše přehodnotit. Cokoliv, co je riskantní nebo novátorské, by mělo být testováno hned na začátku vývoje. Tohle je zvláště důležité, pokud se jedná o klíčovou součást hry - jestliže máte novou zvláštní zbraň, která by změnila celý prožitek ze hry (gravity gun, HL2 - poznámka překl.), vyzkoušejte ji včas. Když celý projekt závisí na nové věci a ona nefunguje nebo je nudná, pak není jediný důvod pokračovat ve vaší vizi tak, jak byla napsána. Závislosti mezi úkoly by měly být předem sepsány a označeny v seznamu úkolů. Tyto úkoly by měly být dokončeny jako první a co nejdříve - zní to logicky, ale divili byste se, kolik lidí tohle nechápe.



Odhadněte, jaký čas je potřeba na splnění úkolu. Ano, každého malého úkolu. Nejmenší jednotka času by měla být hodina. Nemusí jít o naprosto přesné odhady, ale měly by být realistické. Když si nejste u některých úkolů jisti, nadsaďte odhad. Je vždycky lepší, pokud odhadnete více než je potřeba, protože když splníte úkol dřív, „hej, jste před plánem“ (aneb plníte na 1xx procent).



Sumarizujte počet „člověkohodin“ (mandays/hours) pro každou sekci. Tak budete moci odhadnout, kolik lidí potřebujete. Když máte 38 hodin programování, pak jeden programátor pracující 5 hodin týdně dokončí úkol na 8 týdnů. Když máte 180 hodin grafiky, pak jeden grafik pracující 3 hodiny týdně nedostihne programátora během jednoho roku.



Zhodnoťte vzájemné závislosti a začněte organizovat úkoly do časového plánu. Zdůrazněte riskantní položky a koordinujte jejich dokončení ke konci fáze preprodukce. Konec preprodukce bude sloužit jako jednoduchý test vašich plánů a schopností týmu. Pokud dokážete dokončit nejriskantnější elementy hry včas, pak všechno ostatní už bude hračka, i s větším (a tudíž hůře zvladatelným) týmem. Když začnete plánovat, získáte i realistický odhad časové náročnosti jednotlivých úkolů a ochoty jednotlivých členů obětovat čas práci. Nezapomínejte, pracujete na modu a lidé mají i normální život a práci... Když se blíží časovým milník (milestone), dokončete všechny nové věci týden před, abyste mohli dostatečně testovat a opravovat chyby. Nepřidávejte nové funkce v posledním týdnu - cílem je vytvořit stabilní verzi. Kvalitu, ne kvantitu.



Když je časový plán narušován jednou sekcí (všechno je hotovo, až na animace, které zaberou další měsíc), sežeňte víc členů nebo posuňte časový milník. Uvědomte si: shánění nových členů a jejich zapracování zabere nějaký čas, čili jim dávejte zprvu méně úkolů a více času. Nedávejte úkoly mrtvým duším.



Koordinujte nové členy s jádrem týmu tak, aby rostoucí skupina byla stále na stejné vlně. Nechce je přečíst si vaši dokumentaci a berte na vědomí jejich poznámky.



Začněte pracovat na preprodukčním milníku. Ať každý člen denně (týdně) hlásí svůj pokrok (v plnění plánu :-) ). Pokud se člen nehlásí, předpokládejte, že nic neudělal. Když někdo nestíhá, prodiskutujte s ním problém a případně přizpůsobte časový plán. Nečekejte až na blížící se milník - bude už pozdě na nápravu. Jestliže někdo nestíhá a jiný člen je napřed, přesuňte mu práci, nebo člena nahraďte. Vývojáři modů jsou proslulí spoustou řečí a žádnou prací. Nejsou penalizováni, nepřijdou o zaměstnání. Nesnažte se v nich vzbuzovat pocit viny - pokud nejsou dostatečně nadšení, vyhoďte je. Jednoduché.



Udržujte celý tým informovaný (pasivně na webu, aktivně každý týden emailem) o postupu každého člena a plnění plánu. Nejen že maily motivují („Hej, my jsme dokonce něco udělali“), ale celý tým bude i vědět, kde zrovna nestíhá. Nepište jen data, procenta a jména úkolů. Napište stručný popis toho, co se povedlo, co ne, a co to znamená.

Když se blíží milník, analyzujte s týmem, co musíte ještě udělat, aby se vše stihlo. Některé úkoly mohou být nesplnitelné. Poznamenejte to a proberte je v preprodukční fázi znovu. Pro všechno ostatní realisticky upravte časový plán. Když bude chybět jedna animace, možná grafik obětuje trochu času a dodělá ji. Zpoždění není špatné, pokud má důvod, špatné je, pokud máte zcela nerealistické odhady.



Vytvořte preprodukční verzi hry k nějakému milníku, obsahující všechny důležité věci (kód, grafiku, dialogy). Zhodnoťte ji a rozešlete ostatním členům týmu. S nimi také analyzujte, co se povedlo a co ne, a co z toho vyplývá pro nadcházející milníky a úkoly. Aktivně získávejte názory týmu. Spousta lidí neřekne vlastní názor, i když je důležitý.
Pokud váš preprodukční milník nebyl naprostým selháním, je čas se pustit do produkční fáze.









Produkce (plný stav týmu)



Znovu zhodnoťte seznam úkolů a rozdělte jejich plnění do jednotlivých milníků, podobných preprodukční fázi. Každý milník by měl mít něco nového. Pro amatérské mody není důležité, jestli bude milník dlouhý dva týdny, měsíc nebo čtvrt roku. Důležitý je celkový objem dokončené práce a zda milník dosahuje něčeho nového oproti předchozímu.



Zdůrazněte jakékoliv potenciální problémy, zjištěné během preprodukce. Změňte rozsah projektu, začněte hledat nové členy, atd. Časové plány a dokumenty nejsou vytesané v kameni, dají se změnit. Jsou živé a mělo by se nimi podle toho i zacházet.



Každému novému členovi pomozte nabrat rychlost, informovat ho a dejte mu pocit, že je součástí týmu, komunity. Pracujte, pracujte, pracujte.



Dokončujte milníky - to nejtěžší už máte za sebou. Není důležité, jestli bude mít váš elf modré nebo zelené oči, nebo jestli bude raketomet způsobovat zranění 50 nebo 100 HP. To už si vyřeší váš tým sám. Pokud bude ale špatně organizovaný a nebude plánovat úkoly, pak je velice nepravděpodobné, že cokoliv jako barva elfích očí či škoda způsobená raketometem bude vůbec důležité.








Článek byl původně Joshem publikován na stránkách No Mutants Allowed a poté počeštěn a přejat na MadBrahmin. Dík za překlad patří Kuřeti.




Jesterka

autor
/ Jesterka

Publikováno: 30.09.2007


další články této kategorie





diskuze

odeslat

Nejsi automat? Napiš výsledek 1 + 1 =

UnHynek | 02.10.07 v 22:18

Jen co je pravda.. :o)

Sysel | 02.10.07 v 21:46

Pěkný, zajímavý a výstižný článek! *THUMBPS UP*