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.


Thomas Padron-McCarthy, 20 september 1998.

En löst formad tilläggsidé 2012 (kräver mer eftertanke!)

Det går på ett relativt enkelt (men svårare!) sätt att ta äventyrsspelskonstruktionssystemet in i den grafiska eran (på en nivå liknande spel som Myst eller Riven). Platser eller saker som skapas beskrivs då genom en bilder istället för en textuell beskrivning och man använder musklick för att spela (men textkommandon för att konstruera).

Antag t.ex. att jag vill lägga in mitt kontor som ett rum i spelet. Jag tar först bilder på kontoret ur flera vinklar. Sedan lägger jag med ett textkommando in varje bild tillsammans med information vad som blir nästa bild när ett område i bilden klickas. När spelet startas visas bilderna och jag flyttar mig genom att klicka på rätt ställe i bilden.

Observera dock att detta skulle kräva en hel del tid och engagemang utanför kursen (från alla i gruppen) för att skapa en grunduppsättning bilder inför projektdemo (ut med kameran och fota platser alltså, och sedan en hel del tid att lägga in dem rätt i ett exempelspel.) Det går t.ex. att tänka sig en demo där man kan klicka sig runt mellan SU-salarna och flytta olika saker mellan salarna.


Sidansvarig: Klas Arvidsson
Senast uppdaterad: 2012-08-23