HeroEngine Forums

HeroEngine Support => General Discussion => Topic started by: WalvinMedia on Feb 26, 12, 10:05:03 AM

Title: [RESOLVED] Single player instances
Post by: WalvinMedia on Feb 26, 12, 10:05:03 AM
I have a single player fps in mind and I'm thinking about using herocloud for it. Yes, I know it's a mmo engine. I'm even building a mmo with it right now. But what about single player? I've figured out I would have to use instances for each player, but I'm wondering about server load. What happenes when I have 10,000 people on at once, each in their own instance? I want to do multiplayer co-op too, say 4 player's. I would assume all I would have to do is get 4 players in a single instance for this to happen? Any help is greatly appreciated.
Title: Re: Single player instances
Post by: NuclearPhoenix on Feb 26, 12, 11:52:29 PM
You've asked a very complicated question.

"What happenes when I have 10,000 people on at once, each in their own instance?"

Well the simple answer is that each area instance is its own process, so you would be running at minimum 10,000 processes (threads), plus some general overhead. This would be a bad way to do things.

The relief for this sort of setup would be off-loading work to the client. The absolute most client-based setup you could have would basically be to have the client side simulate and do everything, and then just report back to the server when the player moved to a new area, leveled up, or whatever you wanted to track. Basically, you just make make the server-side stuff into database access and nothing else. You would then have players playing in the same Area Instance but totally unaware of each other, in order to cut down on the number of processes that you were running. However you can't actually go this extreme towards a client-side architecture, because it would be easily exploited/hacked. You would need to find a nice middle ground.

I have never tried something like this, but it is my uneducated belief that you would be engineering away so many of the advantages that the Hero Engine provides. On the other hand, I acknowledge that this might work well if done very carefully-- In general I would place this sort of thing in the category of "if you had to ask, you're not ready." You should set up something simple and try it out, if things go well, let us know   :) I'm sure this is something that many other people have wondered about.