Soru Zindanları c++ ile yeniden yazmak

  • Konuyu açan Konuyu açan zodiac160
  • Açılış Tarihi Açılış Tarihi
  • Yanıt Yanıt 24
  • Gösterim Gösterim 534
Herhangi bir konuda danışmak istediğiniz soru varsa bu öneki seçebilirsiniz.

zodiac160

MT Üye
MT Üye
Mesaj
180
Çözümler
9
Beğeni
74
Puan
454
Ticaret Puanı
0
Merhaba, ne tür yenilikler yapılabilir diye düşünürken aklıma bir soru takıldı. Zindanların çoğu hala quest tabanlı. Her zindan için ayrı ayrı kodlar yazmak yerine ortaklaştırsak nasıl olur diye bir düşünceye girdim. Json ve ya toml ile zindan yönetimini sağlamak nasıl olur. Böyle bir sistem yapıldı mı bilmiyorum.

Örnek:
YAML:
Genişlet Daralt Kopyala
[metadata]
name = "Devil's Catacomb"
min_level = 75
floor_count = 6

[floor1]
goal = "KillAll"
next = "floor2"

[floor2]
goal = "KillBoss"
next = "floor3"

[floor2]
goal = "KillMetin"
next = "floor4"
 
Senin ve @pasha37 yorumlarına kısmen katılıyorum fakat C++ taraflı şema oluşturulup build almadan aslında configlemek(toml,yaml,json) yaptığımız. Yoksa kaynak üzerinden sürekli derleme yapmak zaten mantıksız. Amaç aradaki bir API yani script'i kaldırmak saf performans C++ üzerinde çalışmak, zira bazı buglar havada uçuşuyor lua tarafında. Yoksa lua ile auction bile yazılabilir, buradaki amaç kodun daha performanslı çalışmasını sağlamak. Buradaki sanırsam anlaşılmayan konu fikir farklılığı, yapılmak istenenin biraz farklılığı. Ben biraz genelleme MMORPG olarak değerlendiriyorum buna göre fikir belirttim. Metin2 açısından dedikleriniz doğru olabilir.

şema dediğin şey zaten script mantığının bir parçası, lua da tablo ile tanımlamak ile config dosyası üzerinden tanımlanması günün sonunda farklı bir noktaya çıkmıyor. bir oyun sunucu için script mantığını kaldırmak yapılabilecek en saçma şeylerden birisi olurdu muhtemelen. Lua'nın performansa etkisi yok denecek kadar az, runtime'da vereceği avantajları düşününce performans konusu açmaya bile gerek kalmaz, konu Python ya da başka bir dil olsa tartışılabilir ama Lua ve performans etkiler diyerek eleştirmek sadece saçmalık, debug kısmında zorluk gibi gerçekten problem yaratan durumlar bahane edilebilir ancak entegrasyonu bozuksa düzeltilir ya da sol veya luau gibi daha düzgün high level alternatiflere geçirilir, bug varsa bug çözülür bunlar script mantığını kaldırmak için bir sebep olamaz, olmamalı.

Bu arada Metin2 özelinde konuşmuyorsak iş dahada ironik bir hal alır, script kullanmayan kaç mmo oyun var? WoW gibi en büyük mmorpg alternatiflerinin addon ve script mantığına girmeye bile gerek yok zaten...

Linkleri görebilmek için giriş yap veya kayıt ol.

Linkleri görebilmek için giriş yap veya kayıt ol.



PS: sunucu tarafı 10 küsür sene önce 1000+ satır lua ile yazıldı
RDcJiPb.jpg
 
şema dediğin şey zaten script mantığının bir parçası, lua da tablo ile tanımlamak ile config dosyası üzerinden tanımlanması günün sonunda farklı bir noktaya çıkmıyor. bir oyun sunucu için script mantığını kaldırmak yapılabilecek en saçma şeylerden birisi olurdu muhtemelen. Lua'nın performansa etkisi yok denecek kadar az, runtime'da vereceği avantajları düşününce performans konusu açmaya bile gerek kalmaz, konu Python ya da başka bir dil olsa tartışılabilir ama Lua ve performans etkiler diyerek eleştirmek sadece saçmalık, debug kısmında zorluk gibi gerçekten problem yaratan durumlar bahane edilebilir ancak entegrasyonu bozuksa düzeltilir ya da sol veya luau gibi daha düzgün high level alternatiflere geçirilir, bug varsa bug çözülür bunlar script mantığını kaldırmak için bir sebep olamaz, olmamalı.

Bu arada Metin2 özelinde konuşmuyorsak iş dahada ironik bir hal alır, script kullanmayan kaç mmo oyun var? WoW gibi en büyük mmorpg alternatiflerinin addon ve script mantığına girmeye bile gerek yok zaten...

Linkleri görebilmek için giriş yap veya kayıt ol.

Linkleri görebilmek için giriş yap veya kayıt ol.



PS: sunucu tarafı 10 küsür sene önce 1000+ satır lua ile yazıldı
RDcJiPb.jpg

Runtime'da sadece geliştirme aşamasında yapabileceğin birşey durumunda yarar sağlar, ancak aktif oyunda anlık herhangi bir avantajı yok. Ek olarak çomarların bile sıfırdan rahatlıkla bir zindan oluşturabilmesi ve kolaylık sağlaması için bu config. Herhangi birisine al bak config bu desem zindan oluşturabilecek düzeyde kolaylık sağlıyor ama bu lua'da göstermek daha da karmaşık ve zor olacak. Lua bana göre yapılan configlemeye göre karışıklıktan başka birşey değil. Aynı şartlarda oluşturulan lua'da 7 kat ve stage'e sahip bir zindan bin satır olacakken, config üzerinden 100 satır kadar sürecek. Ek olarak biliyorsun ki Lua tek başına Metin2 için C++ tarafı olmadan birşey yapılabilecek bir dil değil, sadece tetikleyici bir script. Yeniden oyun yazıyor olsam Lua ile elbet birşeyler yaparım, fakat kesinlikle dungeon sistemini değil, zira tekrar dungeon oluşturma aşaması hard code'dan başka birşey değil şahsen.
 
Runtime'da sadece geliştirme aşamasında yapabileceğin birşey durumunda yarar sağlar, ancak aktif oyunda anlık herhangi bir avantajı yok. Ek olarak çomarların bile sıfırdan rahatlıkla bir zindan oluşturabilmesi ve kolaylık sağlaması için bu config. Herhangi birisine al bak config bu desem zindan oluşturabilecek düzeyde kolaylık sağlıyor ama bu lua'da göstermek daha da karmaşık ve zor olacak. Lua bana göre yapılan configlemeye göre karışıklıktan başka birşey değil. Aynı şartlarda oluşturulan lua'da 7 kat ve stage'e sahip bir zindan bin satır olacakken, config üzerinden 100 satır kadar sürecek. Ek olarak biliyorsun ki Lua tek başına Metin2 için C++ tarafı olmadan birşey yapılabilecek bir dil değil, sadece tetikleyici bir script. Yeniden oyun yazıyor olsam Lua ile elbet birşeyler yaparım, fakat kesinlikle dungeon sistemini değil, zira tekrar dungeon oluşturma aşaması hard code'dan başka birşey değil şahsen.
Aslında iki düşüncede doğru yanlış bir tarafı yok. Eğer müşteri taraflı işte files satan kişi tarafından bakarsak evet server taşıyım toml ile yönetmek istediğin gibi zindan oluşturulmasına imkan sağlamak konusunda işlevsel. Ama kendi yaptığı files kullanıp oyun açmayı planlayan bir geliştirici için lua üzerinden devam etmekte bir işlevsel zaten onun bilgisine sahip oluyor @pasha37 ve @Adalet ikinizinde yaklaşımı süper

pdf kaynak için teşekkür ederim
 
Geri
Üst