Void Project - Geliştirme Günlüğü

Adalet

Premium Üye
Premium Üye
Üye
Mesaj
85
Beğeni
145
Puan
726
Ticaret Puanı
0
Hedefimiz olabildiğince modernize ve güncel kaynaklardan oluşan, Metin2 içeriklerine özgün fakat kaynak kodları bir o kadar Metin2 dışı bir dosya yaratmak. Daha önceki bazı konularımda ve paylaşımlarımdan neler yaptığımı ve uğraştığımı bazı kişiler biliyor. Dosyalarım hem Game hem de Client ve kullandığı bütün tools'lara kadar x64 mimarisi üzerine geliştiriliyor. Eski Metin2 yürütmesini sağlayan FreeBSD yerine ise daha modernize olarak gördüğüm Windows Server tabanını tercih etmeyi daha uygun gördüm(gerek Visual Studio hata ayıklama, gerek güvenlik konusunda biraz daha iyi olması). O yüzden lafı uzatmadan aşağıda gün gün konudan müsait oldukça paylaşacağım geliştirme günlüğüme hoşgeldiniz demek istiyorum. Zaman geçtikçe güncelleyeceğim.

Altyapıma Ait Ufak Bilgiler:
Genişlet Daralt Kopyala
Derleyici: Visual Studio 17 VS 2022
Python API: PyBind, PyGame
Database: MariaDB Windows Server 11.3.2
Game: Windows Server 2022 x64
Client: Windows x64
Pack Encryp.: VFS .pak
 
Son düzenleme:
İlk #update'i verelim;

  • Sıfırdan yazılan Special Inventory, search and refresh
  • Window'ları tamamen proto üzerinden flag ile ayrılır. Eski stil ek envanterlerin aksine gereksiz sorgu döndürmez tüm slotları değil sadece flag'ına ve window tipine ait gridleri tarayarak arama işlemini gerçekleştirir.
 
Son düzenleme:
ben n2play'ın filesini tavsiye etmiyorum ya. çok karman çorban, ne olduğu belli değil :alala:
 
ben n2play'ın filesini tavsiye etmiyorum ya. çok karman çorban, ne olduğu belli değil :alala:
Size karışık gelmesinin sebebi cmake gibi extern ihtiyacı gütmeyen 3. parti programlarınızla beraber projelendirmesini sağlayan ek parti yazılımlar tabi kullandığı bazı kütüphaneleri de buna sayabiliriz. Şuan kendim Cmake olarak kullanmıyorum dışarı bir bağlılığı bulunmuyor, halihazır olan hali değil kullandığım. Ek olarak yapılan bazı değişiklikler tarihi eser hommade ymir kaynaklarından kat ve kat üstün. İçerdiği kullanımlar yüzünden zaten klasik kaynak kodlarına alışkın kişiler değil ciddi yazılım yani kütüphane bilgisi olan kişilerin kullanmasını önerdiğim dosyalardır. Kimine göre karışık kimine göre cevher. Yine de saygı duyarım fakat bu tarz cevher kaynaklarının kullanılmamasının asıl sebebi bazı kişiler için vakitsizlik ve gerek duymama, bazı kişiler içinse bilgi eksikliğinden kaynaklı. Bu konuda @MT2Dev 'in fikrini alabiliriz o da detay katacaktır dediklerime ithafen :)
 
Karışık gelmesinin sebebi cmake gibi extern ihtiyacı gütmeyen 3. parti programlarınızla beraber projelendirmesini sağlayan ek parti yazılımlar. Şuan kendim Cmake olarak kullanmıyorum dışarı bir bağlılığı bulunmuyor. Ek olarak yapılan bazı değişiklikler tarihi eser hommade ymir kaynaklarından kat ve kat üstün. İçerdiği kullanımlar yüzünden zaten klasik kaynak kodlarına alışkın kişiler değil ciddi yazılım yani kütüphane bilgisi olan kişilerin kullanmasını önerdiğim dosyalardır. Kimine göre karışık kimine göre cevher.
ben shader ve effect sistemi harici çekebilecek bir şey bulamadım, daha var mı böyle performans arttıran bir şeyler :s18:
 
