Post Mortem för Get The Treasure!



Relevanta dokument
Slutrapport för JMDB.COM. Johan Wibjer

VIDEODAGBOKEN. Individuellt Mjukvaruutvecklingsprojekt. En dagbok i videoform online. Robert Forsgren (rf222ce) UD

TSBK 10 Teknik för avancerade datorspel Fö 9: Nätverk, Peter Johansson, ISY

GYMKEEPER ANDREAS SÖDERSTRÖM

använda teknikområdets begrepp och uttrycksformer.

Utvärdering 2015 deltagare Voice Camp

Tärna Folkhögskola IT-pedagogutbildningen Individuellt fördjupningsarbete Vt IT I FÖRSKOLAN. Författare:Tove Andersson

Tentamen IE1204 Digital design

Betatestning - Solsystem

Gesäll provet Internetprogrammering I. Författare: Henrik Fridström. Personnummer: Skola: DSV

RödGrön-spelet Av: Jonas Hall. Högstadiet. Tid: minuter beroende på variant Material: TI-82/83/84 samt tärningar

Bonusmaterial Hej Kompis!

Slutrapport för Pacman

LEGO Mindstorm-robot

Sammanställning av studentutvärderingen för kursen Estetiska lärprocesser 15 hp, ht 2007

Teknikprogrammet, inriktning informations- och medieteknik

JUNI Midsommar. den 25 juni 2012

Bakgrundsbygge i Cellplast:

hem ETT. sammanställning Homeparty hos Hanna

Den magiska dörren. Kapitel 1 Hej. Jag vaknar av att mamma skriker: - Benny dags att gå upp!

Hur har ni informerat om stödet från Leader Bergslagen? Bifoga affisch eller liknande!

Planeringsspelets mysterier, del 1

Consump. Om du kör miljövänligt så visar den grön text och kör du inte miljövänligt så visar rött, kör du något där emellan visar den gult.

Vikingatiden. - kreativt på olika sätt

1. Att lyssna 1. Titta på den som talar. 2. Tänk på vad som sagts. 3. Vänta på min tur att prata. 4. Säg det jag vill säga. 1.

2. Hur tycker du att stämningen i sjuan i stort har förändrats under året glädje, trygghet, gemenskap och kommunikation?

Innehållsförteckning

Peter Ottosson 31/ Introduktionskurs i datateknik II1310

Framtidstro bland unga i Linköping

NXT LEGO-robot laboration Programmering och felsökning av en LEGOrobot

Kulturell vistelse i BERLIN Presentation och utvärdering

Felsökning av mjukvara

1DV433 HT13. I vilken utsträckning har kursens innehåll och uppläggning gett förutsättningar för att du ska ha uppnått respektive lärandemål?

FIRST LEGO League. Stockholm

Dagbok Mikael Lyck

Utvärdering av 5B1117 Matematik 3

Så, med nytt (inget) hår satte jag mig på planet till Irland och Dublin!

Fritidsenkäten 2014 Sammanställning av svar och index

Slutrapport för projektet Programmeringsundervisning i skolor med webbaserad konstprogrammering Annika Silvervarg, Linköping universitet

ANONYMA TENTAMINA (FÖRDELAR) ÅSIKTSTORG:

Fördjupningskurs i byggproduktion, ht 2009.

Det bästa som hänt under min tid som boklånare

En beskrivning om den process och det arbete som lades ner på att skapa en sushiförpackning. B SKRIVNING

Några övningar att göra

Lära tillsammans som grund för utveckling erfarenheter från förskolan. Sunne 3-4 februari 2010 Katina Thelin

Åker igenom samtliga sträckor, men finner till vår besvikeslse att det inte finns speciellt mycket sevärt på denna tävling, fastnade för en vänster

12 principer of agile practice (rörlig)

Några små tips om att träna på utsatt fågel

Valberedningen, representant för Y1

Berlinmuren Frågeställning: Vad är Berlinmuren? Orsaker? (Varför byggde man Berlinmuren?) Konsekvenser? Berlinmurens avskaffande.

Föreläsning 3.1: Datastrukturer, en översikt

Vilket program och årskurs läser du? Respondenter: 5. Översikt alla Frågor - Verksamhetsstyrning FÖ5007 FÖ5009 FÖ6007 FÖ

Reseberättelse Irland

ELEVHJÄLP. Diskussion s. 2 Åsikter s. 3. Källkritik s. 11. Fördelar och nackdelar s. 4. Samarbete s. 10. Slutsatser s. 9. Konsekvenser s.

Slutrapport YUNSIT.se Portfolio/blogg

LEGO Robot programmering och felsökning Hur svårt ska det vara att följa den svarta linjen?

Fysiska aktiviteter FYSISKA AKTIVITETER. Zumba och Linedance

