Göm menyn

TDDI02 Programmeringsprojekt

Projektförslag: Äventyrsspelskonstruktionssystem


Projektförslag: Äventyrsspelskonstruktionssystem

Med ett äventyrsspel (på engelska adventure game) brukar man mena ett spel där man går runt i en låtsasvärld genom att ge enkla textkommandon till datorn. Till exempel kan en dialog som ser ut så här utspela sig (spelarens inmatning är angiven i fetstil):
Welcome to adventure!! Would you like instructions?
> no
You are standing at the end of a road before a small brick
building. Around you is a forest.  A small stream flows out of the
building and down a gully.
> enter building
You are inside a building, a well house for a large spring.
There are some keys on the ground here.
There is a shiny brass lamp nearby.
There is food here.
There is a bottle of water here.
> take lamp
OK
> light lamp
Your lamp is now on.
> take food
OK
> eat food
Thank you, it was delicious!
> go west
You're at end of road again.
> drop lamp

(På många Unix-system kan man spela det här spelet genom att skriva "/usr/games/adventure".)

Den här uppgiften går ut på att skriva, inte bara ett äventyrsspel enligt ovan, utan ett system för att skapa sådana äventyrsspel. Man ska kunna skapa "platser" (som platserna "end of the road" och "inside building" i exemplet ovan), som man sedan kan "gå omkring" i när man spelar spelet. Man ska också kunna skapa "saker" (som nycklarna, lampan, maten och vattenflaskan ovan), som spelaren kan plocka upp och bära med sig mellan de olika platserna.

Ett exempel på hur det skulle kunna gå till att skapa platser, koppla ihop dem, och sedan gå mellan dem, kan se ut så här:

> plats tompas rum
*** Felaktigt kommando. Rätt format: plats NAMN
> plats tompas-rum
> plats korridoren
> utgång tompas-rum öster korridoren
> utgång korridoren väster tompas-rum
> gå öster
*** Du befinner dig ingenstans än, så du kan inte gå någonstans!
Hoppa först till någon plats på kartan med kommandot "hoppa"!
> hoppa tompas-rum
> titta
Du befinner dig nu på platsen som heter 'tompas-rum'.
Här finns ingenting.
> öster
*** Felaktigt kommando. Skriv 'hjälp' eller '?'.
> gå öster
> titta
Du befinner dig nu på platsen som heter 'korridoren'.
Här finns ingenting.
> skapa svärd
> titta
Du befinner dig nu på platsen som heter 'korridoren'.
Här finns: svärd.
> tag svärd
> saker
Du bär på: svärd.
> titta
Du befinner dig nu på platsen som heter 'korridoren'.
Här finns ingenting.
> 

När man konstruerat ett spel måste man kunna spara det på en fil, så att en spelare kan spela det. Spelaren ska förstås inte ha tillgång till de särskilda spelskaparkommandona.

Följande saker måste äventyrsspelskonstruktionssystemet klara av:

  • Det ska gå att skapa platser ("rum") med kopplingar ("dörrar" eller "utgångar") emellan dem.
  • Det ska gå att gå omkring bland dessa platser.
  • Det ska gå att skapa saker, gärna med beskrivningar.
  • Det ska gå att plocka upp dessa saker, bära runt dem mellan platserna, och släppa dem.
  • Det ska gå att "stänga av" de olika konstruktionskommandona, så att en vanlig spelare kan spela äventyrsspelet som man konstruerat.
  • Det ska gå att spara ett spel som man konstruerat på en fil.
  • Det ska gå att ladda in den filen, och antingen spela spelet eller jobba vidare med konstruktionen.
Ni får förstås utöka systemet med fler funktioner, till exempel så att det går att skapa saker som går att använda till olika ändamål, varelser av olika slag (vackra monster som man kan rädda från eldsprutande prinsessor), låsta dörrar som bara kan öppnas med vissa nycklar, poängräkning, osv.

"Roguelike" som ett alternativ?

Ett alternativ på ovan äventyrsspel kan vara något mer åt "roguelike"-hållet, där spelaren går runt i en "rut-baserad" värld och dräper monster och samlar magisk utrustning som gör spelaren mäktigare. Sådana spel får ofta sin komplexitet från flera olika typer av spelar- karaktärer såsom krigare, magiker, etc, och de olika formerna av utrustning som går att hitta, som ofta är bättre lämpade för vissa typer av karaktärer än andra. T.ex. passar ett svärd bättre på en krigare, medans en magiker nog kan ha bättre användning av en stav. Ofta ingår även ett element av att "levla up" när man dräpt tillräckligt många ondingar.

Kända exempel på eller relaterat till den här genren är Nethack, Dwarf Fortress, Dungeons of Dredmor, men också mer fritänkande omtolkningar av konceptet såsom Diablo, Spelunky och FTL: Faster Than Light.


Sidansvarig: Filip Strömbäck
Senast uppdaterad: 2017-06-26