The solution is at src/MUnique.OpenMU.sln. Each project has a Readme.md next
to its code with the details; this page is the map.
Servers and game logic
| Project | Contents |
|---|
Startup | The console program which glues everything together and starts the server as a single process — Readme |
GameServer | The game server: packet handlers (MessageHandler) and the remote views (RemoteView) |
GameLogic | The actual game: players, items, skills, maps, attacks, quests, mini games, player actions |
ConnectServer | Serves the server list and redirects clients to a game server |
LoginServer | Keeps track of which account is logged in on which server |
ChatServer | The chat rooms used by the in-game messenger |
FriendServer | Friend lists and the messenger |
GuildServer | Guilds |
Interfaces | The interfaces between the subsystems, so they can run in one or many processes |
Dapr | The glue for the distributed deployment |
Foundations
| Project | Contents |
|---|
Network | The MU Online network protocol, connections, encryption — Readme |
Network/Packets | The packet definitions; the packet markdown documentation is generated from their XML |
AttributeSystem | The attribute/power-up system used for damage and stat calculation — Readme |
Pathfinding | Pathfinding for monsters and NPCs — Readme |
PlugIns | The plugin infrastructure — Readme |
Annotations / SourceGenerators | Attributes and source generators used across the solution |
Data
| Project | Contents |
|---|
DataModel | The entities and the configuration classes — this is what the admin panel edits |
Persistence | The persistence abstractions (contexts, repositories) — Readme |
Persistence/EntityFramework | The EF Core + PostgreSQL implementation — Readme |
Persistence/Initialization | The data initialization per game version — Readme |
Web
| Project | Contents |
|---|
Web/AdminPanel | The admin panel — Readme |
Web/Map | The live map — Readme |
Web/ItemEditor | The graphical item and item storage editor |
Web/Shared | Components shared by the web projects: forms, modals, the map editor, the theme and culture selectors |
| Project | Contents |
|---|
ClientLauncher | The launcher which starts the game client with your server's address |
Network/Analyzer | A tool to inspect the traffic between client and server — Readme |
ClientErrorLogDecryptor | Decrypts the client's error logs — Readme |
SimpleModulusKeyGenerator | Generates keys for the SimpleModulus encryption |
ChatServer/ExDbConnector | Connector for the ExDB protocol — Readme |
Tests
The tests are in the tests/ folder, one project per area
(MUnique.OpenMU.GameLogic.Benchmarks, MUnique.OpenMU.Network.Tests,
MUnique.OpenMU.Persistence.Initialization.Tests, …). Run them with:
See also
Packet structure tests.
This documentation
The site you are reading is built with Docusaurus from
the docs-website/ folder — see its
README
for how to run it locally and how it is deployed.