Sıfırdan Altyapı Filesi 64bit'e Çevirme - Geliştirme Günlüğü

Güncelleme;
Client Extern güncelledikten sonra Client'in c++ standardını 14'den 23'e yükseltmeye karar verdim. Visual Studio 2026 insider sürümünü kurdum. Platform araç takımını v143'den v145 yükseltmiş oldum.

Bu yükseltme çalışmaları sonunda derleme aşamasında binlerce hata verdi ancak bildiğiniz üzere bunlar zincirli bir şekildedir. Yükseltme aşamasında aldığım notlardan yola çıkarak bu kadar çok hata veren satırlar aslında 27 farklı hata türüdür. Yapay zekanın da yardımıyla 2 gün gibi kısa bir sürede hepsini çözüp client'i derledim. Geçmişte olsaydı bilgiyi araştırıp bulması daha uzun sürecekti. :P

cpp23e yükseltilmiş client derlemesi.webp

Bir sonraki aşama olarak server source'nin windows için derlenebilmesi için çalışmalara başlayacağım. (Belki bu sayede artık m2 işlerine yeni bilgisayarımdan devam edebilirim. FreeBSD 32bit için eski bilgisayarımı açmak zorunda kalıyordum.)

Güncel client ile oyun içi görüntüyü de ekliyorum;
cpp23e yükseltilmiş client ile oyun içi görüntü.webp
 
Son düzenleme:
Güncelleme;
Client Extern güncelledikten sonra Client'in c++ standardını 14'den 23'e yükseltmeye karar verdim. Visual Studio 2026 insider sürümünü kurdum. Platform araç takımını v143'den v145 yükseltmiş oldum.

Bu yükseltme çalışmaları sonunda derleme aşamasında binlerce hata verdi ancak bildiğiniz üzere bunlar zincirli bir şekildedir. Yükseltme aşamasında aldığım notlardan yola çıkarak bu kadar çok hata veren satırlar aslında 27 farklı hata türüdür. Yapay zekanın da yardımıyla 2 gün gibi kısa bir sürede hepsini çözüp client'i derledim. Geçmişte olsaydı bilgiyi araştırıp bulması daha uzun sürecekti. :P

26000 eklentisini görüntüle

Bir sonraki aşama olarak server source'nin windows için derlenebilmesi için çalışmalara başlayacağım. (Belki bu sayede artık m2 işlerine yeni bilgisayarımdan devam edebilirim. FreeBSD 32bit için eski bilgisayarımı açmak zorunda kalıyordum.)

Güncel client ile oyun içi görüntüyü de ekliyorum;
26001 eklentisini görüntüle
Başarılar kolay gelsin
 
Güncelleme;
Client Extern güncelledikten sonra Client'in c++ standardını 14'den 23'e yükseltmeye karar verdim. Visual Studio 2026 insider sürümünü kurdum. Platform araç takımını v143'den v145 yükseltmiş oldum.

Bu yükseltme çalışmaları sonunda derleme aşamasında binlerce hata verdi ancak bildiğiniz üzere bunlar zincirli bir şekildedir. Yükseltme aşamasında aldığım notlardan yola çıkarak bu kadar çok hata veren satırlar aslında 27 farklı hata türüdür. Yapay zekanın da yardımıyla 2 gün gibi kısa bir sürede hepsini çözüp client'i derledim. Geçmişte olsaydı bilgiyi araştırıp bulması daha uzun sürecekti. :P

26000 eklentisini görüntüle

Bir sonraki aşama olarak server source'nin windows için derlenebilmesi için çalışmalara başlayacağım. (Belki bu sayede artık m2 işlerine yeni bilgisayarımdan devam edebilirim. FreeBSD 32bit için eski bilgisayarımı açmak zorunda kalıyordum.)

Güncel client ile oyun içi görüntüyü de ekliyorum;
26001 eklentisini görüntüle
Aniden gelen c++ sürüm yükseltme isteğini çok iyi anlıyorum arada bana da gidip geliyor :D
 
