Request for MMO networking support

Dear Epic

Over the internet, I have seen tens of people that want to create a MMO, altough their skill and power is not enough for doing that. Still, most of them are hoping. The biggest obstacle for people wanting to engage in such an adventure is the complex coding. Your Blueprint system demonstrates the fact that people, with no prior coding experience, could create incredible things, in a relatively short time. I was wondering if could you implement a built-in networking system, well exposed in Blueprints, that could handle large ammount of players.

For many, thinking of a MMO might lead us to the impression that a MMO must have huge and complex worlds, impossible to create by a team of indies. However, there are MMOs that, although they have not large areas, they attracted many players. A few examples of MMOs that could also be made by a few are Dekaron (Two Moons) and Metin 2. So, it is not impossible for to build MMOs of such expansion.

This community has a lot of creative potential. Giving them the right tools that could make their dream reality will eventually pay off with original projects, that could shape our way we think of gaming. As you could see, many request such features. Here is a thread that discusses ways to implement them:

Next Gen MMO Plug-in for UE4? - Community & Industry Discussion - Epic Developer Community Forums

 In closing, I would say something like this:
     Just give the indie devs a chance to build MMOs, and you will see what are they capable of. Give them the tools, and a new type of games will appear within the indie community. The word MMO will not anymore be associated just with big AAA studios, but also with indies, a community that continues to grow.

I really don’t mean offense by this, I just need to know in order to have an idea of where to start the discussion: Have you ever completed a commercial game of any size before?

You don’t see MMO made by because networking is hard, there that have no problem coding networking like that, problem is hard to manage such project, MMO is not something you can just make and done, you need to get good hosting and establish good support of it.

Also pro tip: don’t limit yourself and wait for others to do things for you, this is something i see frequently in this community, juvenile starlings on pile of seeds screaming to be feed. Think of MMO you want to make, study a little bit about networking and protocols first and think that you can do accomplish your goal, instead of depending on others, UE4 already have some tools that may help you out. You can also try to find some programmer who is specialist in networking

If they are not going to make MMO support, at least i would like to see ability to cut out internal UE4 networking. For example abstract interfaces for creating own Client and Server implementations, or just Client, if server is going to be made from scratch.

MMO… just one word, which says it all. Forget dreaming about doing a MMO! Sorry, it’s the truth! :wink:

MMO word is not so scary as you think.

I think it’s more scary than you think.

I’ve watched so many studios crash and burn because they knew better. Everyone was just trying to hold them down telling them MMOs are hardly viable for even a AAA company, let alone indie developers.

And the individual developers that are all primed to make an MMO? My experience shows two groups. The first fails out and gives up and never touches game development again. (At least not under the same internet pseudonym.) The second releases some smaller games as stepping stones by everyone’s advice, and at that point looks back and laughs at what they thought they could accomplish. Some of them even try fruitlessly to dissuade first timers from even thinking about making an MMO.

  Coding server represents a great challange. If such a system would exist, won't need to know the underlying networking code to be able to set up their server. They would controll it with blueprints, that are like some sort of hooks that interact with complex coding without touching it.

 In case of running a server, I agree that this could get really expensive. However, if the standard client-server architecture would be mixed with peer to peer architecture, costs will lower a lot, sustaining a server becomming an affordable option. Take a look at the thread I linked. 

 Also note that in UE4 roadmap you could find the tag p2p, which means that peer to peer networking will eventually be implemented. If they also add a mixed server architecture, capable to support at least 1000 people at the same , it would be great.

I would say get Smart fox server or something similar if you intend to make a MMO

Coding a MMO is not hard if you are a programmer and knows a thing or two about basic networking and server architecture.
No you don’t need a big server to code an MMO server system.
Everything you need you have infront of you. A simple computer.
You can build and test your system using your own computer.
Then when you are ready, then get a server and it should…should scale right up to your needs.

