10/18/2019 UPDATE:
Example Game has replaced this project as of Engine 4.23 Please use the Example Game forum thread.
Multiplayer tools for persistent worlds.
TLDR; Free*, Open Source, Hosted, MMORPG template built to scale.
Demo
Walk-through
Included MMORPG features
Abilities
Inventory
Action bar
Characters
Chat
Friends
Recent Players
Party
Player owned vendors
Player data persistence (exp, level, abilities, inventory, ui, etc)
Server persistence
Server connections (travel)
Server instances (dungeons)
Server shards (horizontal scaling)
Server management
Features I left out
I focused on the primary MMORPG features that require a back end. Features that are important, but are handled directly in-game I did not include. Like: AI, Crafting, Combat, etc. These things you can handle on your own, to meet your game’s specific needs.
Detailed feature descriptions
Abilities
Abilities are persistent on a player. When logging in, players have the abilities they had when they logged off. This is using the Gameplay Abilities Plugin, but could be easily adapted to other ability systems like Able, or your own custom system.
Inventory
This is also persistent. Players have the usual grid inventory tools, split, combine, reorder, etc. Inventory capacity can be adjusted, for bag upgrades, or special perks. Create any number of inventory items, and assign arbitrary attributes to them. A master alchemist could make a more powerful potion than a beginner for example.
Also, if you have your own inventory system that works with your game, you can totally use it.
Action Bar
Mapped to the keyboard, this is a standard “hotbar” where players can place abilities and reorder them.
Chat
Basic chat and chat channel support. Channels are automatically created for party, guild, server and match, and channels can be created and joined arbitrarily as well.
Characters
Players may create select and delete characters, which have their own sets of persistent data.
Friends
Standard friends support which shows current game playing, server or match location, and online status. Invite friends to a party from here.
Recent players
Shows the most recent players that you’ve come in contact with. Invite players to your friends list from here.
Party / Team
Group up with players for questing, dungeon runs, or raiding.
Player owned Vendors
Placed vendors in the world handle trade between players. Items can be put up for sale by the owner. Also offers can be made to the owner by other players. Persistent.
Player Data Persistence
All information related to the player is retained. A player keeps all of this data when traveling across servers, or going offline.
Server Persistence
All placed objects in the world are retained. This is using Rama’s save system, but any save system that writes a data file can be used.
Server connections
Travel between servers. Use this to extend your world beyond the single server limitation.
Server Instances
Create dungeons, raids, guild halls, and player vaults which instantiate themselves automatically.
Server Shards
Automatically create servers to handle increased load
Server management
All servers are controlled and allocated dynamically. Servers which have no players are saved off, and disabled. When a player wants to use the server again, it is recreated. Keeping servers offline when not in use saves money, and is an important scaling feature. The ability to bring up new servers nearly instantly, makes adapting to a rapidly changing player base possible.
*All game code, and the UETOPIA plugin are open source, and free. You are still bound by Epic’s license agreement. The back end is free to use, but must be configured correctly or server up time charges may apply. Follow the walk through to get set up.
This is beta! The code base is stabilizing, and there are no unresolved issues. However, there may be undetected bugs, that will require fixes. Additional features and functionality will be added as they become available.
I’d love to hear your thoughts and comments!