Hi
I'm presenting my version of Pirate King Online (PKO), which will be actively developed with ongoing bug fixes.
My version of PKO is now very different from
https://pkodev.com/threads/tales-of-pirate-2022-dx9.126/, although it was originally based on it.
- The networking layer has been completely rewritten and is now in the CorsairsNet project.
- The protocol has been changed from binary to msgpack, so now you can print all packet data for debugging.
- Nothing is read from or written to packets directly anymore — serialization/deserialization is used instead, which guarantees there will be no network errors on the client or server side.
- All packets are covered by tests.
- GateServer, GroupServer, and AccountServer have been rewritten in .NET (F#).
- GateServer will be able to handle as many clients as your machine can support.
- SQL injection vulnerabilities have been completely eliminated in the .NET servers.
- A unified logging system based on C++20 has been added to the C++ projects, replacing the unsafe sprintf-based approach.
- Lua has been updated to the latest LuaJIT & LuaBridge, so now you can add and call functions cleanly.
- LuaBridge will now clearly show and report all errors that previously went unnoticed because CaLua silently ignored them.
- It will no longer be possible to accidentally pass a Character* to a function expecting an Npc* in Lua.
- The Lua calling system has been completely rewritten, and manual attribute checking has been removed.
Coming soon:
- All txt/bin tables will be dropped in favor of a unified string data loading system based on embedded SQLite.
- The server and client will be migrated to x64.
- DirectX will be upgraded from version 9 to 10.
- An asset pack storage system will be added.
- Tools for working with game resources will be added directly to the solution.
P.S. Feel free to create bug reports — I'll be fixing them from time to time. Pull requests are welcome!)