Networking IS NOT HARD.
What is hard however is the complexity of the data you will be sharing in the world.

You can build a MMO pong game. Which would be quick easy.
But building a open world MMO GTA-Like game would be immense because of the complexity of the data and world you are dealing with.

I’m all for encouraging indies. It brings new life into the industry, ideas and games and concepts that would never be there, people who would otherwise not have had a chance to be there, even customers who would not have otherwise been there. It’s a positive force all around.

But telling people they can do whatever they set their minds to is wrong. I will be right there supporting you in your message if you have some sort of relevant experience. If you’ve created a commerical MMO with an indie team, PLEASE tell me so we can talk about how to help others get to where you’ve been.

But if you don’t have any experience and you’re telling people it can be done, it’s not that hard, it’s within their reach, and you don’t know that for sure, you’re actively hurting them and their careers.

Probably some new Blueprints networking nodes should do the trick for non programmers.

In the current built-in networking system, why the player number is limited to 64, and this number is not set at the desire of the developper ?

I know old classmates that set up private servers for various MMO games. They ran them on their own PCs. I haven't asked them about costs to sustain a server but I guess that it is proportional to the number of players. In some areas, brandwitch should not be a problem. For example, in my country, an ISP offers speeds up to 1 Gigabyte/second. In others, network is weak.

How do studios gain more brandwitch/make it stable ? They set up servers in various locations ?

      @Epic - Are there any plans to lift the 64 player limit in the built-in networking system ?

I assume you are referring to me. You don’t need to have released a commercial MMO to have the knowledge to create one.
It seems like you are forgetting the concept of an MMO. MMO is simply a massive multiplayer online.
It is based on a simple server architecture with many players online in a shared instance. That is simply it.

Scaling it to a open world GTA like world is the hard problem.
Not the architecture in its simplest form which was what i was alluding to.

I have created MMO-que servers for applications that allowed you to simulate and play trading card games such as yugioh, naruto and chaotic.
Back in my programming days (my early teens) I ran virtual private servers from Godaddy and hosted hundreds of people in a shared environment.

Just because its a card game doesn’t disqualify it as being a MMO experience on similar server architecture.

If you remember MSN gaming Zone. That is an MMO in my opinion. Now idk exactly what their doing.
But my architecture were based on that their room concept.

You had a room or server that could hold thousands of people and the within that room you had different tables were hundreds of people could sit, play, or watch.

You could have a table where two people were playing and 600 people watching them play.

That is a dynamic shared world to me and that’s how i could my servers were coded back then.

Of-course there are alot of things going on behind the scene, I had a authenticating server, chat server, database server and then the actual game server that relayed information to the participants and all the spectators.

These are basic programming & networking 101. I didn’t have to go learn something secretive or a special technique.
Now believe me, i didn’t have to worry about latency and lag because the complexity of the game were bare minimal.

But catch my drift. All i’m saying is that for programmers who has worked with networking. They would be able to come up with techniques to get the job.
If you don’t have the background then you basically out of luck. Programming skills are required and networking knowledge aswell.

The only reason i’m posting a technical post as far as i’m concerned is because im about to tackle this problem in UE4.
Its gonna be abit hard for me because i’m a c#/vb programmer and UE uses c++.

If you’re going to create something that complex, you need to know how it works, every online game has had some form of networking issues, if you don’t know what you’re doing then when something goes wrong then you won’t know how to fix it.

A global chat and individual rooms limited to x people (Four in that image?) is not what most people think of as an MMO. And in the case of a card game you could probably even go the hackey route of just implementing a layer over IRC to accomplish what you’re after. That way the server has to process chat messages, and game logic for only those who are playing. You’d still have some optimizations to do on the card game simulation, but you’re right: it’s absolutely within reach even for indies, especially if you go the hackey route. Also worth mentioning that in that case the number of spectators is irrelevant.

But we both know that’s really not what most people are talking about when they want to make an MMO.

