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.
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