Server filesi windows altında çalıştırmak için düzenlemelere başlamadan önce kraizy.tgz dosyasını inceledim ve Server\Doc\win32port klasörü içerisinde bir tane sunum dosyası var. Burada neden win32 için destek eklendiği anlatılmış ve filesi windows altında çalıştırırken nelere dikkat edilmesi gerektiği yazılmış. Dosya eski ancak merak edenler için türkçeye çevrilmiş halini ekliyorum.

Kısacası zaten serverin win32 için destek hali hazırda mevcut. Ben sadece güncel sürümlerde derlenmesi gereken düzenlemeleri yapacağım. Anladığım kadarıyla geliştirme sürecine dahil olan bazı geliştiricilerin windows üzerinde çalışmaya daha yatkın olduğu için böyle bir şey yapmışlar. Canlı sunucuda FreeBSD kullanılması gerektiği görüşünü sunmuş.

Metin2 Server Win32 Port (Türkçe Çeviri)​

[email protected]
2011.07.21

Arka Plan​

Dağıtım hedefi platform: FreeBSD 7
Özellikler:
- KQueue: FreeBSD 4.1 sürümünden itibaren *BSD ailesine genişletilen select alternatifidir.
Yayımcı açısından:
- KQueue, hizmet için yeterli I/O performansı sağlar.
- İşletim sistemi maliyetini düşürür.
Geliştirici açısından:
- FreeBSD konsol tabanlı çalışma ortamı
- gdb ile hata ayıklama
Bu durum Windows ve Visual Studio merkezli çalışan geliştiriciler için dik bir öğrenme eğrisi oluşturur. Bu nedenle geliştirme testleri için Windows tabanlı bir çalışma ortamı kurulumu gereği doğmuştur.

Oyun Sunucusunda Çapraz Platform (Cross-Platform) Geliştirmenin Artı ve Eksileri​

Artıları:
- Geliştirme ve dağıtım süreci farklı işletim sistemlerinde yürütülebilir.
- Her geliştirici kendi tercih ettiği ortamı seçebilir (örneğin Windows'ta geliştirme, FreeBSD'de test/dağıtım).
Eksileri:
- Farklı ortamlar potansiyel uyumsuzluklar yaratır.
- İki platformda sürdürülmesi tek platforma kıyasla daha maliyetlidir.
Sonuç olarak Visual Studio’nun geliştirme verimliliği nedeniyle Windows portu yapılmıştır.

Çapraz Platform Geliştirmenin Engelleri​

1. Farklı OS özellikleri ve API’ler (ör. Windows IOCP, Linux epoll, FreeBSD KQueue)
2. Farklı derleyici özellikleri ve kütüphaneler (ör. glib vs Microsoft Secure CRT)

Çapraz Platform Yaklaşımları​

1. Soyutlama (Abstraction): Bağımsız arayüz/katman kullanımı (iyi tasarım ama yüksek bakım maliyeti).
2. Taklit (Emulation): Mevcut API’yi merkez alarak diğer tarafta benzerini oluşturma (hızlı ama zayıf tasarım).
Bu projede zaman ve maliyet nedeniyle Emulation seçilmiştir.

Metin2 Sunucusunun Windows/Visual Studio Portu​

- Hedef Derleyici: Microsoft Visual C++ 9.0 (VS 2008)
- Süre: 2011-07-13 ~ 2011-07-20
- KQueue yerine Winsock select kullanımı
- FreeBSD merkezli tasarım, Windows tarafında emulation yapılmıştır.

Windows Sunucu Derleme Hazırlığı​

- game/src/limit_time.h oluşturulmalı
- update_limit_time.py çalıştırılmalı (Python gerektirir)

Windows Sunucu Çalıştırma Hazırlığı​

- CONFIG dosyasında MySQL bilgileri ayarlanmalı
- DevIL DLL kopyalanmalı
- log dizinleri oluşturulmalı
- Guild mark dosyaları FreeBSD sunucusundan alınmalı

Çalışma Sırasında Dikkat Edilmesi Gerekenler​

- Makefile ve Visual Studio projeleri paralel tutulmalı
- UNIX EOL kullanılmalı (Visual Studio destekler)

FreeBSD Üzerinde Çalışırken​

