Apa toolchain khas untuk pengembangan game DOS? [Tutup]

15

Saya bertanya-tanya bagaimana orang biasa menulis game DOS (seperti Doom), saya tidak dapat menemukan banyak hal tentang ini, tetapi saya ingin belajar lebih banyak tentang hari-hari awal pengembangan game.

Bahasa apa yang digunakan secara dominan?

Saya kira sudah C. Atau C ++ sudah?

IDE (atau editor / kompiler) apa yang populer?

Microsoft Visual C / C ++ (atau Microsoft C / C ++ seperti yang saya yakini dulu disebut) tidak ada saat itu AFAIK. Jadi apa yang digunakan orang? sunting dan kompiler baris perintah dari Intel atau sesuatu?

API apa yang digunakan?

Apa yang umum untuk game 2D? Bagaimana dengan game 3D seperti Doom and Tomb Raider?

Ada lagi yang berbeda dari hari ini?

Saya akan senang mendengar perbedaan lain, seperti apa format gambar / audio yang digunakan.

futlib
sumber
Saya cukup yakin Anda bermaksud melakukan penelitian untuk tugas kelas ini. Mungkin gdcvault.com/play/1014627/Classic-Game-Postmortem dapat memberi Anda awal.
Daniel Carlsson
Ini bukan tugas, saya jalan keluar dari sekolah / perguruan tinggi. Saya melakukan google sekitar untuk sementara waktu tetapi tidak dapat menemukan banyak.
futlib
Saya ingat pernah membaca catatan dari salah satu ID orang tentang Watcom C ++. Borland selalu sangat populer karena kompiler mereka sangat cepat. (Dulu saya membangun kembali tiga atau empat kali berturut-turut karena saya tidak yakin bahwa sesuatu telah benar-benar terjadi.)
3Dave

Jawaban:

19

Bahasa: C lebih dominan, tetapi C ++ ada dan digunakan.

Perangkat pengembangan: Lingkungan pengembangan termasuk yang berasal dari Borland dan Watcom (hampir tidak pernah terdengar hari ini) di antara yang lainnya. Borland dan Watcom memiliki kompiler dan IDE sendiri. Borland sejauh ini yang paling populer secara umum, meskipun Watcom memiliki reputasi untuk menghasilkan program yang dikompilasi lebih cepat, iirc.

API: Beberapa API ada atau digunakan. Pemrograman video sering kali terdiri dari penulisan piksel langsung ke framebuffer VGA. Bahkan game 3D adalah perangkat lunak raster. API suara Miles digunakan untuk audio, yang termasuk driver secara internal karena OS tidak memiliki kerangka audio atau driver sendiri. Input keyboard dan mouse umumnya dibaca langsung dari sistem. Ada beberapa extender memori populer untuk mode 32-bit yang sangat populer dan diperlukan menjelang akhir masa pemerintahan DOS. Untungnya, perangkat kerasnya sederhana, tapi jelas menyebalkan dalam permainan menulis pantat yang bekerja pada berbagai perangkat keras. Perpustakaan untuk menangani semua hal tingkat rendah yang sederhana (seperti SDL, SFML, GLFW, dll.) Tidak ada,

Di samping catatan ke poin sebelumnya, Doom bukanlah 3D seperti yang kita kenal sekarang. Artinya, ia memberlakukan batasan besar pada lingkungan 3D karena algoritma rasterisasi perangkat lunaknya yang sangat khusus, dan semua karakter serta item adalah sprite yang menonjol.

Format File: Format aset sama eksklusifnya dengan mesin seperti halnya sekarang. Samar-samar saya ingat Bink ada saat itu untuk video (yang sangat jarang, umumnya hanya dalam urutan pembukaan dan penutupan), dan saya pikir Kreatif memiliki beberapa format suara khusus. Saya tidak yakin apa sumber atau format perantara yang populer untuk suara atau video saat itu, tetapi TGA cukup populer untuk gambar.

Sean Middleditch
sumber
1
Middleware mana-mana yang banyak dilisensikan untuk audio adalah Miles , yang menyediakan abstraksi driver untuk banyak perangkat. Jika Anda tidak menggunakan Miles, Anda mungkin hanya mendukung kompatibilitas Adlib atau SoundBlaster. Untuk mengaktifkan dukungan VESA pada kartu lawas, beberapa game menggunakan UniVBE .
Lars Viklund
Betul! Ingatan yang bagus! :)
Sean Middleditch
Saya mungkin salah, tapi saya percaya referensi yang Anda coba buat adalah untuk Watcom , bukan Watson . Mereka membuat kompiler C yang sangat baik dan server SQL ringan bernama Watcom SQL, pendahulu SQLite, yang sangat saya sukai.
Bob Mc
Memang, Anda benar. Ingatan saya pasti semakin campur aduk di usia tua saya.
Sean Middleditch
ASM sepertinya lebih umum dari sekarang. Anda perlu memeras kinerja ekstra dan pengoptimal kompiler tidak sebagus sekarang. Artinya, mayoritas masih di C tetapi mesin kemungkinan memiliki potongan ASM.
edA-qa mort-ora-y
4

Sebagai pelengkap pos Sean, karena Anda menyebut Doom: ada blog bagus oleh Fabien Sanglard, yang membuat ulasan tentang bagian kode yang digunakan untuk membuat Doom (yang berasal dari tahun 1993). Ulasannya ada di sini: http://fabiensanglard.net/doomIphone/doomClassicRenderer.php

PS: Blog ini memiliki banyak ulasan kode terkait Doom / Gempa, dan ini adalah bacaan yang bagus untuk pengembang game untuk melihat bagaimana orang lain merancang game dari bawah ke atas

Timotei
sumber