Skrillax
Learning Rust and ECS by implementing an emulator for an MMORPG.
Skrillax is my learning project for playing around with Rust, learning about lifetimes, shared state, async, and whatever else I encounter on the way. My goal isn't to have a (fully) working server emulator. However, having a somewhat working program at the end of the day would help with motivation.
This project is organized in many subprojects, each having their own individual goal:
- silkroad-protocol: Packet specification that is used for communicating with the client
- silkroad-rpc: Shared types for RPC between servers
- silkroad-security: Implementation of security primitives used in Silkroad
- silkroad-network: Abstraction to handle connections to Silkroad clients
- silkroad-navmesh: Navigation Mesh implementation, loading from official data files
- silkroad-gateway: Loginserver implementation
- silkroad-agent: Gameserver implementation
- silkroad-packet-decryptor: Tool to decrypt encrypted packet stream from silkroad.
- silkroad-serde: Serialization/Deserialization traits used for packets.
- silkroad-serde-derive: Derive macros to implement serialization/deserialization traits.