"We are going to emulate all computers and physics even when players aren't logged in."
I built a prototype trying to do something similar, inspired by a text-based RTS/MMO that kept running while you were asleep. For me this was an unrealistic goal, if the simulations are complex enough you can't operate at a price point users will pay for. Even if you can, because the game is now CPU bound, far less players fit on a single instance -- you now need incredibly clever partitioning and load distributing facilities to keep the world appearing seamless. Even AAA titles haven't solved that problem, a look at world PVP lag in EVE or WoW will tell you as much.
Really? Given what Notch plans (2,000 DCPUs per machine - which is certainly doable), let's assume he's running a high-cpu instance (large) at Amazon for those 2,000 DCPUs. That's $500 per month for the machine. If he can't get that much money out of 2,000 players, he's doing it wrong.
Assuming you allow for eventual instead of atomic consistency, and allow for loss of CPU for several seconds if an instance goes kablooey, the load distribution is really not that hard. (And your spaceship really doesn't need five 9's. It's a game, so just blame it on "an ion storm". Or "a space monster" if that floats your boat ;)
Partitioning does not need to be too clever if you can constrain the number of ships per region - certainly something you can impose via game design.
Lag only matters if you interact twitch based. Notch's plans lend themselves to indirect agency via the simulated ship's computer instead, so if everybody perceives the world as it was a few seconds ago, not much is lost.
It's certainly a doable task. Notch's mind is in the right place to pull it off. No doubt, it'll be hard - but it'll be interesting to see what he comes up with.
That would obliterate the point of the MMO aspect though.
EDIT: One more thing regarding the ion storm or whatever - gamers aren't that forgiving about those things.
You could try and blame it on space monsters and what not, but gamers know pretty quick when something is borked. And they hate it hard. - Anything that isn't within their locus of control which negatively impacts game play is easily hated.
I can't stress enough how painful flamewars from pissed off gamers are to deal with.
I'm not sure how much you are aware of current occurrences in EVE online, but for what its worth - they too had the similar lag issues (while still being called excel in space).
They recently deployed a time dilation mechanic to make it possible for people to play the game and enjoy massive fleet battles, which has increased satisfaction amongst the player base immensely.
Well a first person shooter engine only really needs an (x, y, look-at) tuple for each player, certainly putting thousands of players on one map is doable. You're dreaming.
Assume for a moment a team of developers spend several months if not years doing infrastructure build-out to support the imagined CPU simulation system. Now they just have to implement the rest of the engine, the part powering the actual game, in which all players, CPUs, and other elements are active and interacting with one another at all times.
I'm hoping Notch succeeds, but lets be realistic -- the closest anyone has got to offline simulation is effectively "event queue and timer" and not for lack of trying.
> Assume for a moment a team of developers spend several months if not years doing infrastructure build-out to support the imagined CPU simulation system
Huh? A CPU simulation is not that complicated a task. If it takes Notch several developers and years of time, he's definitely doing it wrong.
> active and interacting with one another at all times.
Yes. That's a solved issue, mostly. It's a large task, but it's not an unsolved problem. (See e.g. social networking sites. Humongous amounts of people interacting with each other)
The point is that you'll need to make some concessions to the realities of large scale when it comes to the game design.
> the closest anyone has got to offline simulation is effectively "event queue and timer" and not for lack of trying.
Funny. And here I thought Havok just gave a talk on physics in MMOs. (GDC China).
I think you might be missing the point, all simulation continues while players are offline. Implementing consistent physics in an MMO is (very) hard, but having all players simulated even when they are logged off is something else entirely. The state of the art there is things like mail systems, auction houses, and skill queues.
I wouldn't be surprised if the offline simulation curtails your abilities somewhat, enabling a much lower CPU-effort simulation. We'll see, I guess :)
(There's also the point that a monthly subscription fee of $15 buys you a nice VPS slice these days. If you're willing to cut into the - significant - profit margin of MMOs, you have a lot of performance available for offline simulation. I'll stand by my judgment that it's a hard, but solvable, problem)
What would it take for the average i5 or i7 to virtualize a 16bit processor? Could it run on a separate thread from the main game?
Could you run part of your MMO server work as a distributed-computing setup on client PCs? (but how would you get that working in real time?)
Maybe the players that are online at a particular time could be doing some of the extra processing - the game client could run 1 or 2 extra 16-bit virtualizers in the background, along with the virtualizer for the player's own 16-bit cpu and the game thread. So 4 threads running on 4 separate cores.
I think it would be really hard to secure that as far as an MMO goes, not that there aren't a few tricks that might be worth trying. (Like having a player's CPU emulated on several different peers and comparing the output to find errors or hacks)
If it's designed carefully, the code should be trivially translatable to native x86, at which point you may even be able to run a few thousand on a single reasonably beefy server, depending on how fast the virtual CPU runs and the average load.
No, it was necessary to reframe the constraints of what can be done designwise. Idle speculation about the design of how it could be done that is wildly outside both Notch's abilities and the allocation of people on his team he plans to put towards it (zero) is pretty pointless.
You realise how much money they've made from Minecraft yeah? If he wants cutting edge virtualisation technology he can no doubt pay for it (if it'll be fun, and he definately has an intuition for what is and isn't fun)
>You realise how much money they've made from Minecraft yeah? If he wants cutting edge virtualisation technology he can no doubt pay for it (if it'll be fun, and he definately has an intuition for what is and isn't fun)
That's kinda my point, coding ability didn't limit his ability to delight people.
He has programmed a number of games from scratch in very short time periods without using a bunch of pre-existing tools etc.
He is obviously very much a generalist and has done everything from 2d/3d graphics , networking , gameplay handling , AI and now CPU emulation. I would imagine most AAA developers will at some point find a niche and stick to doing that.
Not to mention building minecraft which is a non trivial programming exercise in terms of managing and rendering thousands upon thousands of blocks which can all potentially be re-arranged.
Perhaps he is not John Carmack but I would be confident he is at least as good as 90% of the programmers working in the game industry.
>He has programmed a number of games from scratch in very short time periods without using a bunch of pre-existing tools etc.
PHP, QED. Also no he didn't, he used lwjgl.
>He is obviously very much a generalist and has done everything from 2d/3d graphics , networking , gameplay handling , AI and now CPU emulation. I would imagine most AAA developers will at some point find a niche and stick to doing that.
No.
>Not to mention building minecraft which is a non trivial programming exercise in terms of managing and rendering thousands upon thousands of blocks which can all potentially be re-arranged.
You do a real disservice to the people working on modern physics engines. Jesus.
>Perhaps he is not John Carmack but I would be confident he is at least as good as 90% of the programmers working in the game industry.
No, it wasn't. If you wanted to communicate a legitimate concern (which you don't seem to have, just idle speculation), you would have done so. Instead, you were an asshole, and made it worse by recognizing you were being an asshole, and doing it anyway.
I built a prototype trying to do something similar, inspired by a text-based RTS/MMO that kept running while you were asleep. For me this was an unrealistic goal, if the simulations are complex enough you can't operate at a price point users will pay for. Even if you can, because the game is now CPU bound, far less players fit on a single instance -- you now need incredibly clever partitioning and load distributing facilities to keep the world appearing seamless. Even AAA titles haven't solved that problem, a look at world PVP lag in EVE or WoW will tell you as much.