Live data from Hacker News

The One Man MMO Project

onemanmmo.com

11–20 of 119 posts

Re: The One Man MMO Project

#11
post #2

How do MMOs maintain and update state for tens of thousands of players and then push those updates from the server back to clients efficiently?

Usually, you keep all the state in memory and save at specific points/actions to a database. Then, not all state is shared with all thousand players, but only within a visible range. And then, not every kind of state is shared with other players. In the end it’s manageable with simple TCP or custom UDP connections.

Re: The One Man MMO Project

#12
post #2

How do MMOs maintain and update state for tens of thousands of players and then push those updates from the server back to clients efficiently?

Clients in MMOs don't need the entire state, just the state in a small area around the player's location. Some times it works like chat channel with a limited number of maximum players. When the limit is reached, player are put into different channels, so the state of one channel doesn't need to communicated to other players.

Re: The One Man MMO Project

#13
post #2

How do MMOs maintain and update state for tens of thousands of players and then push those updates from the server back to clients efficiently?

Multiplexed sockets. Dead reckoning.

I remember a lot of dead reckoning happening in the old Runescape, once upon a time. Many moments of your player running in a direction then getting rubber-banded back because they got interrupted or something.

Re: The One Man MMO Project

#14
love it! i spent YEARS playing and coding for MUDs and ran a few games as a solo admin/coder. imo it is so very satisfying to watch the global chat channels after a new feature/area/weapon/mob gets rolled out...and what the community thinks of it. i can recall more than one occasion where a well planned quest resulted in interesting dynamics after players started interacting with it. an example; one quest would add an "invisible" token object to a player's inventory. quest stages would check for and modify the state of the token when it was "present". in this particular MUD there was PK...and eventually someone decided to carry the corpse of someone on the quest into an area where you must have the token to enter...and they "walked" right in. none of us had thought of that potential "use-case"...and it exposed a really interesting game play mechanic that we never knew existed...the equivalent of cutting off the guards finger to pass biometric locks in a spy story...

...damn...its hard not to want to start another MUD...

EDIT: i know this post is NOT a MUD project...but the solo-MMO dev story just struck a nostalgia chord in me

Re: The One Man MMO Project

#15
I really admire the determination of the One Man. Scrolling to the oldest updates reveals that his has been a passion since at least 2010. What a mark of constitution and fortitude to keep this passion burning. It is remarkable what his 2010 self knew and what his 2019 has learned in those years. This is his opus. Keep up the good fight!

Re: The One Man MMO Project

#16
I remember ages ago it was common to see the advice "don't try to create your own MMO" as they were one of the most complex game dev projects you could do.

Are MMOs any easier to make now given the libraries and cloud services that exist today?

Re: The One Man MMO Project

#17
post #2

How do MMOs maintain and update state for tens of thousands of players and then push those updates from the server back to clients efficiently?

Depends massively on the type of game. In general the two techniques are heavily compressing the data format sent over the wire (e.g. using 16 bit floats instead of 32 bit where it doesn't matter, sending 3 element quaternions instead of 4 and recalculating w), and only sending what the player needs to know based on a radius or some other criteria. Eve Online slows the entire simulation down when huge battles are hap…

Will this change with technology like Google Stadia? Could a massive compute farm calculate all of the state for all players, and then just stream video data down?

My guess is no - you'd want the rendering to happen on the edge close to the player, but with a sufficiently advanced compute topology maybe some tasks can be farmed down the graph?

Re: The One Man MMO Project

#18
Odd that http://theimperialrealm.com/index.html and http://theimperialrealm.com are two different destinations. The former is the home page which contains an intro video and more information about the game itself, while the latter is the blog.

He has two index files; index.html and index.php. The server sends index.php by default, which is where the blog is.

Re: The One Man MMO Project

#19

Earlier quoted context omitted.

Multiplexed sockets. Dead reckoning.

I remember a lot of dead reckoning happening in the old Runescape, once upon a time. Many moments of your player running in a direction then getting rubber-banded back because they got interrupted or something.

Dead reckoning is a bit harder when your game isn't using a perspective based camera (2D or orthographic). Otherwise you can use visual tricks to hide the rubber banding from a distance. Though when in 2D the solution is to interpolate between waypoints.

Re: The One Man MMO Project

#20
post #10
post #2

How do MMOs maintain and update state for tens of thousands of players and then push those updates from the server back to clients efficiently?

In memory. MMO servers store all world state in memory, and each server has a capacity usually in the 10,000 player range. You'd be impressed how fast computers actually are -- 10,000 objects isn't actually that many. Since the server knows where all clients know, the server knows what the client can see, and the server only has to update the client with relevant information, like the 100 closest players to it.

Generally the server does not in fact know what all the players are doing. They're sharded at the most granular possible level (typically a zone or instance) so any server instance knows about no more than 50-100 players.
Post reply on HN