Skip to content

Latest commit

 

History

History
85 lines (67 loc) · 4.55 KB

File metadata and controls

85 lines (67 loc) · 4.55 KB
title Solution structure
sidebar_position 2
description What lives in which project of the OpenMU solution.

Solution structure

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 — see Startup parameters
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
Web/Map The live map
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

Tools

Project Contents
ClientLauncher The launcher which starts the game client with your server's address
Network/Analyzer The platform independent part of the network analysis: captured connections and their packet analysis — Readme
Network/Analyzer.WinForms The tool which captures the traffic between client and server by acting as a proxy — 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:

dotnet test

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.