BumblBeever Productions

Bakom kulisserna i utvecklingen av ett MMORPTDRTSG (Mini Multiplayer Online Role Playing Tower Defence Real Time Strategy Game)
Vår nya logga. Vad tycker ni? Bättre än den förra?

Vår nya logga. Vad tycker ni? Bättre än den förra?

- danielbjorkander

Comments (View)
Early conceptual

Early conceptual

- danielbjorkander

Comments (View)
Monsters&Masonry Wallpaper, use now :)

Monsters&Masonry Wallpaper, use now :)

- danielbjorkander

Comments (View)

Gruppreflektion trace(this.currentId + "/" + reflections.length)

Detta blir nog den sista gruppreflektionen. Tiden har sprungit iväg och det har blivit svårare och svårare för oss att finna tid till att skriva reflektioner. Men nu kommer detta, en samlingsreflektion som ska sammanfatta de senaste veckornas arbete och ge alla en inblick i slutspurten.

Vi kände allesammans att något inte riktigt stämde med ”Blittingen” och vi bestämde därför att vi skulle försöka göra om hela systemet. Den största anledningen var att vi förlorade mycket prestanda samtidigt som minnet fylldes med onödig information från gamla objekt. Men eftersom vi nu var lite säkrare på hur systemet fungerade så skulle detta gå relativt snabbt. Resultatet kom väldigt snabbt och vi räknar med att vi har tjänat ca 50 % prestanda.

Med torn och spelare inne i världen var det bara ett element kvar, creeps. Dessa var väldigt annorlunda då vi var tvungna att komma på ett system som var universalt, det vill säga att vi skulle kunna använda samma system till spelare, creeps men också till framtida element som skulle animeras i världen. Detta innebar att vi bröt ut allt som handlade om en spelares visuella representation och ersatte den med en mer generell klass som inte innehöll någon direkt mekanik eller beteende. Klassen lurar spelaren att tro att det är en riktig version av det som visas men egentligen är det en sorts basklass som endast har information om hur den ska animeras. Detta gör det lättare för var spelare att rapportera sina ändringar till andra klienter. Man behöver endast skicka med ett ID och vart den ska animeras till. Ens creeps använder fortfarande en väldigt grundläggande ”state” mekanik som innebär att en creeps har olika sinnesstämningar som gör att den beter sig annorlunda beroende på omgivningen, men tills vidare får denna duga.

Creepsen grafik har uppdaterats och de är numera lättanimerade ”geléklumpar”. Detta var inte direkt något som vi ville göra men det behövdes för att vi på något sätt skulle hinna animera och rita dem. Ett hinder med geléklumparna har varit att göra dem personliga. En rund klump har alla sett men att lägga till en liten lätt detalj som gör dem till våra egna. Eftersom Nebbe är ensam på grafiksidan har vi andra försökt hjälpa honom med det teoretiska. Olika designer som skulle kunna arbeta med eller testa.

Vi har försökt få allt att bli synkat mellan klient och server men det har inte varit det lättaste. Man måste på något sätt bli lurad till att tro att man ser allt i realtid. Ett bra exempel är hur det ser ut när ett torn skjuter på ett monster. Skall man be servern skicka ut till alla varenda gång ett torn ber om att få skjuta eller ska man skapa illusionen av att ett torn skjuter. Vi valde att använda oss av det sistnämnda tills vidare. Kändes onödigt att använda mer bandbredd och serverkraft än nödvändigt. Tornen skjuter numera synkroniserat på alla klienter. Detta går dock genom servern som hanterar vem som egentligen kontrollerar ett torn. Om två spelare skulle attackera ett torn exakt samtidigt är det upp till servern att välja en av dem som verkligen skadar sitt creep.

När det gick upp för oss att det endast var ett fåtal veckor kvar var det dags att organisera oss och samtala om vad som skulle finnas i spelet på redovisningsdagen.  Tyvärr har det blivit så genom hela projektet att vi gång på gång skalat ner konceptet. Många roliga delar försvinner men vi försöker hålla den roliga kärnan av spelet intakt. Det blir lätt så här med alla oförutsedda problem som uppstår. Speciellt när vi gav oss in på en så okänd mark att vi inte ens visste vilka problem som förmodligen skulle uppstå.

Vi kom i alla fall fram till ett par punkter som verkligen behövdes finnas med i spelet. En av dessa var självklart ljud. Vi har genom hela projektet fått ett konstant flöde av ljud till spelet. Ett studentföretag vid namn ”Cool core Audio” har skapat hela unika ljudspår som passar riktigt bra till spelet. Vid en redovisning av projektet skulle bidra extremt mycket till helhetsintrycket. En del tekniska krav fanns på ljuden då vi måste förbereda för att det kan finnas ett flertal ljudkällor samtidigt. Att höra tjugo torn skjuta är inget en spelare ska utsättas för. Allt kommer ändå låta som ett fasansfullt muller. Detta löste sig ganska smidigt trots att ljudhanteringen i flash inte är den bästa.

