Et spil består ofte af forskellige elementer, det kan være man skal gemme sin progress, der er måske en procedual dungeon generator, eller som jeg kommer ind på her et mission/quest system.
Et spil med mange elementer kan godt hurtigt blive uoverskueligt, eller hvis man arbejder som en del af et team, kan man løbe ind i fejl, som ikke nødvendigvis er fejl men i stedet et resultat af et commit/sync fra en af sine medarbejdere, det kan derfor godt betale ikke bare at dele sit spil op i små projekter, men også at holde disse projekter seperat fra en master, og andre små projekter som ens hold kammarater måske arbejder på.
I dette tilfælde vil jeg gerne lave et 2D spil men jeg vil ikke resikere at ødelægge mit spil med elementer som ikke er klar til at blive implementeret, derfor vælger jeg at arbejde med Quest systemet uden for den RPG varden jeg lavede i sidste post.
Denne måde at arbejde på er ikke som sådan et problem for Unity da C# har værktøjet "namespace" som lader mig bundle mine scripts sammen hvilket kan hjælpe mig meget når jeg på et tidspunkt skal implementer mit questing system i min RPG verden. (Unity vil her hjælpe med sin Export/Import custom package funktion)
Et andet + ved at arbejde opdelt på den her måde er at jeg kan teste mine scripts og deres virkemåde med gameobjects i mine scener uden at jeg skal oprette en scene og populere denne med "rigtige" characters/game objekter.
Denne gang har jeg arbejdet med mit quest system, jeg har opsat en quest database samt (som udgangspunkt) 2 forskellige quest kategorier (dræb x.antal af y.monstre samt find x.antal af y.genstande)
ligesom jeg har sat frameworket op til at lede efter items fra en database, og monstre fra en database derudover kan jeg også tilføje quests til en database noget som ved senere videre udvikling kan blive grundpillen til såkaldte "Radient Quests" (Random quests) hvor questens formål, complete conditions og rewards kan randominiceres.
Testene har jeg foretaget ved at binde quest giver componenter til knapper lige som knapper er blevet brugt til at incremente min progress i en quest. Når mit System implementers i Master spillet skal qusts gives af NPC, lige som et mål som fx: dræb 1 dæmon skal opfyldes ved at dræbe en dæmon i en battle.
som afslutning på quest bundler jeg ALLE quests specifikke scripts i namespacet "QuestSystem" og exportere dette til en Unity package.
Link til Github
