Sverd

Arbeidet med Sverd og Bragder er kommet et stykke. Hele området rundt starten av spillet er tenkt ut, men ikke skrevet det ned skikkelig (vi har ideene, men ikke teksten). Det er derimot ikke historien jeg skal skrive om i dag, men Sverd, selve motoren bak spillet.

Da vi lagde Adventur Delux 2.0 (før Magnar og Glenn kom med nyheten om adventur.no) kodet jeg en motor til siden og spillet, men koden er ganske uoversiktlig og vanskelig å vedlikeholde. Så jeg skriver nå på en ny motor. Først tenkte jeg å bruke Zend Framework, men siden jeg så at jeg måtte forandre på flere ting for å få det til å passe til Sverd og Bragder, skriver jeg istedenfor på mitt eget rammeverk. Selv om jeg skriver på mitt eget rammeverk er det mange steder jeg kan bruke kode fra Zend Framework med ingen eller mindre modifikasjoner, skjønnheten bak åpen programvare (eller kildekode).

Til å håndtere de forskjellige sidene har jeg laget min egen implementasjon av MVC som jeg har døpt MMU. Det fungerer som et hvilket som helst annet MVC-rammeverk for å separere kode (Business logic) fra utseende.

For utseendet (m/ templates osv.) har jeg valgt å ta en snarvei ved å droppe en “template”-motor som f.eks. smarty og tillate php-kode i malene. Jeg tenkte en stund på maler med XML/XSLT, men jeg har ikke kunnskapene til det, og dessuten vet jeg ikke om jeg ville tjent noe på det. Siden jeg tillater php-kode i malene må jeg være streng med hva jeg tillater av php i malene, logikk og utseende skal tross alt være adskilt.

Bortsett fra selve spillet er ikke resten noe veldig interessant ettersom brukerhåndteringen osv. er veldig standard. Selvsagt har jeg sikkerhet i fokus, selv om vi ikke skal håndtere noen sensitiv data (dvs. den mest sensitive data-en vi lagrer som kan leses er epostadressen). Med PDO kan jeg bruke såkalte Prepared statements som i stor grad sikrer siden mot databaseangrep samtidig som all data sendt fra brukeren må filtreres manuelt av skriptet før den kan brukes.

Det som jeg synes er mest interessant er noe som også er med i den gamle koden, hvordan historien håndteres. Jeg har laget mitt eget XML-lignende format (jeg kan gjerne komme med mer informasjon om dette, hvis noen vil vite mer om det) og tolker av formatet. På denne måten kan forfattere lett skrive historien, og gjøre den interaktiv med variabler, betingelser (if, elseif, else), inkludering av andre sider og flere valg. Det er muligens ikke perfekt, men ingenting er perfekt.

Nå har jeg fått utløp for behovet mitt for å skrive noe i dag. Senere vil jeg kommer tilbake om detaljer rundt historien til Sverd og Bragder (uten spoilere).

Du kan følge med på responsen til innlegget med RSS 2.0-strømmen.
Du kan legge igjen en tilbakemelding eller en tilbakesporing fra din egen side.

Legg igjen en kommentar