[Possible Solution to Mobile .etc] Making your project playable EVERYWHERE

Right, I’m going to first off say that I’m currently in the process of trying out what I’m telling you, I won’t have exact answers for you all at the moment but as I experiment, I’ll report back with the findings of my experiments.

Now that’s out of the way - Let me throw some crazy ideas out there that may or may not help someone out!

Sit down everyone, and let me tell you a story about how I’ve come up with a possible solution for creating mobile games (With ALL the features of Unreal Engine 4’s Desktop Projects) as well as porting your game with next to no extra effort needed.

As many of you know, I am working on Super Distro and what some of you have heard is recently I lost every single file to do with the project and had to start back from square #1. Developing a game for multiple platforms in multiple engines isn’t fun when you have to re-do everything twice. Not fun. No doubt it’s pretty obvious to say I’m investing in some source control to save that from happening again.

When in the little pit of “Oh no, Everything I’ve worked on for Two Years has been lost!”, Epic Games swooped in and seriously helped me out, giving me even more confirmation that they are the #1 Engine in my eyes and they deserve my complete dedication. So I decided to scrap the mobile port in Unity and thought of porting the finished project (When it’s done) over to mobile in Unreal Engine 4. But as a lot of you know, Mobile Unreal Engine 4 isn’t where we’d all love for it to be at the moment.

It’s very tricky to get an optimal experience of every mobile out there and it’s possible to bring your frame-rate down super-quick pretty easily if you’re not careful when developing mobile projects. But while trying to figure out ways around the Mobile porting in Unreal Engine 4, something hit me - As I had lost my whole computer, during my down-time I had a chance to experience something… Something which I hadn’t touched in a long-time… OnLive.

Many of you I’m sure remember this as being an almost total failure at launch, It got too big too quick and couldn’t provide enough bandwidth for the players and resulted in a less than optimal experience.

For those who have never heard of OnLive, it’s a cloud-based streaming service, where your controller inputs are sent to a computer somewhere playing the game and the video is streamed back. The idea is that you’re playing on a computer that’s in a data-centre somewhere which lets players who have low-powered computers (Or even Tablets!) to be able to play high-end games as if it were on there own computer.

Now OnLive is actually still going, it isn’t perfect but it’s functional. As long as you don’t play games that require impulse reactions, it’s quite fun to use. They have a free trial so I definitely recommend to check it out to get an understanding about what I’m talking about.

Basically, back when OnLive launched, we didn’t have the technology to pull off what they tried to achieve with no faults. But now, I believe it’s possible. All you have to do is put all the pieces together!

Many people who have used Unreal Engine 4 have noticed a lot of data is stored on Amazon servers. Now, isn’t that a cool idea. That you can use servers from Amazon for your needs…

Anyhow, Where OnLive failed was that it was very hard to scale the servers to the user’s needs. They couldn’t purchase more servers as the initial rush of players would quickly die off and leave them with a load of useless servers. Why am I talking about this? Well…

Amazon offer scalable servers. Scalable servers that have Nvidia GRID’s in them. But I’m getting ahead of myself, let me explain in a nutshell what NVidia GRID GPUs are:

If you watched Nvidia’s GDC talks this year (They’re free to watch on the GDC Vault!) they talk about NVIDIA GRID: GPUs created for the sole purpose of streaming video-games over networks to the end-user. Think OnLive but able to stream your own game to anywhere you choose.

Think about it - GPUs created with the intention of reducing the latency between the player and the server - To speed up the streaming process and make it feel more then ever that the player is PLAYING the game that is actually running on a data-centre somewhere.

Now I’m sure a lot of people on these forums are either Indie developers, small companies or video-game companies looking to save as much money as well as getting their game to as many people as possible and let’s face it Servers are **** expensive these days for the applications we need them for.

So what am I’m getting at?

Think about it > Amazon Servers now have the ability to stream your game via the internet with the lowest possible latency than ever before. This means that even in the places that have terrible Internet speeds, the players won’t be hindered by lagging games or lagged input that throws them out of the experience.

We now have the power to send our projects to Amazon and let them stream our game to our players, with servers that are scalable, so if more people than normal are playing, they won’t notice a single difference in the experience. It would be as if their device was playing the game, but it’s really in some data-centre somewhere, streaming to people.

I’m pretty sure a lot of you reading this are thinking: “That’s awesome! But what about cost?” well Amazon have a cost calculator, and guess what? You pay by the hour the server is on and can cancel at any time. That means that when nobody is using your game, you can automatically send a message to the Amazon server to turn off, so you don’t have to pay a single penny / cent while it’s off. Not even owning your own server would be that cheap. Without checking, I believe it’s 80p (50 cents?) an hour per server.

