İçeriğe geç
Tüm projeler
Oyun & SimülasyonAçık kaynak

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ı

Ç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 .bss bö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 (scanf blocking) 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

  1. 01Explicit shadow space tahsisi ve stack sınırı hizalaması dahil Windows x64 ABI standartlarına tam uyum
  2. 02Birden fazla .asm nesnesini (object) tek bir çalıştırılabilir binary'de (executable) birleştiren modüler assembly mimarisi
  3. 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
  4. 04Doğrudan msvcrt hook'ları üzerinden gerçek zamanlı ANSI renkli terminal render'ı ve kalıcı savaş telemetrisi loglaması (game_log.txt)