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.
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.
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.
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.
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.
I grove træk er vores plan som følger:
~~DISCUSSION:off~~