Knight Online (v2100)
Usko da Birlikte Geliştirelim // Let Usko Develop Together.
MMORPG Knight Online'ın nasıl çalıştığı hakkında daha fazla bilgi edinmek için bu projeye başladık. MMORPG'ler bilgisayar bilimlerinin birçok alanında bilgi birikimi gerektiren TCP / IP, SQL server, performans ayarı, 3D grafikler ve animasyon, yük dengeleme ve daha fazlası gibi çok karmaşık programlardır. Orijinal sızan kaynak ile başlayarak DirectX 9'a geçtik, SDL 2.0 kullanarak pencere oluşturma ve oynatıcı girişi sağladık, işlev bayrakları ekledik, böylece geriye dönük uyumlu kalırken çeşitli dosya formatları desteklenebilir ve çok daha fazlası desteklenebilir.
Bu projenin amacı, resmi müşteriyle olan doğruluğu ve uyumluluğu korurken resmi müşteri işlevselliğini çoğaltmaktır. Resmi müşteride bulunmayan özellikleri veya genel olarak özel davranışlar getirmeyi amaçlamıyoruz. Bununla birlikte, çatallarda bunu yapmaktan memnuniyet duyarız, ancak bunlar tasarım hedeflerimizle örtüşmez ve resmi müşteriyle karmaşıklık ve potansiyel olarak uyumsuzluğa neden olmaz. Temel olarak, doğruluğun menfaatleri doğrultusunda, müşterinin davranışını mümkün olduğu kadar resmi olarak, mantıklı olduğu yerde tutmak istiyoruz.
Örneğin, UI davranışını düzeltmenin veya müşterinin resmi olarak yapamayacağı hata mesajlarını sağlamanın mantıklı olduğu bazı küçük yönlerden sapabiliriz, ancak bu değişiklikler kullanıcı deneyimini geliştirirken uyumluluğu etkilemez. Bu tür değişiklikler için çekme talepleri durum bazında kabul edilecektir.
We started this project to learn more about how the MMORPG Knight Online works. MMORPGs are very intricate programs requiring knowledge in many areas of computer science such as TCP/IP, SQL server, performance tuning, 3D graphics and animation, load balancing, and more. Starting with the original leaked source we have updated to DirectX 9, wrapped window creation and player input using SDL 2.0, added function flags so that various file formats may be supported while remaining backwards compatible, and much much more.
The goal of this project is to replicate official client functionality while preserving accuracy and compatibility with the official client. We do not intend to introduce features not found in the official client, nor introduce custom behaviour in general. You're very welcome to do so in forks however, but these do not mesh with our design goals and introduce complexity and potentially incompatibility with the official client. Essentially, in the interests of accuracy, we'd like to keep the client's behaviour as close to official as possible, where it makes sense.
We may deviate in some minor aspects where it makes sense to fix, for example, UI behaviour, or to provide the user with error messages where the client may not officially do so, but these changes do not affect compatibility while improving the user experience. Pull requests for such changes will be accepted on a case-by-case basis.