Website | Documentation (v0.6.0) | Discord
Sovereign Engine is a 2.5D multiplayer RPG engine with the 2D graphical style of classic RPGs together with a 3D voxel-based world. The world is highly dynamic and allows developers and players alike the ability to build homes, mine for resources, farm the land, and delve into dungeons. Currently in early development, Sovereign will make it easy to create and share multiplayer RPGs.
Sovereign is developed in C#, runs on Windows and Linux, and is easy to extend through its distributed Entity-Component-System (ECS) framework. It also provides a Lua 5.4 scripting engine integrated with the server for easy extensibility through server-side scripting.
Sovereign Engine is made available under the GPLv3 license.
- Client and server supporting Windows and Linux platforms
- Dynamic 2.5D lighting and shadows with global and point light sources
- Dynamic day/night cycle with full calendar (days, weeks, months, seasons, years)
- 3D physics engine with collision handling
- Server-side Lua scripting engine for easy extensibility
- Login, registration, player creation and selection
- Player movement via keyboard
- In-game chat (local and global)
- Integrated editor for world map, server-side data, and graphical resources
- Integrated debug GUI in client
- Admin roles for users
- Default graphical resources included with client
- Distributed entity-component-system (ECS) data model with full client-side synchronization from server, full server-side persistence in a relational database (SQLite currently supported, Postgres planned)
For full details of the latest changes and features, see the changelog.
- Improved rendering for indoor/underground areas
- Player templates and character customization
- Items and inventory
- NPCs
Important
Sovereign Engine is in a pre-alpha state and is not ready for production use. The below instructions are provided for users who are interested in trying out the current features or using the engine as a starting point for their own development.
Download and run the Windows installer for the latest release.
Use your distribution's package manager to install the required dependencies:
- libSDL2
- libSDL2_image
- liblua5.4
Download the binary .tar.gz files for the latest release and extract them to the location where you would like the client and server to be installed.
Sovereign Engine requires the .NET 9 (or later) SDK to be installed on your system. Clone This
Git repository, then build the src/Sovereign.sln
solution from your favorite IDE or from
the command line (via dotnet build
and dotnet publish
).
On Windows, double-click the Sovereign.Server.exe
file to launch the server. On Linux, run the
Sovereign.Server
executable from a shell. This will automatically create a new SQLite database
at Data/sovereign.db
if one does not already exist.
The server is configured by default to grant the Admin role to all new players. Once you have created
an initial player with Admin role, it is strongly recommended to disable this option by editing
the server's appsettings.json
and changing AdminByDefault
to false
.
On Windows, double-click the Sovereign.Client.exe
file to launch the client. On Linux, run the
Sovereign.Client
executable from a shell or a desktop launcher. Click "Yes" on the auto-update
prompt to download the latest game data files.
Key | Action |
---|---|
Esc | Open in-game menu |
Arrow keys | Move player |
Space | Jump |
Enter | Toggle chat |
` | Toggle Resource Editor Window |
Insert | Toggle Template Entity Editor Window (must be admin player) |
Del | Toggle World Editor Window (must be admin player) |
F2 | Toggle Player Debug Window |
F3 | Toggle Entity Debug Window |
F7 | Toggle Network Debug Window |
F8 | Toggle Dear ImGui Debug Log |
F9 | Toggle Dear ImGui Demo Window |
F10 | Toggle Dear ImGui ID Stack Tool |
F11 | Toggle Dear ImGui Metrics/Debug Window |
Command | Arguments | Action |
---|---|---|
/help | List commands and their descriptions. | |
/g | message | Broadcasts a message through global chat. |
/rescue | Emergency teleport back to spawn point. | |
/addadmin | playerName | Admin only. Grants admin role to the given player. |
/removeadmin | playerName | Admin only. Revokes admin role from the given player. |
/addblock | x, y, z, templateName | Admin only. Adds a block at the given position. |
/removeblock | x, y, z | Admin only. Removes a block at the given position. |
/reloadallscripts | Admin only. Reloads all server-side scripts. | |
/reloadscript | scriptName | Admin only. Reloads the specific named script. |
/loadnewscripts | Admin only. Loads any new scripts. | |
/listscripts | Admin only. Lists all currently loaded scripts. |
Please report any issues to our GitHub issues tracker.
The Sovereign Engine repository contains a number of third party assets including spritesets. Attribution information may be found alongside these third party assets.