Open World Multiplayer Game

Hey,
I started making a mmorpg kind of game (actually morpg, without the massive), tile based, and i ran into a problem that im struggling to solve.
The game will be dynamic, so of course i cannot simulate the whole world every server update. I tought that maybe i can split it up
int “zones”. Each of those zones would be a mini-world, handling its entities and communicating with the players. Their sizes would be multiples of 8,
and the entities would be managed by Ashley, a entity framework. Now this is where the problem starts. Should i make a seperate Engine for each
zone and update only those that contain players, or should i put everything in a single Engine and … and… something… i dont even know how to approach that.
Im just trying to figure out what way would be the fastest and make sense.

Well the way i am currently handling a multiplayer server for a tile based game with billions of tiles is, like in Minecraft loading chunks and it will only process the area if someone is in it or there is a world event that needs it to stay loaded.

This really isn’t a question that anybody can answer.

The only way we can answer “should I do this or that” type questions is with “well, what happened when you tried each approach?”

If you don’t know how to start, then you shouldn’t be trying to take on a project of this magnitude.

And if you haven’t tried anything yet, worrying about what would be the “fastest” is just premature optimization at this point.

Get something working first. Then worry about getting it working better.

In this type of project if i do something, i will have to stick to it for the rest of the development, thats why i first make a plan, and then code.
I tried to find helpful threads on google and JGO for over an hour or so, thats why i posted this. I know some people have experience here and
have done similar stuff.
I don’t ask for code snippets or anything like that, just opinions.
Please don’t post such useless responses like that KevinWorkman. I’ve seen that you post similar ones to other questions like this one. You aren’t helping, you know…

Well, i like to have my map in chunks that i can load and unload when i want and this will allow for the world to be infinite whilst keeping ram usage low

How does your game loop look like? How are you updating your entities?

Since my entitys have to be rendered after the background but before the foreground, i just call the parts that need to be rendered… i digress the way im doing it is very anoying but it works for me currently


level.renderTiles(screen, xOffset, yOffset,player,1);//Background
level.renderTiles(screen, xOffset, yOffset,player,2);//Blocks entitys can hit
level.renderEntitys(screen);//entitys
level.renderTiles(screen, xOffset, yOffset,player,3);//forground

Hmm, thanks for help man :slight_smile: And not to sound rude or anything, it’s entities, not entitys :stuck_out_tongue: (i used to write it like that too lol)

  • Entity’s - If you’re talking in context of a property belonging to a specific entity.
  • Entities - If you’re talking about an entity plurally.

Sorry, just had to toss that.

Failed english but hay ho, as long as all your variables are spelled wrong consistently then there are no problems xD

One reason to split up the zones into different processes (if the zones are big enough) is scalability once you get a lot of users. They can then only interact with players within their own zone and you could theoretically spread the zones over several servers.

Seeing as you removed one m from mmorpg that number of players might not apply though in which case I’d go with using a single process for it and implement a chunk system so only the required chunk(s) are sent to the players :slight_smile:

Mike

I’m not understanding your sense of scale for this project.

Are you hoping to see every other zone regardless of which zone your in, or do you intend to simply show one entire zone (the one your currently in) and then transition into another zone when you step through some type of portal mechanic?

Sorry if you think my responses are useless. But what you’re doing is something that happens to a lot of novices (and not-so-novices!). You’re biting off more than you can chew, and honestly, the most useful thing anybody can tell you is to take a step back. Work on smaller projects and try each approach until you have specific technical questions.

I’ll eat my words if you actually finish something!

I totally agree, im working on a very large project but even i take a few days out to make smaller projects to test new ideas xD

Stop attempting something of this magnitude.

What you’re trying to do is a more basic functionality in a MMO or MO game that will have a decent amount of players.

The problem is, if you literally have not a single clue on how to approach it, and no idea how to implement or even begin to implement what is being told to you, you won’t go very far.

If you’re interested in doing multiplayer stuff then start with something that won’t be so “massive”.

Start a project in which only 8-16 players will be on the map at once, it’ll really teach you a lot about networking, even with an amount of players so small, because as of right now it appears to me you don’t have much experience coding, let alone with networking.

I am not one to put down people attempting to learn or make a project, but you really need to understand and grasp basic programming and networking before attempting anything that will handle a decent amount of players.