- Quake yang dirilis pada 1996 menghadapi tiga perubahan teknologi sekaligus: akselerator 3D, internet, dan transisi dari MS-DOS ke Windows 95
- id Software memanfaatkan kompiler
djgpp dan struktur kompatibel DPMI untuk membuat satu file executable yang dapat berjalan baik di DOS maupun Windows 95
- Melalui sistem ‘Chunnel’ dari Mpath, Quake versi DOS dibuat agar bisa mengakses stack Winsock TCP/IP milik Windows 95
- Struktur ini terdiri dari komponen seperti
quakeudp.dll, genvxd.dll, dan mgenvxd.vxd, yang bertindak sebagai perantara agar executable DOS dapat berkomunikasi dengan API jaringan Win32
- Setelah itu, id Software beralih ke executable khusus Win32 (WinQuake, GLQuake) sehingga struktur rumit ini pun menghilang
Quake dan masa transisi sistem operasi
- Antara 1996 hingga 1997, pangsa pasar MS-DOS turun setengahnya, dan Microsoft mendorong transisi ke Windows 95 dan NT
- Sebagian pengembang (misalnya Blizzard North) membuat game khusus Windows 95, tetapi id Software mendukung DOS dan Windows sekaligus lewat satu executable (
quake.exe)
quake.exe dirancang agar kompatibel dengan cwsdpmi.exe untuk DOS atau server DPMI bawaan Windows 95, dengan menggunakan klien DPMI dari DJGPP
- Insinyur Microsoft Raymond Chen menyebutnya sebagai “contoh menakjubkan dari program yang tetap berjalan normal di extender yang sangat berbeda”
Menjalankan Quake di lingkungan DOS
- Untuk menjalankan Quake di DOS, hanya diperlukan empat file:
quake.exe, config.cfg, pak0.pak, dan cwsdpmi.exe
- Mode multipemain mendukung empat cara: modem, NullModem, IPX, dan TCP/IP
- IPX digunakan untuk LAN, sedangkan TCP/IP untuk internet, tetapi DOS tidak menyediakan stack TCP/IP secara bawaan
- Satu-satunya TSR TCP/IP untuk DOS adalah BWNFS dari Beame & Whiteside, dengan harga 395 dolar AS (pada 1996), sehingga sangat mahal
Menjalankan di lingkungan Windows 95
- Saat
quake.exe dijalankan di virtual DOS box (dos-box) milik Windows 95, ia bekerja dengan cara yang sama
- Karena menggunakan server DPMI Windows 95,
cwsdpmi.exe tidak lagi diperlukan
- Eksekusinya berjalan lancar, tetapi membutuhkan RAM minimal 16MB, dengan overhead memori yang lebih besar dibanding DOS
- Akses VGA diizinkan secara langsung, sehingga dapat berjalan di layar penuh tanpa penurunan performa
q95.bat dan Chunnel dari Mpath
q95.bat bukan sekadar skrip untuk menjalankan Quake, tetapi juga mengaktifkan koneksi TCP/IP melalui sistem tunneling Winsock (Chunnel) milik Mpath
- Mpath Interactive mengoperasikan layanan game online (Mplayer) dan mendukung permainan internet untuk berbagai game termasuk Quake dan Unreal
- Pada masa itu, insinyur Mpath Larry Hastings menceritakan pengalaman bermain internet deathmatch melawan tim id Software pada build awal Quake
- Mpath menerima source code Quake, lalu memodifikasinya agar dapat berkomunikasi dengan stack jaringan Mplayer, dan melisensikan teknologi Chunnel kepada id
Struktur teknis Chunnel
q95.bat menjalankan qlaunch.exe, yang kemudian memuat quakeudp.dll
quakeudp.dll berfungsi sebagai jembatan ke Winsock (wsock32.dll)
- Melalui
genvxd.dll, ia memuat driver perangkat virtual mgenvxd.vxd dan berkomunikasi dengan Win32 lewat interupsi 0x48
- Implementasi soket BSD di Quake (
mpplc.c) adalah kode dari Mpath, yang meneruskan panggilan jaringan melalui interupsi perangkat lunak
genvxd.dll kemudian melakukan unmarshalling atas panggilan tersebut dan meneruskannya ke Winsock
- Simbol di
mgenvxd.vxd memuat nama John Cash
- Teknologi ini merupakan teknologi berpaten milik Mpath, dan source code-nya tidak dibuka
- Setelah Desember 1996, id Software beralih ke executable khusus Win32 (WinQuake, GLQuake, QuakeWorld) sehingga struktur Chunnel ditinggalkan
Kesimpulan
- Dukungan TCP/IP di Quake diwujudkan lewat struktur kreatif yang membuat executable DOS secara tidak langsung memanggil stack jaringan Windows 95
- Ini adalah teknologi hibrida yang bekerja di batas antara DOS dan Windows, sekaligus contoh masa transisi jaringan game pada pertengahan 1990-an
- Setelah peralihan penuh ke Win32, semuanya menjadi lebih sederhana, tetapi pada masanya struktur ini melambangkan tantangan teknis dan inovasi di era transisi sistem operasi
Belum ada komentar.