This topic has been locked
Why Every Game in the Future Should Run Inside a Container
https://plus.google.com/photos/photo/115000366679585050958/6020880932729346210
https://plus.google.com/+AlexCovic/posts/aVSKt7wEbZv

What is a Container?

https://cloud.google.com/containers/

TL;DR: Think of containers as "Virtual Machines". Not 1 or 2 but Billions!

Every search request you type into Google runs in a container. It is kept isolated and is served around the world along side millions of other Google search queries started at the same very second as yours.

Containers are running everywhere these days, without you knowing.

Together with "Blockchain" It has become the most important (software) technology and will stay that way for years to come.

What does it have to do with "gaming"?

Cloud based gaming and all the current and upcoming game streaming services, from Nvidia's Shield to Sony, EA and Microsoft are based on this technology.

But they are also based on the assumption that everyone has a fast fiber network connection including the very last mile, at home.

Most do not.

A brief excursion

The other week, I tried to install GTA V on a HDD over night.

The harddrive could not handle the I/O traffic and died on me.

Trying to safe the already downloaded data, I tried to copy-paste it to another harddrive and continue and finish the download, but the Rockstar Gaming Installer would not recognize the already downloaded almost full game, instead wanted to re-download 40 GB.

This Game Installer is using Peer-to-Peer technology (you may know it as Torrents. Blizzard uses it. Humble Bundle uses it. Almost everyone these days uses it)

Finally the game was installed, but then, it would not start.

I caught myself the infamous GTA5 "ERR_GFX_D3D_INIT" error. As old as the PC version of this game and STILL an issue in December 2018!

People on the internet forums claiming they 'solved' their issue (for everyone). People giving other people ridiculous magic wand voodoo doll advise, claiming it will work for them too. It does not. Spoiler.

IMAGINE EVERY PC GAME RUNNING ON IT'S VERY OWN - OPTIMIZED - OPERATING SYSTEM

What I did was taking an empty 120 SSD drive, installing a core Windows 8.1 on it. Deleting, un-installing and disabling ALL software, apps and services which are not needed to run GTA V and the Rockstar App and installed GTA V.

I dedicated a single harddrive to only run GTA V and it is optimized for just that (as good as one can do such thing as a user/admin without re-compiling or writing your own OS).

Now, the SSD is sitting in the GTA V retail box instead of the DVD. Whenever I want to play it, I plug my other harddrives out and plugin only the GTA V SSD.

Now, imagine, if every PC game you run on your hardware would do that with just you clicking on PLAY!

