La differenza tra i giochi di programmazione rispetto alla programmazione aziendale (client / server) è che il gioco è basato in tempo reale , mentre l'altro è basato su richiesta / risposta / evento.
Questo rappresenta un approccio di programmazione completamente diverso e un set mentale. Nei giochi si ha un ciclo di esecuzione limitato che deve calcolare e rendere la grafica > 30 volte al secondo, aggiornando anche il modello fisico e gestendo l'input dell'utente. Tutto questo mentre si caricano continuamente asset complessi (modelli 3D, trame e suoni) da file o rete.
Questo significa che il tuo codice deve essere in grado di fare tutto questo entro 0,03 secondi affinché il gioco funzioni senza intoppi. Quindi il tuo codice deve essere in grado di calcolarlo a passi usando l'integrazione.
Per le abilità, devi conoscere il tuo C / C ++ e inoltre non puoi avere paura della matematica (algebra lineare).
È anche molto importante tenere a mente le prestazioni. Ad esempio, se hai un mondo di gioco che semplicemente non può stare nella RAM. Immagina un mondo di gioco esterno in cui gli oggetti lontani nell'orizzonte siano rappresentati da pochi pixel, ma possono essere costituiti da migliaia di poligoni. Non è possibile eseguire il rendering a causa della limitazione della CPU o della RAM, quindi è necessario trovare un modo per renderli più semplici a seconda della distanza dalla telecamera. Altrimenti, non è necessario eseguire il rendering di materiale all'interno di una casa se la fotocamera lo sta guardando dall'esterno (a meno che non si riesca a vedere attraverso Windows, nel qual caso è necessario essere ancora più intelligenti). Questo è chiamato culling ed è solo una area del problema che si deve affrontare quando si programmano i giochi.
Poi abbiamo elaborazione del suono, calcoli fisici, caricamento del modello 3D, animazioni, effetti particellari, fulmini, HUD, collisioni ...