Projektdokument för Twisted Metal Gäller för spelprojekt 2 V2 Martin Jonsson Gamemaker Remaker 2008 10 06
Innehållsförteckning 1.0 Mål, Metod & Spelregler 1.1 Succékriterier 1.2 Metod 1.3 Rules of Play 2.0 Standarder 2.1 Mappstruktur 2.2 Programmeringsstandard 2.3 Namnstandard mot programmerare 2.4 Namnstandard produktion 3.0 Resurser 3.1 Projektmedlemmar 3.2 Budget 3.3 Tekniska resurser 4.0 Teamet 4.1 Gruppstruktur 4.2 Roller 4.3 Ansvar 4.4 Roller utanför teamet Twisted Metal Gamemaker Remaker 2
1.0 Mål, Metod & Spelregler 1.1 Succékriterier Huvudmål Producera ett fungerade samt underhållande spel. Producera en produkt som är värdig var persons portfolio. Delmål Var gruppmedlem vill bli bäst på dess eget område. Vinna spelprojektet. 1.2 Metod Vi använder oss av scrum. Jag väljer att hålla denna information ytterst kortfattad då allt finns lätt tillgängligt i projektmetodiksdokumentet författat av Almir Listo för Gamemaker 3 till Spelprojekt 2(Se bifogad fil: GM_Scrum_Spelprojekt2_160908.pdf). Vi har valt att inte modifiera metoden som föreslås i detta dokument. 1.3 Rules of play Arbetsdagen Den obligatoriska arbetstiden 09:00 till 17:00 Lunchen hålls mellan 12:00 och 13:00. Mat i lokalen samt på möten Mat inne i lokalen samt under möten är förbjudet. Policy angående spring i Twisted Metal-lokalen. ett reglemente för spring i lokalen behövs inte, men om det visar sig behövas kommer ett sådant skapas. Disk i lokalen Ansvar ställs på individnivå. Teamet har enats om en policy som lyder: en mugg + ett glas (om så behövs) per bord. Informationsöverföring Teamet använder sig utav Tortoise SVN 1.5.3 som versionshanteringssystem. Besluttagande under helger Inga beslut tas under helger utan att var berörd nyckelperson är delaktig. Twisted Metal Gamemaker Remaker 3
2.0 Standarder 2.1 Mappstruktur Filer tillhörande samma objekt skall placeras i en gemensam mapp, i ett strukturerat mappträd. Ex. Material, texturer, meshfilen och eventuella shaders och skelett till bilen Turbo, skall ligga i mappen: *Game location*/resources/entities/cars/turbo/ Detta är för att lätt lokalisera filer som är beroende av varandra, och är till stor hjälp vid felsökning. Vid delning av filer, till exempel ifall alla bilar delar på samma shader, så läggs denna filen i den gemensamma mappen för bilar: *Game location*/resources/entities/cars/ 2.2 Programmeringsstandard Det finns ingen identifiering i namnen på klasserna, samtidigt som alla klasserna börjar med stor bokstav. Varje ord i namnet börjar med stor bokstav. class FooFoo { Publika funktioner startar med stor bokstav, samtidigt som varje nytt ord börjar med stor bokstav. public: void BarBar() {} Publika variablerna i header startar med litet m för member, och varje följande ord börjar med stor bokstav. int mkakabaka; Privata funktioner startar med stor bokstav samt med stor bokstav på första bokstaven i varje följande ord. I slutet av funktionen lägger man till ett _. private: void Bar_(int* atest) {} Privata variablerna i header startar med litet m för member, och varje följande ord börjar med stor bokstav. I slutet av funktionen lägger man till ett _. int mkakabaka_; }; void Bar_( int* atest ) { Lokala variabler skrivs först med liten bokstav, och varje följande ord börjar med stor bokstav. int kakabaka; } Twisted Metal Gamemaker Remaker 4
2.3 Namnstandard mot programmerare Meshes: M_*filnamn*_*Type*.mesh Type: Car: C Props: P Level: L Material: Mat_*filnamn*.material Gällande materialen i Maya så skall alla använda en fördefinierad grundscen som innehåller ett standard material som kopplas till objektet som skall exporteras för att motverka lambert1 syndromet, samtidigt som felsökning bland materialen kommer flyta bättre. Texturer: T_*filnamn*_*Type*.tga Type: Diffuse: D Normal: N Specular: S Skybox/Skysphere: SB/SS Ex: Normal textur till bilen Turbo: T_Turbo_N.tga Alla texturer skall vara targa filer (tga). Utan alpha channel används 24 bits djup, med alpha 32 bits. Shaders: FX_*filnamn*.cg Skeleton: S_*filnamn*.skeleton Joints: JT_*filnamn*_*Type* Type: Wheels: Left front: Steering: JT_Wheel_ LF_Steer Driving: JT_Wheel_LF_Drive Left back: Steering: JT_Wheel_ LB_Steer Driving: JT_Wheel_LB_Drive Right front: Steering: JT_Wheel_ RF_Steer Driving: JT_Wheel_RF_Drive Right back: Steering: JT_Wheel_ RB_Steer Driving: JT_Wheel_RB_Drive Joints är svårt att sätta generella standarder för. De viktiga är de som programmerarna arbetar mot. Type i detta sammanhanget kan vara *Head* eller *RightElbow* i en karaktär, eller *LeftFrontDoor* för en bil. Det finns några viktiga joints som vi behöver veta om, och dessa listas här. Resten av Type är förklarande ord som beskriver dess representation. Vid behov så läggs fler förslag här 2.4 Namnstandard produktion Mesh/Obj: MW_*filnamn*_*Type*_*Version*.ma/mb Texturer: TW_*filnamn*_*Type*_*Version*.psd Versionshanteringen sker på den egna maskinen. Endast den senaste filen skall ligga på SVN, och den skall inte ha _*Version* i namnet. Dock på den egna maskinen så skall versionhantering ske vid behov med den ovanstående syntaxen. Detta gäller alla produktionsfiler. På SVN får endast den senaste versionen ligga, sedan sker versionshanteringen på arbetsstationen. Twisted Metal Gamemaker Remaker 5
3.0 Resurser 3.1 Projektmedlemmar Teamet består av 13 medlemmar. 3.2 Budget Vi har upp till 500:- som tillhandahållits oss från Gamemaker. Denna tillgång kan användas till eventuell gruppaktivitet. Förutom detta har teamet ingen ekonomiskt tillgång. Det finns dock en tidsbudget som är ytterst viktigt att den följs. 40h x 8veckor = 320h/person Efter denna formel planerar vi vår backlogg. 3.3 Tekniska Resurser Programvara som används under projektet är: Maya 8.5 Adobe Photshop CS3 Tortoise SVN 1.5.3 Open Office Adobe Premiere Elements 4. 0 Teamet 4.1 Gruppstruktur Inom teamet så finns det två ledare. En är ansvarig för gruppen och spelet, och den andre är ansvarig för trailer. Ledaren över gruppen och spelet är gruppens ansikte utåt och kontaktpersonen till Almir. Ledaren ansvarig för trailern ska dessutom ansvara för att den grafiska stilen hålls samman, alltså agera art director. Skälet till att det finns två ledare och inte en är för att dela upp ansvaret. Ledarskapet inom gruppen bör inte roteras, då det kan leda till onödigt arbete och brutna rutiner, samtidigt som kvalitén på ledarskapet också riskerar att variera. 4.3 Ansvar Gruppledare - Martin Jonsson Anteckna närvaron Kontaktperson utåt Gruppens intresse Back log/sprint log Design dokument Alla scrummöten Art Director aka Cinematicledare - Marcus Albertsson Trailern Art Director - OBS. Även om art directorn har sista ordet i de grafiska frågorna så är det en gemensam uppgift att den grafiska stilen upprätthålls. Alla agerar art directors, och vid total fallering så lägger cinematicledaren in sitt veto. Anledningen är att rollen inte ska vara en stoppkloss för kreativiteten, utan alla agerar designers och kämpar för att få ut sina grejer i spelet. 4.2 Roller Scrummaster, Junior Jonsson, Martin, 0733240703 Art Director, Light Marcus Albertsson, 0706790888 Grafiker Eskola, Jonathan, 0736-392050 Jarlerud, Fredric, 0735-318280 Spellerberg, Erik, 08-56046463 Metso, Elina, 0709-644132 Erik Andersson, 0730344577 Rickard Edendahl, 0738266528 Programmerare David Gustavsson, 0701710371 Jonhannes Gotlén, 0707292055 Teamets ansvar Teamet ansvara för att de ska kunna uppnå sitt satta sprintmål. Om de skulle märka att de inte kan uppnå vad de lovat kan de avbryta sprinten för att ha ett nytt preproductionmöte där en ny sprint planeras. Timrapportering Medlemmarna i teamet sköter själva sin tidsrapportering. Twisted Metal Gamemaker Remaker 6
4.4 Roller utanför teamet För vidare info läs: GM_Scrum_Spelprojekt2_160908.pdf Product Owner Produktägaren, Efternamn Doru, är den person som teamet levererar till. Produktägaren är alltså projektets kund. Han ser till att teamets prioriteringar ligger där de ska. Stämma av att teamet nått sina mål var iteration. Senior ScrumMaster Rollen innehas utav Almir Listo och innebär i korta drag: Se till att projektet förflyter så bra som möjligt. Han finns där ni vår kunskap/erfarenhet brister. Ifall olösbar osämja uppstår. Twisted Metal Gamemaker Remaker 7