Our old Operating Systems and even older base computer architecture (don't think of "Turing Machines" think rather of "Von Neumann") is trying to mimic our modern lifestyle. The Windows Scheduler and Linux governor are trying to give every task running it's proper share.

And, we all know, it is never the way we want it to be.

Neither the motherboard and graphic card tools, giving us the ability to "Overclock" our hardware for better performance, is the answer, nor is it Microsoft's "Windows Game Mode".

The only real Microsoft attempt on "Games on Windows" was actually the XBOX console. That is the only environment Microsoft was willing to shape their OS to the needs of gamers only.

The much, much larger market of billions of consumer level Personal Computers around the world are designed to run everything at the same time. Facebook notifications, Windows Apps, Netflix streams, Alexa listening, etc, etc... no "Gaming PC" ever was a 'real' gaming PC. Ever.

What is needed is a 'virtual machine' that runs ONLY the things necessary for ONE task at that time we are using it. And switching back and forth between those. An Operating System build with containers in mind would do that.

Every game would have been tested and verified(!) on a certain software level. Your hardware would have to be addressed (yes, every custom hardware would need it's custom container. It is called 'automation') The technology is not there yet. My dedicated GTAV SSD is safe for now. But the future may just provide us with more gaming containers?

//thanks for reading, btw
Last edited by Adam Beckett; Dec 7, 2018 @ 6:18pm
< >
Showing 16-23 of 23 comments
this whole thing sound more like a waste of ressources then anything else.
Gwarsbane Dec 7, 2018 @ 9:18pm 
Originally posted by Adam Beckett:
@Gwarsbane Ha! I still have not made myself clear.

It would only run ONE Operating System - the one it comes with.

But ... I finally agree with you; it DOES sound complicated and is probably way to complicated and not financially feasable to create.

... though, even now, I cannot give up.

Imagine a Steam user, having the exact same hardware as you (mobo, cpu, gpu) and he tweaked his Operating System to run 'optimal' for the game (high framerate, never crashes, runs smooth).

Now, imagine THAT guy, sharing his "Windows Installation" which includes the game with everyone else (legally) on the web, or in Steam Workshop.

There would be no more "it doesn't run" negative user reviews?!

:)

You do realize that what works on one system, might not work on another because of hardware and software differences right?

Just for an example, how many nvidia based 1060s are there? Well if you just go by the "slightly different ones" there is at least 5 or 6 (nvidia keeps making new ones and changing their specs a bit). Now consider that there are at least what 15 or 20 (or more considering some countries have their own that no other countries see) 3rd party board makers out there. So that is potentially 120 (or more) different nvidia based 1060s. Now consider how many different levels of video cards there and each level has as many different cards as the 1060 series.

Now consider how many CPUs are out there. Lets just go with a round number of 50 though there are far more. Now you have to take into consideration all the different possible combos of just CPUs + 1060s, which would be around 6000 different combos of hardware. Now remember you also have sound cards, motherboards, hard drives, SSDs, all the different levels of video cards.

Then take into consideration all the different versions of just the OS with each OS having different versions too. Then it has to take into account all the different patches, not everyone runs the most up-to-date patches for their OS. And of course all the video card drives, motherboard firmwares, antivirus programs, and so on and so on...

This is why the "container" idea is useless. Heck even if you have 2 identical machines with all the same hardware and patches and stuff, they 2 can still act differently just because of whats known as the silicon lottery. Which is basically 2 of the same pieces of hardware (CPUs for example) can actually run differently. One can actually run better than another one.

There are literally billions if not more of combos of hardware and software. Its pretty much near impossible for 2 people to have the exact same setup so that they could run the exact same "container" for a game.


Oh and you would still have to run an OS just to be able to get to the point where you run the container which contains an OS...
Last edited by Gwarsbane; Dec 7, 2018 @ 9:22pm
Winged One Dec 7, 2018 @ 9:51pm 
OP, you just seem to have compiled a list of buzzwords more than anything else.. you seem to have read some stuff, but do not understand enough about computers to understand what you read properly and instead used it to come up with some form of twisted compound variant of it..


what you are saying is neither viable, nor will it really fix the issues you are concerned about.. infact, its actually a step backwards..




Originally posted by Brujeira:
Google Plus still exists? Woah.

Seriously though, you don't actually know anything about the actual technologies involved, do you?
Google Plus? not much longer, Google plans to slowly shut it down segment by segment over the next 9 months
Originally posted by Adam Beckett:
@Gwarsbane Ha! I still have not made myself clear.

It would only run ONE Operating System - the one it comes with.

But ... I finally agree with you; it DOES sound complicated and is probably way to complicated and not financially feasable to create.

... though, even now, I cannot give up.

Imagine a Steam user, having the exact same hardware as you (mobo, cpu, gpu) and he tweaked his Operating System to run 'optimal' for the game (high framerate, never crashes, runs smooth).

Now, imagine THAT guy, sharing his "Windows Installation" which includes the game with everyone else (legally) on the web, or in Steam Workshop.

There would be no more "it doesn't run" negative user reviews?!

:)
Only if everyone had the exact same hardware.

And the game download would be crazy huge, because now it'd include that guy's operating system.
Satoru Dec 7, 2018 @ 11:49pm 
Originally posted by Adam Beckett:
Okay ... that was almost amusing.

