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

Rakennekaavio

Luokkakaavio

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