Un motore di gioco si riferisce ad ambienti di sviluppo software progettati specificamente per la generazione di videogiochi. Contiene la libreria di base delle funzioni utilizzate in un gioco, tuttavia esiste indipendentemente dal contenuto di un gioco specifico. Le risorse che rendono unico il gioco, come tema e personaggi, formano il contenuto. Il motore di gioco viene utilizzato per controllare il modo in cui le risorse interagiscono per dare vita al gioco. Ciò si ottiene per mezzo di una serie di componenti riutilizzabili che possono fungere da motore per giochi di generi e stili diversi.
Il ruolo di un motore di gioco è quello di fare tutto il lavoro pesante dietro le quinte che rende giocabile qualsiasi videogioco. I componenti centrali includono un motore di rendering grafico, un motore fisico e il rilevamento delle collisioni. Il motore di rendering genera un’immagine bi o tridimensionale da un file di scena, che definisce elementi come punto di vista, illuminazione e trama. I motori fisici approssimano il movimento del mondo reale in un modo familiare al giocatore, ma anche significativo nel contesto del gioco. Il rilevamento delle collisioni riguarda il modo in cui il gioco rileva, visualizza e reagisce all’intersezione di due o più oggetti renderizzati.
Altre risorse, come la capacità di rete, l’intelligenza artificiale e la creazione di suoni sono spesso anche componenti di un motore di gioco. In genere, i componenti sono disponibili per lo sviluppatore tramite un ambiente di sviluppo integrato visivo (IDE) che semplifica la creazione del gioco. I file di scena possono essere prototipati e testati con il motore di rendering senza uscire dall’IDE, ad esempio. Tale approccio incoraggia anche il riutilizzo dei componenti, il che rende il processo di creazione più semplice ed efficiente.
La maggior parte dei primi motori di gioco erano design proprietari, sviluppati per essere utilizzati nella creazione di un singolo gioco. La flessibilità offerta dalla selezione dei componenti preferiti e dalla costruzione di un’interfaccia specializzata è stata apprezzata. Un simile approccio ha dato agli sviluppatori un grande controllo sull’aspetto dei giochi, ma ha notevolmente allungato il ciclo di sviluppo. I vincoli di costo in genere vietano l’uso di un motore di gioco proprietario nella maggior parte dei progetti.
Sono disponibili suite di sviluppo di giochi complete e pronte all’uso che forniscono tutte le funzionalità dei design proprietari. Molti sono prodotti commerciali, ma non è difficile trovare un motore di gioco open source di qualità paragonabile. Questi sono aperti alla modifica del codice per adattarsi agli stili o agli strumenti di programmazione preferiti. Un creatore di giochi potrebbe non avere la flessibilità di un motore proprietario, ma il tempo e il denaro risparmiati nello sviluppo di solito superano di gran lunga la perdita di libertà stilistica.