Glad to find so many experts with free time on the Steam forums, eager to teach and share their 'knowledge' and more importantly their very elaborate opinions about complete strangers.

Considering your entire posts show a complete an utter lack of understanding of even the BASIC concepts of containerization, that's laughable.

Think of every PC game being sold on a separate USB thumbdrive.

The stuff below we already have a name for it

Its called an appliance, not a container......


It would hence NOT be hardware agnostic, as - yes - all common containers are.

But it would be bound and only running in it's multiple version on ONE, known, hardware.

You are literally contradicting yourself within 2 sentences. Its like you actually have no idea waht you're talking about

Instead of multi-booting into two or three Windows 10 versions, you would multi-boot into hundreds of installations of Windows 10, which runs only a "Game x". Every game would be shipped with it's own OS version (adjusted to the hardware requirements on the USER side, not the developer side).

You do realize that is literally the opposite of how containers work, how they're designed, or how they're deployed. The entire point of a container is to make it IDENTICAL so its easily deployable.

So by all means please tell me how you are magically going to create a 'container' that is, by your admission, adjusted to the hardware on the user side. Lets just run trhough what you'd need

1) Intel vs AMD
2) Every iteration of Intel and AMD architecture imaginable
3) Nvidia/AMD/Intel
4) have fun creating driver packs for every single GPU ever made. Oh and btw nvidia and AMD both distribute drivers on a nearly monthly basis for new games. Yeah try making your containers for that

This 'container' is looking less and less actually isolated and simply just a mass virtualized cluster. I can run KVM to do that. That's not what containers are for.

You're also magically forgetting that AMD and Nvidia have to support GPU accelleration into the container. They currenly only do this for their NON gaming GPUs

There would have to be thousands of pre-configured, pre-compiled 'patches' so the user's hardware gets the exact one for them.

And so who's gonna test the hundreds of thousands of possible combinations of hardware. Because oh boy that sounds like fun. Do you have my workstation class Nvidia Quattro or my AMD Radeon Pro graphics cards?

The Operating System delivering on this idea may very well NOT be "Microsoft".

So by some magic you expect devs to abandon the most popular platform for PC gaming because you want to create basically what amounts to installing Redhat and running KVM on it. THis sounds like a great business case and I'm sure devs will be tripping over themselves on this.

Oh yeah btw how am I gonna stream my games on Twitch? Oh wait right you didn't think of that did you? Because you're obviously going to support all the video input and encoding cards right? Oh and all my video editing software too?


Like just beyond the fact that you don't even understand the technical words you're even using in totally incorrect ways, to describe what amounts to a KVM farm running on a consumer grade hardware platform, its like you dont even understand how people user computers at all

Also you talk about 'containers' yet dont even bother to mention Docker? Like how can you talk about containers without mentioning Docker. The fact htat you don't effectively tells me you have NO CLUE what you're talking about. Btw did you know they've been trying to use Docker for Steam to no avail.
Last edited by Satoru; Dec 8, 2018 @ 12:03am
Kevin Dec 8, 2018 @ 7:22am 
Containers, as you call them, are refered to sandboxes and have been instilled as an anti-cheat measure and it targets/virtualizes the game whenever software that has not a fingerprint (that identifies it as good or of mallice) is currently running on the system. This is nothing that game developers traditionally take responsibility of doing. They work with unreal engine and other solutions really. Its pretty much nothing more than a creative sandbox that allows some programming.

Where your targetting is more for the low-level/assembly pros and less for the content creators. This is why anti-cheat services such as BE, HackShield, and many others applied a concept called "sandboxing" into video-games (which addresses your concern, partially). Pretty much that client-side invasive spyware that serves a moral cause... is everything of security in the game outside of nerfs and patches.

So to answer: already addressed w/ anti-cheat solutions.

