Levels kommer i grupper. Gruppen kallar vi för en galax och en level är ett solsystem i galaxen. Spelaren väljer vilken level som ska spelas i aktiviteten LevelPicker:
Varje galax har sin "palett", dvs tillhörande rådata som bakgrundsbilder, monster, planeter, ljud mm. Dessa defineras (kommer att defineras) i en xml-fil och förallokeras för att korta ner tiden det tar att starta en level. Varför definera detta i xml-filer? Jo, det är det bästa sättet att peka ut resurser i Android.
Varje level beskrivs i binärfiler. Filen är en serie instruktioner för att skapa en komplett level. Levels och deras tillhörande data kopplas samman i leveltree.xml.
Levelfiler skapas i LevelSerializer (ren java), och packas upp i LevelBuilder (del av Android-koden).
Binärfilens protokoll
Det första som står i filen är dess versionsnummer (en int), som måste vara samma över hela Level-systemet för att fungera. Sedan följer instruktioner i form command-data-command-data osv. Commands är alltid representerade med en Java short, datat på olika form beroende på vad som står där. Instruktionsuppsättningen är självdokumenterande i LevelSerializer.java.
Efter versionsnumret defineras varje GameObject, i den ordning som de ska uppträda under GameObjectManager.
För varje GameObject läses först dess fields in (såsom id, position, hastighet) i valfri ordning. Sedan läses varje GameComponent in i den ordning de ska uppträdai sitt GameObject.
We're a group of merry coders and a designer who are making an Android game based on the game engine from Replica Island (replicaisland.net). Well, we're actually modifying the engine quite a bit, and we'd love to hear your comments!
Visar inlägg med etikett Level. Visa alla inlägg
Visar inlägg med etikett Level. Visa alla inlägg
torsdag 30 december 2010
Level system: överblick
Det är så mycket mer än jag trodde!! Detta är en (komplett?) översikt:
GameObjectManager är den nod i Game-trädet som håller alla spelobjekt (GameObjects, som i sin tur har en massa GameComponents som ger den sina egenskaper, typ bild, animation, AI, rörelser, fysik...).
LevelSerializer och LevelBuilder är de som tillverkar respektive packar upp levels från binärfiler.
GameObjectManager är den nod i Game-trädet som håller alla spelobjekt (GameObjects, som i sin tur har en massa GameComponents som ger den sina egenskaper, typ bild, animation, AI, rörelser, fysik...).
LevelSerializer och LevelBuilder är de som tillverkar respektive packar upp levels från binärfiler.
Prenumerera på:
Inlägg (Atom)


