Bagaimana mesin seperti Unreal berhubungan dengan OpenGL atau DirectX?

8

Saya benar-benar baru dalam grafis komputer, dan bahkan lebih lagi, dalam pengembangan game. Saya mencari informasi untuk mempelajari dasar-dasarnya, dengan cepat. Saya punya satu pertanyaan di kepala saya; bagaimana hubungan mesin seperti Crytek Engine atau Unreal Engine dengan OpenGL atau DirectX?

Saya sangat tertarik dengan fisika game, tetapi saya tidak tahu bagaimana fisika, grafik, dan mesin bersatu; ada celah yang tidak bisa saya isi.

BRabbit27
sumber
Inilah bagian dari jawabannya tetapi itu hanya membawa pertanyaan lain. scientificninja.com/blog/write-games-not-engines
BRabbit27
Di mana fisika masuk? Sepertinya saya harus menulis algoritma fisika, misalnya algoritma collision dan kemudian membuat beberapa lingkaran yang dibuat pada OpenGL berperilaku sesuai dengan algoritma fisika saya?
BRabbit27

Jawaban:

10

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.

Exilyth
sumber
Ada aksen yang hilang "Et voilà" haha ​​hanya bercanda. Terima kasih banyak, saya pikir saya berpikir benar tetapi tidak yakin sehingga saya memutuskan untuk bertanya. Terima kasih banyak!
BRabbit27
2
DirectX bukan API grafik, tetapi Direct2D dan Direct3D.
@JaakkoLipsanen ya saya lihat sekarang, DirectX adalah kerangka kerja yang lengkap untuk pengembangan game (3d, audio, video, dll) dan Direct3D hanyalah modul grafis.
BRabbit27