x86-64 Assembly Turn-Based RPG Engine
Tamamen raw x86-64 Assembly (NASM) ile yazılmış, Windows x64 çağrı standartlarına (calling convention), manuel yığın (stack frame) yönetimine ve donanım seviyesinde durum (state) mutasyonuna sıkı sıkıya bağlı modüler sıra tabanlı RPG motoru.
Teknoloji yığını
- Diller
- Çatılar & kütüphaneler
Performans & metrikler
- Sıfır heap tahsisi (zero heap allocation); tüm değişebilir durumlar (can havuzları, hamle takibi, girdi buffer'ları) anında bellek erişimi için
.bssbölümünde statik olarak tahsis edilmiştir - Oyun döngüsü (tick) başına mikrosaniye seviyesinde işlem hızı; yalnızca işletim sistemi seviyesindeki kullanıcı girdi kesmeleriyle (
scanfblocking) sınırlandırılmıştır
Neden geliştirdim?
Ü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
- 01Explicit shadow space tahsisi ve stack sınırı hizalaması dahil Windows x64 ABI standartlarına tam uyum
- 02Birden fazla
.asmnesnesini (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
- 04Doğrudan
msvcrthook'ları üzerinden gerçek zamanlı ANSI renkli terminal render'ı ve kalıcı savaş telemetrisi loglaması (game_log.txt)