Suunnitelma - VilRan/SpaceShooter GitHub Wiki
Sisällysluettelo
Tietoa tekijöistä
Sovelluksen yleiskuvaus
Sivusta kuvattu avaruusräiskintäpeli.
Ominaisuudet:
- Eri vaikeusasteet (casual, hardcore, nightmare)
- Eri näyttötilat
- Tavaraluettelo ja kauppa
- Co-op
Sisältää:
- Eriteemaisia tasoja
- Erityyppisiä vihollisia
- Erityyppisiä aseita
- Powerups, upgrades, collectibles yms.
Kenelle sovellus on suunnattu, kohdeyleisö
3-30 vuotiaat lapset, casual- ja hardcorepelaajat.
Käyttöympäristö ja käytetyt teknologiat
- Windows 10
- C#
- UWP
- XAML
- MonoGame
- Git (https://github.com/VilRan/SpaceShooter)
Rakennekaavio
SpaceShooterGame
Pelin pääluokka, joka sisältää (käyttöliittymää lukuunottamatta) kaiken peliin kuuluvan sisällään. Se luodaan kerran ohjelman suorituksen alussa ja sitä käytetään sen loppuun asti. Periytyy MonoGamen Game-luokasta.
AssetManager
Pitää tallessa viittaukset pelin käyttämiin assetteihin, kuten tekstuureihin ja LevelBlueprintteihin. Säilyy koko ohjelman suorituksen ajan.
LevelBlueprint
Ohjaa Level-luokan toimintaa tiedoilla, jotka eivät muutu pelin aikana.
Session
Luodaan kun pelaaja aloittaa uuden pelin. Sisältää kaikki kenttien välillä säilyvät tiedot kuten pistemäärän ja pelaajien tiedot. Sisältää lisäksi aktiivisen kentän. Tämän luokan sisältö tallennetaan kun peli tallentuu.
Player
Session-luokan palvelija, joka pitää yllä yksittäisten pelaajien tietoja.
Level
Näyttämö, jolla pelin pääesitys tapahtuu. Sisältää listat esiintyjistä (DynamicObject) sekä lavasteista (Particle.)
Camera
Käytetään ruudun vierittämiseen Levelin laidalta toiseen. Levelin etenemistahtia voidaan muokata muokkaamalla kameran etenemisnopeutta.
GameObject
Abstrakti luokka, joka sisältää pelissä näytöllä liikkuvien olioiden perusominaisuuksia, kuten paikka, nopeus ja tekstuuri.
DynamicObject
Toinen abstrakti luokka, joka lisää törmäystarkistuksen GameObject-luokan toimintoihin.
PlayerShip, Bullet, Asteroid
Konkreettisia esimerkkejä DynamicObject-luokasta. Niissä määritellään tarkat ominaisuudet ja käyttäytyminen pelimaailmassa. PlayerShip esimerkiksi reagoi pelaajan syötteeseen ja asteroidit lentävät suoraan johonkin suuntaan.
Weapon, Machinegun
Weapon on abstakti luokka joka määrittää pelaajan (ja ehkä joidenkin vihollisten) aseille yhteisen käyttäytymisen. Machinegun-luokka on luokan ensimmäinen konkreettinen toteutus.
Particle
Kevyt ja "tyhmä" olio, jota päivitetään vain piirto-syklin aikana. Käytetään erikoistehosteissa eikä vaikuta suoraan pelimekaniikkoihin.
DrawEventArgs, UpdateEventArgs, CollisionEventArgs, FireEventArgs
Käytetään parametrien välittämiseen nimiensä mukaisille virtuaalisille funktioille. Tämä siksi, että säästytään ehkä kymmenien metodien muokkaukselta, jos parametreja halutaan muokata jossakin vaiheessa.
Työnjako
Toteutuneet/suunnitellut tunnit per viikko.
Viikko | Tehtävä | Suun (h) | Tote (h) | Vastuu |
---|---|---|---|---|
8 | Ryhmä ja aihe | 0,5 | Kaikki | |
10 | Prototyyppi | 4 | Ville | |
10 | Suunnitelma, aloitus | 3,5 | Kaikki | |
10 | UML ja luokat | 2 | 3 | Ville/Kaikki |
11 | Mockups | 2 | 1,5 | Kari |
11 | Pelisuunnittelu | 3 | 2 | Miska/Kaikki |
11 | Pelimoottori | 3 | 2 | Ville |
12 | Pelimoottori | 3 | 3 | Ville |
12 | Musiikki | 1 | 1 | Miska |
12 | Esitelmä valmiiksi | 2 | 2 | Miska |
12 | Suunnitelma valmiiksi | 2 | 2 | Kari |
13 | Viholliset, ohjelmointi | 10 | 4 | Kari |
13 | Aseet, ohjelmointi | 10 | 3 | Kari |
13 | Pelimoottori | 5 | 4 | Ville |
13 | Alustavat grafiikat | 10 | 1 | Miska |
13 | Musiikki | 2,5 | 2,5 | Miska |
14 | Pelimoottori | 10 | 4 | Ville |
14 | Päävalikko/Uusi peli | 5 | Kari | |
14 | Asetukset/Highscore | 5 | 3 | Miska |
14 | Tavaraluettelo/Kauppa | 5 | 2 | Ville |
14 | Viholliset, ohjelmointi | 10 | 1 | Kari |
14 | Musiikki | 10 | 1 | Ville |
14 | Äänet | 2 | 0,5 | Kaikki |
14 | Prototyyppi 2 | Kaikki | ||
15 | Pelimoottori | 10 | 7 | Ville |
15 | Tavaraluettelo/Kauppa | 5 | 3 | Ville |
15 | Viholliset, ohjelmointi | 10 | 5 | Kari |
16 | Pelimoottori | 10 | 3 | Ville |
16 | Viholliset, ohjelmointi | 10 | 3 | Kari |
16 | Erikoistehosteet | 10 | 6 | Miska |
16 | Viimeistely | 20 | 4 | Kaikki |
16 | Viimeistely | 20 | 12 | Ville |
16 | Alustavat grafiikat | 10 | 3 | Miska |
17 | Viimeistely | 20 | 4,5 | Kaikki |
17 | Alustavat grafiikat | 10 | 7 | Miska |
17 | Viimeistely | 20 | 7 | Ville |
17 | Viimeistely | 20 | 6 | Kari |
? | Pelisuunnittelu | 5 | Miska/Kaikki | |
? | Erikoistehosteet | 10 | Miska | |
? | Musiikki | 10 | Ville/Miska |
Näyttösuunnitelmat, mockups (sisällytä raporttiin ja kerro näytöistä).
Pelin käyttöliittymä
Päävalikko
Options-valikko
Uuden pelin valikko
Highscore-valikko
Kauppavalikko