Vecka fyra: The Boss

Denna veckas artefakt som jag har arbetat med har varit en boss till vårt spel. Så vad jag har gjort som har varit boss relaterat är då dess rörelse, dess attack formationer och beteenden samt dess död.

Jag började med att bygga upp bossens skelett med de vanliga Entitets funktionerna och sedan lägga in funktioner som är speciella för just bossen. Vad som skiljer bossen från de vanliga fienderna är att bossen har olika ”states” som ändrar dess beteenden och attackmönster samt variabler som t.ex. ”hp” som är då en liv räknare för bossen. Bossen har sex olika lägen, vilka är ”Going”, ”Idle”, ”nr1”, ”nr2”, ”nr3” och ”Dead”. ”Going” är det läge som bossen befinner sig i när han börjar gå in till mitten av skärmen. ”Idle” är när bossen står stilla och väntar på att få gå in i ett av sina attacklägen, som är ”nr1”, ”nr2” eller ”nr3”. Bossens attacklägen består av att han skjuter projektiler överallt eller mot spelarens håll i olika varianter, på bilden nedan kan man se state ”nr1” när bossen skjuter projektiler runt om sig. Sista läget ”Dead” är det läge som bossen hamnar i när dess liv har blivit noll. Bossen tar hand om dess lägen internt med en variabel som håller koll på vilket läge den befinner sig i. Jag hade i början av arbete en tanke på att alla lägen på bossen skulle skötas externt via ”state” klass. Detta var min första plan då det är tänkt att vi ska ha en unik boss för varje nivå, vilket kommer att bli tre stycken som det ser ut just nu. Detta skrotades dock för att jag visste inte hur jag skulle göra för att bygga den externa klassen till att passa för alla våra bossar. Om spelets alpha inte hade varit denna vecka samt att jag hade inte behövt oroa mig för andra uppgifter så hade jag troligtvis försökt med denna lösning. nr1

Alla lägen i bossen är ungefär som en ”Update” funktion. Bossen tittar först vilket läge den befinner sig i innan en funktion för respektive läge körs, vill säga att läge ”nr1” har sin egen funktion. Denna lösning ger många rader kod i boss filen, men är mycket simplare, gick snabbt att göra och kräver inte skapande av en klass som håller koll på  allt detta. Bossen kommer att se ut så här tills det uppstår ett problem eller tills skapandet av boss nummer två, då jag kommer att ha en referens punkt till att skapa det bästa systemet till att skapa bossar. Vad jag hade önskat är att jag skulle ha haft mer tid på bossen än på andra delar av projektet, för att det hade varit ganska grymt att visa upp en boss redan i alphan.

Annonser
Vecka fyra: The Boss

2 reaktioner på ”Vecka fyra: The Boss

  1. Då så, veckans kommentar:

    Jag förstår ganska bra utifrån vad du skriver hur du får bossen att göra som du vill, fast jag hade gärna sett lite kod som exempel med. När du säger att den är ”ungefär” som en update funktion gissar jag att du har antingen har flera funktioner med olika ”lägesinformation” som används som argument när du kör update i er motor, eller är det mer av en switch?

    Jag ser även skillnad mot förra veckan där fiender byttes ut mot döda varianter (eller åtminstone läste jag det så). Hur kommer det sig att den skillnaden kom till, eller är det mer ett specifikt fall då det händer något annorlunda när bossen är död? Jag är också lite osäker hur du menar med ”problem” när du säger att bossen ser ut så här tills dessa uppstår. Menar du problem med bossens beteende i spelet eller problem med hur den var uppbyggd?

    Bra skrivet dock om varför du gjorde som du gjorde med tanke på det stora antalet kodrader. Att ha Alpha inkommande är alltid en bra anledning, så länge som man vet att koden kan bli bättre och mer lättläst.

    Det hade även varit spännande att se fler bilder, eller få höra om det för närvarande är några buggar eller intressant beteende när bossen byter states.

    Gilla

  2. Du beskriver tydligt vad du arbetat med under veckan och hur arbetet utfördes, du beskriver också orsaken till varför koden för att byta states körs av bossen och inte i en separat klass. Jag skulle dock vilja se en mer djupgående beskrivning av hur bossens beteenden ändras genom de olika statesen och exakt hur bossen byter states.

    Sedan när du beskriver vad som skiljer bossen från andra entiteter säger du att states ändrar på “variabler som t.ex hp”. Jag antar att du menar att bossens states ändras efter värdet på variablen och inte tvärtom.

    Det är också intressant att se hur andra grupper använt sig utav states. Vi använde oss dock av states i ett annat syfte, i vårt spel används de för att ge fienderna olika beteenden baserat på om spelaren har blivit upptäckt eller inte. Vi gjorde också en separat klass som sköter våra states istället för att fienden skulle sköta det själv. Vilket nog funkar bättre i vårt fall.

    Det ska bli kul att se bossen implementerad när jag spelar erat spel på nästa speltest.

    Gilla

Kommentera

Fyll i dina uppgifter nedan eller klicka på en ikon för att logga in:

WordPress.com Logo

Du kommenterar med ditt WordPress.com-konto. Logga ut /  Ändra )

Google+-foto

Du kommenterar med ditt Google+-konto. Logga ut /  Ändra )

Twitter-bild

Du kommenterar med ditt Twitter-konto. Logga ut /  Ändra )

Facebook-foto

Du kommenterar med ditt Facebook-konto. Logga ut /  Ändra )

Ansluter till %s