Advertisement

Streaming a Game in the Browser, like streaming a movie on Netflix

Started by July 07, 2018 05:08 AM
9 comments, last by Plains of VR 6 years, 1 month ago

In early 2017 I had this idea, if I can stream an HD movie without downloading the whole thing, I could stream a massive open world game as well without downloading it.

Most people are under the impression that a game running in the browser can’t look good because then it takes forever to load it. Well, in game dev the concept of LOD - Level Of Details - exists quite a while now, there is no reason why we couldn’t apply it in the browser as well.

The game I developed loads in a matter of seconds. It takes a couple seconds to load the engine itself, then when you press play:
- Loads the terrain peaces closer to you first, than what's further away.
- Loads the low poly version of the models like trees, rocks and bushes first, then the high poly version when available.
- Structures...
- Animals...
- Sound...
- Etc.. you get the idea :)
 
My point is, it is POSSIBLE to build a 3D version of the Internet, where instead of browsing through websites, we could jump from one 3D space to the next. I “invite” everyone to make this happen.
 
I’ve made a 3D Survival Game with a massive terrain to prove the tech works. I want you guys to build your own 3D spaces implementing your own ideas what the web should look like in the future. We could just link them all together and make this Interconnected Virtual Space happen - yeah, the Metaverse, for the Snow Crash fans out there ;)
 
I would love to hear what you think about the applications of 3D spaces on the Web. Please leave me a comment if you are as exited about the possibilities as I am.
 
Backing up my claims:
Live Tech Demo is available on https://plainsofvr.com
Watch a the Open World to load instantly, than gradually improving: 
On 7/6/2018 at 11:08 PM, Plains of VR said:

In early 2017 I had this idea, if I can stream an HD movie without downloading the whole thing, I could stream a massive open world game as well without downloading it.

This idea has been in implementation before and isn't the same thing as you're talking about by using WebGL to run your game through a browser. The concept was to allow anyone regardless of their PC specs to connect to another machine which housed (x) number of games and play through the cloud. You would be sending input but receiving video feed so you can essentially use a cheap $200 machine and play a brand new release on max settings as long as your internet is up to the required settings and the host machine can handle it. I believe NVIDIA has this service among many others.

Please correct me if I'm wrong, but based on what I can see you're not connecting to a server through the cloud which accepts input and sends video feed back to the player, but it's the actual game running through your engine made using webGL hosted on the server and played through an internet browser? This would not be the same concept as cloud gaming in which you stream game feed. This is no different than running a game like Runescape through the browser, or anything in the past that we've seen through Java, Flash, and Shockwave.

On 7/6/2018 at 11:08 PM, Plains of VR said:

I could stream a massive open world game as well without downloading it

Based on my network I had downloaded 76.4 MB just playing for under 20 seconds. I checked a few of the files and they seem to be resource files which still had to be downloaded for the game to work. Even if you stream, something has to pass through, it's just a matter of manually downloading something and installing it, or having it run behind the scenes.

You have an interesting looking game for for sure, but I wouldn't say that you're "streaming the game without downloading anything".

That being said, I did play the game for a bit. I noticed it plays very smooth on FireFox, but when I played on Chrome it was extremely slow. Sometimes the trees and rocks would just vanish from rendering, but if you swinged your tool you could still hit things. Once a tree was cut down it would render the animation, but the rest would still be invisible. I tried to get back into the game and it wouldn't let me load, it just hangs on a white screen.

image.thumb.png.f7af7fa61b26d4db68f8452a8a4bb9a1.png

I also like your concept in making the web more 3D and VR based as per your website, so if you go online to buy Tires for example, you're in a 3D environment picking them out as opposed to the standard online shopping we have today. Very interesting. :) 

I wish you the best with your project going forward.

Programmer and 3D Artist

Advertisement
On 7/6/2018 at 11:08 PM, Plains of VR said:

if I can stream an HD movie without downloading the whole thing, I could stream a massive open world game as well without downloading it.

I am making a web based game as well that is also 3D.  This idea has been around for a number of years now as I believe Rutin was saying.  But there is one major limitation to this idea of streaming content.  Each connected player would have to have their own dedicated video stream, meaning you'd have to have dedicated graphic hardware for each user.  Then render the scene for each unique user and stream only their view-port.  The only way you could possibly get around this is if every player saw the exact same thing, like a movie.  Better off just letting the player do all the hard-computing on their end.

So every time I load your game, I have to download all the assets again to render them?  So people who have limited data packages with their ISP will be screwed?  Or does it save the data after it's downloaded?

"Those who would give up essential liberty to purchase a little temporary safety deserve neither liberty nor safety." --Benjamin Franklin

It seems like you are proposing progressive downloads of video game assets while playing? That isn't a terribly unusual feature in this day and age.

One of the better-known examples is Blizzard's World of Warcraft, where you can start playing the game as soon as the assets for the initial starting zone have downloaded, and further areas should download before you progress to them.

Microsoft and Sony both pushed this feature pretty hard for XBox One and PS4, respectively. It's pretty common for games on these platforms to allow you to play at least the introductory missions while the remainder of the game downloads.

 

