Ep 31: Chris Gong of Flopperam
Joshua Proto: Hello, and welcome back to the Talking Serverless podcast. I'm your co-host, Josh Proto. Today I am really honored to have Chris Gong, co-founder of Flopperam. Chris, thank you so much for coming on.
Background
Joshua Proto: Q: What is Flopperam, and how did you get exposed to serverless and the world of video games?
Chris Gong: Flopperam is the name of a YouTube channel I co-founded. It focuses on multiplayer game development tutorials, primarily serverless, using Unreal Engine and AWS. I wanted to make a multiplayer game one day, so I googled it and there are so many options. But Amazon is very, very aggressive in their marketing; if you look up anything related to game development, you'll see a Google or YouTube ad somewhere for AWS game tech. Because of this, I dug primarily into AWS. And honestly, their documentation wasn't the greatest, especially for their game lift product. I'm specifically talking about GameLift since that's what interested me the most at the beginning of my journey, because I wanted multiple people playing the same game together. After that I found GameLift, which is an AWS dedicated server hosting platform. It handles other stuff for you, like matchmaking and scaling.
So I got into GameLift, and the documentation wasn't great. By trying to understand this very archaic documentation, I formed a community of people who were trying to understand it as well, along with other aspects of multiplayer game development, whether it was Unreal Engine specifically or just with other cloud serverless platforms. I ultimately wanted to make a tutorial to share my knowledge, since there wasn't too much information about integrating AWS with Unreal Engine available. I'm still focusing on that stuff. I'm also trying to branch off into other parts of AWS, other parts of Unreal Engine as well as other game engines and other cloud platforms.
Frameworks and Platforms
Q: What made you choose to go with Unreal Engine? Is it because AWS GameLift have good compatibility with it?
Chris Gong: Compatibility wise there weren't too many issues; GameLift in AWS is compatible with both engines fairly, fairly well. I did start off from a Unity background. That's what I started learning game development with, way back in the day. When it came time to make a multiplayer game, it was still in preview and the learning documentation and resources weren't great for it. So I went on to Unreal Engine, and they had a lot of their multiplayer system done already. They had replication, TCP WebSockets, HTTP, all that good stuff. The documentation was great, too. So I just went with that.
Q: What have been some challenges making a multiplayer game? Has serverless helped you bypass a lot of other challenges that are common in the game development space?
Chris Gong: For me, it was being new to Unreal Engine before I even started that. Going right into multiplayer game development was not the smartest move probably. When I first started, I tried making a single player game and converting that to multiplayer. That was not the smartest move. If you're going to do a multiplayer game, you have to be thinking about multiplayer from beginning to end.
In terms of challenges with serverless, I would say my biggest challenge to this day is monitoring costs. A lot of things aren't obvious. Luckily, AWS support is pretty kind in terms of refunds, at least for game tech. For example, having 'idle instances'. So in GameLift, you have fleets, which are just a collection of multiple instances grouped together at the beginning. A lot of people don't notice that if you just have a bunch of instances running, even if they're not running active game sessions and no-one's on your game plan, you still get charged for that. That wasn't something that was obvious to me.
Q: What's going on with GameLift? Do you get any extra insight?
Chris Gong: I can say they are working on revamping their GameSparks product, which is similar to Microsoft PlayFab and comparable to Steam and Epic Online Services. AWS is good at hosting, but this works in terms of the client based services. Logging in leaderboards, maybe parties, chat...That stuff can be implemented with AWS if you use an array of services, but the nice thing about PlayFab, Steam and these other client service back end platforms is they jumbled them together already. So it's kind of like a plug and play solution. You obviously have to tinker with some configuration settings, depending on your game. But GameSparks is basically AWS's version of that, and they're working on that now.
Q: Do you think you would be as deep in the serverless world if it weren’t for this goal to create a multiplayer game?
Chris Gong: Yes. Because I work for a healthcare company, and we do a lot of things on our own servers, but now we're moving things to the cloud and serverless, just for cost. So I think, eventually, I would have dived deep into this world anyway, because the chances of me getting my own hardware, my own servers, and setting things up manually would have been very unlikely.
Joshua Proto: “I don't think I've ever been more into thinking about my cognito authentication tokens and how I need to make sure they expire more than when I was listening to your tutorial, and thinking about the implications of that happening in the context of a multiplayer game.”
Q: Do you think there's an opportunity for education around using games as a framework for implementing certain technologies?
Chris Gong: Absolutely. Someone on my Discord server gave me an idea, I don't know if we'll actually get to it, but it was making a game to teach game development principles. I think we're already seeing it now. I remember on Facebook I saw a game that taught electronics principles, like a wiring puzzle game. I think it was called Puzzletronics, and it was literally rearranging the parts in a circuit so that it would work. I think that's slowly going to morph into game development, teaching serverless and all of that. I think we're definitely going to get there. I mean, if it's playing a game versus reading to learn something, most people are going to choose playing the game.
Chris Gong: “Would you say that the pandemic has amplified your performance or efficiency in working on your non primary job responsibilities? ... Ever since the pandemic, I've been able to focus more time on Flopperam. Not just having extra time, but also I feel more alert, more awake, and I'm able to get more stuff done.”
Q: What is the purpose of having such a heavy YouTube presence? Was that a decision that came out of it being an easy way to show tutorials and show what's happening?
Chris Gong: At the beginning, it was mainly a market driving factor. I looked up to YouTubers, like Danny and Sam Hogan... I liked the idea of kind of these 'Dev Vlogs', where you make a game and then make a video on how you made the game, but also make it entertaining. We ultimately did that with our 'fortnight' remake. I'm more proud of the video than the actual game, because the actual game was pretty messy. After that I started doing the tutorials more, and I like doing that. I like the community that we grew with that.
I was also always interested in learning, too. I started live streaming development earlier this year, in terms of just me learning about this stuff. Even though I tackled AWS and GameLift early on last year, I want to go back and remake a fuller tutorial covering the not-so-obvious stuff. When it comes to game tech, in AWS, nothing's really that obvious. I ultimately live stream my learning process and convert it afterwards into a full-length tutorial.
Q: Do you play your own games?
Chris Gong: Yeah, absolutely. I think building a game is just like playing a game. There's a destination, and there's hoops you have to jump through to get to that destination. I think it's just as rewarding. I actually think that is the best part, testing your game and finding out what the bugs are. The first run of the 'fortnight' clone, we hosted on AWS, we got a bunch of people to play together on the same server, and there was a movement glitch due to a replication issue. In multiplayer development, there's this concept of replication in games with an authoritative server model. On AWS, since our game was hosted there, we had the game server as the authoritative source of truth; whatever is happening on this simulation of the game is what gets replicated to the clients connected to that server.
What I didn't realise was, at the beginning of my development of this 'fortnight' clone, I didn't have movement replication configured, so the client speed always conflicted with the server's interpretation of it. The client kept thinking they were going a certain speed, but the server never even realised it was moving. So stuff like that, just finding out those bugs and trying to debug them. That's what I like when it comes to the art of game development.
Joshua Proto: “For me, I'm not the person solving the day-by-day problems on the development side. I'm really into the process supporting teams that have these technological or business problems. The serverless technology is simply the best tool for my job in many cases. I think that's what brings me the most joy; regardless of what it is, I just really love solving those problems.”
Q: Do you have some ideas around where you think the serverless industry is going with gaming?
Chris Gong: Cloud Gaming; gaming on demand, game streaming. Google's already doing this with Stadia, Amazon's in it with Luna. These Netflix/ Hulu platforms for gaming could be the next big thing. You always have people who can't afford these big, rich, resource intensive computers with crazy CPUs, and GPUs and RAM, but they want to play the cool, graphics-heavy games that you need these kinds of PCs for. The next step is getting the more popular games on the Stadia and Luna platforms. I think if they can get the big games that everyone views and streams on twitch onto those platforms, then Luna and Stadia are gonna be the things that take off. And then we're gonna see more platforms like those in the Cloud Gaming space appear.
Q: Are you familiar with Shadow.tech?
Chris Gong: I'm not.
Joshua Proto: Shadow is really awesome. I have a 2011 MacBook Air, and I'd love to play anything on this computer. I was looking at making an investment in a gaming laptop. I was gonna drop quite a lot of money in order to do that. But I found this service called Shadow. And for $12.00 a month, they give you a Windows virtual machine that hits 60 FPS and has a pretty intensive graphics card hooked up to it. So I just pay a monthly fee to access this machine, and then I get to play all these windows games through my Steam account. I can buy the games off of Steam and then I can play them like I bought that machine myself. When I first got it, I was playing it a tonne, and then I realised that I had to lower my bandwidth settings because I chewed through my terabyte that Comcast gave me. That was an interesting situation and phone call. They were very interested to see what I was doing that was chewing up a terabyte of data. That's what Shadow is. I think that's my closest connection to gaming on demand and this new era.
Chris Gong: Q: So how's the performance/latency of it relative to Stadia, Luna and other platforms?
Joshua Proto: I think they have a $11.99 programme; they give you 250GB, and you can hit 60 FPS with pretty much anything that's set to their graphics settings. They have two other premier programmes that go up to 4k resolution. So there's three different tiers and it increases $10.00 each time. I'm interested to see how it compares to Stadia. I stopped considering stadia once I found Shadow, because I didn't want to buy games that were locked into their platform and they didn't really have games I was interested in playing. While with Shadow, I can just buy them on my Steam library, and I own them for as long as Steam lets me.
Future
Joshua Proto: Q: Do you think that there's more opportunities going forward in the gaming world to utilise serverless like you do with Flopperam? Are there things that you're waiting to happen in order to innovate further?
Chris Gong: I think there's plenty still out there to explore. Outside of AWS, you have PlayFab, Azure, Google Cloud... They bought a game server cluster hosting platform that runs on Kubernetes. So all the big players are coming in; you've got Epic Online Services, which is not dedicated server hosting but they do follow that client service category and are trying to rival Steam. With Epic Online Services, they're going to make it platform and engine independent. Obviously it's still being worked on in Beta, but if they can get that done, I think that'd be big. But even Google Cloud, AWS, Azure, and all these other platforms, they're platform and engine independent as well. So it's nothing too new, nothing too crazy.
Q: Do you think there's a lot of improved developer experience from being able to use these services, like what AWS is offering? How do these new technologies marry an improved developer experience and an improved end user experience?
Chris Gong: For the gamer the move to dedicated services already makes a huge performance difference. Just moving on to serverless and dedicated servers, that's the big thing that will improve latency. Because you don't have one of the clients as the host like you do with a listen server model, the game is less prone to hacking. So that's a big thing. Moving forward, I know serverless also helps in terms of latency with regions; getting people in similar regions into the same games.
Q: What are the next steps that you have planned for your channel? Are there any projects that you're working on right now? Are there additional tutorials that you're hoping to make?
Chris Gong: After we finished the GameLift/ Unreal Engine integration tutorial series, I've been bouncing around different cloud platforms. I recently revisited the 'fortnight' clone and tried to make it more realistic. I'm not going to go crazy on it, but I want to follow things that the original 'fortnight' game actually did, in terms of what parts of Unreal Engine they used. So for example, they use something called the Gameplay Ability system, which is basically a framework that handles most multiplayer related gameplay features such as client prediction, replication, all that fun stuff. I also want to revisit AWS for hosting that game and handling a lot of the client game services. After that hopefully I can make dev vlogs and more entertainment videos. But I still want to do tutorials. I think 2021 will be a big thing; I'm now in a good situation that's more stabilized and comfortable, and gives me more free time.
Q: Are there any other related projects that you've been that you've been working on or been thinking about?
Chris Gong: I definitely want to keep exploring AWS. With GameLift specifically, I mainly used the fleets, but I know now you can get your own collection of EC2 instances outside of GameLift, but apply that same scaling logic from GameLift onto what's called a game server group as opposed to a fleet. I want to look into WebSocket API's and API gateway, because I know Unreal Engine has support for that as well. Outside of AWS, I want to look into the other players; like I said, PlayFab and Microsoft Azure, and then Google Cloud, because a lot of their game solution stuff is now out of Beta. So that's pretty interesting. And then of course, other game engines in general. Unity is still a big one, even though that is still going to be kind of scary because their multiplayer stuff is still heavily in preview.
Q: Are there any channels off the top of your head for people interested in game design, game development, and maybe even more around using serverless/ new technologies with these games?
Chris Gong: Serverless in game development is a tough one. Unity has more people who focus on multiplayer game development, at least the back end side of it/ the non gameplay side of it. In the Unreal space, a lot of people focus more on the gameplay mechanic elements on the education side.
Q: Are there any other interesting things that you want to add?
Chris Gong: For anyone listening, if you guys work extensively with AWS and are helping a lot of people, I would recommend to apply to the AWS community builders programme. You will meet a ton of people from a ton of different backgrounds, that are all interested in serverless and teaching other people about it.