Penningpolitiken och Riksbankens kommunikation

Ge ditt supportärende en flygande start. Tips och fallgropar.

Recept för rörelse. TEXT Johan Pihlblad. Lena Kallings är medicine doktor och landets främsta expert på fysisk aktivitet på recept.

Fotbollsfinter Fotbollsmaskinen: väldigt Mått på maskinen:

- Jag bor i ett hus tillsammans med min man, min. son och min dotter. Huset är gammalt, men^vi har. :om mycket. Vi har också en stor trädgård.

Digitalt lärande och programmering i klassrummet. Introduktionsworkshop - Bygg ett akvarium i Scratch

Resultatet kan man ju ana, det är som vanligt.. en bild säger mer än tusen ord...

Kapitel 1: Ljudet. Kapitel 2: Rädslan

Vad har du för övrig erfarenhet? Mina tidigare arbetslivserfarenheter utanför nationen består av arbete inom storkök samt som brevbärare åt Posten.

Har du funderat något på ditt möte...

Vad roligt att ni har valt att bjuda varandra på den här timmen.

Projekt Rapport. RaidPlanner. Jeanette Karlsson UD10

Entren och front desk på mikorbiologen med Hanna och

Sagor och berättelser

Generell Analys. 3. Det är viktigt att du väljer ett svar i vart och ett av de åttio blocken.

Enkätsvar Fler kvinnor. Enkätsvar 2013 Kyrkans Familjerådgivning Stockholm


Sociala berättelser 1

Tentamen TEN1 HI

Kvalitetsrapport läsår 2014/2015. I Ur och Skur Vattendroppens

Föreläsning 4: Poster

TJUVSTARTER I AGILITY - en kamp i envishet

Utvärdering av projektet Flodagruppen

Studentguide vid grupparbete

MagiCAD El & Rör. Varför MagiCAD och varför 2D/3D? Kollisionskontroll. MagiCAD El

Ett ämnesövergripande arbetsområde som innehåller biologi, fysik och teknik.

Sammanställning av enkätundersökning

Betyg E (med tvekan) : (= Eleven beskriver mest med egna ord hur man upplevt träningen)

Hej. Niklas heter jag, och detta är min oberoendeförklaring från Scientologikyrkan.

Kursutvärdering Ämne: SO Lärare: Esa Seppälä/Cecilia Enoksson Läsåret Klass: SPR2

Rapport från Praktik på SVOX AG till

6-stegsguide för hur du tänker positivt och förblir positiv.

Objektorienterad programmering

Sektorn för socialtjänst BRUKARUNDERSÖKNING AVSEENDE BOENDESTÖDET 2008

Ut med domarn! Kenta. Ut med domarn! ur Två par mockasiner av Lars Collmar (Argument Förlag) 33

HexaFlip. Kravspecifikation

Alla får ligga. strategier i förförelsekonst för den moderna gentlemannen och kvinnan

Mäta effekten av genomförandeplanen

Utvärdering 2015 deltagare Filmkollo


Elevdemokrati och inflytande

MÄSSHANDBOK ENTREPRENÖRSKAP PÅ RIKTIGT 2016 KRONOBERG

Transkript:

Post Mortem för Get The Treasure! Av: Emil Lindberg - Grupp 15 Vi skulle göra ett action multiplayerspel som spelades över nätverket. Vilket vi nästan lyckades göra. Tiden tog slut och programmerarna han inte göra klart gameplayet. Vi var fyra grafiker, två programmerare och en som var hybrid av båda. Jag var Lead Programmer för projektet. Största utmaningen var att få Get The Treasure! att fungera över nätverk vilket tog den mesta av tiden för oss programmerare. Vi gjorde en del missar tidigt i stadiet som påverkade projektet i slutet av utvecklingen. Detta postmortem kommer fokusera på vad som gick fel med programmeringen/ skriptningen men också vad som gick bra. Den kommer även ta upp annat som påverkade programmeringen. Vad gick Bra Skippa SmartFoxServer DSV har en serverdator som kör SmartFoxServer (SFS) vilket studenter kan använda. Vi blev intresserade av detta och satte oss in för att lära oss SFS. Jag fick igång ett enkelt spel där man spelade Tic Tac Toe i Unity över nätverk med hjälp av SFS utan några problem alls. Med