De sista dagarna av projektet blev det många sena kvällar i projektrummet och alla arbetat väldigt bra och intensivt. Vi har en hel del småsaker att fixa inför examineringen. Allt ifrån små grafikbuggar till stora saker som att få creeps att röra sig som de ska. Tyvärr hann vi inte få den sistnämnda att fungera riktigt. Vårt mål var att få visa upp ett så färdigt spel som möjligt.

Kritiken vi fick under examineringen var det vi hade förberett oss på egentligen. Själva ”spelet” saknades. Vi har kommit väldigt långt rent teknisk men det finns inget som får en spelare att uppleva en ”wow”-känsla. Vi har nu ett fåtal dagar på oss innan utställningen att ordna upp det sista med spelet. Den del som fick ta mest stryk var grafiken. Det är inte alls oväntat med tanke på att tre personer har arbetat med kod och endast en har arbetat med grafik. Om arbetsfördelningen hade varit omvänd skulle det med största sannolikhet vara koden som låg lite efter. Men som sagt, det finns lite tid innan utställningen och vi måste försöka lösa de grafiska problemen på ett så effektivt sätt som möjligt samtidigt som vi implementerar spel i spelet.

Dagarna fram till examen kommer definitivt handla om annat än att skriva uppsats och det kommer bli dag och natt arbete fram till utställningen om vi vill få den så kallade ”wow”-känslan. Vi vill verkligen att folk ska uppskatta vårt spel och vårt hårda arbete.

- robinpetersson

Comments (View)

Personlig Reflektion 12 & 13

Tiden är snart slut! Panik!

Nämen seriöst. Jag ligger rätt i tiden jämfört med gruppen och det får mig att känna mig lugn. Jag kommer hinna göra klart allting som behövs göras till nästa vecka och sen efter det blir det nog upp till mig att göra presentationen med bildspel och allt annat som hör till.

Jag ser fram emot reflektionsskrivningen lite för att få chansen att slappna av, och jag vet att vi kommer hinna göra klart spelet innan deadline.

- nibb

Comments (View)

Personlig Reflektion 13

Nu börjar det kännas som vårt projekt närmar sig ett slut och det är lite stressigt. Eftersom det hela tiden dyker upp lite småfix här och där får jag inte riktigt grepp om hur mycket vi faktiskt har kvar.

Robin och jag tog oss ann problematiken kring animationerna. Det finns nämligen en del skillnader hur ens egna och andras monster skall fungera. Tanken är att vi ska byta ut vårt nuvarande system för hur andras spelare fungerar till samma som för hur andras monster skall fungera. Det är med andra ord en del svårigheter att programmera multiplayer-delen i spelet. Det jag tillförde detta var en baseAnimation klass som hanterar vilken bild som ska animeras in med blittingen. Alltså byts bilden som representerar monsteret ut om ett monster byter riktning eller om monstret börjar attackera / dör.

Vidare efter att Björk fixat klart med mana på servern kunde jag implementera en del kod jag tidigare programmerat i menyn. Det var en del strul men jag fick rätt på det hela tillslut. Annars känner mig ganska stressad över att inte vara klar med animationsdelen ännu. Vi har även kvar att koda in ljudet och detta måste jag ta tag i nästa vecka.

I helgen görs en klass för att hantera meddelande. Meddelandena ska informera spelare som har varit offline om vad som hänt sen de senas loggade in.

- preutz

Comments (View)

Personlig Reflektion 11 & 12

Förra veckan påbörjade jag en mapeditor. En smidig applikation för att enkelt kunna rita en karta för varje zon i vårt spel. Men nu började vi märka av att det blev allt segare och segare att rita ut allt. Något var fel jag började en bit in i veckan skissa på ett nytt system för att rita upp bitmapdatan. Även denna lösning var otillräckligt och jag beslutade mig för att gå till botten med problemet och studerade det hela grundligt under helgen. Problemet visade sig vara relativt enkelt, man inte fick göra ‘var myBitmapData = new BitmapData’ i en loop. Eftersom actionscript hela tiden gjorde en ny bitmapdata och inte skrev över myBitmapdata. Lösning på hela problemet följer nästa vecka.

—-

Den gågna veckan har fortsättningsvis spenderats med bitmapdata. Detta fenomen kan jag snart skriva en hel uppsats om. Det hela förenklades för mig när vi bestämde oss för att rita ut hela kartan i en och samma bitmapdata. I denna skulle även spelare, monster och deras punkter för hur dem ska gå samt skott från tornen finnas utritade.