- Symbolic link kullanılmamalı, gerçek dosyalarla değiştirilmelidir.

Windows/Visual Studio Üzerinde Çalışırken​

- Geliştirme Windows’ta olsa da hedef FreeBSD’dir.
- Windows API veya Microsoft CRT fonksiyonları doğrudan kullanılmamalı.
- Emulation kodları yalnızca __WIN32__ içinde olmalıdır.
- Test sonrası FreeBSD üzerinde derleme doğrulaması yapılmalıdır.
 

Dosya Eklentileri

Server filesi windows altında çalıştırmak için düzenlemelere başlamadan önce kraizy.tgz dosyasını inceledim ve Server\Doc\win32port klasörü içerisinde bir tane sunum dosyası var. Burada neden win32 için destek eklendiği anlatılmış ve filesi windows altında çalıştırırken nelere dikkat edilmesi gerektiği yazılmış. Dosya eski ancak merak edenler için türkçeye çevrilmiş halini ekliyorum.

Kısacası zaten serverin win32 için destek hali hazırda mevcut. Ben sadece güncel sürümlerde derlenmesi gereken düzenlemeleri yapacağım. Anladığım kadarıyla geliştirme sürecine dahil olan bazı geliştiricilerin windows üzerinde çalışmaya daha yatkın olduğu için böyle bir şey yapmışlar. Canlı sunucuda FreeBSD kullanılması gerektiği görüşünü sunmuş.
Yemin ederim birebir ayni seyleri yasadim yazan abi cok dogru yazmis ornegin mysql kütüphaneleri bile farklı uzun süre windowsta gelistirme yapip freebsd ye atinca bir ton sorun cikmisti.

Tesekkurler paylasim icin
 
Yemin ederim birebir ayni seyleri yasadim yazan abi cok dogru yazmis ornegin mysql kütüphaneleri bile farklı uzun süre windowsta gelistirme yapip freebsd ye atinca bir ton sorun cikmisti.

Tesekkurler paylasim icin
Açıkçası windows için server desteği eklemeye pek yanaşmadım. Yükseltme işlemleri bittikten sonra direkt olarak 64bite geçecektim fakat şu üyemizin yorumu kafamı çok karıştırdı.
2026'ya yaklaşırken yalnızca freebsd de debug edilebilen bir server benim fikrimce kullanışsız olacaktır :(

Ve @Kaptan Yosun ile konuşmalarımda bana windows altında çalışmanın çok rahat olduğunu söylemişti. En azından geliştirme sürecinde insanların rahat edebilmesi için win desteğini dahil etmeye karar verdim.

Bu altyapının hâlâ hedef işletim sistemi FreeBSD olmaya devam edecek. Windows altında geliştirme yapmak isteyenler için win desteğini güncel sürümlere uyarlayarak çalışır hale getireceğim. Hem benim içinde tecrübe olur.
 
Açıkçası windows için server desteği eklemeye pek yanaşmadım. Yükseltme işlemleri bittikten sonra direkt olarak 64bite geçecektim fakat şu üyemizin yorumu kafamı çok karıştırdı. Ve @Kaptan Yosun ile konuşmalarımda bana windows altında çalışmanın çok rahat olduğunu söylemişti. En azından geliştirme sürecinde insanların rahat edebilmesi için win desteğini dahil etmeye karar verdim.


Bu filesin hala hedef işletim sistemi FreeBSD olmaya devam edecek. Windows altında geliştirme yapmak isteyenler için win32 desteğini güncel sürümlere uyarlayarak çalışır hale getireceğim. Hem benim içinde tecrübe olur.
Windowsta server çalıştırmak ilk defa hdd den ssd ye geçmek gibi insanın tekrar freebsd de çalışası gelmiyor vm i açacan serveri start edecen bağlanacan değişiklik yapacan tekrar vm e ftp ile atacan compile edecen tekrar run edecen falan şimdi biri gelse freebsd de geliştirme yap dese komple bırakır giderim windows’un rahatlığı varken freebsd ile uğraşılmaz, tabi production için freebsd ama dev ortamı için zerre uğraşılmaz :D
 