SFS måste man koda gameplayet som extensions till SFS, alltså utanför Unity. Detta gör att man inte direkt kan använda sig av Unitys API. Att göra Tic Tac Toe var inga problem då jag inte behövde något från Unity. Allt som behövdes var en matris och ett par if -satser. Det som fick oss att slänga SFS var huvudsakligen tre saker, Fysiken, Dokumentationen och Debug. Vi insåg att fysiken för GTT skulle bli för tidskrävande då alla kollisioner måste detekteras på server sidan (i exstensionet) och allt annat som fysiken innebar (Visserligen skulle vi kunna låta unity simulera fysiken på klientsidan men vi ville göra det server side för att motverka eventuell fusk). Alternativt så hade vi gjort två olika typer av Unitybuilds, en som agerar server och en som agerar klient. Detta kändes dock för onödigt. Dokumentationen och kommunityt för Unity med SFS var för litet. Fanns en enkel tutorial och en enkel dokumentation som beskrev hur man sätter upp en server för unity. Inga exempel på hur man skulle gå till väga när man kodade i unity vilket gjorde oss väldigt osäkra. Fanns inte heller något större kommunity där man kunde fråga om hjälp. Debugen var inte heller så bra. När SFS används så kringgår man Unitys stöd för Nätverk vilket betyder att vi inte kunde ta del av Unitys debuginformation för nätverk. Man vart även tvungen att koda i två olika miljöer vilket gjorde allt jobbigare och mer komplicerat. Vi beslöt oss för att slänga SFS och istället använda Unitys inbyggda Nätverk. Vilket gjorde det mycket enklare för oss. Fler exempel, starkare kommunity, starkare dokumentation, mycket guider kring hur man skulle gå till väga o.s.v. Plugga Unity Nätverk När vi bytte till Unity Nätverk så la vi ner ett par dagar att lära oss det. Vi köpte en Unity nätverks tutorial från det nederlänska företaget M2H Game Studio. Tutorialen bestod av en grundkurs i Unity Nätverk samt flera spelbara projekt som användes av Unitys Nätverk varav ett bar var rätt avancerade. Jag la ner ett par dagar på att gå igenom projekten och lärde mig en hel del och kunde förbereda för nätverksproblem som jag visste skulle kunna uppstå. Byta från JavaScript till C# Vi skriptade till en början i JavaScript. Mest för att vi har tidigare gjort spel i Unity och då använt oss av JavaScript. 20% in i projektet upptäckte jag att kommunityt ofta rekommenderade C# framför JavaScript. C# skulle vara mer optimerat och snabbare att utveckla i. Jag hade ingen erfarenhet av C# men gjorde ett försökt att skapa en klass i C#. Det var lite meckigt i början men efter någon dag fick jag mer flyt i C#. Däremot såg jag fördelarna direkt. Istället för att använda Notepad++ kunde vi byta till Visual Studio, man fick tillgång till intelisense vilket gjorde att det gick minst 3x snabbare att skriva en klass i C# än i JavaScript. Man kunde även enkelt testkompilera koden direkt i Visual Studio istället för att behöva kompilera i Unity. C# är mer kontrollerat än JavaScript, flera gånger kändes det som att kod skiven i JavaScript verkligen inte

borde fungera, men det gjorde det ändå. Skapade oftast förvirring. Det slutade med att alla bytta till C# och vi fick skriva om all gamla JavaScript-filer till C# vilket helt klart var värt. Större exempelprojekt var även skrivna i C# vilket gjorde det enklare för oss att analysera dessa. Designmöten När vi skrev vårt GDD hade vi ett par designmöten. Vi brainstormade och kom på flera idéer och vi skrotade flera idéer med. Vi gick från ett fps-skräckspel till GetTheTreasure!. Alla fick leka designer under alla möten och ingen fick komma med negativ kritik under brainstormingen. Vi fick rätt flummiga, roliga och bra idéer tack vare detta som vi annars troligt inte skulle ha fått. Vad gick Dåligt Kodade bara client side Vi visste att en client-server lösning skulle vara det optimalaste för att hindra spelare från fuska. Dock tänkte vi att detta skulle ta för lång tid. Istället valde vi att det mesta skulle ligga på klienterna. Att varje klient hade koll på sina egna liv och vart de befanns sig på leveln etc. Vi trodde att det skulle gå snabbare att koda så här än att lagra allt på servern. Vi hade delvis rätt, den första månaden gick allt bra men efter det blev snabbt rörigt och bökigt. Ju mer jag använde nätverket och läste på om det ju mer tänkte jag i server-client anda. Men eftersom vi hade allt på client så blev allt väldigt mycket bökigare. Den dum miss, något vi trodde skulle bli enklare blev svårare. Vi bytta aldrig heller till client-server utan fortsatte på spelet. Skulle jag fortsätta idag skulle jag nog skriva om allt till client-server vilket skulle ta ett bra tag, men det skulle annars vara omöjligt att fortsätta enligt mig. Kodade för singleplayer Samtidigt som vi tittade på SmartFoxServer och innan vi började studera Unitys inbyggda nätverk så tänkte jag att jag kunde programmera vissa klasser innan jag lärde mig nätverk. Tänkte att kodningen inte skulle skilja sig så mycket från singleplayer och jag trodde att jag skulle kunna lista ut vilka extra variabler som behövdes för nätverk. Visade sig senare efter jag gått igenom Unitys nätverk att jag hade fel. Fick skriva om de flesta klasser jag redan gjort vilket tog onödigt med tid. Skulle istället bara ha skissat klasserna eller ritat uml diagram tills jag visste hur nätverket fungerade. För flexibel kod Jag försökte skripta så att man enkelt skulle kunna utöka skripten och enkelt skulle kunna använda skriptet till andra scenarion som inte hade bestämt än. T.ex. gjorde jag en enorm

