Vad är en OpenGL®-spelmotor?
En Open Graphics Library® (OpenGL®) spelmotor är ett programmeringsbibliotek eller annan samling programvara som är avsedd att underlätta skapandet av videospel genom att tillhandahålla en fullt implementerad ram som kan byggas på för att skapa en anpassad applikation. Basen för alla OpenGL®-spelmotorer är gränssnittet mellan programmeringslogik på högre nivå och OpenGL®-bibliotek som i sin tur får åtkomst till grafikhårdvara på låg nivå. Vissa motorer fokuserar främst på enkel åtkomst till speciella grafiska funktioner och algoritmer genom att inkludera optimerade funktioner för effekter som oskärpa, ljuskartor eller anpassade skuggare. Mer vanligt lägger en OpenGL®-spelmotor till olika nivåer av funktionalitet genom högre nivåbibliotek, skriptspråk eller till och med anpassade utvecklingsmiljöer. Några av funktionerna i olika OpenGL®-spelmotorer inkluderar användarinmatningsrutiner, skugg rendering, ett grafiskt användargränssnitt (GUI), nätverksstöd, fysik och avancerade timingmekanismer för smidiga animationer.
När du skapar spel som använder OpenGL®, oavsett om det är tvådimensionella (2D) eller tredimensionella (3D), måste en hel del programmeringskod skrivas för att integrera de mest statiska OpenGL®-kodbiblioteken i en dynamisk spelmiljö där objekt förändras och rör sig och användare kan interagera med den virtuella världen. Det primära syftet med en OpenGL®-spelmotor är att ta bort behovet av att skriva om denna typ av pannplattkod och istället tillhandahålla en konsekvent och strukturerad ram för att bygga ett spel runt. OpenGL® innehåller endast funktioner för att visa eller återge grafik till en enhet, så all spellogik behöver lindas runt den kärnan, inklusive att utveckla ett sätt att integrera objekt som rör sig inom en scen eller som kan läggas till eller raderas från en scen. En struktur som använder OpenGL® för dynamiska grafiska objekt är allmänt känt som en scengraf och är grunden för många OpenGL®-spelmotorimplementeringar.
En annan anledning till att en OpenGL®-spelmotor kan användas av utvecklare är att ta bort behovet av att integrera flera olika element i ett spel i en enda ram, vilket kan ta lång tid att göra ordentligt. Användarinmatning från ett tangentbord, GUI-element som ett fönster för att välja ja eller nej alternativ och till och med optimeringar för vissa populära grafikkort kan alla ingå i en OpenGL®-spelmotor, vilket gör det onödigt för utvecklare att sortera genom hårdspecifikationer att skriva själva koden. Som en avvägning är motorer som har sådana komplexa kapacitet i allmänhet mycket dyra eller har mycket restriktiva licenser för kommersiellt bruk, även om vissa öppen källkodsmaskiner finns.
Termen "OpenGL®-spelmotor" kan också hänvisa till ett avslutat datorspel som har tagit bort de flesta eller alla sina anpassade datafiler, vilket bara lämnar den sammanställda programmeringskoden. Detta gör att en användare kan skapa anpassad grafik, kartor och ibland skriptade händelser som laddas av spelmotorn. Spelet är vanligtvis inte modifierbart i någon större utsträckning i denna typ av spelmotor och fungerar istället som en plattform för användare att skapa anpassade nivåer och innehåll i motsats till ett fristående originalspel.