Açıkçası windows için server desteği eklemeye pek yanaşmadım. Yükseltme işlemleri bittikten sonra direkt olarak 64bite geçecektim fakat şu üyemizin yorumu kafamı çok karıştırdı.


Ve @Kaptan Yosun ile konuşmalarımda bana windows altında çalışmanın çok rahat olduğunu söylemişti. En azından geliştirme sürecinde insanların rahat edebilmesi için win desteğini dahil etmeye karar verdim.

Bu altyapının hâlâ hedef işletim sistemi FreeBSD olmaya devam edecek. Windows altında geliştirme yapmak isteyenler için win desteğini güncel sürümlere uyarlayarak çalışır hale getireceğim. Hem benim içinde tecrübe olur.
şöyle bir ufak açıklık getirmek istiyorum @Whistle windows platformda çalışmak aşırı rahat build süresi bakımından (server taraflı olarak söylüyorum)
fakat şöyle bir gerçekte var windows serverde eklediğin sistem yada yaptığın değişiklik freebsd de sorun çıkarabiliyor örnek olarak ben offlineshop sistemini uyarlamıştım windows serverde herhangi bir sorun çıkmadı. Fakat tekrar freebsd ye geçtiğimde ufak bir yerinde sorun çıkarıp game crash vermişti windows serverden sonra freebsd de tekrar derleyip çalıştırmanı ve kontrol sağlamanı tavsiye ederim platform farkı sıkıntı çıkarabiliyor ufakta olsa ama x64'e geçeceksen kesinlikle windows platformda geçiş yap
 
Server filesin windows desteğini isteyenlere müjde. Windows altında server sourceyi derledim. Windows altında filesi oluşturmak için gen.bat dosyasını 3 gün önce yazmıştım. Windows server files ile oyuna giriş yapabildim.

Henüz start.sh, stop.sh shell scriptlerini batch'e geçirmedim. Bir an önce oyuna girebilmek için çok heyecanlıydım bu yüzden db, auth, ch1, ch2 ve ch99 u elimle tek tek açtım. Bundan sonraki süreçte kalan scriptleri batch'e geçirdikten sonra windows server files tamamlanmış olacak.

Bu süreçte neler başıma geldi? Onları anlatmadan önce anı olması için şöyle bir resim aldım. Mümkün olduğunca her şeyin ekrana sığmasını sağladım :D

MMO Tutkunları Altyapı Server Files Windows.webp


Önceki mesajımda zaten kraizy dosyalarında win32 için destek olduğunu yazmıştım. Ben sadece güncel sürümde derlemekle uğraşacağımı yazmıştım. Bu süreçte 6 tane hata aldım. Ancak bu hatalardan birisi makroların çakışması sebebi ile kaynağını bulmak biraz zamanımı aldı. Bu hataları düzeltirken freebsd desteğini kaybetmemek için yaptığım düzenlemeleri __WIN32__ makrosu içerisine aldım.

Ayrıca freebsd'de çalışırken filesin c++ standardını yükseltmiştim fakat windows için derlerken c++23 standardını seçtiğimde daha fazla hatalar çıktı. Bu yüzden şimdilik server sourceyi c++14 ile derledim çünkü biran önce oyuna girip giremeyeceğimi merak ediyordum.

Daha önce clientte yaptığım gibi server source windows için c++ sürümünü 23'e yükselteceğim. Bu işlemleri yaptıktan sonra FreeBSD'de de build alıp çalıştıracağım.

Ayrıca MySQL konusunda ufak bir bilgi vermek istiyorum. Maalesef MySQL 8.0 sürümü windows altında 32bit olarak derlenemiyor bu yüzden 5.7.44 sürümünü kurdum. Server sourcede MySQL 8.0 için yaptığım değişiklikler hiç bir sorun çıkartmadı.
 
Son düzenleme:
Server filesin windows desteğini isteyenlere müjde. Windows altında server sourceyi derledim. Windows altında filesi oluşturmak için gen.bat dosyasını 3 gün önce yazmıştım. Windows server files ile oyuna giriş yapabildim.

