Projekt: Drabbning Projekthemsida: www.nada.kth.se/projects/prom03/drabbning Kurskod: 2D1362 Kursnamn: Programutvecklingsprojekt med mjukvarukonstruktion Uppdragsgivare: Pelle Mårtenson (pelle@kreativatankar.nu) PROJEKT- PRESENTATION DRABBNING Projektmedlemmar: Johan Boström (projektledare), johanbos@kth.se Linnea Drewitz, linnead@kth.se Frida Hjalmarsson, fridahj@kth.se Pontus Ilbring, pontusi@kth.se Borna Safai, borna@kth.se Fredrik Gustavsson, fredgson@kth.se Mattias Mårtensson, u14fj5u7@kth.se Jonas Wiklund, jowi@kth.se
Innehållsförteckning 1 Inledning...3 2 Spelidé...3 3 Bakgrund...3 4 Syfte...3 5 Presumtiva användare...4 6 Använd programvara...4 7 Funktioner...4 8 Användargränssnitt...4 9 Körexempel...5 9.1 Anslutning...5 9.2 Rekrytering...6 9.3 Utplacering av pjäser...6 9.4 Börja spela...7 2
1 Inledning Året är 1156. Läget i landet är oroligt och fienden står utanför gränsen. Som högsta befälhavare är det ditt ansvar att rekrytera en lämplig armé, organisera den och leda den till seger på slagfältet Välkommen till spelet Drabbning! Drabbning är ett spel för två till fyra personer och kan beskrivas som en blandning mellan schack och traditionella strategispel. Drabbning är ett spel som till skillnad från de flesta andra spel är baserat på skicklighet och inte tur. Till exempel förekommer inga tärningar. Spelarna har stora möjligheter att själva påverka spelet både i dess inledning och under spelets gång. Med den utvecklade programvaran kan två spelare spela mot varandra i via Internet. Spelet kan börja! 2 Spelidé Spelet Drabbning är ett strategiskt brädspel där målet är att besegra motståndaren genom att erövra dennes fana. De båda arméerna består av pjäser som symboliserar soldater samt lätt respektive tungt rytteri. De olika pjäserna har olika egenskaper vad gäller förflyttning och stridsförmåga. Varje armé har en unik pjäs, fanan, och det är denna pjäs som ytterst skall erövras. Drabbning skiljer sig från många traditionella spel. Till exempel är öppningen av spelet inte given eftersom spelarna själva får bestämma vilken uppsättning av pjäser de skall spela med och fritt får placera dessa pjäser på spelplanen. Taktik och skicklighet är satt i fokus istället för tur och tillfälligheter. 3 Bakgrund I kursen 2D1362, Programutvecklingsprojekt med mjukvarukonstruktion, ingår att i grupp arbeta med ett större projekt. Projektet som denna grupp har arbetat med har namnet Drabbning, och går ut på att konstruera ett datorbaserat strategiskt brädspel. Spelet kan enligt uppdragsgivaren och upphovsmannen Pelle Mårtenson, beskrivas som en blandning av Schack och Stratego. Spelet kan spelas av två till fyra personer, men är ännu inte lanserat. Gruppens uppgift var att göra en prototyp av spelet som skulle kunna användas för testning av regelsystemet. Prototypen ska kunna spelas av två personer. Testspelningen ska kunna ske via Internet. 4 Syfte Syftet med projektet är att utveckla ett testspel för att göra det enklare för uppdragsgivaren att göra volymtester samt finna luckor i spelets konstruktion och regelverk. I och med detta hoppas uppdragsgivaren att komma vidare med spelets utveckling och i framtiden kanske kunna lansera det på spelmarknaden. Därför är det viktigt att projektgruppens produkt kan vidareutvecklas. Produktutvecklingen ska även ske inom ramen av låga kostnader och enkelhet bl.a. vid installation. 3
5 Presumtiva användare I dagsläget är programmet ämnat för två typer av användare. Den ena är uppdragsgivaren, Pelle Mårtenson som vill utföra tester på sin spelidé. Den andra typen av användare är de spelare som hjälper honom med dessa tester. De förväntas ha god datorvana. Till exempel ska de kunna ta reda på sina aktuella ip-nummer. I ett längre perspektiv kan man däremot se flera typer av presumtiva användare. Förhoppningen är att spelet ska tilltala alla målgrupper, såväl unga som gamla, kvinnor som män. Under utvecklingen av programvaran har projektgruppen inte haft någon kontakt med någon annan användare är uppdragsgivaren. 6 Använd programvara Till arbetet med projektet har projektgruppen använt sig av versionshanteringssystemet CVS och Java 2 Standard Edition 1.4.2. Vi valde att använda CVS för att på så sätt enkelt kunna arbeta med olika versioner av spelet. Java valde vi för att det är enkelt och plattformsoberoende. 7 Funktioner Den prototyp som utvecklats är en interaktiv applikation med grafiskt användargränssnitt. De två spelarna ser varandras pjäser och förflyttningar i realtid, och de kan hela tiden orientera sig fritt på spelplanen oberoende av varandra. Nedan följer en sammanfattning av de olika funktioner prototypen kan erbjuda. Anslutning mellan server- och klientspelare via Internet. Val av pjäser och utplacering av dessa på spelplanen. Förflytta pjäser via klickningar med mus. Färgläggning av spelplanen och pjäserna vid olika drag för att underlätta för spelarna att utföra korrekta och taktiskt smarta val.? Attackera motståndare med enskild pjäs eller via gruppattack.? Kommunikation via textmeddelanden mellan spelarna. 8 Användargränssnitt Ett stort arbete har lagts ner på den grafiska utformningen av spelet. Detta för att göra applikationen så lättanvänd och tydlig som möjligt. Målsättningen har varit att spelarna skall få information och feedback från programmet under spelets gång. Detta i form av färgade rutor och pjäser och statusmeddelanden. Under en spelsession möts spelaren av fyra olika vyer, vilka presenteras nedan. 4
9 Körexempel Inledningsvis måste de båda spelarna komma överens om vem av dem som skall agera server under spelsessionen. Det har inte någon betydelse för själva spelet vem som agerar server. Det är endast av teknisk betydelse och inget spelarna efter själva anslutningen behöver bry sig om. 9.1 Anslutning Figur 1 visar det vy som öppnas då programmet startas. Den spelare som skall agera server väljer att fylla i rutan Agera server högst upp. Därefter anger han vilken port servern skall lyssna på. Port 9000 finns redan angivet som standard och kan användas. Viktigt är dock att båda spelarna har anger samma portnummer! Spelaren som agerar server klickar sedan på knappen Vänta på anslutning. Server-spelaren får nu invänta klient-spelaren innan nästa fas kan inledas. Den spelare som agerar klient väljer istället att fylla i rutan Agera klient, anger ipnumret till server-spelarens dator och lyssnarport, och klickar sedan på knappen Anslut. Observera att server-spelaren måste ha startat upp sin server innan klientspelaren ansluter sig för att en uppkoppling skall kunna upprättas. Längst ner i figur 1 finns en ruta kallad Inställningar. I denna ruta kan den spelare som agerar server ange vilka resurser (se Användarmanualen) som de två spelarna skall ha samt spelplanens storlek. Förvalda värden finns redan angivna i rutan. Observera att spelarna inte behöver ha lika stora resurser. Figur 1. Anslutning. 5
9.2 Rekrytering Då en anslutningen har upprättats vidtar rekryteringsfasen i spelet. Här skall spelarna oberoende av varandra välja vilka pjäser de skall spela med. I den övre vänstra delen av figur 2 avläses den totala resursmängden som spelaren har tillgänglig. En fotsoldat anses ha resurskostnaden ett, en lätt ryttare tre och en tung ryttare har resurskostnaden fem. Med spinner -knapparna kan spelaren nu välja hur många tunga respektive lätta ryttare som han vill spela med. Spelet räknar automatiskt fram hur många fotsoldater som då rekryteras. Till höger i figur 2 anges de olika pjäsernas karakteristika såsom snabbhet, kraft och resurskostnad (se användarmanualen för ytterligare information). När spelaren valt sin pjäsuppsättning trycker han på knappen Klar längst ner i det högra hörnet. Figur 2. Rekrytering. 6
9.3 Utplacering av pjäser I denna spelfas skall spelaren placera ut sina nyligen rekryterade pjäser (se figur 3). De rutor som pjäserna får placeras på är markerade med gul färg. Observera att spelarna inte kan se hur deras motståndare placerar ut sina pjäser i detta skede. Om hela spelplanen inte får plats så används dragreglagen, ett horisontellt och ett vertikalt, för att se omkringliggande rutor. Till höger i figur 3 markeras den pjästyp som skall placeras ut med blå fet text. När man placerat ut alla pjäser av en viss typ klickar man på texten för nästa pjästyp i den högra kolumnen för att placera ut dessa. Ångrar man utplaceringen av en viss pjäs klickar man på pjäsen och sedan på den ruta man vill flytta den till. Avsluta med att trycka på Klar längst ner i det högra hörnet när alla pjäser är utplacerade. Figur 3. Utplacering av pjäser. 9.4 Börja spela När båda spelarna har placerat ut sina pjäser kan spelet börja (se figur 4). Programmet lottar vem som skall börja spela vilket meddelas i Chat-rutan längst ner till vänster. Spelaren i tur klickar på den pjäs som han vill förflytta. Denna markeras med en grå ram och de intilliggande rutor dit pjäsen kan förflyttas markeras med gul färg. 7
Figur 5. Möjliga rutor att förflytta sig till. Figur 6. Förflyttning utförd. Utför förflyttningen genom att klicka på destinationsrutan för pjäsen. För att attackera en pjäs markerar man pjäsen som skall attackera och sedan den pjäs som skall attackeras. Den attackerade pjäsen tas bort från planen och den attackerande pjäsen flyttas fram till den ruta som den attackerade pjäsen stod på. Figur 7. Före attack. Figur 8. Efter attack. Den spelare som slutligen lyckas erövra den andres fana är vinnare av spelet. Under spelets gång kan en spelare alltid välja att kapitulera. Detta görs genom att man klickar på knappen Kapitulera ovanför Klar-knappen. En sann Drabbningspelare skulle dock aldrig välja detta alternativ! För utförligare exempel och information om spelförfarandet se användarmanualen. 8