The benefits have proven minimal actually. Huge problem with MMOs is the fact they interact with physical hardware. See


Originally posted by Start_Running:
My bsuggestion is that you actually learn about the way COmputers work OP. Each game running its own OS would be rather meaningless since you still have to fascilitate communication with the hardware layer.

There's a reason gaming on windows went with Direct X as a standard. Before that developers had to manually code in support for various brands and models of video cards, sound cards, modems, montors, etc. It was not fun to buy a game and see that your sound card was not one of the supported models.

Software already runs in it's own little space for the most park. It has its assigned memory which other programs cannot tamper with, it has its share of the CPU based on it's activity level. A VM is basically the equivalent of taking a two person conversation and sticking a third person in the middle. It works but not always as well and the more time seinsitive the game is (reflexes required etc) the worse it gets.

Also there would still be .. it doesn't run reviews because quite simply the same problems that cause that would still exist. Driver incompatability, hardware incompatability, insufficient hardware specs... except worse because there would be no universal model or architecture.

His critics were aimed at the fact that delopers are writing programs that interact with hardware. Hackers are exploiting assembly. Hackers are exploiting from the memory. So forth. Computer programs aren't magic. They all have a point of execution. Thats where sandboxes don't work.

On a web-server... your right though. yes... I can accept an incomming connection and then creates/mirror my main host up to 1000 times to be particular to that clients session and confine that client to their version of my web service so that they cannot make any unwanted changes to the main plat...

so... game... web server... big-difference. some of the things your talking about installed. others are not. the benefits are minimal. sandboxing.... thats what they call it.
SquidCell Jan 16, 2024 @ 9:30am 
Originally posted by aiusepsi:
I can understand why IBM and the like are selling "blockchain solutions", because companies who sell solutions will happily sell daft things if the customer wants them.

[...]

When you strip out stuff like proof-of-work, what you're left with looks an awful lot like appending lines to a text file stored in a git repository, and that is fundamentally extremely boring. It's not a world-changing new technology, and anyone who tells you otherwise is probably trying to sell you something you don't need for too much money.

The NIST report is pretty good, https://nvlpubs.nist.gov/nistpubs/ir/2018/NIST.IR.8202.pdf, you should see the flowchart on page 42.

LOL years later. Necromancy is my thing.

Yes, the comparison to git is extremely apt -- and at it's base, it's a ledger. If you want to 'strip out stuff', then sure. Computers aren't some world-changing technology, they're just a faster way to do math.

But if you want to refer to what is *actually* being referred to when people say "Blockchain", you can't reasonably "strip out stuff". Proof of work, proof of stake, and the foundational integration of cryptographic security into the basic process are what distinguish blockchain from "Just a ledger", just as being a Merkle Tree and deep integration with file management is what separates GIT from being "Just a ledger."

In fact, GIT (and its precursors) are another, very closely-related massive, world-changing technology.

Your argument that Blockchain is boring reminds me of someone who read Plato's "Republic" and decided that the ideas were dumb and obvious. Of course, they thought that because those ideas are already integrated into the fundamental way they think.

Blockchain is, indeed, a world-changing technology. Yes, it's got a niche it's best in, and blockchain is overhyped and poorly understood by many -- but the use case it covers (untrusted auditability) is a massive game-changer, and anyone who thinks differently deserves.. ..well.. ..about one reply, discussing the issue. And then nothing.

The flowchart you mentioned is indeed decent, and weeds out most if not all cases where blockchain isn't apt. It also weeds out some where it is, but it's still an effective razor.
Last edited by SquidCell; Jan 16, 2024 @ 9:35am
Rosa Jan 16, 2024 @ 9:54am 
This thread was quite old before the recent post, so we're locking it to prevent confusion.
< >
Showing 16-23 of 23 comments
Per page: 1530 50

Date Posted: Dec 7, 2018 @ 4:20pm
Posts: 23