Videogames

Wat is een Game Engine?

Auteur: Sofiia Pohut

Beoordeeld door: Meir Amzallag, CEO & Medeoprichter

Wat is een Game Engine

Wat is een Game Engine?

Een game-engine is een softwareframework voor het ontwerpen van interactieve ervaringen. Ontwikkelaars gebruiken game-engines tijdens de belangrijkste onderdelen van de ontwikkeling: bouwen en testen. Game-engines worden op verschillende platforms ingezet. Door dit mechanisme te gebruiken, wordt duidelijk hoe digitale programma's presteren in real-time en complexe simulaties, zodat makers geen low-level code vanaf nul hoeven te schrijven.

Wat zijn de componenten van een game-engine?

In moderne ontwikkelarchitectuur worden runtime-lussen beheerd door verschillende gelijktijdige systemen, waaronder functies zoals real-time rendering, ruimtelijke dynamiek, audioverwerking en scriptuitvoering. Elk subsysteem verwerkt gebruikersinvoer en levert real-time output.

  • Rendering-engine (Grafische pijplijn): Dit subsysteem transformeert 3D-gegevens, textuurmappings en wiskundige lichtmodellen in 2D-rasters van pixels die visueel aan gebruikers kunnen worden gepresenteerd.
  • Fysica-engine: Dit subsysteem omvatte de theorieën van kinematica, dynamica van starre lichamen, zwaartekracht, botsingen en gespecialiseerde vergelijkingen om de effecten te modelleren.
  • Audio-engine: Dit subsysteem is verantwoordelijk voor alles wat met audio te maken heeft, zoals de lokalisatie van 3D-geluiden, het mixen van geluiden, het laden van geluiden; en het afspelen van signalen en achtergrondgeluiden.
  • Scriptingcomponent en Logica: Dit subsysteem definieert het spelgedrag en de regels, en implementeert de spel-AI en de spelerinvoer/-interactie op basis van de gebeurtenissen die de ontwerpers hebben geprogrammeerd.

Deze functies zijn te vinden in diverse populaire commerciële producten. Bijvoorbeeld, Unreal Engine van Epic Games drijft high-fidelity cinematische titels aan, terwijl het ecosysteem van Unity Technologies een grote meerderheid van cross-platform mobiele games ondersteunt.

Wat zijn de verschillende soorten game-engines?

Game-engines worden gecategoriseerd op basis van hun doelen en beoogde hardware:

  • 2D-engines zijn specifiek ontwikkeld om sprites te beheren in een 2D-omgeving, rastergebaseerde beweging en pixelmanipulatie. Hiertoe behoren RPG Maker en GameMaker.
  • 3D-engines zijn specifiek ontworpen om matrices te manipuleren, verlichting in de ruimte te berekenen, volumetrische effecten en geometrische berekeningen uit te voeren in een 3D-coördinatensysteem. Deze engines omvatten Unreal Engine.
  • Mobiele Frameworks: Specifiek gemaakt voor ARM-architecturen met laag stroomverbruik, aanraakgebaseerde bedieningselementen, optimalisatie van energieverbruik en typische geheugenbeperkingen die op smartphones worden gevonden.
  • Webgebaseerde Engines: Geconfigureerd om te functioneren binnen browsers met WebGL, WebGPU en WebAssembly technologieën zonder een aparte downloadstap nodig te hebben (bijv. PlayCanvas of Phaser).
  • Modulaire Engines: Flexibele plug-in structuren die ingenieurs in staat stellen om bepaalde componenten uit te wisselen of te verwijderen voor aangepaste productieomgevingen.

Wat maakt een game-engine anders dan een gameframework of een renderingbibliotheek?

Industriestandaarden (te vinden in Game Engine Architectuur (2019) van Jason Gregory) schetsen duidelijke architectonische onderscheidingen tussen uitgebreide ontwikkelings-ecosystemen en softwarebibliotheken op lager niveau. De keuze van de abstractielaag beïnvloedt direct projecttijdlijnen.

