Wat is een OpenGL® Game Engine?
Een Open Graphics Library® (OpenGL®) game-engine is een programmeerbibliotheek of andere verzameling software die is bedoeld om het maken van videogames te vergemakkelijken door een volledig geïmplementeerd framework te bieden waarop kan worden gebouwd om een aangepaste toepassing te maken. De basis voor elke OpenGL®-game-engine is de interface tussen programmeerlogica op een hoger niveau en de OpenGL®-bibliotheken die op hun beurt toegang hebben tot grafische hardware op laag niveau. Sommige motoren richten zich primair op eenvoudige toegang tot speciale grafische functies en algoritmen door geoptimaliseerde functies voor effecten zoals vervaging, lichtkaarten of aangepaste shaders op te nemen. Meer gebruikelijk voegt een OpenGL®-game-engine verschillende niveaus van functionaliteit toe via bibliotheken van een hoger niveau, scripttalen of zelfs aangepaste ontwikkelomgevingen. Enkele van de functies van verschillende OpenGL®-game-engines zijn routines voor gebruikersinvoer, schaduwweergave, een grafische gebruikersinterface (GUI), netwerkondersteuning, fysica en geavanceerde timingmechanismen voor vloeiende animaties.
Bij het maken van spellen die OpenGL® gebruiken, of ze nu tweedimensionaal (2D) of driedimensionaal (3D) zijn, moet een behoorlijke hoeveelheid programmeercode worden geschreven om de meestal statische OpenGL®-codebibliotheken te integreren in een dynamische spelomgeving waarin objecten veranderen en bewegen en gebruikers kunnen communiceren met de virtuele wereld. Een primair doel van een OpenGL® game-engine is het verwijderen van de noodzaak om dit type boilerplate-code te herschrijven en in plaats daarvan een consistent en gestructureerd raamwerk te bieden om een game rond te bouwen. OpenGL® bevat alleen functies voor het weergeven of weergeven van afbeeldingen op een apparaat, dus alle spellogica moet rond die kern worden gewikkeld, inclusief het ontwikkelen van een manier om objecten te integreren die binnen een scène bewegen of die kunnen worden toegevoegd of verwijderd uit een scène. Een structuur die OpenGL® gebruikt voor dynamische grafische objecten, wordt meestal een scènegrafiek genoemd en vormt de basis voor veel OpenGL®-spelengine-implementaties.
Een andere reden waarom een OpenGL®-game-engine door ontwikkelaars zou kunnen worden gebruikt, is het verwijderen van de noodzaak om verschillende ongelijksoortige elementen van een game in een enkel framework te integreren, wat lang kan duren om het goed te doen. Gebruikersinvoer via een toetsenbord, GUI-elementen zoals een venster om ja of nee-opties te selecteren, en zelfs optimalisaties voor bepaalde populaire grafische kaarten kunnen allemaal worden meegeleverd met een OpenGL® game-engine, waardoor het voor ontwikkelaars onnodig is om hardwarespecificaties te doorzoeken om te schrijven de code zelf. Als een afweging zijn motoren met dergelijke complexe mogelijkheden over het algemeen erg duur of hebben ze zeer restrictieve licenties voor commercieel gebruik, hoewel sommige open source game-motoren bestaan.
De term "OpenGL®-game-engine" kan ook verwijzen naar een voltooide computerspel waarvan de meeste of alle aangepaste gegevensbestanden zijn verwijderd, waardoor alleen de gecompileerde programmeercode overblijft. Hiermee kan een gebruiker aangepaste grafische afbeeldingen, kaarten en soms gescripte gebeurtenissen maken die door de game-engine worden geladen. De gameplay is meestal niet in grote mate aan te passen in dit type game-engine en dient in plaats daarvan als een platform voor gebruikers om aangepaste niveaus en inhoud te creëren in tegenstelling tot een vrijstaande originele game.