C++ ile Kendi Uçuş Simülatörünü Yapmak (1996)
(archive.org)- 1996 tarihli, İngilizce DOS oyun programlama kaynağı; C++ ile bir uçuş simülatörünü doğrudan uygulama sürecini ele alıyor
- Konu etiketleri ağırlıklı olarak MS-DOS, 3D, Gamedev, tutorial, Retrogaming ve C++ etrafında sınıflandırılmış
- Sadece bir belge değil; dönemin geliştirme ortamını birlikte koruyan örnek kod CD-ROM imajı da içeriyor
- Internet Archive üzerinden PDF, EPUB, Full Text, ISO Image, Torrent gibi çeşitli biçimlerde indirilebiliyor
- Retro oyun geliştirme ve DOS programlama kaynakları arayanlar için, kitap ve ek materyalleri tek yerde inceleyebilecekleri bir arşiv kopyası
Internet Archive kaydı
- Internet Archive girdisi içinde kayıtlı materyal Build Your Own Flight Sim In C++ (DOS GameDev)
- Yazarlar Michael Radtke, Chris Lampton ve bu kaynak 1996'da yayımlandı
- ISBN numarası 1-57169-022-0
- Konular MS-DOS, Programming, 3D, Gamedev, tutorial, Retrogaming ve C++ olarak sınıflandırılmış
Kitabın kapsadığı geliştirme alanı
- Amaç, C++ ile bir uçuş simülatörünü doğrudan yazmak
- DOS ortamındaki oyun programlamasına odaklanıyor; 3D ve retro oyun geliştirme bağlamında kullanılabilecek bir kaynak
- Uçuş simülatöründe SB16 ses desteği bulunuyor
- İçinde örnek kodların yer aldığı bir CD-ROM imajı da birlikte sunuluyor
Kayıt bağlamı
- Retro City Rampage DOS'a port edildiğinde, geliştirici daha önce sahip olduğu DOS programlama ve oyun geliştirme kitaplarının hepsini attığını ve bunları internette bulmanın da zor olduğunu üzülerek anlatmıştı
- Bu materyal, bu bağlamda Internet Archive'a yüklenmiş bir DOS oyun geliştirme kitabı olarak tanıtılıyor
İndirilebilir biçimler
- Internet Archive üzerinde çeşitli indirme biçimleri sunuluyor
- PDF: 308.9M
- EPUB: 768.5K
- Full Text: 1.1M
- ISO Image: 11.5M
- Single Page Processed JP2 ZIP: 321.7M
- Torrent: 32.5K
- OCR ile ilgili CHOCR, HOCR, OCR Page Index ve OCR Search Text dosyaları da sağlanıyor
Koruma ve metadata
- Öğe boyutu 706.7M olarak görünüyor
- Internet Archive içindeki CD-ROM Software Library, CD-ROM Software Collection ve The Vintage Software Collection koleksiyonlarına dahil
- OCR işlemi tesseract 5.0.0-alpha-20201231-10-g1236 ile yapılmış ve algılanan dil İngilizce
1 yorum
Hacker News yorumları
Ah, bu kitap! Wolfenstein, Ken's Labyrinth ve Doom oynarken “Bunu nasıl yapmışlar acaba?” diye düşündüğüm zamanları hatırlattı.
Ücretleri ödeyemeyen ya da ödemeyen bir “bilgisayar mağazasında” çalışıyordum; o günkü emeğimin karşılığı olarak mağazadan istediğim bir kitabı alabileceğim söylenince anlık bir kararla bu kitabı seçmiştim.
Eve dönerken otobüste ineceğim durağı kaçırdım; çünkü kitap bir uçuş simülatörü kitabı olsa da içindeki algoritmalar ve teknikler, tam da merak ettiğim 3D programlama konularıydı.
Bir uçuş simülatörü yapmadım ama bu kitaptan edindiğim bilgilerle kaba saba bir 3D oyun yaptım. Duvar çarpışması yoktu, sprite tabanlı öğeler bir süre sonra rastgele bozuluyordu ve geometrik dönüşümler yerine matris çarpımı kullanma hissini de bir türlü tam oturtamamıştım; ama daha derinlikli bir proje olmasa muhtemelen devam etmeyeceğim bir noktada, programlamaya olan sevgimi pekiştiren kitap buydu.
Öğretmen matematiği bilmiyordu; Cebir II'de matrisleri anlatırken de matrislerin “gerçek dünyada” nasıl kullanıldığına düzgün cevap verememişti.
Ama bir şekilde, birkaç yıl öncesine ait Byte dergisinde 3D grafiklerle ilgili bir makale buldum; içinde döndürme vb. için matrisler ve noktalar kullanma anlatılıyordu.
Bununla PET 2001'de bir küpü döndürdüm. 40x24 ekranın ihtişamı içinde tabii. Aslında 8 noktadan ibaretti; karanlıkta gözlerinizi kısarsanız küpe benziyordu.
Daha sonra üniversitede Tektronix depolama tüplü bir mikrobilgisayar kullanabildim. Terminalden farklı olarak bağımsızdı ve küpü epey iyi render edebiliyordu. Milimetrik kâğıt üzerinde özenle hazırladığım bir arabayı, yerleşik BASIC'in DATA ifadeleriyle tek tek girdiğim de olmuştu.
O zamanlar erken dönem Foley-Van Dam kitabı herkesin imrendiği grafik kitabıydı.
Üniversitede “Survey of Physics” dersinden C aldım; fiziksel olayları modellemeye yönelik matematik benim için gerçekten zordu. Kalkülüs ve soyut şeylerde tamamen iyiydim ama bunun benim hakkımda ne söylediğini bilmiyorum.
Buna ilgi duyuyorsanız şu anda dinlediğim çevrimiçi kurs da ilginizi çekebilir: https://pikuma.com/courses/learn-3d-computer-graphics-progra...
Eğitmen bu konuyu Londra'daki bir üniversitede öğretiyor ve öğretme deneyiminin fazla olduğu açıkça hissediliyor. Şu ana kadarki tempo da mükemmel, kurs açıklamasında ne yazıyorsa aynen o. Grafik kursunu bitirince bu eğitmenin diğer kurslarından da birer birer almayı düşünüyorum.
C ile grafikleri en temelden programlamayı öğretiyor; tek bağımlılık SDL2. Başta tek tek piksellerin rengini belirleyebileceğiniz bir SDL2 soyutlaması oluşturuyorsunuz, sonra kursun tamamı bunun üzerine inşa ediliyor. Tek bir pikselin rengini belirleyebiliyorsanız, geri kalanında 3D dokulu bir baykuşa kadar çizebilir misiniz, bunu öğrenme yapısı var.
Ben yalnızca Rust'ın SDL2 bağlayıcılarını kullanarak bu kursu Rust ile takip ediyorum. Keyifle izliyorum; dürüst bir alışveriş ve iyi bir kurs olduğunu düşündüğüm için paylaşmak istedim. Bu kurslardan başka yerlerde pek bahsedildiğini görmedim.
Bu kitaba sahip olduğumu hatırlıyorum. Muhtemelen 14-15 yaşlarındaydım ve ilk uçuş dersimi alıp havacılığa yeni yeni kapıldığım dönemdi.
MS Flight Simulator'ım da vardı, C++'ı da kendi kendime öğreniyordum; ama o zamanki seviyem için kitabın içeriği biraz ağırdı. Yine de kendi uçuş simülatörümü yapabileceğim beklentisiyle bu kitabı elime aldığım andaki heyecanı yeniden hatırlamak güzel. Tabii hafızam doğruysa kitapta yapılan simülatör neredeyse oynanamaz düzeydeydi.
Bu kitap ve “The Black Art of 3D Game Programming”, çocukken en sevdiğim iki kitaptı.
https://archive.org/details/BlackArt3DEBook
İlginçtir, rastgele 216. sayfayı açtığımda bir küre üzerine 3D dünya koordinatlarını eşlemek için biraz temel ama sağlam bir yöntem çıktı; tam da yakın zamanda No Man's Sky'ın tamamen farklı dünya üretimi çözümünü okumuştum.
https://www.polygon.com/2017/3/2/14790028/no-mans-sky-was-fl...
Keşke bugünlerde böyle yazılar daha çok çıksa. Gerçekten harika.
Ama ePub bağlantısından indirme yapılamıyor:
https://ia904505.us.archive.org/epub/index.php?id=build-your...
No valid doc name could be determinedYazık, PDF ile yetinmek gerekecek. Internet Archive’ın web görüntüleyicisinin pek iyi olmaması da üzücü.
Çalışan PDF bağlantısı: https://archive.org/download/build-your-own-flight-sim-in-c-...
Bu kitabı takip ederek yazdığım programlar hâlâ duruyor. 3D bir dünyaya hayat verme deneyimi sihir gibiydi. Siyah bir ekrandan başlayıp birkaç çizgi çiziyor, onları tam doğru şekilde hareket ettirince bir anda ekranın içinde bir dünya beliriyordu. Bugünlerde aynı hissi yakalamak zor.
Sanırım bu kitabı 13. doğum günü hediyesi olarak almıştım; bu yüzden matematiğin bir kısmı o zamanlar bana biraz zordu. Yine de assembly öğrenmek ve çokgen kırpma gibi daha karmaşık algoritmalara dalmak, acemi bir programcı için harika bir eğitimdi.
Bu kitapta bir evren yaratmak için ne kadar çok sayfa harcandığı etkileyici. O zamanlar OpenGL kütüphanesini açıp stack’i ilklendirince işin bittiği bir dönem değildi.
Kitap, VGA kartını doğru moda almak için hangi register’ların ayarlanması gerektiği, diskten bitmap ve paletin nasıl okunacağı, bitmap belleğinden tasarruf etmek için kendi run-length encoder’ınızı nasıl yazacağınız, joystick portunda hangi register’ların ayarlanacağı gibi şeylerle başlıyor.
Bu kitabı sonuna kadar takip ettim. Mac’te çalıştığım için değişiklikler yapmam gerekti ama Bresenham algoritması, çokgen kırpma, arka yüz eleme vb. şeyleri uyguladım.
Normalde ilk kez karşılaşılan matris, iç çarpım, dış çarpım gibi matematikte takılıp kalırdım; ama şans eseri üniversitede yaz döneminde lineer cebir alıyordum, bu yüzden kitabın içeriği dersle epey iyi örtüştü.
Yanlış hatırlamıyorsam bu kitapta, piramit biçimli dağların etrafında uçabileceğiniz bir simülatörün bulunduğu 5,25 inçlik disket vardı. Güzel anılar canlanıyor.