Henüz start.sh, stop.sh shell scriptlerini batch'e geçirmedim. Bir an önce oyuna girebilmek için çok heyecanlıydım bu yüzden db, auth, ch1, ch2 ve ch99 u elimle tek tek açtım. Bundan sonraki süreçte kalan scriptleri batch'e geçirdikten sonra windows server files tamamlanmış olacak.

Bu süreçte neler başıma geldi? Onları anlatmadan önce anı olması için şöyle bir resim aldım. Mümkün olduğunca her şeyin ekrana sığmasını sağladım :D

26022 eklentisini görüntüle

Önceki mesajımda zaten kraizy dosyalarında win32 için destek olduğunu yazmıştım. Ben sadece güncel sürümde derlemekle uğraşacağımı yazmıştım. Bu süreçte 6 tane hata aldım. Ancak bu hatalardan birisi makroların çakışması sebebi ile kaynağını bulmak biraz zamanımı aldı. Bu hataları düzeltirken freebsd desteğini kaybetmemek için yaptığım düzenlemeleri __WIN32__ makrosu içerisine aldım.

Ayrıca freebsd'de çalışırken filesin c++ standardını yükseltmiştim fakat windows için derlerken c++23 standardını seçtiğimde daha fazla hatalar çıktı. Bu yüzden şimdilik server sourceyi c++14 ile derledim çünkü biran önce oyuna girip giremeyeceğimi merak ediyordum.

Daha önce clientte yaptığım gibi server source windows için c++ sürümünü 23'e yükselteceğim. Bu işlemleri yaptıktan sonra FreeBSD'de de build alıp çalıştıracağım.

Ayrıca MySQL konusunda ufak bir bilgi vermek istiyorum. Maalesef MySQL 8.0 sürümü windows altında 32bit olarak derlenemiyor bu yüzden 5.7.44 sürümünü kurdum. Server sourcede MySQL 8.0 için yaptığım değişiklikler hiç bir sorun çıkartmadı.
Eline sağlık Eray Windows'ta geliştirme olayına gerçekten çok özeniyorum. Windows ve FreeBSD için benzer bir script oluşturacağım, sanırım ortak bir script ile işimi halledebilirim diye düşünüyorum. :D Fikir için teşekkürler.
 
Eline sağlık Eray Windows'ta geliştirme olayına gerçekten çok özeniyorum. Windows ve FreeBSD için benzer bir script oluşturacağım, sanırım ortak bir script ile işimi halledebilirim diye düşünüyorum. :D Fikir için teşekkürler.
Eğer ortak bir script düşünüyorsanız python ile yazabilirsiniz. Ancak bunun için pythonun kurulu olması gerekiyor
 
windows sevenler derneği fahri başkanı olarak bu postu onaylıyorum:

1759958840144.webp

Server filesin windows desteğini isteyenlere müjde. Windows altında server sourceyi derledim. Windows altında filesi oluşturmak için gen.bat dosyasını 3 gün önce yazmıştım. Windows server files ile oyuna giriş yapabildim.

Henüz start.sh, stop.sh shell scriptlerini batch'e geçirmedim. Bir an önce oyuna girebilmek için çok heyecanlıydım bu yüzden db, auth, ch1, ch2 ve ch99 u elimle tek tek açtım. Bundan sonraki süreçte kalan scriptleri batch'e geçirdikten sonra windows server files tamamlanmış olacak.

Bu süreçte neler başıma geldi? Onları anlatmadan önce anı olması için şöyle bir resim aldım. Mümkün olduğunca her şeyin ekrana sığmasını sağladım :D

26022 eklentisini görüntüle

Önceki mesajımda zaten kraizy dosyalarında win32 için destek olduğunu yazmıştım. Ben sadece güncel sürümde derlemekle uğraşacağımı yazmıştım. Bu süreçte 6 tane hata aldım. Ancak bu hatalardan birisi makroların çakışması sebebi ile kaynağını bulmak biraz zamanımı aldı. Bu hataları düzeltirken freebsd desteğini kaybetmemek için yaptığım düzenlemeleri __WIN32__ makrosu içerisine aldım.

