De ruimte is ongekend groot, voor een groot deel onbekend en is misschien de schuilplaats voor ongekend enge en wellicht wel ongelooflijk vredelievende aliens. Het ziet er naar uit dat onze generatie niet zelf naar de sterren zal reizen, maar gelukkig komen we met games als Sword of the Stars een heel eind. Sword of the Stars is een zogenaamde 4X game. Een genre dat nog niet zo bijzonder veel titels kent. Het spel wordt uitgeven door de Nederlandse publisher Lighthouse Interactive en in samenwerking met deze firma brengen we jullie deze Developer Diary's, waarin de ontwikkelaars van Kerberos een toelichting geven op de gemaakte keuzes tijdens de ontwikkeling van het spel.

Vandaag zijn we aanbeland bij het vierde deel van het ontwikkelaarsdagboek, waarin programmeur Darren Grant aan het woord komt. Hij vertelt over de unieke Mars Engine, die de motor vormt achter de unieke mix van turn-based en real-time strategie in Sword of the Stars.

Lees ook de eerdere delen uit ons ontwikkelaarsdagboek:

Deel 1: De totstandkoming van Sword of the Stars Deel 2: Van papier naar beeldscherm Deel 3: Het ontwerp van de rassen

Hoi, ik ben Darren Grant, lead programmer bij Kerberos Productions. Ik zal jullie niet lastig vallen met software engineering en wetenschappelijke programmeringsystemen.  Ik schrijf dit stuk om de visie op de Mars-engine, onze mix van tactiek en strategie en de rol daarvan in het maken van Sword of the Stars duidelijk te maken. Het is maar een kort verhaal van de Kerberos-filosofie en hoe de motor op gang kwam, dus geen lange lijst met features. Met de Mars-engine hadden we een unieke mogelijkheid om van onder af aan een gecodeerde basis te programmeren tot een compleet nieuwe klasse van hybride real-time combat/turn-based strategiegames, zonder gestoord te worden van buitenaf. Ondanks de grote mate van vrijheid die we kregen, overigens niet normaal in de game development, zouden deze twee aspecten alleen al een té grote opdracht zijn om te realiseren voor slechts een paar programmeurs. Maar om het dan maar op te geven? No Way! We zijn gewoon begonnen met wat we al wisten en we gingen ervoor, gebruik makend van onze conventionele gamewijsheid. Dit is de ware les van Mars en Kerberos, een houding die goed werkt voor iedereen die serieus overweegt het onmogelijke te bereiken. De eerste ontwikkelingen waren gefocust op wat het beste element van Sword of the Stars zou worden: real-time combat. Niet zomaar een paar icoontjes van scheepjes die elkaar beschieten in een automatisch gevecht en al tollend het loodje leggen, maar levensechte gevechten in een 3d omgeving waarin ieder schot vanuit iedere hoek uitmaakt. Doordat we al eerder real-time combat hadden verwerkt in games, denk aan Homeworld, Cataclysm en Treasure Planet: BAP, konden we onze ervaring gebruiken en begonnen we met dat wat we al wisten: een tactische game interface en close quarters battle engine geprogrammeerd met C++. Zelfs in de eerste versie gaven we de speler directe controle over de schepen die bewogen rond het gevechtsgebied en elkaar beschoten met op de polygoon nauwkeurig geschut. In de twee maanden die daarop volgden, ontwikkelde de game vrij snel, compleet met een standaard entiteitsysteem dat zich snel wist aan te passen aan een aantal basis soorten van ruimteobjecten zoals asteroïden, planeten en andere indringers. Het was zo geschreven dat er duizenden verschillende combinaties van schepen en wapens mogelijk waren, slechts beperkt door het feit dat de benodigde art en data files wel verkregen moeten worden. Dit was natuurlijk erg spannend en inspirerend! Hoewel dezelfde systemen in het uiteindelijke spel nog steeds bestaan, weet iedere ontwikkelaar dat het nog een heel eind is van een technologische demo naar het complete spel. En dan zat hier nog niet eens het turn-based aspect bij inbegrepen.In de daarop volgende maanden kwam er een uitbreiding van de Mars-engine, een ‘in-house dynamics and collision sytem’, upgrades voor de navigatie van de schepen, een traffic-controller zodat de schepen het collision system niet overmatig zouden gebruiken, een compleet nieuw framework en nog een hele hoop geweldige nieuwe ship sections en wapensoorten om alles op een goede manier te kunnen gebruiken. Nu moet je begrijpen dat onze hardwerkende designers niet alleen maar bezig waren met het combat design en met het verwerken van de aanwezigheid van ons bedrijf in de game, maar ook met het creëren van het fundament dat het turn-based apsect zou samen voegen met hetgeen we al hadden. Naast het ontwikkelen van de combat engine nam het strategische model dus steeds beter vorm.

Bij het bedenken van een nieuw grondgebied is het hard nodig dat iedereen een beetje van alles doet omdat er gewoon niet genoeg van jou is om te veel te gaan specialiseren. Één van de aspecten van de conventionele gamewijsheid luidt dat er een aparte expert voor ieder onderdeel nodig is omdat AAA titels zo verschrikkelijk complex zijn. Maar dat is niet altijd waar. In ons geval was het geen overbodige luxe geweest als we een aantal specialisten meer hadden gehad, zeker niet wanneer onze hoofden weer tolden van alle dingen die we nog te doen hadden, maar het was niet noodzakelijk voor het succes. Er waren dus drie van onze hoofdprogrammeurs hard aan het werk met Mars en Sword of the Stars. Voor mij betekende dit dat ik moest zorgen voor het real-time combat aspect en de AI en daar heb ik dan ook in al mijn ijver voor gezorgd. Dave is onze netwerkprogrammeur. Daarnaast heeft hij het voor elkaar gekregen om de complete strategie voor de game te schrijven. Dat is nogal een werk. Rich heeft naast zijn werk als graphics programmeur ook nog vele game mechanismen weten toe te voegen en heeft voor de sound programmering gezorgd. Het resultaat is wel dat we een trio zijn geworden dat je alles kan vertellen uit ieder deel van de game. Voor veranderingen en het bewerken van bugs is dit erg gunstig. Ik heb zowel in grote als in kleine teams gewerkt en hoewel het werk in kleine teams veel zwaarder is, het is ook veel fijner. Om een game door en door te kennen is niet alleen een heel werk, het geeft je ook een machtig gevoel. Het is net als in het hart van een enorme stoommachine zitten: ondanks al het lawaai om je heen weet je toch precies op welk moment er iets fout gaat, puur omdat je weet hoe dat klinkt. Mars is ontworpen om zich te kunnen aanpassen. Dat kan door simpelweg een aantal data files te veranderen. Ja, voor echte uitvindingen moet je je handen vuil maken en bestaande codes gebruiken. Deze filosofie is telkens weer toegepast wanneer spelers een spannender en uitdagender alternatief wordt geboden dan de formele 4x games. Uiteindelijk is Mars ontworpen om als kern te dienen voor een hele serie Kerberos games, zowel space games als andere genres. Van het opkomende Northstar Project tot de SotS uitbreidingen die alweer in voorproductie zijn, tot alle MODS die er maar te bedenken zijn, Mars is ontworpen om te beginnen bij een idee en het vorm te geven. Het is een geweldig en zeer handig programma om games mee te maken. Mijn programmeurs en ik zijn er dan ook apetrots op. Ik hoop dat jullie allemaal veel plezier zullen hebben van ons harde werk!