Networking question, MMO architecture.. kinduva long story

Take a look at SmartFox Server. They have a C++ api that you can use to connect with using UE4.

The bottom line is you need to look at using some middleware for your game. Writing a whole MMO networking engine from scratch requires expert network programming skills in C++.
Take a look at SmartFox and Raknet, or Photon as others have suggested.

In all honesty, unless you have at least $1 million in budget don’t even try making an MMO.

Start off with something simple like multiplayer pong, and see how long it takes to complete a game like that.
Then multiply that development time by 1000 and you’ll have a better idea of what it takes to make a simple MMO.

[QUOTE=Meltdown;103272]
Take a look at SmartFox Server. They have a C++ api that you can use to connect with using UE4.

The bottom line is you need to look at using some middleware for your game. Writing a whole MMO networking engine from scratch requires expert network programming skills in C++.
Take a look at SmartFox and Raknet, or Photon as others have suggested.

In all honesty, unless you have at least $1 million in budget don’t even try making an MMO.

Start off with something simple like multiplayer pong, and see how long it takes to complete a game like that.
Then multiply that development time by 1000 and you’ll have a better idea of what it takes to make a simple MMO.

By ‘expert networking skills’ you mean what?
Because some 3 months ago I was told I also needed expert C++ skills to make a singleplayer game on Unreal4 (I knew C well). They said a game was “an immense project”, that I just couldn’t do it, that the world was going to end yada yada yada.
Then I studied a lot of C++ and it’s been easier than most people said it would be.

[QUOTE=;103759]
They said a game was “an immense project”, that I just couldn’t do it, that the world was going to end yada yada yada.

A game is a large project. Unless you’re making something extremely simple. Having a game engine to work with is a HUGE help - if you don’t believe it just ask Epic how many man-hours are in UE4 to date.

Since you can leverage the thousands of man-hours that UE4 represents, a game becomes a lot less daunting. You can make modifications to the engine if needed, but most of your work can now be spent on design and art. Adding the MMO part involves a lot of “network” (web services, database services, login servers, etc.) and database work - rarely “bleeding edge” stuff, really, but it requires some thought and some experience. I mean, how much thought have you given to database normalization, data schemas, etc? Personally, I find database programming mind-numbingly dull.

Anyway, we’re still talking about a ton of work - especially with the MMO part.

Should that dissuade you? HELL NO! But it’s good to be aware of it.

Good luck! Keep us appraised - it’s always very cool to see an indie developer in a success story!

[QUOTE=;103759]
By ‘expert networking skills’ you mean what?
Because some 3 months ago I was told I also needed expert C++ skills to make a singleplayer game on Unreal4 (I knew C well). They said a game was “an immense project”, that I just couldn’t do it, that the world was going to end yada yada yada.
Then I studied a lot of C++ and it’s been easier than most people said it would be.

Just out of curiosity :slight_smile:
did you actually do a game then with your new found C++ knowledge ? I mean a complete and polished one , not “follow the epic tutorial” kind of game.

If you wanna make mmo server then:

  1. Forget about UE4 built-in network.
  2. FORGET about UE4 built-in network.
  3. Take 3rd party solution with good loadbalancing and fast core, like Photon for example (it will cost you quite a big amount of money though)
  4. Keep your login connection in persistent level and load map you need while changing connection to servers processing that map.
  5. Etc, etc, etc…

[QUOTE=TimGS;104188]

  1. Take 3rd party solution with good loadbalancing and fast core, like Photon for example (it will cost you quite a big amount of money though)

Photon is free for development and has very low prices for indies and small CCU counts, so it will only actually cost some money, if the game get’s live and archives thousands of customers. At that moment, by far the biggest cost factor will be the traffic. The Photon server licenses are peanuts compared to the traffic costs of a successful MMO.

Think big. Start small. Struggle. Persevere.

