malum sphere development süreci adeta durdu, tamamen durdu diyebilirim hatta. kendisi open source da değil, bug olsa bir yılda geri dönüş alırsınız öteki yılda da fixlenmiş olur. ben derim ki uox3 tabanını alalım güzelcene bir emu inşa edelim. zor bir şey değil, stabil bir şekilde çoğu şey çalışan bir emu. hem de c++ ile yazılmış. linuxe port edilir. scripting dili javascript olduğu için güzel bir interpretera sahip doğal olarak spheredan kat kat hızlı. hatta uox3 adminleri bile yapacağınız şeyi internal değil javascript ile ekleyin falan diyor eklenebiliyorsa. hem apaçi uo shard sahipleri kolayca öğrenemez, hazır olan hiçbir şey yok içinde server falan açamazlar.
sourcelar olduğu için potansiyel hileler engellenir, haksız connector kazancı azaltılır. özellikle spherede keşke olsaymış denen şeyler eklenebilir. yine sourcelar olduğu için kendi clientinize özel encryption koyabilirsiniz. kısaca uoda keşke olaydı denen şeyler yapılır işte.
en basitinden sphereda hala daha kıyılara düşüp takılma, map bugları düzeltilmedi yaklaşık 10-12 senedir. bunun için fix yapıp commitledim. bu tarz inatla düzeltilmeyen buglar düzeltilebilir.
yaz aylarındayız varsa ben de uğraşırım c++ biliyorum diyen işsiz güçsüz, ben de girişirim böyle bir şeye. community oluştururuz. svn açarız ara ara bir şeyler commitleriz falan.
projedeki öncelikli amacım c++ bilgimi geliştirebilmek için fırsat yaratmak, yaz aylarında yapacak bir şey bulamadım.
projenin adını uoOS koydum, uo old-school.
proje svn, commit geçmişi vs. her şey için :
http://sourceforge.net/p/uoos/uoos/commit_browser
taban :
http://www.uox3.org
amacım:
-sphereda olan bunda olmayan şeyleri, sphereda inatla buglı kalan şeyleri düzeltip eklemek
-old client desteği koymak (bu desteğin %90ını yaptım sayılır ancak book, bulletin boardlarla ilgili paketlerdeki unicode sorununu halletmeliyim, malum eski booklar unicode desteklemiyor)
-türlü hile koruması. gerçi teot yalnızca spherea özel çıkmış bir şeydi
-birim zamanda gelen "movement request" paketini kısıtlamak, gerekirse açık kaynak olan runuodaki speedhack engelli sistemi kullanarak speed olayını yok etmek.
-combat sistemini versionlara bölmek (t2a combat, uor combat, aos, se, ml)
-aynı şekilde old school menüleri eklemek.
bu internal kısımlar tabi. bir de bunun scriptingiyle uğraşmak isteyen olacaksa yapılması gereken;
-combatı tamamen customizable yapınca buna uygun bir combat sistemi kodlamak.
-old school menü desteği koyunca craft menülerini düzenlemek. aynı şekilde guild menu
-skillgain sistemi
belki ekleyebileceğim şey:
-encryption sistemi. spherecrypt.iniyi düşünün, her client encrypted bir şekilde. uox3e giriş yapmak için muhtemelen razor veya client içindeki encryptionu kıran bir program kullanmak zorundasınız. uo encryption ile ilgili yeterli kaynak bulabilirsem bu olayı eklemeyi düşünüyorum ama öncelik sıramda yapacağım en son şeylerden birisi. elimde eski sphereın sourceları var muhtemelen encryption için oralara göz atarım.
-bir de uzun vadede multithreading desteği kodlamaya başlarım. ancak bu kesinlikle tek başıma yapamayacağım kadar riskli bir durum. mutex lock tarzı durumları, multithreading ve critical section hakkında bilgisi olanlar anlayacaktır riski. şu anki uox3teki multithreading sistemi 2-3 threadden oluşuyor, biri login paketlerine bakıyor diğeri ise main loop. yalnızca iki thread için bile kodları incelerseniz bol bol critical section kullanıldığını görürsünüz. multithreadingin amacı çok çekirdek,thread işlemci desteği. daha doğrusu çok çekirdeğe bağlı hızlandırma.
bunun dışında spheredaki kıyıya köşeye düşüp takıldığınız, aslında geçilen ama sphereda geçilemeyen yükseklikli yerleri falan düzelttiğim bir movement sistemi koydum. indirdiğiniz son cvsde ve uox3 versiyonunda bulunmaktadır. bir de üst üste item stacklenme olayını koydum, yani masanın üstüne attığınız bir cisim altına değil masanın üstüne düşecek, aynı şekilde üstüne item bindirdiğiniz sürece yükseklik kadar yukarıda kalacak vs.
bu arada yeni uo versionlarını eklemeyle asla uğraşmayı düşünmüyorum. high seas tarzı, eğer varsa desteği bizzat uox3 sitesinde, o şekilde eklerim. onun dışında boş bir zahmet. ayrıca yeni dosyalama şifreleme sistemini bulmak için de ayrı bir boş zahmet.
script açısından yardım etmek isteyenler uox3 sitesinden javascript derslerine bakabilir.
-2x versionların girişini engelleyen paketler düzenlendi.
-Eski clientlar için kitap paketleri tekrar düzenlendi.
-Eski clientlerde status bar görünümü düzeltildi.
-Eski clientlerde skill window düzeltildi (her şey 0 gözüküyordu)
-Eski clientlara cliloc ve context paketleri gönderilmesi engellendi.