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?