Ayrıca freebsd'de çalışırken filesin c++ standardını yükseltmiştim fakat windows için derlerken c++23 standardını seçtiğimde daha fazla hatalar çıktı. Bu yüzden şimdilik server sourceyi c++14 ile derledim çünkü biran önce oyuna girip giremeyeceğimi merak ediyordum.

Daha önce clientte yaptığım gibi server source windows için c++ sürümünü 23'e yükselteceğim. Bu işlemleri yaptıktan sonra FreeBSD'de de build alıp çalıştıracağım.

Ayrıca MySQL konusunda ufak bir bilgi vermek istiyorum. Maalesef MySQL 8.0 sürümü windows altında 32bit olarak derlenemiyor bu yüzden 5.7.44 sürümünü kurdum. Server sourcede MySQL 8.0 için yaptığım değişiklikler hiç bir sorun çıkartmadı.
 
Eğer ortak bir script düşünüyorsanız python ile yazabilirsiniz. Ancak bunun için pythonun kurulu olması gerekiyor
Her şey hazır! :D Daha önce 64-bit build alıp Windows üzerinde çalıştırabiliyordum, ama şimdi işlerin biraz daha kolay olmasını istedim. Özeleştirme ekleme/çıkarma gibi değişiklikleri 1-2 satırla yapabilmek istedim.


Server source kısmı, FreeBSD'de en son sürümü çekiyor. :) [Extern Bağımlılığı yok]

Windows için ise her şeyi yeniden güncel sürümlerle toparladım :D

Temel mantığım isteyen freebsd de build alsın isteyen windows üzerinde :D

Scripte umarım sabah el atacağım :D

Ayrıca, cross-platform destekli bir scripti Python dışında yazmayı zaten düşünmüyordum. Teşekkürler Eray :aman:



1759956426189.webp


Dipnot: Yorumu yazıp enter basmamışım :D
 
Her şey hazır! :D Daha önce 64-bit build alıp Windows üzerinde çalıştırabiliyordum, ama şimdi işlerin biraz daha kolay olmasını istedim. Özeleştirme ekleme/çıkarma gibi değişiklikleri 1-2 satırla yapabilmek istedim.
Artık 64bit zorunluluk hale geldi :x Geçmişte bunun için uğraşanlar karlı çıktı. xD
Geliştirme günlüklerinin insanlara ilham olması ve çalışmalarını anlatması bakımından güzel bi format. Yaptığınız yeni şeyleri yazmaya devam edin lütfen

windows sevenler derneği fahri başkanı olarak bu postu onaylıyorum:
Onayınız için teşekkür ederim :band:
 
Güncelleme;
Bu güncelleme win32 için kütüphanelerin güncellenmesini içeriyor. İlk önce ön bilgi...
kraizy.tgz dosyalarında win32 portu için kullanılan mysqlclient kütüphanesi ağustos 2009 yılında yayımlanan MySQL Connector/C 6.0.2 kütüphanesidir. Bilgisayarımda windows filesi çalıştırmak için mysql 5.7.44 kurulu olmasına rağmen bu eski kütüphane ile filesi çalıştırabilmiştim ve oyuna giriş yapmıştım.

Bir önceki mesajımda neden win32 için mysql 8.0 build alınamadığı açıklamıştım. Ancak 64bite geçiş yaptığımda server sourcedeki mysqlclienti 8.0 a yükselltebileceğim. Peki ben win32 üzerinde çalışmaya devam ederken neler yaptım?

5.7.44 sürümü ile server sourceyi derlemek için mysql 5.7.44 ve openssl 3.0.10 build ettim ve projeye aktardım. Böylelikle server sourcenin mysqlclient'i ve mysql'a bağlı openssl'i güncellenmiş oldu.
mysqlclient win32 static build.webp openssl 3.0.10 derlenirken.webp

Daha önce server sourceyi sadece release olarak derleyebilmiştim. Ancak debug ile derlemenin önündeki en büyük engeli aşmış olduğumu düşünüyorum. İlerleyen günlerde win32 için devil 1.8.0 debug versiyonunu da derleyip devam edeceğim. Daha sonra server sourceyi c++23 'e yükselteceğim. Bunları da yaptıktan sonra büyük ihtimal 64bit geçiş öncesi daha fazla yapacak bir şey kalmıyor. :P