Somewhere in that long post i’m sure i said…
oh here it is:

and this isn’t figuratively or technically speaking. this is literally speaking.
This is how tournaments were held. Every one gathers in one table watch a few ppl play.
and they assign brackets and tables for each match.

Now i don’t know the exact limit for each room/table was. but it was in the triple digits (for card and board games) that i know for sure.
its been what? 2007 since it closed down? oh man the memories :confused:

watch this video to get a better idea.


you need the simplest form of the idea in order for it to be implemented and scaled right.


The server doesn’t have to handle anything but chat for spectators. Only has to run the simulation for active players, of which there were likely less than 10 per room.

For a card game don’t forget you don’t even need to send locations. Just what card is in each hand slot and on each table slot. Clients don’t even need to know (And shouldn’t know anyway) cards they can’t see.

Probably 20 cards at most are relevant to each player (including spectators, as they’re usually watching one player at a time I assume? Bump it up by 10-20 if spectators are omniscient.) and the server only has to do basic rules checking on specific events driven by player interaction. No persistent updating or anything like that, the state could be exactly the same for a minute straight and therefore bandwidth drops even lower.

Again, while MMOs do have instanced areas/lobbies with global chat, I don’t think most people would consider that card game an MMO. I’m not trying to belittle the game itself or the effort put into it. It is still impressive to pull off and keep stable and fast. :slight_smile:

By the way guys, bandwidth is not expensive if you do it right. You can start with Google’s Compute Engine and be worry-free.

An MMO was impossible for a few years ago but not anymore, now you have all the tools and services you need.

Contact MuchDifferent - Seriously!

These are the guys working on the C# plugin for Unreal 4. They have a MMO framework in C# ready to go!

That said - It is a bit expensive. But I am sure they would be willing to work with on UE4 to showcase their tools and tech. :slight_smile:

That said - Do not expect everything from Epic. Some of the heavy lifting you have to do yourself. There wont be a perfect out of the box solution :slight_smile:

Not quite. Initially I had all the card movement location data being broadcast-ed to all participants (players and spectators) as the players were moving them. Later on i removed it and only broadcast-ed when a player who is moving (dragging) a card has dropped it (let go of the left button) Also in MSN gaming zone, there are more than 10 ppl playing per room.

Also about game data. There are alot going on that you are not aware of. Data that the game server needs to be track of.
In my game, to avoid cheating. All the data were stored and managed server side. That includes all the cards, what zone they are in (deck,hand, inplay, removed from play, plus numerous other zones), their current status (health, points, effects, etc).

*EDIT: The client is pretty much useless and can only do what the server authorizes him to do.
When he wants to draw a card, he asks the server for permission and the server tells him, okay this is what you drew.
Therefore the client can’t fake and say he drew something that isn’t true.

For example, the cheating would be impossible in fps if a technique like this were used. things like unlimited weapons,bullets, health,etc.
Basically client says I’m about to shot this gun and server says you don’t have that gun.
or client says i’m about to unload on everyone and server replies sorry you just ran out of bullets and client ends up shooting blanks.

Ofcourse this may or may not be technically feasible when you account for latency and lag.*

I also had a feature that could playback a game in real time. Kinda like replay or photomode in forza.
So i had to keep track and record each event in the game at the exact interval.
Plus i was working on a feature that was able to recover a game in case of a disconnect or crash.
Since everything was server side, when the players reconnect they would be prompted with the option to continue their game where they left off.

So yeah, alot of data were being tracked and managed by the server. This wasn’t your typical card game software.
Anything I do i always try to go above and beyond. innovation is always my goal.

Now ofcourse bandwidth for a card game would be low compared to an open world mmorpg, but MMO isn’t about being a bandwidth hog or game complexity.
its about building a simple form of server architecture that can scale to meet your needs.

Went to my photobucket page and dug up some pics.

more pics…

check the date :slight_smile:
man those were the good ol days! :stuck_out_tongue: