Download

MMO Starter Kit

Would certainly buy this as soon as I get some more cash in the door.

If it does go this way please try to consider how clean components of the starter kit are to remove, I’m sure everything will be well worth looking over either way =]

The kind of server to server communication I would be interested in having is being able to assign servers (shards?) to different ‘zones’/‘levels’ (world composition).
Eg.
A player in level A (on server 1) travels within the level streaming bounds of level B and now server 2 is aware of the player, once the player actually enters the zone he/she is passed off to server 2.
Allowing in game areas to (possibly) correspond to a different location in our world among other things.

Sorry if I didn’t explain that very well and also sorry if this was already explained earlier, read every post but I have a very low understanding of networking and the terms associated with it.
Either way it wouldn’t influence my decision to buy either way and I’m looking forward to any updates =]

Regarding multiple servers running different zones: I will need to do some testing to determine how I want to handle this, but let’s not forget: World of Warcraft had only 2 world zone servers at launch - one for each continent. There was also a server for chat, and a server for instances. Ideally I would like to have the same structure (minus the second continent since it’s unneeded for a starter kit and most indie MMOs), but it will depend on how well one server handles lots of players.

Attack type currently is exactly as it is in WoW.

My main focus at this time is stress testing and finishing the documentation so I can release the kit. Then I will focus on stuff that everyone or almost everyone needs (user graphic settings, loading screen, loot and inventory). Things like character stats you can easily do yourself, based on the current Health stat (it is reduced server-side when the character takes damage, then replicated to everyone, attack shows in chat, etc). Don’t forget, this is fully in blueprints so no need to fear making the game logic yourself - you don’t even need to know a programming language.

Sounds good mate, having something like this is a pretty huge amount of weight taken off many of our shoulders and I certainly don’t expect it to be perfect for my use case straight off the bat without taking a look at things.

The demo server (almost wrote “servers” like in most MMO announcements xD ) can be offline today for short periods of time now and then. I’m doing some patches and maintenance. So if you find you can’t log in, don’t worry.

140 clients on the server right now, yes it’s a stress test, join the fun! :slight_smile: It will last for about an hour. I will post the statistics later today.
86.png

I am also interested in this specific part of your project. You said everything was blueprints except your chat server? How do you achieve doing the http stuff with blueprints? I cannot see anything exposed to blueprint making that possible.
I’ve written a system in another engine so I can work out the PHP and mysql stuff easy enough, it’s just the UE side I need to find out.

https://forums.unrealengine.com/showthread.php?19961-Plugin-Http-s-REST-blueprintable-JSON-query-and-Parse-API-manager-VaRest :slight_smile:

Ohh, don’t I feel stupid… I’ve been doing some searching and never came across that thread. Thank you good sir, Appreciate it.

PS… you have another customer when it’s available. So much useful knowledge will be contained within this project. :wink:

Impressive! Truly amazing that something like this is a reality. I remember when someone made a thread saying they’d made a plugin like this for UDK as an April Fools joke.

Ok the stress test is over, thanks everyone who has joined! 145+ SoftLayer virtual hourly servers were used to simulate client machines. Each was running one full client (with visuals etc) in a tiny window.

The clients simulated players running around (you can try this mode yourself by launching the client with command line argument -bot on the demo server). The area where they were supposed to run was quite small - this puts much more stress on the server than if they are in different locations, since this way each one’s movement is sent to all the others.

Video by Bastingse (Nate Elwick)

Here are some statistics:

Players CPU(%) RAM(MB)
20 4.4 171
145 13.8 814

Total Server Bandwidth @ 145 active players: around 400KB/s (up and down combined)

It worked and worked smoothly and I’m happy about it :slight_smile: Around 64th client I panicked a little because I’ve heard a rumor about a 64 player cap. Well, there’s no such cap :D. By the way the FPS on the client was very good (60+ with lots of programs open) even in the midst of those 140+ clients.