ben shader ve effect sistemi harici çekebilecek bir şey bulamadım, daha var mı böyle performans arttıran bir şeyler :s18:
Çekebileceğiniz ya da sökebileceğin bir tür dosya değil zaten. Bakmak istersen en basitinden kullanılan dosya okuma ve şifreleme sistemi, resource, struct katmanlama, steptimer gibi şeyler'e bakabilirsin.
 
Çekebileceğiniz ya da sökebileceğin bir tür dosya değil zaten. Bakmak istersen en basitinden kullanılan dosya okuma ve şifreleme sistemi, resource, struct katmanlama, steptimer gibi şeyler'e bakabilirsin.
dosya okuma sisteminde gözüm yok ya, performans arttıracağını zannetmiyorum. steptimer yerine kendi timerimi kullanıyorum. çektiğim shader ve effect sistemi yeter bana herhalde, daha gözüme çarpan ciddi bir şey yok :alala:
 
eline sağlık kardeşim devamınıda bekliyoruz
 
Çok kısa da olsa mesajlarınız sayesinde sizin bu konularda ne kadar bilgili olduğunuzu az çok kestirebiliyorum. Hem siz hem diğer bilgili arkadaşların gerek konu paylaşımları gerek changelogları bende şunu tetikliyor. Bu işin hakkını vereceksen önce bilgini oluşturacaksın. Gerek yazılım gerek sistem bilgisi gibi gibi ve bunun içinde azimle çalışıp kendimi hevesle geliştirmeyi. Şimdiden başarılar. Kolaylıklar dilerim. Ellerinize sağlık. Takipteyim.
 
Size karışık gelmesinin sebebi cmake gibi extern ihtiyacı gütmeyen 3. parti programlarınızla beraber projelendirmesini sağlayan ek parti yazılımlar tabi kullandığı bazı kütüphaneleri de buna sayabiliriz. Şuan kendim Cmake olarak kullanmıyorum dışarı bir bağlılığı bulunmuyor, halihazır olan hali değil kullandığım. Ek olarak yapılan bazı değişiklikler tarihi eser hommade ymir kaynaklarından kat ve kat üstün. İçerdiği kullanımlar yüzünden zaten klasik kaynak kodlarına alışkın kişiler değil ciddi yazılım yani kütüphane bilgisi olan kişilerin kullanmasını önerdiğim dosyalardır. Kimine göre karışık kimine göre cevher. Yine de saygı duyarım fakat bu tarz cevher kaynaklarının kullanılmamasının asıl sebebi bazı kişiler için vakitsizlik ve gerek duymama, bazı kişiler içinse bilgi eksikliğinden kaynaklı. Bu konuda @MT2Dev 'in fikrini alabiliriz o da detay katacaktır dediklerime ithafen :)
ben n2play'ın filesini tavsiye etmiyorum ya. çok karman çorban, ne olduğu belli değil :alala:

