Releases: kristalsoft-software/KristalENGINE
KristalENGINE 2 Setup v2.2 (Windows .exe)
KristalBASIC 2.2 Güncelleme Notları (20.06.2026)
Planlanan ve Uygulanan Güncellemeler
=> Tamamen Bağımsız Çekirdek (Core Decoupling):
Derleyici çekirdeği (Lexer, Parser, CodeGen) içerisine hardcoded
olarak gömülmüş olan oyun motoru (Raylib) bağımlılıkları tamamen
temizlendi. KristalBASIC artık genel amaçlı, modüler ve bağımsız
bir programlama diline dönüştürüldü.
=> Modüler Direktifler ve Standart Kütüphane ("@ OBJECT"):
Önceden planlanan "@ INCLUDE" yapısı yerine, harici .kbas dosyalarını
derleme sürecine tam entegre eden "@ OBJECT" direktifi eklendi.
Pencere, çizim ve 3D kamera gibi Raylib fonksiyonları dilden
tamamen sökülüp "lib/raylib.kbas" adı altında resmi bir standart
kütüphane modülü haline getirildi.
=> C Kodlarını Doğrudan Entegre Etme (external C / H):
Harici kütüphaneleri bağlamak için izole "external C" ve
"external H" blokları desteklendi. Üçlü kesme işareti (""")
kullanılarak çok satırlı raw metin blokları (C/C++ başlık ve
kaynak kodları) doğrudan KBas koduna yazılabiliyor.
=> Yeni Dil Özellikleri (const ve Hexadecimal):
Dilin çekirdeğine "const" anahtar kelimesi eklendi. Sabit atamaları
doğal olarak C tabanına aktarılıyor. Ayrıca (0xFFFFFF gibi) onaltılık
(Hexadecimal) sayı desteği eklenerek renk ve bayt atamaları
kolaylaştırıldı. C kütüphaneleri ile olan makro isim çakışmalarını
önlemek için izole ortamlar oluşturuldu.
=> void Desteği:
Dilin veri tiplerine void eklendi. Artık geriye değer döndürmeyen
fonksiyonlarda standart bir şekilde kullanılabilecek. Parser ve
Codegen void tipini tanıyıp C karşılığını doğru üretecek.
=> OOP (new, this) ve Statik Sınıf Çözümü:
C'ye çeviri sırasında statik sınıfların (static class) global bir
C struct nesnesi (instance) olarak oluşturulması sağlandı. Böylece
PlayerState.pitch = ... şeklindeki kullanımlar doğrudan bu global
nesne üzerinden işleyecek.
"new" anahtar kelimesinin dinamik bellek tahsisi (kbc_alloc)
kod üretimi düzeltildi.
"this" anahtar kelimesi kullanıldığında metotlara gizli geçilen
THIS pointer'ına doğru referans vermesi sağlandı.
=> Kapsamlı Bellek Yöneticisi ve Scope (Garbage Collector) Optimizasyonları:
KristalBASIC'in bellek yönetim mimarisi (Scope Manager) köklü bir
şekilde iyileştirildi. Döngü bloklarında (while, if) statik olarak
tahsis edilmiş C dizgilerinin kbc_scope_pop sırasında hatalı bir
şekilde free() edilip ölümcül Heap Corruption (0xC0000374) hatalarına
yol açması engellendi. Artık KBC bellek yöneticisi, dinamik kbc_alloc
ile üretilmemiş göstericileri güvenle izole edebiliyor ve kbc_str_dup
entegrasyonu sayesinde harici Win32 API çağrılarından gelen stringler
bellek sızıntısı yapmadan otomatik temizleniyor.
=> Native Windows API (Win32) Entegrasyonu:
Dışarıdan hiçbir ek DLL veya C kütüphanesi gerektirmeden, KristalBASIC
ile Windows işletim sistemine tam erişim sağlayan lib/win32/win32api.kbas
çekirdek kütüphanesi yazıldı.
Desteklenen Native Modüller:
- Etkileşimli Mesaj Kutuları (MessageBox)
- Sistem, RAM, İşlemci (CPU) ve Monitör okumaları
- Konsol okuma/yazma (CON_READ, CON_WRITE), imleç ve renk ayarları
- Dosya/Dizin işlemleri, Windows Registry (Kayıt Defteri) okuma/yazma
- Pano (Clipboard) yönetimi ve ses dosyası (WAV) yürütme yetenekleri
- Process (İşlem) ve Mutex yönetimi
- Gelişmiş Pencere Efektleri: Kenarlıksız tam ekran (Borderless)
ve Şeffaf Katmanlı (Layered/Transparent) pencere yetenekleri eklendi!
=> KristalENGINE IDE & I/O Yönlendirme (Pipe) Uyumluluğu:
Uygulamaların geliştirme ortamından (KristalENGINE IDE) çalıştırılması
durumunda standart G/Ç kanallarının Pipe (Boru) hatlarına yönlendirilmiş
olduğu tespit edildi. WriteConsole ve ReadConsole komutlarının
IDE ortamında sonsuz döngüye girmesi engellendi; otomatik olarak
WriteFile ve ReadFile fallback (yedek) fonksiyonlarına düşerek,
oyunların IDE'nin log panelinde güvenle çalışması sağlandı.
Ek olarak, terminal isteyen oyunlar için IDE bağlarını zorla koparıp
yepyeni, temiz bir konsol penceresi açabilen bağımsızlaştırılmış
bir CON_OPEN yeteneği geliştirildi.
=> Güvenli Dizgi (String) Karşılaştırma Mimarisi:
KristalBASIC'in operatör mantığı genişletilerek STR_EQ yerleşik
(native) karşılaştırma fonksiyonu eklendi. Döngüsel koşullarda
(örn. if (STR_EQ(secim, "1"))) C tarafındaki strcmp komutuna
güvenli köprüleme (binding) kurularak pointer belirsizlikleri giderildi.
=> Scene Yapısının Temizlenmesi:
Proje ve derleyici içerisinden scene ile alakalı mantıksal tüm
kurgular şimdilik askıya alındı ve temizlendi.
=> AST Düzeyi Parametre Güvenliği:
InputSystem.playerInput(PlayerState); gibi hatalı kullanımların
(fonksiyon 0 parametre beklerken 1 parametre gönderilmesi)
C derleyicisi yerine doğrudan kbc.exe tarafından yakalanıp
kullanıcıya mantıklı bir hata mesajı vermesi için AST düzeyinde
güvenlik artırıldı.
KristalBASIC Reddit => REDDIT TOPLULUĞU
developed by EREN KOÇAKGÖL.
KristalENGINE 2 Setup v2.0 (Windows .exe) - The Genesis Release
Features (v2.0)
- KristalBASIC 2.0 Language — Clean, expressive syntax inspired by C# and Swift. Static typing, classes, functions, and built-in game-oriented APIs right out of the box.
- Full 2D & 3D Support — Build anything from top-down RPGs and side-scrolling platformers to fully realized 3D games.
- Visual Novel / Story Mode — First-class support for text-based and narrative-driven games.
- Physics Engine — Built-in physics simulation for realistic movement and collision.
- Audio System — Integrated sound and music playback API.
- Integrated IDE — A purpose-built development environment with syntax highlighting, project management, and live compilation. Available from KristalBASIC 2.0 onwards.
- Native Compilation — Your project compiles directly to a standalone
.exe. Ship your game without asking players to install anything.