Menu

Architecture

KShots

Evilrpg consists of several applications: evilrpglistd, evilrpgd, and evilrpg.

evilrpglistd is essentially a list server - all servers connect to this list server so a client can browse for active servers to join. This list server tracks server metadata like how many players are on each server, what their handles/aliases are, what games are in play, etc. All of this is tracked with real-time updates from each server. A default list server is hard-coded into the clients, but this can be changed in the connection dialog, and the change will be remembered (reset button will restore the last successful connection to the list server), or the default can be restored (restore defaults button).

evilrpgd is the evilrpg server. Any client wishing to play a game will connect to one of these. You can either connect by browsing the list servers, or connect directly. All state data is tracked by the server, all metadata is reported to the list server. All client data is bounced to all clients, or to only the appropriate clients, depending on the message.

evilrpg is the client, written utilizing Qt 5. The client is written to take advantage of a Multi-Document interface for tracking multiple windows, as well as dock widgets for various tasks. The client supports loading plugins for various tasks (including the eventual 3D mapping plugin utilizing the Unreal Engine). The client is the user's gateway to interacting with other players.

Evilrpg also consists of several libraries: net, gui, plugin, and rules.

The net library is used to send messages from the client to the server, and from the server to the listserver. All messages are encapsulated into classes, which are then encapsulated into google protocol buffers.

The gui library is mainly used by the client, but could also be called by any given plugin.

The plugin library is used to build plugins.

The rules library is used to define rules for specific game environments. Currently, I am focused on generating rules for Pathfinder.


Related

Wiki: Home

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.