Some screenshots:
99.png
8e5a3904839c29551e65cbcf7d3e430b689fa8ac.png
121.png

P.S there has been a patch that added /who command to the chat. You can use it to see how many people are online. It is a bit bugged (doesn’t start a new line) but it works.

This is fantastic! Well done CodeSpartan!

Hey Code Spartan 145 is no small number Congrats on the load test :smiley:

Its a beautiful thing to see the true multiplayer potential of ue4, fascinating how you set this test up! With the new world_max size of 20km on one map/server this is all coming together perfectly

Another question- The AI seem to be getting stuck, I guess they are pretty basic for now, theres no advanced stuff like doing traces or detection if your not in line of sight so they turn and navigate

This pic shows the AI getting stuck
http://i.imgur.com/5tTi18d.png

Will your project be able to use other AI for example if I follow an advanced tutorial or use another AI blueprint setup I can tie it in with yours easily?
Or will you provide a fully featured AI solution out of the box?

I know theres so much to be done in different areas, cant wait to see more!

The AI shouldn’t get stuck in those situations, it was stuck because of the small nav mesh I was using : Dropbox - File Deleted When I made it big enough, I did about 10 circles around that house and the AI followed me just fine. :slight_smile: So the next demo patch will have that fixed, I’m going to add some other things before I release the patch though.

You can use your own AI just like in a regular UE project.

Fantastic work CodeSpartan!!!

Looking forward to supporting your hard work, I do have a question when you get a chance.

Will this support World Browser?

The articles I have been reading says out of the box UE4 doesn’t support World Browser for multiplayer that you would have to implement for world origin shifting.

Thank you in advance!

This is very awesome! Nice job.

Correct me if I’m wrong but I think that would require making completely new custom networking to store the position of players on another server, It’s over my head how to do coordinate shifting so precision issues don’t happen with a massive seamless world

I suppose the workaround for now would be to run each zone of 20km on a separate server / map (and make the map look like a continuation of the same one)
Then players will be shifted and automatically loaded into the other zone when they get to the killXY border

The main problem with that is loading / reconnect times, However in UE4 unreal tournament reconnecting to another server running a different map is like instant, its soo fast, so maybe this can be viable…

I asked a few questions on how to set this up, but it requires coding that is beyond my capabilities, for I am just a 3d artist

But thinking about it, you might not need to split the world into levels in that sense. Just having mad local occlusion culling should do the trick if I’m right.

Then how would other servers know the exact location of players on other servers?
The XY killzone & maximum size of a single map/server is 20km, go beyond that or even at the extremities you have precision issues, so I don’t think that would work & be that easy or epic would have already implemented it,

We already have culling ways with replication priority, same deal its just about the distance of a players from the origin of the world because moving the origin for one player would affect everybody without adding some sort of multi-coordinate overlapping system or store positions of players on separate server like most mmo’s

But now that I think about it even world of warcraft has a sort of loading feature when you switch continents, like if your ported to another zone it takes a bit, but it is really quick, also if you go by boat maybe the boat takes so long because it shifts you into a seamless loading zone where the other places load behind the scenes (which would be awesome if ue4 could do this as another work around)

Perhaps the auto reconnect to another server/map when getting to the killxy bounds method I mentioned can be implemented into this project, so it is more of a complete MMO solution, the best that we can get for now, that would make it a real mmo!

Yes, WoW uses separate servers for each continent.

Guys, I do plan to make server-to-server travel (and it’s not hard to do actually), however if I was making a new MMO I would be more concerned about gameplay at this point than about surpassing the size of a WoW continent :). Is Unreal’s new limit 20 km from side to side? Take a look at this: http://static.giantbomb.com/uploads/original/3/30984/1366064-ubwcz.jpg, some pretty huge worlds were done with less. However, I do intend to make server-to-server travel, but for different reasons - so that a single realm can handle more users CPU-wise.