Naar inhoud springen

Engine

Uit Wikipedia, de vrije encyclopedie
Zie Engine (doorverwijspagina) voor andere betekenissen van Engine.

Een engine is de softwarematige basis van een computerprogramma. Het genereert de werking van het programma. Bij computerspellen wordt het meestal de 'game engine' genoemd. Het woord engine is Engels voor motor, en dit is erg toepasselijk aangezien de game engine figuurlijk de motor voor het spel is.

De rendering engine bevat allerlei technieken; getoond is het bloom effect in Nexuiz.
De beweging van objecten wordt geregeld door de physics engine.

De gemiddelde game engine is onder te verdelen in een aantal modules die elk een specifieke taak hebben. Deze modules zijn in theorie onafhankelijk van elkaar en kunnen los van elkaar geschreven, gekocht of verkocht worden door een producent. Enkele voorbeelden van zulke modules:

  • De rendering engine: de module die berekent wat er op het scherm moet komen. De rendering engine bepaalt de positie van de 3D-modellen en plaatst de texture erop. De lichtbronnen worden bepaald en daarmee dus ook de belichting van de omgeving. Vervolgens worden er allerlei technologische trucs uitgehaald om het geheel er zo goed mogelijk uit te laten zien. Hierbij valt te denken aan anti-aliasing, trilinear filtering, bump-mapping, etc. De rendering engine communiceert sterk met de videokaart van de computer. In het geval van Windows-systemen gebeurt dit meestal via het programma DirectX dat fungeert als vertaler tussen de engine en de videokaart. Een alternatief voor DirectX is OpenGL. OpenGL wordt het meest toegepast op het Linux-platform, maar kan ook op Windows gebruikt worden.
  • De physics engine: deze module moet ervoor zorgen dat de objecten in de spelwereld zich realistisch gedragen. De physics engine berekent welke krachten een object beïnvloeden en beweegt het object overeenkomstig met deze krachten. Te denken valt bijvoorbeeld aan zwaartekracht. Wanneer een model zich in de 'lucht' van de spelwereld bevindt en er sprake is van zwaartekracht, zal de physics engine het object naar beneden verplaatsen met de in de spelwereld aanwezige valversnelling.
  • De scripting engine: dit is de module die alle in scène gezette acties reguleert. Waar vroeger deze scènes werden getoond aan de speler door middel van videobeelden (cutscenes), worden nu de computergestuurde karakters en hun omgeving door de scripting engine gemanipuleerd volgens een vooraf bepaald script. Hierdoor wordt bij de speler de indruk gewekt dat hij niet alleen is in de spelwereld, maar dat hij deel uitmaakt van een groter geheel.

Een voor de hand liggend misverstand is dat er voor de kunstmatige intelligentie (AI) in het spel ook een engine is, maar dit is meestal niet het geval. Hoewel AI een belangrijk onderdeel van hedendaagse spellen is en het moeilijk is om een goede kunstmatige intelligentie te schrijven, is er geen globale spelmodule die de AI aanstuurt. De kunstmatige intelligentie is een functie van een object in het spel. Verschillende objecten kunnen verschillende vormen van AI gebruiken. Objecten die een kunstmatige intelligentie gebruiken zijn over het algemeen nog gewoon onderhevig aan de andere engines, met name de physics engine. Dat wil zeggen, wanneer een object door de AI op een afgrond afgestuurd wordt, zal het object nog altijd dankzij de physics engine de bodem van de afgrond bereiken.

Game engines zijn een groot goed in de game-industrie. Een goede game engine is een complex product en erg duur om te produceren. Vaak moet, om zo'n dure engine rendabel te laten zijn, de engine meermaals gebruikt worden (of onderdelen hiervan). Dit kan de producent zelf doen door meerdere games op deze engine uit te brengen, of door andere games producenten de engine onder licentie te laten gebruiken. Dit heeft ook grote voordelen voor de andere producent aangezien deze een game kan ontwikkelen op een goede engine zonder de ontwikkelingstijd en ontwikkelingskosten die met zo'n engine gepaard gaan. Hierbij dient wel rekening gehouden te worden met het feit dat hoe nieuwer een engine is, hoe duurder het is om er een licentie op te nemen. Oudere engines zijn goedkoper, maar het gebruik van een oudere engine kan resulteren in minder afzet. Het blijft dus een afweging.