Master of Magic simulering

Vi er 3 dataloger på Aalborg universitet, der har tænkt os at simulere Master of Magic: en gammel suveræn klassiker inden for tur-baseret strategi fra 1993, og udvide spillet blandt andet med multiplayer funktionalitet. Samtidigt er spillet et programmeringssprogligt- og algoritmisk eksperiment fra vores side, i det vi har tænkt os at gøre verdenen kontinuer, og kode spillet i OCaml og Erlang. Spillet bliver open-source.

Spillet

Vores ændringer og tilføjelser

Den vigtigste tilføjelse, og det der i virkeligheden startede denne idé, er Multiplayer. Vi føler det er synd, at et så fantastisk et spil som Master of Magic, ikke muliggør spillere, at afprøve sine evner mod hinanden, eller til at samarbejde mod andre magikere. Dette ville ikke være et problem hvis AI'en i spillet var fornuftig, men det er den desværre ikke. Den måde, AI'en gøres mere udfordrende i spillet, er ved at den snyder; den starter med flere byer og resourcer, forsker hurtigere, og får langt flere resourcer hver tur. På trods af det, så når AI'en et „terskel“ i sin udvikling; på et tidspunkt holder den op med at udvide sig, og hvis du har holdt dig i live som spiller til den tid, så har du i virkeligheden vundet spillet. Det ville naturligvis også være interessant at udforske implementeringen af en fornuftig AI, men i første omgang vil vi gøre det muligt for flere spillere at spille mod hinanden.

Den mest markante, og stort set eneste, ændring vi har som eksperiment tænkt os at lave til vores simulering af Master of Magic er, at verdenen bliver kontinuer, i modsætning til at være et stort diskret gitter af felter. Dette introducérer naturligvis nogle komplikationer (i stedet for, at enheder fylder „et felt“, så står de i et koordinat. For at enheder ikke skal ramme et koordinat for at interagere med det, der står i det, introducéres en „interaction radius“. Koncis repræcentation af verdenen i hukommelsen bliver svært, og pathfinding i kortet bliver langhåret), men til gengæld giver dette os en chance for at afprøve nogen interessante algoritmer af i praksis. Hvad der opnås med dette er, at verdenen bliver langt mere fleksibel, og realistisk repræcenteret. Man kan eksempelvis benytte sig bedre af terræn (En drage kommer ikke igennem en sprække i et klippe, en hydra kan ikke gå over en bro eller et meget tyndt stykke land, Nogen skibe kan segle ind ad en flod mens andre ikke kan, osv.). Desuden, så er det væsentlig lettere at „fake“ et diskret rum i et kontinuert rum, end omvendt.

Arkitektur

Lagdelt klient/server , med alt interfacing adskilt fra selve spilmotoren. Dette åbner op for muligheden at interface med spillet på mange forskellige interessante måder uden store anstrængelser. For eksempel, en idé vi har leget med i tankerne er, at alle nyheder/events hver tur bliver udskrevet på ens printer, og brugerinput eksempelvis håndteres ved at indscanne et stykke papir (Så får man oplevelsen af, at være en general, der opererer fra et underjordisk bunker). Andre oplagte idéer er ren tekst, curses, og, naturligvis, en fuld 3D-repræcentation af verdenen med interaktion som vi ellers kender det fra Master of Magic, Age of Wonders, og Heroes of Might and Magic spillene.

Klienter er tynde i den forstand, at kun interfacing kører på klient-siden. Alt spillogik kører på serveren.

Platform

Linux. Vi vil ikke anstrænge os for meget for at få spillet til at virke på flere platforme, men vi har dog ikke tænkt os at bestræbe os efter at umuliggøre dette.

Sprog

Spilmotoren har vi tænkt os at skrive i OCaml. OCaml er et urent funktionelt sprog med objekter.

Netværksdelen har vi tænkt os at skrive i Erlang.

Plan

I grove træk er vores plan som følger:

  1. Simulér Master of Magic i vores spilmotor.
  2. Udvid spillet. Idéer:
    • Spell-creation system, noget lignende det i Elder Scrolls serien af spil (Daggerfall, Morrowind, Oblivion)
    • Grænseløse byer. Idéen er, at byens indbyggere godt „kan“ hente resourcer vilkårlig langt væk, men jo længere væk resourcerne hentes, desto mindre får de ud af at gøre det (indtil det til sidst ikke kan betale sig).
    • Dynamik i antal spillere. For eksempel: hvor længe har en helt der er opnået Demigod status i Master of Magic lyst til, at tjene dig? Helten kunne være interesseret i selv at have et rige.
    • Alternative måder at spille spillet. Du kunne, for eksempel, starte spillet som en helt under en anden magiker…
    • Større potentiale for manipulering af landskab; skab nyt land ude på havet, få stykker jord til at svæve, byer under vandet, osv.
    • Race-creation system: Som en ægte gal videnskabsmand, ville en gal magiker ikke have lyst til engang at skabe „a race of atomic supermen to conquer the world!“? Naturligvis! Kunne evt. være del af Spell-creation system, hvorså man kan som valgmulighed gøre de fremkaldte væsner „varige“ for en forhøjet pris.

~~DISCUSSION:off~~

filofil/projekter/mom.txt · Sidst ændret: 16-09-2011 18:48 (ekstern redigering)
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0