Amazon’s servers also offer 99.999999% (I think) up-time and seriously fast download / upload speeds. With the current pricing structure, with the ease of sending your Windows / Linux project into the cloud to be streamed by anyone you choose, It seems like a viable option to me.

Think about it (I don’t get tired of saying that!), being able to give players access to your project the way you intended to, with almost no extra work on your part.

Now there are down-sides to what I’m talking about - Players who have intermittent Internet connectivity (Bad locations or on the move) are out of luck. But we now live in a world where it seems always-online games are becoming the norm, So I don’t see it taking long before cloud-streaming to mobile devices and low-powered devices really takes off. The cost is also an issue. Even though you only pay like 80p an hour for a server (And can shut it off whenever you like), you’re still paying that 80p. And if you’re not charging players a subscription or something similar, you’re going to lose money and fast. An alternative to charging players a subscription would of course be in-game adverts or in-game purchases, but I’m personally not too keen on those ideals.

Nvidia GRID also offers an SDK to optimise your game and the Client needed to run the game on the end-user’s device / PC so it seems like a serious avenue you could take.

This sounds all good in theory, but practically? I dunno. I’m trying this all out soon so I will be able to write-up about the experience and whether or not you should do what I’m doing. I’ve been in talks with Amazon and should have a test server up as soon as I’ve re-created enough of my project so I can give first impressions and what not. I’m also trying to get hold of OnLive about using their Enterprise business to stream Super Distro, but I’m yet to hear back from them and Amazon is looking like the better choice at the moment so we’ll have to see how this all pans out in the next few weeks.

Anyway, I suck at explaining things sometimes so I hope I haven’t totally lost you in my story. If I have, just post a question and I’ll try answer it the best I can.

I hope to have some answers for you all super-soon but I hope I’ve excited you all with the idea of giving players the ability to play your Windows / Linux projects on devices / PCs / Consoles that weren’t possible before.

**TL;DR - It’s possible to Cloud-stream your game (That’s made for Windows / Linux) to mobile devices, low-end devices no matter how extreme the PC is needed to run it.

So it’s all theory at the moment, but answers should come soon when I get to mess around with my own Amazon G2.2 (I think it’s called) server. So let’s talk, what do you all think?

I like the idea of streaming services however I cannot see it being a practical solution for some time yet (5-10 years?). The problem is that your customer base becomes very limited, with only those with top tier internet (probably only countries that have rolled out fiber everywhere) and their geographical location in relation to the streaming services. You need to get very low latency between users and the data center for it to be a good experience. On top of this, most households have multiple people who access internet services, throw just 1 person in the mix streaming youtube or something and it will kill the experience for the gamer (without fancy QoS and stuff)

What i’d like to see instead are these streaming providers packaging their technology/service into something I can run on my local network. Let me have a single powerful computer on my home network which i can stream from. I’ve got 4 people in my house (wife, 2 kids and myself) and we all like to play games, so it becomes a bit expensive having many power hungry devices. I’d happily pay for that if the solution was actually good, many other similar things I’ve tested have been total ****.

For certain types of games, such as slower paced games, I guess remote streaming could work ok. Good luck if you pursue this, i will be interested to see how it goes.

gosh i see what you are getting at but you must live in a different place to me or all apart from 1 or 2 people i know, (those silicon valley peeps).
cloud based computing is a mere fantasy for most of us, either the connection isnt fast enough or reliable enough or even available at all.
80p an hour? that’s fine for a multinational corporation but lol ffs, imagine 1 person, yes just that 1 person, more than likely someone on your team, every hour plays the game.
80p * 24 * 7… every week, every month…
nice dream but that’s not the reality we live in today unfortunately.

Thanks for the replies guys!
Xeno, I had access to 30mb/s Internet and 0.9 mb/s Internet and while there is obviously a difference when streaming; It’s only the occasional frame that goes AWOL. This was testing it out via OnLive where the games aren’t optimised with the GRID SDK to scale the frames with NVidia’s Video Encoder. It could work well enough on a really slow internet connection but there’s no way to actually know until I test it out in a couple of weeks.

Tegleg, I know what you mean about the cost. It’s cheap for big businesses but for small indies it could rack it up pretty quickly, hence why I’ve been trying to think how to balance it out. In-Game ads might just be the answer; If you find a provider that will give you a good rate per view count of the adverts, it is possible that you would make more than 80p an hour and thus the server would sustain itself per user but I’m not a fan of adverts so I’m trying to come up with alternative solutions.

It’d be super-interesting if people could try out OnLive and post their connection speed and list the latency they were getting (From felt like it was on my own PC to it took X amount of seconds to register input!), as OnLive’s servers are weaker than the Amazon ones in terms of video compression performance and overall speed / scalability, It would give a good insight on what to expect as a worst case scenario from an Amazon server.