Deze serie gaat uit van enige kennis over de werking van game-engines. Lees zeker even ons introducterende artikel.

De naam van de Zweedse ontwikkelaar DICE, de afkorting voor Digital Illusions Creative Entertainment, is goed gekozen. Sinds de lancering van Battlefield 3 heeft de ontwikkelaar zich bewezen als technisch wonderkind. De Frostbite Engine, die oorspronkelijk ontwikkeld werd voor de console-exclusieve game Battlefield: Bad Company, dient de laatste paar jaar als de basis voor grote EA-licenties als Need for Speed en Command & Conquer. Frostbite kenmerkt zich niet alleen door zeer realistische beelden, maar ook door gigantische (multiplayer)omgevingen en vernietigbare omgevingen.

Battlefield: Bad Company

Grafische trucjes

Waar de eerste Frostbite-engine vooral bedoeld was als console-engine (de engine ondersteunde Windows pas vanaf versie 1.5), daar draait Frostbite 2 toch primair om krachtige PC’s. De engine specialiseert zich op vijf door DICE geïdentificeerde pilaren: renderen, vernietiging, schaal, animatie en geluid. We zullen op de eerste drie van deze pilaren wat verder ingaan, te beginnen met het render-proces dat ook bij de Unreal Engine en CryEngine al besproken werd.

Hoewel games in Frostbite 2 er uitstekend uit zien (en misschien zelfs tot de technisch meest indrukwekkende van het moment horen) heeft de engine geen enorm revolutionaire technieken voor het eerst toegepast. Toch wil dat niet zeggen dat er niet enkele interessante effecten te vinden zijn in de engine. Zo maakt Frostbite gebruik van quasi-realtime radiosity, een techniek waarmee punten die niet direct bereikt worden door licht toch enigszins verlicht worden, zodat schaduwen gedeeltelijk vervagen. Dit oogt een stuk realistischer dan schaduwen met harde lijnen. Daarnaast heeft DICE een techniek ontwikkeld om het Bokeh-effect, waarbij de achtergrond van een scène wazig wordt gemaakt, te benaderen met hexagonale blur. Dit oogt een stuk mooier dan de ronde Gausiaanse blur die in de meeste game wordt toegepast.

Grote slagvelden

Een van de belangrijkste onderdelen van de engine is het mogelijk maken van een grote schaal. Hoewel ook engines als de CryEngine grote omgevingen ondersteunen, betekent de multiplayer van Battlefield dankzij de vele spelers en benodigde soepele gameplay dat Frostbite hierin moet uitblinken. De engine focust zich daarom op schaalbare details, wat in de ogen van DICE betekent dat de kijkafstand, de snelheid waarmee door een omgeving bewogen kan worden en de hoeveelheid kleine details dynamisch kunnen worden aangepast. Frostbite gebruikt hiervoor een hiërarchische aanpak die eerder in engines voor vluchtsimulators gebruikt is. Via een slim algoritme kan zo meer of minder detail van een omgeving gerenderd worden gebaseerd op de positie van de camera.

Net als bij de meeste moderne game-engines betekent dat overigens dat Frostbite in staat moet zijn om efficiënt data te streamen. Iedereen zal het geklaag van ontwikkelaars omtrent het geheugen van consoles bekend in de oren klinken, en de reden hiervoor ligt bij het laden van data. Harde schijven en fysieke media zijn relatief langzaam in het inladen van data als 3d-modellen en textures, terwijl fysiek geheugen een stuk sneller is. Met slechts 512 MB werkgeheugen in de consoles (waarbij het geheugen van de PlayStation 3 ook nog eens opgesplitst is in twee losse helften van 256 MB) is dit efficiënt inladen van groot belang. Ter illustratie: het gemiddelde Battlefield 3 level heeft alleen al 1.5 GB aan textures. Frostbite (en ook andere game-engines) lost dit op door data dynamisch in te laden. Op die manier kunnen de grote slagvelden van Battlefield werkelijkheid worden.

Vernietiging

Waar Frostbite zich allicht het meest onderscheidt, is in de physics engine. De Destruction-techniek die DICE gebruikt, maakt het mogelijk om grote delen van het level te slopen. Hoewel vernietiging van de omgeving al sinds de Geo-Mod Engine van Red Faction technisch haalbaar is, is de implementatie van Frostbite veruit het meest geavanceerd. De engine is daardoor een van de marktleiders op het gebied van omgevingsdestructie.

Frostbite 2 maakt voor de destructie gebruik van Volume Distance Fields. Op de plek in het 3d-model waar een explosie plaatsvindt, wordt door de engine een bol geplaatst. Onder water heeft de engine een tweede, vernietigd, model van het object en op basis van de bol berekent de engine welke stukken vernietigd gerepresenteerd moeten worden. Bovendien plaatst de engine textures rondom het explosiegebied, waardoor het lijkt alsof ook het gebied rondom het gat beschadigd is. Daarmee is het overigens nog niet mogelijk om te simuleren hoe een huis in elkaar zou storten. Voor dergelijke effecten zullen andere physics-berekeningen moeten worden uitgevoerd.

De toekomst van EA

Twee jaar na het verschijnen van Frostbite 2 en Battlefield 3 zit DICE overigens niet stil. Eind dit jaar moet de derde versie van de engine al weer het levenslicht zien, met Battlefield 4 als paradepaardje. Erg concrete informatie over verbeteringen zijn er vooralsnog echter niet. Wel weten we dat Frostbite 3 verbeterde tesselatie biedt en verder vernietigbare omgevingen mogelijk moet gaan maken. Tevens zal de engine ondersteuning bieden voor de next-gen consoles, en daarmee vermoedelijk ook een hoop nieuwe grafische pracht.

Overigens is het de vraag of Frostbite ooit andere games dan die van EA zal ondersteunen. Het ligt voor de hand dat EA de engine als eigen troef achter de hand wil houden, zoals ook Bethesda dat lijkt de doen met de nieuwste versies van id Tech. Daarmee zijn Frostbite en de toekomst van EA nauw verweven. Tegelijkertijd is de bruikbaarheid van de engine nog onduidelijk. De eerste versie van de Frostbite Engine stond berucht om het feit dat het DICE een dikke week koste om deze te installeren op PC’s buiten het kantoor. Hoewel dit sinds de nieuwere versies flink verbeterd zou zijn, is het feit dat DICE op dit moment geen mod-ondersteuning – vaak toonaangevend voor de bruikbaarheid van een engine – biedt enigszins verontrustend. Gezien games als Dragon Age III: Inquisition en een nieuwe Mass Effect de engine verkiezen boven de vertrouwde Unreal Engine, vallen deze lichte zorgen hopelijk mee.