Bunu Neden İnşa Ettim?
"Üst seviye oyun motorları bellek düzenlerini, register tahsislerini ve işletim sistemi çağrı standartlarını soyutlar (abstraction). Oyun durumu yönetiminin (state management) en alt katmanını bare-metal seviyesinde incelemek için bu projeyi geliştirdim. Temel amaç, stack frame'lerini ve shadow space alanlarını manuel olarak inşa edip, I/O ve RNG işlemleri için doğrudan C runtime'a (`msvcrt`) kanca atarak karmaşık oyun döngülerinin en düşük soyutlama seviyesinde dahi temiz bir mimariyle yazılabileceğini kanıtlamaktı."
Mimari & Kararlar
Kod tabanı, derleme/bağlama aşamasında global sembolleri çözümleyen katı bir modüler yapıya (`main`, `game_logic`, `combat`, `file_io`, `ui`) sahiptir. Windows x64 ABI standartlarına kusursuz uyar: İlk 4 parametre `RCX`, `RDX`, `R8` ve `R9` üzerinden aktarılır, 32-byte shadow space ayrılır ve 16-byte stack hizalaması korunur. Savaş mekanikleri, tamamen CPU register'ları üzerinde koşan `imul` ve `div` komutlarıyla dinamik RNG sınırları ve yüzdesel hasar hesaplamaları yapar. Dosya I/O işlemleri, savaş loglarını tutmak için C runtime'ına köprülenen harici `fopen`/`fprintf` çağrıları ile doğrudan yönetilir.
Temel Özellikler
- 01.Explicit shadow space tahsisi ve stack sınırı hizalaması dahil Windows x64 ABI standartlarına tam uyum
- 02.Birden fazla `.asm` nesnesini (object) tek bir çalıştırılabilir binary'de (executable) birleştiren modüler assembly mimarisi
- 03.İsabet şansı, sabit hasar varyansı ve yüzdesel skaler saldırıları hesaplamak için donanım seviyesinde sözde-RNG (pseudo-RNG) entegrasyonu
- 04.Doğrudan `msvcrt` hook'ları üzerinden gerçek zamanlı ANSI renkli terminal render'ı ve kalıcı savaş telemetrisi loglaması (`game_log.txt`)