Tristam MacDonald. Ex-BigTech Software Engineer. Future farmer. [https://trist.am]

5 hours ago, Rutin said:

This idea has been in implementation before and isn't the same thing as you're talking about by using WebGL to run your game through a browser. The concept was to allow anyone regardless of their PC specs to connect to another machine which housed (x) number of games and play through the cloud. You would be sending input but receiving video feed so you can essentially use a cheap $200 machine and play a brand new release on max settings as long as your internet is up to the required settings and the host machine can handle it. I believe NVIDIA has this service among many others.

Please correct me if I'm wrong, but based on what I can see you're not connecting to a server through the cloud which accepts input and sends video feed back to the player, but it's the actual game running through your engine made using webGL hosted on the server and played through an internet browser? This would not be the same concept as cloud gaming in which you stream game feed. This is no different than running a game like Runescape through the browser, or anything in the past that we've seen through Java, Flash, and Shockwave.

Based on my network I had downloaded 76.4 MB just playing for under 20 seconds. I checked a few of the files and they seem to be resource files which still had to be downloaded for the game to work. Even if you stream, something has to pass through, it's just a matter of manually downloading something and installing it, or having it run behind the scenes.

You have an interesting looking game for for sure, but I wouldn't say that you're "streaming the game without downloading anything".

That being said, I did play the game for a bit. I noticed it plays very smooth on FireFox, but when I played on Chrome it was extremely slow. Sometimes the trees and rocks would just vanish from rendering, but if you swinged your tool you could still hit things. Once a tree was cut down it would render the animation, but the rest would still be invisible. I tried to get back into the game and it wouldn't let me load, it just hangs on a white screen.

image.thumb.png.f7af7fa61b26d4db68f8452a8a4bb9a1.png

I also like your concept in making the web more 3D and VR based as per your website, so if you go online to buy Tires for example, you're in a 3D environment picking them out as opposed to the standard online shopping we have today. Very interesting. :) 

I wish you the best with your project going forward.

You are exactly right, this is different from Cloud Gaming. You have to download the Game Engine first, which happens in a matter of seconds before the menu shows up. The heavy part of most games are the game assets though, like 3D models, textures, audio etc. When it comes to the game assets your browser literally streams in all those assets that are in your immediate surrounding area and not loading anything from the rest of the Open World environment, hence calling it streaming. You can even see the loading icon in the top left corner flashing up time to time as you move around, indicating that you are streaming new stuff on the horizon.

What makes this game engine unique is that extent of the implementation of the idea. You receive a link in messenger, you tap on it and then you are in the game without going to a store on your given platform, downloading the whole game if available, installing it, then trying to get in the same game with your friends. Here, you tap and it's done, you are there :)

Buying tires in a 3D environment is exactly my long-term goal, shopping online in a 3D environment could have some many new use-cases. But to get people on board will be a long process I think, so I decided to start with a game first :)

Thanks for the constructive comments, I really appreciate the details :)

PS: if you clear the cache - browser - you can probably get the game going again. I certainly have a few bugs to work on.

Advertisement
7 hours ago, Awoken said:

I am making a web based game as well that is also 3D.  This idea has been around for a number of years now as I believe Rutin was saying.  But there is one major limitation to this idea of streaming content.  Each connected player would have to have their own dedicated video stream, meaning you'd have to have dedicated graphic hardware for each user.  Then render the scene for each unique user and stream only their view-port.  The only way you could possibly get around this is if every player saw the exact same thing, like a movie.  Better off just letting the player do all the hard-computing on their end.

Yeah, I guess cloud gaming always have to deal with that issue. The difference here is that my game engine runs on the client device using WebGL - OpenGL ES.2.0. I stream the assets themselves not the image of the game. These assets got processed on the client side so it utilizes the distributed power of the devices that it runs on rather than draining a single server.

I've just followed your projects Shapes TD and Unirule, they both look promising, keep up the good work! :)

7 hours ago, CrazyCdn said:

So every time I load your game, I have to download all the assets again to render them?  So people who have limited data packages with their ISP will be screwed?  Or does it save the data after it's downloaded?

A valid concern CrazyCdn. The browser should cache everything about the game, you might have noticed that it loads much faster the second time when you press Start.

6 hours ago, swiftcoder said:

It seems like you are proposing progressive downloads of video game assets while playing? That isn't a terribly unusual feature in this day and age.

One of the better-known examples is Blizzard's World of Warcraft, where you can start playing the game as soon as the assets for the initial starting zone have downloaded, and further areas should download before you progress to them.

Microsoft and Sony both pushed this feature pretty hard for XBox One and PS4, respectively. It's pretty common for games on these platforms to allow you to play at least the introductory missions while the remainder of the game downloads.

 

 

You are right, there is nothing new about streaming assets into your game. Whats new about it that it's running happening in the Brower. GTA 5 does this asset streaming exceptionally well, but still, I have to download 10 of BGs of data first. Even if I don't have to download the whole game before I can start playing, it's hardly instant gaming is it :)

Blizzard's World of Warcraft sounds promising, although when I registered just now, no matter how I tried I always ended up on a Download Client page and not in the game - Mac with Chrom - ..is that project ever saw the sunlight?

7 hours ago, Plains of VR said:

Blizzard's World of Warcraft sounds promising, although when I registered just now, no matter how I tried I always ended up on a Download Client page and not in the game - Mac with Chrom - ..is that project ever saw the sunlight?

It's not playable on the browser. But the client is very small compared to the 90GB+ that the entire game takes :)

Tristam MacDonald. Ex-BigTech Software Engineer. Future farmer. [https://trist.am]

Opened the first official server called Pangea. Give it a try guys if interested and leave me a feedback. Have fun :)

progress-01-official-servers.thumb.jpg.52b9574145499d8b91e224c40957fc67.jpg

This topic is closed to new replies.

Advertisement