Çok eski bir web tarayıcısı kullanıyorsunuz. Bu veya diğer siteleri görüntülemekte sorunlar yaşayabilirsiniz.. Tarayıcınızı güncellemeli veya alternatif bir tarayıcı kullanmalısınız.
konuya daha önce bunu yazdım mı bilmiyorum ama oyuna sms sistemi eklemiş adamlar, bildiğin arkadaş listende ki adamın telefonuna sms atabiliyormuşsun oyun içi
Projedeki dosya sayısı arttıkça modülerlik zorlaşıyor. Kafada tasarlamak o anki ruh haline göre yetersiz kalabiliyor. Yeni bir class, birkaç fonksiyon yazmaya kalkışırsın, yazarken de istemsizce önceden yazdığı kodu okursun ve bunların gereksiz olduğunu farkedebilirsin. Bunun yerine kabaca yorum satırı ile pseudo code gibi konuşma diliyle yazarsın. Mantıksız bir şey gözükmüyorsa yazmaya başlarsın. Tahminimce o arkadaş da böyle bir düşüncedeydi.
Bu adamlar bu oyunu hazır bir oyun motoru olmadan 2004 yılında geliştirmiş. Yapay zeka yok, en büyük eksik belki de. Kodların önemli bir kısmını da C kafasıyla yazmışlar. Yargılanabilecek kısımlar olabilir ama kesinlikle aptal yerine konmaları bana daha komik geliyor
Herkesin genelde kaldırdığı Traffic Profiler sistemini denedim, aslında ilgi çekici raporlar veriyor, biraz geliştirilerek kullanışlı bir araç haline getirilebilir.
Bu değerler editör açılırken bütün mob listesine şu formatta yazdırılıyor:
C++:
"%d:%s(%02d~%02d):%d"
Örneğin editörde bir mob şu şekilde görüntülenebiliyordu:
Kod:
2:Wild Dog(01~04):101
Aynı bilgi seçili bir spawn alanındaki yaratık gösterilirken de tekrar kullanılıyor.
Yani bu alan sadece struct içinde unutulmuş bir veri değil; editörün kullanıcı arayüzünde aktif olarak kullanılan bir özellik.
Daha da ilginci, 2014 istemcisinde bu sistem tamamen ortadan kalkmış durumda.
Eski yapı:
C++:
BYTE abLevelRange[2];
2014:
C++:
BYTE bLevel;
Yani iki byte'lık bir level aralığı yerine tek bir level değeri kullanılıyor.
Buradan kesin olarak söyleyebildiğimiz şeyler:
Eski WorldEditor moblar için tek level değil, bir level aralığı konsepti içeriyordu.
Bu aralık editör arayüzünde aktif olarak kullanılıyordu.
Daha sonraki sürümlerde bu sistem kaldırılmış ve tek level mantığına geçilmiş.
Asıl merak uyandıran kısım ise şu:
Bu sistem gerçekte ne için kullanılıyordu?
İlk akla gelen ihtimal, mobların belirli bir level aralığında spawn olabilmesiydi.
Örneğin:
Kod:
Yabani Köpek
Level 1~4
olarak tanımlanıyor ve spawn olurken bu aralıktan bir level seçiliyor olabilirdi.
Fakat elimizdeki kodlar bunu henüz kanıtlamıyor.
Bunun doğrulanabilmesi için eski sunucu tarafındaki spawn veya mob oluşturma kodlarında abLevelRange kullanımını bulmak gerekiyor.
Bir başka ihtimal ise bunun gerçek bir gameplay sistemi değil, editöre yönelik bir metadata olması.
Örneğin mobun gerçek leveli sabit olsa bile:
Kod:
Yabani Köpek (1~4)
Ork (15~20)
şeklinde harita tasarımcısına o yaratığın hedef oyuncu seviyesini göstermek için kullanılmış olabilir.
Fakat burada ilginç olan nokta şu:
Bu bilgi spawn alanlarından değil, doğrudan mob datasından geliyor.
Yani Ymir'in bir dönem yaratıkları yalnızca tek bir level değeriyle değil, bir level aralığıyla tanımlamayı düşündüğünü veya kullandığını söylemek çok da uzak bir ihtimal değil.
Belki hiçbir zaman tamamlanmamış bir sistemdi.
Belki oyunun çok eski sürümlerinde gerçekten kullanıldı.
Belki de 2014'e kadar gelen süreçte tamamen terk edilip tek level mantığına geçildi.
Kodların arasında sessizce kalmış ilginç detaylardan biri daha.