Tüm bu uzun süren buildleri beklerken bir yandan server files için gerekli olan batch scriptlerini yazmaya devam ettim. Artık filesi açmak için elimle tek tek çalıştırmama gerek kalmadı. Daha önce FreeBSD için yazdığım start.sh shell scripti hangi mantıkla çalışıyorsa aynısı windows içinde geçerlidir.

Windows'da tek fark gördüğünüz gibi ayrı cmd ekranlarında açılması. Tek bir komut satırı içerisinde çıktıları ekletmeyi denedim ancak tüm açılan corelerın çıktıları birbirine girdiği için vazgeçtim. Oyun açılınca olanlar ve hali hazırda açık olan oyunu açmaya çalıştığınızda olanları aşağıdaki ekran resminden bakabilirsiniz.

altyapı files windows start bat dosyası çalışınca olanlar.webp

Lütfen önerilerinizi yazmaktan çekinmeyin.
 
Son düzenleme:
Güncelleme;
Bu güncelleme win32 için kütüphanelerin güncellenmesini içeriyor. İlk önce ön bilgi...
kraizy.tgz dosyalarında win32 portu için kullanılan mysqlclient kütüphanesi ağustos 2009 yılında yayımlanan MySQL Connector/C 6.0.2 kütüphanesidir. Bilgisayarımda windows filesi çalıştırmak için mysql 5.7.44 kurulu olmasına rağmen bu eski kütüphane ile filesi çalıştırabilmiştim ve oyuna giriş yapmıştım.

Bir önceki mesajımda neden win32 için mysql 8.0 build alınamadığı açıklamıştım. Ancak 64bite geçiş yaptığımda server sourcedeki mysqlclienti 8.0 a yükselltebileceğim. Peki ben win32 üzerinde çalışmaya devam ederken neler yaptım?

5.7.44 sürümü ile server sourceyi derlemek için mysql 5.7.44 ve openssl 3.0.10 build ettim ve projeye aktardım. Böylelikle server sourcenin mysqlclient'i ve mysql'a bağlı openssl'i güncellenmiş oldu.
26063 eklentisini görüntüle26065 eklentisini görüntüle

Daha önce server sourceyi sadece release olarak derleyebilmiştim. Ancak debug ile derlemenin önündeki en büyük engeli aşmış olduğumu düşünüyorum. İlerleyen günlerde win32 için devil 1.8.0 debug versiyonunu da derleyip devam edeceğim. Daha sonra server sourceyi c++23 'e yükselteceğim. Bunları da yaptıktan sonra büyük ihtimal 64bit geçiş öncesi daha fazla yapacak bir şey kalmıyor. :P

Tüm bu uzun süren buildleri beklerken bir yandan server files için gerekli olan batch scriptlerini yazmaya devam ettim. Artık filesi açmak için elimle tek tek çalıştırmama gerek kalmadı. Daha önce FreeBSD için yazdığım start.sh shell scripti hangi mantıkla çalışıyorsa aynısı windows içinde geçerlidir.

Windowsta tek fark gördüğünüz gibi ayrı cmd ekranlarında açılması. Tek bir komut satırı içerisinde çıktıları ekletmeyi denedim ancak tüm açılan corelerın çıktıları birbirine girdiği için vazgeçtim. Oyun açılınca olanlar ve hali hazırda açık olan oyunu açmaya çalıştığınızda olanları aşağıdaki ekran resminden bakabilirsiniz.

26064 eklentisini görüntüle

Lütfen önerilerinizi yazmaktan çekinmeyin.


Devil yerine stb_image kullanabilirsin,

Eline sağlık Çalışmalarını takip etmek ve güncelleme notlarını okumak gerçekten çok keyifli. Bize bu keyifi sunduğun için teşekkür ederim, minnettarım.
 
Devil yerine stb_image kullanabilirsin,

Eline sağlık Çalışmalarını takip etmek ve güncelleme notlarını okumak gerçekten çok keyifli. Bize bu keyifi sunduğun için teşekkür ederim, minnettarım.
Öneri ve güzel yorumunuz için çok teşekkür ederim.