Een renderingbibliotheek focust op pixelniveau bij interactie met graphics API's op lager niveau, bijv. OpenGL, DirectX, Vulkan, etc. Het werkt zonder enige ingebouwde ondersteuning voor audiosignaalverwerking of voor controllergegevens. Game-frameworks worden gebouwd met zeer basale scripts en lussen en bieden een architectonisch skelet. Dit is gunstig voor een structuur met lussen en scripts, maar bevat geen ingebouwde ondersteuning voor graphics of algemene assetbeheersystemen. Een volwaardige game engine combineert alle of de meeste productiecomponenten en -systemen in één enkele productiewerkruimte.

Softwarecategorie Primaire functie Voordelen Nadelen
Renderingbibliotheek Rendert geometrie en pixels. Uw keuze aan optimalisaties is in balans met de belasting van de software. Betekent dat u diverse systemen (fysica, audio, etc.) en ondersteunende tools volledig zelf moet bouwen.
Game Framework Bevat de gamecode en maakt het mogelijk om stromen van gamecode te positioneren. Hoge mate van architectonische vrijheid; codebasis is licht en flexibel. Gamecode kan worden geschreven en aangepast zonder de assets van de game te hoeven creëren.
Volledige Game Engine Biedt een game-ontwerp omgeving. Heeft betrekking op iteratief ontwerpen bij het overwegen van UI-constructie, drag-and-drop en exporteren naar meerdere besturingssystemen. Beïnvloedt de omvang van gecompileerde games, de benodigde tijd om te leren hoe de engine te gebruiken, en het ontwerp en de structurering van de ontwerpomgeving.

Wat zijn de voordelen van het gebruik van een game-engine ten opzichte van helemaal opnieuw bouwen?

Teams profiteren van kant-en-klare interactieve suites wanneer ze deze vergelijken met het proces van het vanaf nul coderen van een volledige kernarchitectuur.

  • Tijdstoewijzing: Het vanaf het begin ontwikkelen van een geheugenallocator, rendering pipeline en collision detection systeem kan meerdere jaren van een groep ingenieurs vergen; met een game engine kunnen ze vanaf dag één beginnen met het bouwen van de feitelijke gameplay.
  • Toegankelijkheid: Moderne engines stellen makers (artiesten, ontwerpers, schrijvers) in staat om deel te nemen aan de ontwikkeling, aangezien de systeemfuncties visuele scripting nodes, drag-and-drop scènehiërarchieën en intuïtieve tijdlijnen omvatten. 
  • Cross-Platform Implementatie: De engine beheert de complexiteit van de abstractielaag en maakt de implementatie van de code mogelijk voor PC, PlayStation, Xbox, Nintendo Switch, iOS en Android.

Hoe kies je de juiste game-engine voor jouw project?

Het kiezen van een interactieve omgeving omvat een beoordeling van de projectomvang en teamcompetenties. De volgende vraag kan helpen bij het maken van deze keuze.

  1. Wat is/zijn uw doelplatform(en) – mobiel, console, pc of web?
  2. Sluit de expertise van uw technische team aan bij de vereisten van de native taal van het framework (bijv. C++ voor Unreal, C# voor Unity, GDScript voor Godot)?
  3. Vereist het spelontwerp 2D lineaire ruimte of 3D coördinaatruimte?

Voordat u een definitieve beslissing neemt, controleer de compatibiliteit van de programmeertaal, de diepte van de documentatie, de beschikbaarheid van assets op de marketplace, de omvang van de communityondersteuning en de platformlicentiekosten.

Conclusie

Tot slot vormen game-engines de basis van processen voor nieuwe softwaresystemen. Moderne game-engines integreren meerdere subsystemen: rendering, fysica en audio. Deze geïntegreerde subsystemen zijn van invloed op de tijd die nodig is om de game te ontwikkelen, evenals de mogelijkheid om deze te implementeren en de videogame te verkopen op meerdere platforms.

Klaar om te beginnen?

Wij zijn in dezelfde positie geweest als u. Laten we onze meer dan 20 jaar ervaring delen en uw wereldwijde dromen waarmaken.
Mozaïekafbeelding
nl_NLNederlands