Oktobra 1997 sta dva zaposlena v studiu Angel Studios sama sebi na steno objavila sporočilo: »Prvega septembra 1 bomo izdali igro, ki jo imajo ljudje radi. Vedeli bomo, da jim je všeč, ker bo do 1999. januarja 1 prodanih dva milijona izvodov.«
Kmalu zatem je Capcom za prenos izbral Angel Studios Resident Evil 2 do Nintendo 64. Direktor projekta Chris Fodor in glavni programer Jamie Briant sta bila zadolžena za to nalogo in začela sta postavljati temelje in sestavljati ekipo. Medtem ko sta oba že imela izkušnje z Nintendo 64, je ta ambiciozen in zahteven projekt hitro pokazal, da v resnici nista vedela, kako N64 deluje. Seveda ima CPE in geometrijski procesor ter grafični čip in požarne izhode tu, tu in tam, toda na kateri točno višini se spustijo kisikove maske ali jih mora pilot sprožiti ročno? V naslednjih nekaj mesecih je bil OS obnovljen, vektorske enote (da, N64 ima vektorsko enoto) osvobojene in N64 je očarala, da je razkrila svoje skrivnosti.
Izvirnik Resident Evil 2 za Playstation je obsegal dva CD-ja. Dobiti smo ga morali na eni sami kartuši. Ampak to je samo pristanišče, kajne? V naših rokah smo imeli klasično igro z odličnim dizajnom, vso umetnostjo in umetno inteligenco, prilagojeno in na mestu. Vendar pa bo zahtevalo nekaj precej pametnega programiranja, da bo delovalo na N64. To je bila naloga, o kateri so novičarske skupine, igralne spletne strani in morda celo založnik dvomili, da jo je mogoče opraviti.
Kaj je šlo prav
1. Delovno okolje in ekipa
Glede na to, da bo to zelo tehničen projekt, je bilo ključnega pomena, da imamo močno in povezano programsko ekipo. Projekt se je hitro razširil, ko se je pridružil Alex Ehrath in nato jaz kmalu zatem decembra 1998. Alex je prinesel obilo izkušenj, predanosti in trdega dela. Pravkar sem končal fakulteto, zato sem dobil nalogo, da posnamem videoposnetek v celoti. (Za podrobnosti o tem, kako je bil dosežen ta podvig, si oglejte moj članek »Misija: Stisljivo — Doseganje videoposnetka s polnim gibanjem na Nintendo 64« v prihajajoči izdaji septembra 2000 Razvijalec iger.) Chris Fodor in Jamie Briant sta si delila nekakšno skupno vodstvo. Včasih je to vodilo do »preveč kuharjev v kuhinji«, vendar so se pogosteje dopolnjevali in zagotavljali učinkovito vodenje skozi celotno trajanje projekta. Ken Kamdar je nastopil proti koncu projekta in prinesel občutek spokojnosti in umirjenosti (pa tudi svoje programerske sposobnosti) ob pravem času. Do te stopnje so bile zastopane Avstralija, Nemčija, Anglija, Iran in ZDA. Ne bi ga izbrali, toda ta nenavadna mešanica je imela raven sinergije, ki jo redko najdemo v mnogih programerskih skupinah.
Posnetki zaslona iz Resident Evil 2 za Nintendo 64 |
Programerji smo imeli mize postavljene v polkrogu, obrnjene navzven, a tako se ni začelo. Sprva je imel Chris svojo pisarno, Alex in Jamie pa sta sedela precej narazen in si ogledovala svoje ozemlje. Vendar smo mesec dni po začetku projekta močno zaostajali za načrtom. Morali smo biti na tekočem in veliko več komunicirati.
Odločili smo se, da bomo sedeli skupaj. Ko sem prišel jaz in kasneje še Ken, sta samo povečala polkrog. Veliko je bilo napisanega o možganskih stanjih in coni, in kot se spominja Jamie: »Alex me je včasih prekinil z vsemi jajci v zraku, da bi mi povedal kakšno res neumno šalo, vendar zagotavljam, da izgubljeni čas ni bil nič v primerjavi z povečanje učinkovitosti, saj so vsi tam.” Na začetku projekta se pojavi veliko vprašanj in odločitev, ki jih je treba sprejeti. Vsakdo je lahko prisluhnil, tudi če sprva ni bil del razprave, pogosto pa se je kdo obrnil in ponudil biser modrosti ali nov vpogled, ki je pripeljal do boljše rešitve. Do sredine projekta smo postali boljši pri tem, da nikogar ne prekinjamo globoko v mislih. Na koncu mislim, da smo prihranili mesece: "Zrušilo se je" [točke]. [Obrne glavo] »O ja, to je hrošč lizalnika – ne pritiskajte gumba B, ko to počne [točke] — in čez deset minut se prijavim v popravek.«
Dolge, težke ure so med skupino skovale močno medsebojno zaupanje. Ni minilo dolgo, ko smo vsi brez nadzora opravljali svoje naloge. To je omogočilo prilagodljiv delovni čas brez ogrožanja pretočnosti dela.
2. Zabijanje prvega mejnika
Če vaše podjetje ne izdaja svojih naslovov, potem imate pri založbi zunanjega producenta. Ko gredo producenti ven na pivo, se pogovarjajo o tem, kako pozni so njihovi razvijalci, in kregajo o tem, kako jih spraviti v vrsto. Mnogi producenti mislijo, da razvijalci nimajo pojma o rokih trženja, proračunih in vseh drugih stvareh, o katerih mi pravzaprav nimamo pojma. Govorimo drug jezik. Če pa dosežeš prvi mejnik, si drugačen.
Prvič, vaš producent ima drugačno zgodbo za povedati svojemu šefu in svojim kolegom. Drugič, vzpostavili ste osnovo za komunikacijo – pokazali ste, da razumete, kaj pomeni beseda »rok«. Ko se naučite prve besede v producentovem besednjaku, boste ugotovili, da so nato odprti za razpravo o bolj zapletenih idejah in so celo prilagodljivi glede prihodnjih rokov. Končno imate kredibilnost pri producentu in založniku. Če nepazljivo zamudite svoj prvi mejnik, vas bo proizvajalec za vedno postavil v koš za »otroško sedenje/otroški govor«.
3. Brez verske navezanosti
Nikoli se ni dobro navezati na nekaj, kar ste naredili, pa naj gre za poslovni proces, algoritem ali samo izvedbo. Če nekaj ne deluje, tega ne počni. Če je nekaj delovalo in ne deluje več, opustite to in poiščite nekaj novega.
To načelo smo uporabili v naši skupinski komunikaciji. Začeli smo z uporabo Microsoft Team Manager 97. To ni trajalo niti en mesec. Nato smo svoje mize prestavili v polkrog, vsi pri roki in v istem prostoru. To je zelo dobro delovalo in to smo ohranili.
Nato se je Jamie odločil videti, kaj bi se zgodilo, če bi bili vsi prisiljeni uporabljati isti urejevalnik z enakimi izbirami tipkovnice. Rezultat je bil, da se novega urejevalnika naučite v enem dnevu, tekoče govorite v enem tednu in vsakdo se lahko usede za vaš računalnik in ga uporablja, kot da je njegov.
Uporabili smo Outlookov sistem opravil. Outlookov na videz preprost seznam opravil lahko uporablja e-pošto za sinhronizacijo opravil vseh. To je nekaj mesecev delovalo zelo dobro, čez nekaj časa pa smo ga manj uporabljali. To je bilo zato, ker je bil na koncu projekta preprosto cel seznam zelo znanih stvari, ki jih je bilo treba narediti. Poskusili smo z zelo vizualnim prikazom, tako da smo za vsako nalogo naredili koščke papirja in jih pripeli na steno pod imenom vseh. In tam so ostali, skoraj nedotaknjeni, do dneva, ko smo objavili igro. Nadomestile so jih Excelove preglednice.
Ko je prišlo do programiranja, je ta odnos delal čudeže pri razvoju našega sistema FMV. Neusmiljeno preizkušanje vsega, pogosto večkrat (kot je izboljšanje kakovosti ali hitrosti naredilo predhodno zavrnjen pristop spet izvedljiv), nam je prineslo odličen rezultat in prvi v panogi – visokokakovosten video na konzoli, ki temelji na kartušah.
Naučili smo se tudi vrednosti pisanja kode za trenutno nalogo, ne pa, kakšna bi lahko bila naloga v prihodnosti. Upam, da se večini programerjev zdi to očitno, vendar smo se mnogi (vključno z mano nekoč) izgubili v deželi C++. C++ ima veliko prednosti, vendar jih veliko preprosto ni izvedljivih zaradi zmogljivosti in velikosti na starajoči se konzoli. Ko pišete objektno usmerjeno kodo, se je zelo enostavno ujeti v past in poskusiti oblikovati celo razumen sistem. Ne trudi se. Bodite pripravljeni vse prepisati. Morda boste lahko prepisali del kode trikrat hitreje, kot bi potrebovali oblikovanje popolne hierarhije razredov. Bistvo je, da ne bi smeli biti navezani na to, kar imate. Bodite pripravljeni, da ga zavržete in poskusite nekaj drugega.
4. Uporaba podrobnega urnika in načrta
Od vsega začetka RE2 Imel je jasen in podroben načrt o tem, kaj točno bo potrebno, razčlenjen na zelo drobne podrobnosti. S temi informacijami je naš sposobni producent, Stewart Spilkin, lahko natančno načrtoval projektne naloge in dodelitev virov (Stewart je bil ključnega pomena pri reševanju zunanjih težav, kar nam je omogočilo, da smo se osredotočili na razvoj in projekt vedno potiskali bližje zaključku). Ne morem preceniti pomena podrobnega načrta. Prisili vas, da preučite in pogosto odkrijete, kaj je res treba narediti, in vam omogoča, da to načrtujete. Ne morete imeti preveč podrobnosti. Seveda je bil to ambiciozen urnik, ki pa je bil dosegljiv – zaradi česar je bil hkrati naporen in nagrajujoč.
Dali smo prednost funkcijam. Ko se je rok iztekel, smo neusmiljeno delali samo na bistvenih, strateških značilnostih. Občasno je prihajalo do prepirov o tem, katere funkcije so bile potrebne in katere ne, vendar je ta odnos zagotovil, da smo se držali načrta in izpeljali projekt. Želeli smo, da je naša igra popolna, vendar je bilo treba poslati. Naredite, kar je potrebno, da ga spravite ven, nato pa naredite vse popravke, za katere imate čas.
Zahteve založnika po dodajanju novih funkcij, zlasti proti koncu projekta, smo obravnavali z veseljem. Namesto notranjega napada »lezenja lastnosti« so ti prišli od zunaj. Vsakič, ko je bila predlagana nova funkcija, smo preučili, kaj bi bilo potrebno za njeno implementacijo, in predstavili pošteno poročilo o tem, kaj bi bilo potrebno v smislu virov za njeno implementacijo. Na primer, ocenili smo, da bi lahko z dodatnim programerjem za polni delovni čas zagotovo dosegli nalogo A, verjetno nalogo B (80 odstotkov) in morda nalogo C (20 odstotkov). Stranka je nato imela vse informacije, ki jih je potrebovala za izbiro, in večinokrat je izbrala "ne".
Spopadanje s temi dodatnimi pritiski je lahko stresno in vas vsakič oddalji od dela. Vendar pa lahko prihranite urnik in proračun svojega projekta tako, da racionalno preučite, kaj je treba narediti in kaj bo zahtevalo izvajanje te nove funkcije.
5. Povečanje ponovne uporabe
Z ogromno količino sredstev, ki jih ponuja različica PSX, je bilo veliko bolj smiselno analizirati vsako vrsto podatkov (2D sprite, podatke o trkih itd.) in implementirati cevovod, ki bi nato sredstva, specifična za PSX, pretvoril v nekaj, kar smo lahko bere in uporablja na N64. Ker je bilo to pristanišče, smo lahko bili prepričani, da bomo na koncu dobili vse kose, ki jih potrebujemo, če jih preprosto serijsko predelamo v celoti, namesto da bi vsakega posebej ročno popravljali, in prihranili ogromne količine časa na ta način. Potrebovali smo nekaj dni, da smo napisali kodo, ki je pretvorila vse 2D sprite v obliko, ki smo jo potrebovali, vendar bi umetnik potreboval zelo dolgo časa, da bi ročno dodelal na tisoče sprite.
Kadarkoli je bilo mogoče, smo emulirali rutine in funkcije strojne opreme, specifične za PSX, da bi dosegli podobne rezultate na N64, s čimer smo povečali našo ponovno uporabo obstoječe izvorne kode.
Vir: https://www.gamasutra.com/view/feature/131556/postmortem_angel_studios_.php?page=1
- "
- Račun
- Dodatne
- AI
- alex
- algoritem
- vsi
- med
- Argumenti
- okoli
- Umetnost
- članek
- umetnik
- Sredstva
- Avstralija
- Baby
- pivo
- svet
- Bug
- poslovni
- ki
- zaračuna
- preverjanje
- čip
- bližje
- Koda
- College
- Komunikacija
- Communications
- podjetje
- osredotočiti
- datum
- dan
- deliti
- Oblikovanje
- Mize
- Podatki
- Razvojni
- Razvijalci
- Razvoj
- DID
- Direktor
- Ne zamudite
- Drop
- urednik
- Učinkovito
- učinkovitosti
- Zaposleni
- Anglija
- okolje
- Excel
- s katerimi se sooča
- Feature
- Lastnosti
- končno
- konec
- narava
- prva
- fiksna
- format
- sveže
- Prihodnost
- igra
- igre na srečo
- geometrija
- Nemčija
- dobro
- veliko
- skupina
- strojna oprema
- Glava
- tukaj
- Kako
- Kako
- HTTPS
- Ideja
- Vključno
- Industrija
- Podatki
- Iran
- IT
- jezik
- vodi
- Vodstvo
- UČITE
- naučili
- Led
- Stopnja
- vrstica
- Seznam
- Long
- ljubezen
- Izdelava
- Trženje
- Maske
- Microsoft
- milijonov
- Mission
- mesecev
- nova funkcija
- Nove funkcije
- Nintendo
- ponudba
- odprite
- Ostalo
- Outlook
- Kisik
- Papir
- ljudje
- performance
- pilot
- playstation
- pritisnite
- Proizvajalec
- Proizvajalci
- Programiranje
- Projekt
- objavijo
- kakovost
- RE
- Razlogi
- vir
- viri
- Rezultati
- tek
- Občutek
- vedrino
- deli
- Enostavno
- Spletna mesta
- Velikosti
- spretnosti
- So
- prodaja
- hitrost
- Stage
- Staking
- začel
- Države
- Strateško
- sistem
- tehnični
- Prihodnost
- čas
- vrh
- na dotik
- Zaupajte
- nas
- us
- vrednost
- Video
- Wealth
- web
- teden
- delo
- pisanje