TL; DR: Mesin hanyalah sekumpulan komponen yang dapat digunakan kembali.
Dinding teks: Game menyimpan representasi dunia, misalnya Anda akan memiliki entitas seperti rumah, yang memiliki mesh yang menentukan seperti apa bentuk geometri dan posisinya.
Sekarang, Anda mungkin memiliki lebih dari satu entitas. Katakanlah kita memiliki karakter yang dikendalikan pemain dan beberapa kotak. Saat pemain ingin pindah, Anda akan memindahkan karakter dan memeriksa apakah dia bertabrakan dengan kotak apa pun. Di situlah fisika berperan. Bergantung pada bagaimana fisika dimodelkan, karakter mungkin berjalan melalui kotak, berhenti di depan kotak atau mendorong kotak.
Pikiran Anda, ini hanya mengubah keadaan internal dunia game.
Kemudian, setelah menghitung gerakan dan fisika, Anda akan membuat bingkai, misalnya menggambar kondisi dunia saat ini di layar.
OpenGL dan DirectX adalah API grafik, mereka hanya digunakan untuk membuat hal-hal (misalnya karakter) ke layar.
Jadi, pada dasarnya Anda memberi tahu OpenGL / DirectX 'Saya ingin menggambar karakter di position1 dan kotak di position2, dan ...'.
Tentu saja, ini terlalu menyederhanakan.
Ngomong-ngomong, karena kita tidak ingin melalui prosedur itu langkah demi langkah sepanjang waktu, kita memasukkan hal-hal itu ke dalam fungsi dan kelas. Jadi, kita mungkin memiliki fisika kelas yang menampung semua fungsi yang diperlukan untuk simulasi fisika, atau kelas grafis yang berinteraksi dengan api grafik dan menarik entitas kita. Et voila, kami punya mesin.