È molto raro scrivere più un motore fisico per un gioco. Di solito, viene utilizzata una libreria di terze parti, gratuita o commerciale. Lo stesso vale per altri aspetti dei motori di gioco. Rendering, audio, intelligenza artificiale, animazione, interfaccia grafica, networking, ecc. È raro che qualcuno scriva un motore di gioco da zero in questi giorni. Di solito le persone li comprano. Se li fanno, comprano un po 'di middleware per fare i compiti difficili.
Ci sono molti posti in cui iniziare a programmare i giochi. Se vuoi semplicemente "fare un gioco" ti suggerisco di immergerti in Unity . Unity è un motore di gioco fantastico, molto facile da usare che può essere utilizzato per fare qualsiasi cosa. Fornisce anche la maggior parte delle funzionalità dei motori commerciali (in particolare la prossima versione 3).
Se vuoi saperne di più sui fondamenti della programmazione del gioco, controlla PyGame o XNA. Eliminano un sacco di noia che si trovano normalmente nella gestione di grafica, input, audio, ecc. Non faranno la fisica per te (non sono motori, solo API), ma ci sono molte soluzioni gratuite e facili da usare.