Marken eller gräset fungerar som ett suddgummi och suddar ut allt som ritades ut förra utritningen. Sedan lägger man på det som behövs ruta för varje ruta i vårt rad och kolumn system. I tur och ordning blir det vatten, skugga, berg, torn, byggnader samt träd. Träden ritas dock ut lite annorlunda eftersom de måste ritas över allt annat på en rad. Därför ritas dem ut efter en rad är färdig ritad. Detta systemet gör så att vårt spel återigen flyter på som det ska.

Påskhelgen har inneburit mer än bara ägg. Jag har fixat så att block bitmapdatan för spelaren fungerar i det nya uppritningssystemet. Jag har även integrerat mapeditorn med spelet.

- preutz

Comments (View)

Personlig Reflektion 10 & 11

Arbetet rullar på ganska bra nu, även om man får lite ångest när man tänker på tiden som kvarstår. Hade vi fått upp det här tempot tidigare i projektet hade det sett helt annorlunda ut nu, men det är sådant man får räkna med när man seglar på okända hav. Det är nu när vi går i skolan som får lov att ta lite galna chansningar, få utlopp för spännande idéer och utforska okända hav. Hur projektet än går har det varit väldigt givande för mig, och jag har mycket material med mig till uppsatsen som kommer. Jag har samlat på mig lärdomar om allt från att jobba med uppdateringar i realtid, tunga grafiska gränssnitt, få grafiken att egentligen bara vara en spegling av dataprocessen i bakgrunden till gruppdynamik, idéarbete och hur man tar till sig nya tekniker.

Men givetvis är vi taggade att kämpa in i det sista, vårat stora mål är att vi ska ha ett spelbart spel i någon form till våran redovisning. Spelet kanske inte kommer innehålla precis alla idéer vi hade i början, men det här börjar kännas som vår lilla bebis nu, och jag kommer säkert fortsätta leka lite med det när jag får tid efter skolan också, och jag tror andra i gruppen tänker samma sak.

- danielbjorkander

Comments (View)

Personlig Reflektion 11

Arbetet rullar på i samma takt som det gjort tidigare. Det känns lite enformigt att skriva det vecka för vecka, men jag är glad över att det är så. Det går verkligen inte dåligt för någon av oss.

Stora problemet är ändå tiden som vi har på oss. Speltesterna och finjusteringen av spelet kommer ske väldigt nära deadline. Det är nånting vi inte kan rå för. Trots att allting har gått smidigt hittils har det ändå tagit för lång tid att göra. För min del har jag varit tvungen att koncentrera mig på sakerna som behövs i grunden, utan att göra klart någonting helt och hållet, som ex. att rita 3 torn av 21 eller att göra 3 utav 6 monster där vi originellt planerade på att ha 10 stycken. Men jag vet att det viktigaste just nu är göra ett roligt spel istället för att göra så mycket flashiga effekter som möjligt.

Av alla grundbilder som måste ritas har jag inte många kvar. Jag ska rita och animera lite effekter som ska förstärka den visuella känslan i spelet samt alla ikoner som ska användas till menyer o.s.v. När jag är klar med det är det bara finpolering av grafiken kvar.

Jag hade velat hinna göra så mycket mer. Rita fler bilder. Skapa mer ambiens. Men jag kommer jobba hårt fram till sekunden innan redovisning och producera så mycket jag bara kan.

- nibb

Comments (View)

Personlig Reflektion 10

Under denna veckan har jag bekantat mig med Flex och det har varit både på gott och ont. Eftersom jag är van vid actionscript blir det lite konflikt i mitt huvud. Tur är då att Flex tillåter en att använda både Flex komponenter och actionscript. I menyn som påbörjades förra veckan behövdes det tooltips vilket enkelt kunde skapas i Flex. Men när jag behövde programmerade fram en cirkel (som skulle maska bort en tårtbit med en viss procent av hela cirklen) så gjorde jag det i actionscript och lade in objektet i en Flex-komponent.

Vidare har jag även fixat och trixat en del med css, som man använder för att styla komponenter i Flex. Det ger en flashbacks till html som även det använder sig av css. Eftersom Flex fungerar som xml så kan man enkelt säga till var och en av komponenterna hur de ska se ut. Därimot fungerar det inte alltid som man vill och alltför ofta får man ta hjälp av både Flex api:et  samt olika exempel från andra Flex-kodare.

Veckan avslutades med att jag var tvungen att lämna gruppen då jag skulle gå på begravning och därmed missade jag ett handledningsmöte.

- preutz

Comments (View)