parentclass till fällorna som hade ett flertal inställningsbara variabler som inte användes till en början. Nu han vi inte göra fler fällor än en så detta kom aldrig till användning. Man skulle kunna säga att detta var ett dåligt beslut för ett litet projekt då det tog så mycket tid att skapa flexibel kod men det hade garanterat varit bra om vi hade haft mer tid på oss. Istället skulle jag struntat i att göra koden så flexibel och bara göra det som behövdes. Hade sparat mycket tid på detta. SVN Vi skaffade en SVN nästan direkt som var placerad skolans server. Jag använde SVN hela tiden till en början. Vi visste att SVN inte var så oplimalt för Unity. Vi var själva tvugna att zippa ner olika filer innan vi checkde in projektet vilket var rätt jobbigt, men bättre än inget. Slutade dock med att vi aldrig orkade checka in projektet och folk kunde ringa runt till varandra och fråga vad man har gjort sen senaste projektet, vilket fungerade rätt bra ändå. Vi mergade ihop projekten någong gång per vecka som vi sedan checkade ut på SVN. Dock gjorde detta att vi aldrig hade någon backup. Vid en mergning av mitt projekt och en annans projekt blev jag av med en classfil. Hade inte gjort någon egen backup av detta och jag förlorade ett par dagar.

SCRUM Till en början hade vi sprintar och sprintmöten, tror vi kom upp till ca 4 sprintar. Dock hann vi aldrig ta en sprint innan deadline utan vi arbetade på den förra sprinten under nästa sprint med. Vi kom längre och längre bort från deadlinen ju fler sprintar vi gjorde och de sista veckorna struntade vi helt i sprintar. Det blev lite mer oorganiserat, b.la. så glömde jag bort att göra vissa viktiga saker för att vi skulle få ett bra gameplay till slutdeadlinen (Komplett meleesystem samt respawnsystem). Inga Designers Vi hade ingen som var dedikerad designer. Istället var samtliga designers. Det gick hyfsat bra i början när vi tog fram vår grundläggande idé. Men när det gällde småsaker så hade vi oftast olika tankar vilket gjorde att man var tvungen att fråga alla i gruppen om vi kunde ta bort liten del av designen. Hade vi haft en designer eller två designers som bestämde allt hade det varit mycket enklare. Slutsats Vårt projekt gick hyfsat bra ändå. Det föll på skriptningen/programmeringen men gick framåt med grafiken. Undantag mocapanimationenerna som gick åt skogen, men det fixade vår animatör snyggt under en helg med att göra om alla animationer från scratch. Vi hade behövt bättre disciplin på att följa SCRUM. Samtliga var mest anti scrum och folk glömde uppdatera sina scrumloggar. Hade vi tagit varje sprint-deadline seriöst så hade vi hunnit mycket mer än vad vi gjorde.

Att nätverket ställde till mycket var rätt givet. Vi visste innan att nätverk gör allt svårare och jag hade fått varningar från flera personer som tyckte att vi skulle skippa nätverk. Men vi ville göra nätverkspel och jag ville ha en ny utmaning. Hade vi skippat nätverk hade vi nog garanterat hunnit bli klart med ett spel men jag hade lärt mig betydligt mindre. Jag har lärt mig otroligt mycket. Mest på att använda Unity samt att skripta generellt gameplay. Jag hittar oftare lösningar för olika problem nu än vad jag gjorde förr. Blivit bättre på att dokumentera kod och har lärt mig att vara mer konsekvent när jag kodar. Har lärt mig otroligt mycket om nätverksprogrammering för spel. Har även lärt mig att arbeta i grupp mer, även om 90% av gruppen var personer jag hade träffat sen innan. Vi hade lite drama i gruppen i början av projektet som resulterade att två lämnade vår grupp. Har också lärt mig mer om grafik och animering. Jag vet nu vad som fungerar i spelmotorer och vad som inte fungerar, vad man måste tänka på innan man importera meshar till Unity. Av: Emil Linderg - Grupp 15-2011 VT