Start developing it. You’ll understand what you need for your particular game soon. How small should you start? Create a server capable of handling data for a global instance that governs: players each positioning their own sphere character and players setting the color of their own sphere, which everyone sees. Then expand. Expand into data for players changing the color of other spheres via shooting; regarding and disregarding important or superficial forms of data within a range; knowing when others are jumping; and so forth. The heart of every server matter like this, regardless of whether it’s a real-time game or a real-time site, is bandwidth, speed, and thinking about where milliseconds matter most and where they matter less. That depends entirely on the needs of the experience you want and what you can afford. You can have both a large seamless world and separate servers at the same time. That depends on how data should be divided and what a user must know at all/relative times.

You’re more likely to get to the point where networking is the easiest part. Retaining players who want to play your MMO is the hard part. That’s about the game itself, the business model, staying secure & resilient, and standing out in a crowd. This holds true for all games. What is Warriors? Got a site?

A couple of things, I read a few “tutorials” on MMO architecture and they all said never let the client connect directly to the game server.

Also to have a separate: World server, Proxy server, Login server and Cache server.

Here is the guide in question, and I will also link the design: http://www.mmorpg.com/blogs/FaceOfMankind/052013/25185_A-Journey-Into-MMO-Server-Architecture

[QUOTE=;99946]
So hello everyone, first and foremost.
For 2 months now, I’ve been working on a game called Warriors for Unreal 4.
We’ve been through ups and downs, been coding and animating like mad over the past few weeks, debated a lot over what we can do with what we currently know and what we realistically can achieve.
For the past couple weeks though, we seemed to have hit a ‘wall’. We’re gonna use either one of these two “architectures” (for lack of a better name):

-Large seamless world (single server I think?), engine displays only what’s within the player’s line of sight to reduce traffic between server/client.
-Map divided into much smaller “zones”, each being a server in its own right. Don’t have to worry about coding the line of sight thing into the client, but lose seamless world functionality.

What’s better? I’m mostly worried cost. I also don’t know if there’s a server large enough to hold, what, at least 5-10k people? I think that might be too expensive. Might be better to just rent a lot of tiny little ones. I’m going to rent a server. We don’t realistically have the money to buy anything.

Also, how complex would it be for the client to receive the data within the player’s line of sight from the server and display it, from a c++ coding standpoint? I mean I have an idea of how I’m going to do it in the server-side, but not how to do it in Unreal. Do I just load the map with the client and tell it to display whatever it receives from the server? It *sounds * somewhat reasonable, at least.

Ideas anyone?
Thanks

Hello there.

Even with Large Seamless Worlds Server side they are zoned with each zone being hosted in it’s own Server process or on Entirely different Physical Servers. When a Player gets with in range of a Zone boarder the player is ghosted over to the Server responsible for the other Zone and once the player crosses the boarder the new Server takes over control of the Player Seamlessly so the player has no idea they just left the old Server and is now being controlled by a new Server. It’s a Hybrid approach between 100% seamless and Zoned MMOs. This is the approach WoW uses and pretty much all Seamless MMOs.

Hey there!

I started implementing SmartFox as a Plugin for Unreal. It’s still in very early stages because I haven’t got much time to work on it, but if some people are interested just drop me a pm and I can provide you with the source and some instructions.
SmartFox provides stuff like Area of Interest (send only packet’s to nearby player’s) and other helpful stuff. At the moment the Client API compiles with the newest Unreal Engine 4 Version and you can connect to a server via blueprints. I still try to figure out the best way of how to hook up events that can be processed by blueprints such as OnLogin, OnConnect etc. If someone is interested to help me out with the plugin he / she can contact me of course, too.

I’m currently using SmartFox for a commercial project (rather small) and it works great, it’s not on Unreal basis though. I can’t tell how it would scale up with lots of players, but they have papers about server architectures and stuff.

SmartFox can handle alot of players. Both Club Penguin and YoVille were created with SmartFox and both of them are extremely popular or at least were extremely popular.