Yani karman çorban kısmına bir bakıma katılıyorum çünkü bu kaynağın Metin2 kaynağı olduğunu idrak etmek güç, alışılan hiçbir şeyi yerinde bulamamak, fonksiyon, dosya isimlerini bulamamak, standart alışılmış herhangi bir şeyi bildiğiniz konumunda veya hatırladığını şekilde bulamamak işleri çok zorlaştırır, bu çeşit bir altyapıyı ancak bunun üstünde çalışıp gelişimine destek olan devler rahatlıkla kullanabilir, Metin2'nin klasik kaynağına alışkın birinin bu dosyalara alışması ve uyum sağlaması çok zaman alır bu bir gerçek ayrıca içinde çok fazla modern C++ özelliği olduğu için, paket yapıları başta olmak üzere bir çok şey farklı tekniklerle kullanıldığı için bunun üzerinde çalışmak için Metin2 kaynağından iyi anlayan bir geliştirici değil, iyi bir C++ geliştiricisi olmak gerek, bu yüzden piyasadaki çooook büyük çoğunluğa hitap etmiyor bu dosyalar (tabii alıntı yaptığım ikili hariç 😄 ). Kullanımının zor ve karışık (bu projede çalışmamış herhangi diğer devler için) olduğu bu tarz bir yapıya direkt olarak geçiş yapmak çok radikal bir karar olurdu bunu bende yapmadım fakat bu N2Play, Diamas, Adalet altyapılarının içerisinde esinlenilebilecek çok fazla detay var, filesin paylaşıldığı konuda da yorumda bahsetmiştim, kendi adıma konuşacak olursam bazıları düşünüp uygulamadığım bazıları hiç aklıma gelmeyen, mantıklıymış aslında dediğim bir çok şey gördüm o yüzden bunları alıp kendi projemde kullanma fikri bence bu dosyaların piyasada ücretsiz paylaşılan cevherler olduğunu gösterir, ben böyle yorumluyorum faydalandığım da çok kısımları oluyor ileride de olacaktır, fikir almak için güzel işler. Komple geliştirmene bu dosyalar üzerinden devam et deseydiniz o zaman bende benim için çok fazla değişiklik barındırdığını, karışık olduğunu söyleyebilirdim, aynı teknikleri orijinal cpp ve fonksiyon düzenini bozmadan yapmayı tercih ederim ama yine de dediğim gibi içerik olarak çok zengin işler olduğunu düşünüyorum, bence incelemeye değer.
 
#Update;
  • Special Inventory tasarımı güncellendi, artık icon çekecek ve en yakın arama sonucunu gösterecek şekilde ayarlandı.
  • Special Inventory içerisine bir kategori daha eklendi: Şebnemler. Artık şebnemler belirlenen kategoriye gelecek ve envanterinizde yer kaplamadan orada aktif edebileceksiniz.
  • Item Search eklentisi envantere'de eklendi
1721057168180.webp

1721058424149.webp
 
Yani karman çorban kısmına bir bakıma katılıyorum çünkü bu kaynağın Metin2 kaynağı olduğunu idrak etmek güç, alışılan hiçbir şeyi yerinde bulamamak, fonksiyon, dosya isimlerini bulamamak, standart alışılmış herhangi bir şeyi bildiğiniz konumunda veya hatırladığını şekilde bulamamak işleri çok zorlaştırır, bu çeşit bir altyapıyı ancak bunun üstünde çalışıp gelişimine destek olan devler rahatlıkla kullanabilir, Metin2'nin klasik kaynağına alışkın birinin bu dosyalara alışması ve uyum sağlaması çok zaman alır bu bir gerçek ayrıca içinde çok fazla modern C++ özelliği olduğu için, paket yapıları başta olmak üzere bir çok şey farklı tekniklerle kullanıldığı için bunun üzerinde çalışmak için Metin2 kaynağından iyi anlayan bir geliştirici değil, iyi bir C++ geliştiricisi olmak gerek, bu yüzden piyasadaki çooook büyük çoğunluğa hitap etmiyor bu dosyalar (tabii alıntı yaptığım ikili hariç 😄 ). Kullanımının zor ve karışık (bu projede çalışmamış herhangi diğer devler için) olduğu bu tarz bir yapıya direkt olarak geçiş yapmak çok radikal bir karar olurdu bunu bende yapmadım fakat bu N2Play, Diamas, Adalet altyapılarının içerisinde esinlenilebilecek çok fazla detay var, filesin paylaşıldığı konuda da yorumda bahsetmiştim, kendi adıma konuşacak olursam bazıları düşünüp uygulamadığım bazıları hiç aklıma gelmeyen, mantıklıymış aslında dediğim bir çok şey gördüm o yüzden bunları alıp kendi projemde kullanma fikri bence bu dosyaların piyasada ücretsiz paylaşılan cevherler olduğunu gösterir, ben böyle yorumluyorum faydalandığım da çok kısımları oluyor ileride de olacaktır, fikir almak için güzel işler. Komple geliştirmene bu dosyalar üzerinden devam et deseydiniz o zaman bende benim için çok fazla değişiklik barındırdığını, karışık olduğunu söyleyebilirdim, aynı teknikleri orijinal cpp ve fonksiyon düzenini bozmadan yapmayı tercih ederim ama yine de dediğim gibi içerik olarak çok zengin işler olduğunu düşünüyorum, bence incelemeye değer.
Karışık gelmesinin ana sebebi genel olarak geliştiriciyim diyen kişilerin Metin2 gözüyle bakması ve ezbere Metin2 düzeni üzerinden yürümesidir. Gerçek farklı projelerde çalışmış C++ geliştiricileri dosyanın karışık yerine daha düzenli bir yapıya sahip olduğunu görecektir. Her zaman şu ayrımı görüyorum, C++ ile Metin2 geliştiricisi. İkisi farklı şeyler benim gözümde. Nayah2 gibi bir proje gerçek bir geliştiricinin elinden çıktığı için insanlar yapamıyor veya karışık geliyor.
 
Son düzenleme:
Karışık gelmesinin ana sebebi genel olarak geliştiriciyim diyen kişilerin Metin2 gözüyle bakması ve ezbere Metin2 düzeni üzerinden yürümesidir. Gerçek farklı projelerde çalışmış C++ geliştiricileri dosyanın karışık yerine daha düzenli bir yapıya sahip olduğunu görecektir. Her zaman şu ayrımı görüyorum, C++ ile Metin2 geliştiricisi. İkisi farklı şeyler benim gözümde. Nayah2 gibi bir proje gerçek bir geliştiricinin elinden çıktığı için insanlar yapamıyor veya karışık geliyor.
BEN METİN2 MİLLİYETÇİSİYİM ARKADAŞ!!😡😡👊👊BU OYUNUN ESKİ YAZILIMINA, BU OYUNU YAZAN SENİORLARA JUNİORLARA SAHİP ÇIKARIM!!!!😡😡😡O ZAMAN BENİ ÇAĞIRMAYACAKTINIZ!!!!!

 
#Update;
  • PageGrid yeniden yazdıldı. Artık döngüler daha kısa süreler içerisinde bitecek.
  • ENABLE_CHEST_RENEWAL yazıldı(Sınırsız-Stok Sınırı Kadar Sandık Açma).
  • Klasik kullanılan effolkronium , xorshift, std yerine pcg kullanımına geçildi. Daha kısa sürede çok daha karışık hesaplama işlemleri yapılabiliyor.
 
Son düzenleme:
#Update;
  • PageGrid yeniden yazdıldı. Artık döngüler daha kısa süreler içerisinde bitecek.
  • ENABLE_CHEST_RENEWAL yazıldı(Sınırsız-Stok Sınırı Kadar Sandık Açma).
  • Klasik kullanılan effol , std yerine pcg kullanımına geçildi. Daha kısa sürede çok daha karışık hesaplama işlemleri yapılabiliyor.

helalkee
 
#Update;
  • PageGrid yeniden yazdıldı. Artık döngüler daha kısa süreler içerisinde bitecek.
  • ENABLE_CHEST_RENEWAL yazıldı(Sınırsız-Stok Sınırı Kadar Sandık Açma).
  • Klasik kullanılan effolkronium , xorshift, std yerine pcg kullanımına geçildi. Daha kısa sürede çok daha karışık hesaplama işlemleri yapılabiliyor.

Filesin çok güzel ilerliyo. Ellerine sağlık. Bu arada std yerine pcg kullandım demişsin. Boost naısl sence hiç baktınmı ?
 
Üst