But anyway, our future entertainment might be completely hallucinated by AI in an on demand fashion before we get the 'general storage game binary' thingy.
You can still play old video games in emulators, but you are usually using an approximation of the original input device. This isn't such a big deal with older, simpler games – playing a SNES game with an Xbox controller is a good enough approximation of the original experience. But newer innovations like the Wiimote, Kinect, VR headsets, etc will make it a lot harder to play games made for them in the future. In 50 years, you'll still be able to boot up Wii Sports in an emulator, sure, but will you be able to find a good proxy for a Wiimote?
I'm betting I could print it and hack something together from some hobby electronics kit if I really wanted to.
But you are absolutely correct. There is a category of games for which the complete experience is unseparably attached to the original substrate.
On the other hand, keyboard and mouse driven games are fairly maintainable accross platform generations.
It's a matter of degree, depending on the whims of the market and dedication of the emulator scene. Not all old movies or games are available. Not all art has survived. And apparently the old World of Warcraft is back?
MMOs are a case where the game itself inherently requires a serious server in order to work. I don't play MMOs myself, but if I did, I would not be bothered by their server-based nature as there's an obviously inescapable reason for it.
That is not representative of most games.
Handling a thousand people in the same spot can be done on any size of server, and most of the time you're looking at under a hundred.
This is how you get cheating. Decentralized hosting can work (look at CoD for an example of a highly successful game that used end user systems as servers), but an MMO is probably one of the least trusting environments you can have.
It's not about immediate processing or anything, it's about having a trusted copy of the game state.
Further reading: Latency Compensating Methods in Client/Server In-game Protocol Design and Optimization by Yahn W. Bernier: https://developer.valvesoftware.com/wiki/Latency_Compensatin...
Edit: Okay I really need someone to explain why this particular comment got downvoted, I'm baffled.
To prevent clients from cheating, you have to run pretty much the entire game engine on the server. Sure, you can strip graphics, but not physics, cooldowns or inventory management. As an example: it sucks being killed by an enemy obviously behind a wall or in another room, so fired bullet should be checked against world geometry.
Pretending all this to be no big deal might be right for some specific (kind of) games, but generalizing it that much is... unrealistic at best.
Btw, dev time is valuable as well, so an overly engineered solution probably isn't a realistic option for many online games either.
And I mentioned trust in my first post. It's a reason to use a server, but it's not a reason to use a 'serious' server.
None of these are reasons you couldn't use 40 tiny weak throwaway servers in place of 5 big serious servers.
> As an example: it sucks being killed by an enemy obviously behind a wall or in another room, so fired bullet should be checked against world geometry.
That sounds more like a shooter than an MMO. And a shooter instance definitely fits into a tiny 2-4 core server.
> dev time is valuable as well
Which is why so much software is single-threaded. And single-threaded software only needs one core.
(And the dev time for what I was talking about would be tiny, and it would save money overall. There are good reasons not to do it, but I don't think dev time is one of those good reasons.)
Either you’re not making your point correctly or you’re just wrong.
I made two AAA games with online components, the game servers are “serious” (40cores, 256GiB ram, 10G network) because they have to be to emulate physics, to run AI and to do raycasting of bullets (to detect shooting through walls which the clients tell us they can do if you’re cheating) etc. And /even our/ game worlds offloaded too much in the first game leading to huge issues with cheaters.[0]
And our gameserver is written in C++ with a lot of optimisation work.
[0]: https://www.theguardian.com/technology/2016/apr/26/hackers-c...
I just think that's pretty uncommon among games.
Maybe I'm wrong, but keep in mind that something like "an MMO" managed to work on the hardware that existed 15+ years ago and the underlying computational details have barely changed for many of them.
And something like Eve is single threaded.