Bir sonraki aşama olarak server source'nin windows için derlenebilmesi için çalışmalara başlayacağım. (Belki bu sayede artık m2 işlerine yeni bilgisayarımdan devam edebilirim. FreeBSD 32bit için eski bilgisayarımı açmak zorunda kalıyordum.)
Daha önce şu yazdıklarım için bi gelişme var. Bu yüzden yoruma bunu da ekliyorum. Uyumadan önce yeni bilgisayarımda kurulu olan Windows'da filesi çalıştırmak için deneme yaptım. Client'i ve server'i tekrardan derledim ve başarılı bir şekilde hem serveri açabildim hem de oyuna giriş yapabildim. Bilmeyenler için ufak bi not; win 11 arm versiyonu içerisinde x86 ve 64 uygulamaları çalıştırabiliyor. Bir nevi macos daki rosetta gibi. Performans kaybına sebep oluyor ancak M2 zaten fazla bir şey istemiyor :D
Windows server files için önerilerini sunan tüm üyelerimize teşekkür ederim

win11 arm sanal sunucuda filesi çalıştırdım.webp
 
Windows'da tek fark gördüğünüz gibi ayrı cmd ekranlarında açılması. Tek bir komut satırı içerisinde çıktıları ekletmeyi denedim ancak tüm açılan corelerın çıktıları birbirine girdiği için vazgeçtim. Oyun açılınca olanlar ve hali hazırda açık olan oyunu açmaya çalıştığınızda olanları aşağıdaki ekran resminden bakabilirsiniz.

26064 eklentisini görüntüle

Lütfen önerilerinizi yazmaktan çekinmeyin.

yüklüyse windows terminal üzerinden sekme olarak başlatabilirsiniz
Kod:
Genişlet Daralt Kopyala
        if IS_WINDOWS and self.console_mode == "wt":
            # Snapshot before launch
            before = self._pids_for_image_windows(self._guess_process_image_name(core))

            # Build: wt -w 0 new-tab -d <cwd> --title "<name>" <bin> [args...]
            wt_cmd = [wt, "-w", "0", "new-tab", "-d", str(core.cwd), "--title", core.name] + cmd
            try:
                subprocess.Popen(wt_cmd, **self._popen_flags())
                log.info("Opened WT tab for %s (cwd=%s bin=%s)", core.name, core.cwd, core.bin_path)
            except Exception as e:
                log.error("Failed to open WT tab for %s: %s", core.name, e)
                return

WantK36.png
 
yüklüyse windows terminal üzerinden sekme olarak başlatabilirsiniz
Kod:
Genişlet Daralt Kopyala
        if IS_WINDOWS and self.console_mode == "wt":
            # Snapshot before launch
            before = self._pids_for_image_windows(self._guess_process_image_name(core))

            # Build: wt -w 0 new-tab -d <cwd> --title "<name>" <bin> [args...]
            wt_cmd = [wt, "-w", "0", "new-tab", "-d", str(core.cwd), "--title", core.name] + cmd
            try:
                subprocess.Popen(wt_cmd, **self._popen_flags())
                log.info("Opened WT tab for %s (cwd=%s bin=%s)", core.name, core.cwd, core.bin_path)
            except Exception as e:
                log.error("Failed to open WT tab for %s: %s", core.name, e)
                return

WantK36.png
Ben bunu 100 kere gpt'den istedim beceremedi. tam aradığım şey sağ ol. Source'dan renkli yazı çıktısını nasıl alıyorsun peki?
 
Ben bunu 100 kere gpt'den istedim beceremedi. tam aradığım şey sağ ol. Source'dan renkli yazı çıktısını nasıl alıyorsun peki?
ek olarak bir şey yapmıyorum, log için spdlog kullanıyorum ve aşağıdaki sink ile tanımlayınca log'un başlangıç kısmını kendisi yönetiyor
Kod:
Genişlet Daralt Kopyala
        auto console_sink = std::make_shared<spdlog::sinks::stdout_color_sink_mt>();
 
Geri
Üst