Merhaba retrojen (ve ilk 3D denemelerim)

Başlatan Alpyre, 01 Haziran 2017, 14:32:14

« önceki - sonraki »

0 Üyeler ve 2 Ziyaretçi konuyu incelemekte.

nightlord

erişimleri yine pointer ile yapabilirsin. yani birileri 10. duvara erişecekse onlara &walls[10] verebilirsin ve ondan sonrası aynı olur. Lakin bunların bellekte rastgele dağılıp içlerinde id fieldı tutuyor olmalarının çok avantajını göremiyorum. yani nesneleri arraylerde tutup, findFoo'ları Foo[] ile (yani lineer search yerine tek çarpma ile) değiştirip, data structure hieararchisinde pointer kullanmaya devam etsen sanki best of both worlds olacak

Eğer array'de traverse yaparken her iterasyonda a[] nin sana bir çarpma getirmesinden korkuyorsan o döngüler de şöyle yazılabilir:

for (A* ia = a; ia != a + count; ++ia){
  // do stuff with ia
}

böylece her iterasyonda bir toplama yapmış olursun (ki bunu compiler'ın becerebiliyo olmasını beklerim ama belki amiga zamanı compilerları geride kaldı)

gibraltar

Mevzuya bir saplama yapıp gideyim.

Baba adamlardan Fabien Sanglard'ın yeni kitabı Game Engine Black Book: Wolfenstein 3D tam da bu mevzuyla ilgili. Tabi bu mevzudakinden biraz farklı olarak olaylar x86/vga diyarlarında geçiyor.

Önsözünü de baba adamların feriştahı John Carmack yazmış.

Bilgehan Korkmaz

Alpyre

Başka projelere dalıp burayı çok ihmal ettim. Ama dün aminet'te Breathless (1996) oyununun kaynak kodları yayınlanmış.

Bu oyunun grafikleri bayağı iyi ve FPS'si de hiç fena değildi. Gördüğüm kadarıyla C'de yazılmış. Kopya çekmek için bir sürü materyalim oldu. Bakıcaz artık. :)

EDIT: MapEditor C imiş. Oyun kodu Assembly çıktı. :(

Ref

Bu ray casting işini anlatan güzel bir videoya rastladım, güzel anlatmış :D

Burada durması daha iyi...


https://www.youtube.com/watch?v=eOCQfxRQ2pY&t=2s