Ara

Quake’in Sırrı Çözüldü: Tek Bir Oyunla Hem DOS Hem Windows 95’te TCP/IP Çok Oyunculu Desteği Nasıl Mümkün Oldu?

1990'ların ortaları, bilgisayar dünyasında adeta bir devrim dönemiydi. 3D hızlandırma kartlarının piyasaya çıkması, komut satırı tabanlı DOS işletim sisteminden görselliği zengin Windows 95'e geçiş ve internetin yaygınlaşması aynı anda yaşanıyordu. Bu hızlı değişim, oyun geliştiricileri için büyük bir meydan okuma sunuyordu. Oyunlarını DOS, Windows 95 veya her ikisi için ayrı ayrı geliştirmek zorunda kalıyorlardı.

Bu dönemde çıkan oyunların pek çoğu, örneğin Fallout, Grand Theft Auto ve Mortal Kombat 3, DOS ve Windows 95 için ayrı çalıştırılabilir dosyalarla piyasaya sürülüyordu. Ancak id Software, Quake için neredeyse aynı kod tabanıyla her iki platformda da çalışabilen bir oyun ortaya koymayı hedefliyordu. Üstelik bunu, o dönemin en önemli iletişim protokolü olan TCP/IP desteğiyle ve çok oyunculu özelliğin de eklenmesiyle başarmak istiyorlardı. Çünkü o zamanlar gerçek anlamda çevrimiçi çok oyunculu deneyimler henüz yeni yeni gelişiyordu ve genellikle sadece yerel ağlarla sınırlı kalıyordu.

Quake'in geliştirme süreci boyunca, DOS'un bellek sınırlamaları (özellikle 640 KB'ın üzerindeki belleğe erişim gibi) aşılması gereken en önemli engellerden biriydi. Bu tür kısıtlamaları aşmak için oyunlar, Watcom'un DOS/4GW'si veya CWSDPMI gibi DPMI (DOS Protected Mode Interface) genişleticileri kullanmaya başlamıştı. Bu genişleticiler, standart bir bellek arayüzü, çoklu görev ve ek özellikler sunarak adeta bir DOS alternatifi görevi görüyordu.

id Software, Doom'da kullandığı özel Watcom derleyicisinden uzaklaşarak, platformlar arası geliştirmeyi kolaylaştırmak amacıyla açık kaynaklı djgpp araç setine geçiş yapmayı planlıyordu. Hatta Quake'in DEC Alpha gibi farklı platformlar için de bir portu bulunuyordu. Bu geçiş sırasında id Software, djgpp mühendislerinden özel bir talepte bulundu: DPMI istemcisinin, CWSDPMI'nin yanı sıra Windows 95'in sunduğu DPMI sunucusuyla da uyumlu olmasını istediler. DPMI standart olsa da, o dönemde özellikleri henüz tam olarak netleşmediği için istemci yazılımları genellikle belirli bir sunucuya bağımlıydı. Ancak djgpp ekibi bu zorluğun üstesinden gelmeyi başardı.

Quake'in doğrudan TCP/IP desteği olsa da, farklı platformlarda çalışabilmesi için Windows 95'in Winsock TCP/IP katmanıyla da etkileşim kurması gerekiyordu. Bu noktada, o dönemin yeni sayılabilecek oyun içi eşleştirme ve sunucu tarama özelliklerini tek bir hamlede çözmek için id Software, Mpath Interactive ile işbirliği yaparak Mplayer eşleştirme yazılımını Quake'e entegre etti. Mplayer'ın bu entegrasyonunda iki önemli bileşen bulunuyordu: Mplayer uyumlu oyunları otomatik olarak algılayan ve oyun odalarını listeleyen "Gizmo" adlı bir oyun tarayıcı ve Windows'un TCP/IP yığınıyla iletişim kuran "Chunnel" adlı bir bileşen.

Çapraz uyumluluğu tamamlamak için Quake, Mpath'in genvxd.dll'sini de bünyesinde barındırıyordu. Bu sanal aygıt sürücüsü, DOS ağ işlevlerini (BSD soket fonksiyon çağrılarını kullanan) Windows 95'in Winsock'una çeviriyordu. Tüm bu entegrasyonlar tamamlandıktan sonra Quake, ayrı bir yükleyici veya çalıştırılabilir dosya ihtiyacı duymadan hem DOS hem de Windows 95 üzerinde sorunsuz bir şekilde çalışabilir hale geldi.

Önceki Haber
Kütleçekim Dalgaları Açığa Çıkardı: 'İmkansız' Kara Delik Birleşimi, Görelilik Teorisi'ni Zorladı!
Sıradaki Haber
Apple Devrim Yaratıyor: Apple Watch Kasa Üretiminde 3D Baskı Teknolojisiyle Malzeme İsrafına Son

Benzer Haberler: