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"
 
quest dosyasını ver bi tane de c++ ile yazılmış zindan dosyası at örnek olarak o halleder
 
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"
Geliştirme günlüğümdeki dosyamızda yapmıştık bahsettiğin şeyi. Quest kullanmadan tamamen C++ tabanlı P2P Toml configli bir sistem yazdık. Yaml yerine okunabilirlik yani farkedilebilirlik açısından Toml öneririm.

 
quest dosyasını ver bi tane de c++ ile yazılmış zindan dosyası at örnek olarak o halleder
denemek gerek yapay zeka ile :ROFLMAO: :ROFLMAO:

Geliştirme günlüğümdeki dosyamızda yapmıştık bahsettiğin şeyi. Quest kullanmadan tamamen C++ tabanlı P2P Toml configli bir sistem yazdık. Yaml yerine okunabilirlik yani farkedilebilirlik açısından Toml öneririm.


Abi sen ayrı bir seviye yapıyorsun. Eline sağlık süper olmuş. Anlatmak istediğimde tam yapmış olduğun gibi en azından zindan oluşturmak istediğimizde büyük bir yükten kurtulmak için ideal görünüyor ve ya istediğimizde ayarlarını değiştirmek gerektiğinde
 
denemek gerek yapay zeka ile :ROFLMAO: :ROFLMAO:


Abi sen ayrı bir seviye yapıyorsun. Eline sağlık süper olmuş. Anlatmak istediğimde tam yapmış olduğun gibi en azından zindan oluşturmak istediğimizde büyük bir yükten kurtulmak için ideal görünüyor ve ya istediğimizde ayarlarını değiştirmek gerektiğinde
İster boss çağırma ister tek kat ister katlı ister hwid süreli veya event zindanı veyahut hangi günler aktif olacak şekilde ayarlayarak şu şekilde stage'lerine kadar Toml üzerinden yönetebiliyorsun;
1749655929396.webp
 
Toml ile json arasında ne fark var ?
Pek bir fark yok Yunus’um, sadece insan tarafından kolay okunabilir olması için TOML tercih ediliyor.
Ben JSON'cuyum 😎 (JavaScript Object Notation) adamdır 😄


Toml:
Genişlet Daralt Kopyala
[karakter]
isim = "Savaşçı"
seviye = 35
aktif = true

json:
Genişlet Daralt Kopyala
{
  "karakter": {
    "isim": "Savaşçı",
    "seviye": 35,
    "aktif": true
  }
}
 
İster boss çağırma ister tek kat ister katlı ister hwid süreli veya event zindanı veyahut hangi günler aktif olacak şekilde ayarlayarak şu şekilde stage'lerine kadar Toml üzerinden yönetebiliyorsun;
23881 eklentisini görüntüle
Abi sen süpersin ya fikir olması açısından çok iyi yaptın en azından tek bir toml üzerinden bütün zindanları yönetebilirsin yaparken aslında quest yazmak yerine kaynak kodları içerisinde ki quest kaynaklarını kullanabilirim
 
Pek bir fark yok Yunus’um, sadece insan tarafından kolay okunabilir olması için TOML tercih ediliyor.
Ben JSON'cuyum 😎 (JavaScript Object Notation) adamdır 😄


Toml:
Genişlet Daralt Kopyala
[karakter]
isim = "Savaşçı"
seviye = 35
aktif = true

json:
Genişlet Daralt Kopyala
{
  "karakter": {
    "isim": "Savaşçı",
    "seviye": 35,
    "aktif": true
  }
}
Bende aynı jsoncuyum canom 😍
Ama gerçekten merak ettim. Daha önce yine @Adalet ten duymuştum.
 
Bende aynı jsoncuyum canom 😍
Ama gerçekten merak ettim. Daha önce yine @Adalet ten duymuştum.
Nayah2 dosyalarında TOML kullanılıyor, rahat rahat açıp inceleyebilirsin Yunus’um.

Ben de merak saldım, .txt’lerden bayağı sıkıldım.
Sağ olsun @pasha37'nin JSON için mob drop oluşturduğunu görünce, başka neler var rahat rahat freebsd de kullanabileceğimiz diye bakınmıştım Eğer sen de kafana göre fantezi takılmak istersen bunlar'da vardır loo :D
ron edn nix cue gibi gibi bir sürü alternatif var kafana göre olanı seçersin ama bana kalırsa uygulanabilirlik olarak kraliçe json çok yaşa :D :aman:
 
Son düzenleme:
Nayah2 dosyalarında TOML kullanılıyor, rahat rahat açıp inceleyebilirsin Yunus’um.

Ben de merak saldım, .txt’lerden bayağı sıkıldım.
Sağ olsun @pasha37'nin JSON için mob drop için oluşturduğunu görünce, başka neler var rahat rahat freebsd de kullanabileceğimiz diye bakınmıştım Eğer sen de kafana göre fantezi takılmak istersen bunlar'da vardır loo :D
ron edn nix cue gibi gibi bir sürü alternatif var kafana göre olanı seçersin ama bana kalırsa uygulanabilirlik olarak kraliçe json çok yaşa :D :aman:
Mutlaka bakıcam önerin için sağolasın 🥰
Toml daha iyi sanki jsona göre hem yorum satırı felanda kullanılabiliyomuş söylediklerinide inceliyim, fazla konuyu kirletmeyelim. 😂😂
 
Nayah2 dosyalarında TOML kullanılıyor, rahat rahat açıp inceleyebilirsin Yunus’um.

Ben de merak saldım, .txt’lerden bayağı sıkıldım.
Sağ olsun @pasha37'nin JSON için mob drop oluşturduğunu görünce, başka neler var rahat rahat freebsd de kullanabileceğimiz diye bakınmıştım Eğer sen de kafana göre fantezi takılmak istersen bunlar'da vardır loo :D
ron edn nix cue gibi gibi bir sürü alternatif var kafana göre olanı seçersin ama bana kalırsa uygulanabilirlik olarak kraliçe json çok yaşa :D :aman:
Nayah2 N2Play filesi mi kullanıyor
 
Mutlaka bakıcam önerin için sağolasın 🥰
Toml daha iyi sanki jsona göre hem yorum satırı felanda kullanılabiliyomuş söylediklerinide inceliyim, fazla konuyu kirletmeyelim. 😂😂

json ile de yorum satırı kullanabilirsiniz, rapidjson destekliyor diğerlerini bilmiyorum. Parse kullanırken kParseCommentsFlag vermeniz yeterli.

asıl konuya gelecek olursak, questlerin ya da daha genel olarak oyun yaparken hem client de hem server da kullanılan script mantığının amacı sürekli build almadan zindanlar, etkinlikler ya da görev tarzı şeyler yapabilmek. bana kalırsa bunu source'e taşımanın hiç bir mantığı yok.
 
json ile de yorum satırı kullanabilirsiniz, rapidjson destekliyor diğerlerini bilmiyorum. Parse kullanırken kParseCommentsFlag vermeniz yeterli.

asıl konuya gelecek olursak, questlerin ya da daha genel olarak oyun yaparken hem client de hem server da kullanılan script mantığının amacı sürekli build almadan zindanlar, etkinlikler ya da görev tarzı şeyler yapabilmek. bana kalırsa bunu source'e taşımanın hiç bir mantığı yok.
haklısın abi adamlar luayı bu yüzden tercih etmiş orjinaline sadık kalalım
 
json ile de yorum satırı kullanabilirsiniz, rapidjson destekliyor diğerlerini bilmiyorum. Parse kullanırken kParseCommentsFlag vermeniz yeterli.

asıl konuya gelecek olursak, questlerin ya da daha genel olarak oyun yaparken hem client de hem server da kullanılan script mantığının amacı sürekli build almadan zindanlar, etkinlikler ya da görev tarzı şeyler yapabilmek. bana kalırsa bunu source'e taşımanın hiç bir mantığı yok.
Katılııyorum, yapılmak istense hepsi C++ tarafında yapılabilirdi, build almadan değişiklik yapabilmenin yanında bunun bir sebebi daha olduğunu düşünüyorum; server tarafına aşırı yük bindirmekten kaçınmak. Gerekli gereksiz her şeyi serverside olarak yazıp oyunu şişirmenin ne mantığı var, basit şeyler PY ile (örneğin efsun botu), soruna veya açığa sebep olmayacak sistemler, zindanlar Lua ile gayet güzel yazılır bu da yük olayını dengeler, sadece kesinlikle müdahale edilememesini istediğiniz sistemleri server taraflı yapın, veya kontrolleri. Ymir'in görevler için Lua tercih etmesinin mantıklı bir sebebi var çünkü, her ne kadar kendileri çok mantıklı olarak bilinmese bile..
 
Katılııyorum, yapılmak istense hepsi C++ tarafında yapılabilirdi, build almadan değişiklik yapabilmenin yanında bunun bir sebebi daha olduğunu düşünüyorum; server tarafına aşırı yük bindirmekten kaçınmak. Gerekli gereksiz her şeyi serverside olarak yazıp oyunu şişirmenin ne mantığı var, basit şeyler PY ile (örneğin efsun botu), soruna veya açığa sebep olmayacak sistemler, zindanlar Lua ile gayet güzel yazılır bu da yük olayını dengeler, sadece kesinlikle müdahale edilememesini istediğiniz sistemleri server taraflı yapın, veya kontrolleri. Ymir'in görevler için Lua tercih etmesinin mantıklı bir sebebi var çünkü, her ne kadar kendileri çok mantıklı olarak bilinmese bile..
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.
 
Son düzenleme:
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.
Bir şeyi merak ediyorum questte olduğu gibi notice konuşmaları statik olarak server tarafında mı ekli yoksa biz bunu dinamik olarak yönetebiliyor muyuz ? Aslında benim düşündüğümde bir şablon oluşturup scriptlerden arındırmaktı. fakat npc konuşmaları kısımları çok kafamı karıştırdı
 
Bir şeyi merak ediyorum questte olduğu gibi notice konuşmaları statik olarak server tarafında mı ekli yoksa biz bunu dinamik olarak yönetebiliyor muyuz ? Aslında benim düşündüğümde bir şablon oluşturup scriptlerden arındırmaktı. fakat npc konuşmaları kısımları çok kafamı karıştırdı
Dinamik olarak yine config üzerinden yönetilebiliyor. Server-client tarafında bütün yapı dinamik configlenecek şekilde yazıldı.
 
Geri
Üst