PRO/MMO Foundation. Free, open source, multiplayer tools built to scale

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!

2 Likes

Awesome work!

This is awesome!

Sure. Play the demo!

So what about licensing your backend for my own game project? Can you pm me pls?)

The back end is free to use. If you’re looking for a white label solution, we can do that as well.

Awesome. Good job.

Here is the 4.19 walk-through.

It is much easier and faster. 15 minutes (minus build times) and you are up and running!

Let me know if you guys have any questions or comments.

I’d love some feedback. Thanks!

Hi,
we at Planeshift (www.planeshift.it) have created one of the first open source MMO in history (first release in 2002), based on Crystal Space engine. The game is still alive after 15+ years :slight_smile: I’m now looking at moving all our code and content to Unreal Engine, and I will really appreciate some chat with you, as you seems to have good UE knowledge and MMO orientation. Will be great if you could connect to our IRC at irc.freenode.net in channel #planeshift . I’m there with name Talad.

For the UE port our licensing model is not defined yet, but I’m very inclined to keep it open source.

At the moment we ported all the server backend logic, including database connection, and loading in UE server of all our data (characters, items, npc dialogues, …), but we still miss a lot to have this visualized on the client.

This looks promising, I enjoyed watching your videos. How would you promote your backend over something like SpatialOS? It’s also not clear where the servers are actually being hosted. Are you paying for AWS? Did you set up your own farm? The videos are a good introduction but they lack some technical details that one would like to know before considering using the plugin. Thanks!

Hi!

Thanks for the questions. I try to keep the FAQ up to date, where I talk about more of the technical details.
What kind of Server hosting service are you using?

The dedicated server management infrastructure was built to be provider agnostic. This is a highly competitive area, and we are always looking for the best providers that fulfill our needs. Security, reliability, global reach, and speed are the primary evaluation criteria.

I have not used SpatialOS, so I can’t really comment on that solution. I encourage people to use the solution that best meets their game’s needs. UETOPIA is free, open source, and very easy to get up and running.

Wow great work, will definitely have to look it over

You didn’t link anything but the video in the post, it would be useful to have the information gathered there. Less time spent quoting from the FAQ ^^

Here’s the webpage if anyone is looking for it: https://uetopia.com/. I believe he says that one needs to sign up in the video but when I actually went to get the source and read the documentation I didn’t remember that :slight_smile:

I’m still curious about cost, mainly what the $ to cred ratio will look like. If I understand correctly, when I run out of my initial 100k Cred(you need a symbol or abbreviation ;)) I will have to transfer money in exchange for more Cred. It seems like an opportunity for block chain style ledgers which would also be a direct indication of most played games etc…

I will try to find some time to go through the template projects, possibly using your backend for a gamejam in the coming months.

Thanks for clarifying.

Yes. I won’t say too much on this… But you’ve got the right idea.

Looks great!

Im confused a little bit.

Am i understod right?
Uetopia is full backend management for mmos, but ingame still using unreal engine networking to replicate entities, actors etc. ?

Because as we know ue’s networking is limited and not reallly suitable for massive scaled population :slight_smile:

That’s right. Per-server engine limitations still apply.

The strategy here is not to get big populations on a single server, but to distribute a big population across multiple servers.

Have you been able to do any large scale tests? What was your concurrent player count on one server? If not, could we possibly try to organize a scheduled event to stress test a server and get some netprofiling data?

Quick update.

New version 00007 deployed and committed to github.

Includes a working gameplay damage ability (gameplayCue, gameplayTag, gameplayEffect, cooldown). Added a simple player overhead widget to show name and health. Also death and respawn are implemented using the standard engine conventions.

I left some inventory items scattered around, and I put a couple vendors up for sale on my vendor.

I have not done any kind of stress testing on the game servers themselves, but I’d love to. <3

The actual hardware is defined by the developer on a per server basis, and can range from (1 CPU 3.5GB ram) up to (64 CPU 240GB ram).