Loading the document
1 free read left. Create a free account for unlimited reading + AI research.
Create free accountbut to kick us off on the hour at 1500 we've got a keynote session from the amazing patrick market that martin from google firebase hello patrick welcome to pocket gamer connex digital five i'm really excited to have you as part of our developer toolkit sponsored by dinovo by odedo am i there yes we have a few problems with your audio but we found you now so that's really great thank you so much for joining us today how are you doing pretty good how are you doing so fantastic thank you i'm going to let you loose on our amazing audience today and don't forget guys if you want to ask patrick a question you can do so in our q a chat box down below or even just give him some love in the chat area below also or talk to him on discord over to
you patrick all right awesome thanks so uh let's see all right here we go hi everybody um obviously you just heard my name is patrick martin and i'm a developer relations engineer with google's firebase um this is a sponsored session so i'll be focusing kind of on what firebase can do for you but i'm really used to playing the you know can i avoid the sponsored session game at conferences like this so i'm going to try to keep this interesting and to be honest like the entire week has been filled with like people telling you what you need to do so hopefully i can fill you with in on like how to do it um i'll be glad to answer any questions afterwards obviously i am in the discord channel just look for like the little fire emoji after my name patrick i'm also at paxor on the twitter complete with a silent three at the end because i thought that was really cool 15 years ago and now i have to live with it um but you can obviously always tweet at me but a good number of firebase folks are actually chilling in the discord including engineers on the games sdk team
and there are a bunch of crashlytics folks hoping to um talk to game developers about like you know um what you need so definitely uh chime in there and ask around or check out our page on meet to match so um to start uh what is firebase so firebase's mission is to help game developers build and operate successful games that delight players and i will say that the official mission says app developers and delight users but um us games folks have tweaked this a little bit and we really take this to heart you know which is why we're here and to tie this into my talk a little better um there are things google's pretty good at generally building um you know scalable cloud services and machine learning things and that's actually kind of different than what a lot of game developers need to know to like make great games so our entire goal is to just bridge the gap between you know google skill sets and your own and firebase i will say is already used by millions of developers all over the world and it's
been being battle tested at scale with folks who probably are at this conference today um so i guess just don't just take my word for it um and to make it really easy to use firebase has a number of client sdks designed to meet app and game developers where they're most comfortable so um if you're just a straight up app developer this means android ios and web sdks but for games folks like myself um there are c plus and unity sdks which not only are they built on top of the android and sd android and ios sdks so there's no feature gap there but there's partial support for windows mac and linux i will say this is currently labeled as beta it's intended for use in the unity editor or if you don't use unity if you do local builds in your game engine because sometimes a device build takes a long time but since it does work i would love to see more people using it and giving us feedback um so i do have 20 minutes to talk about 20 products which is why i'm kind of going fast
but i also won't get to them all so at a high level firebase has three major pillars there's build which helps you experiment faster and then scale reliably release a monitor which um make sure that your game is stable and that folks can play it and then our engage pillar which lets you use your existing players to increase the value of your game what what they uh really want from you um so build is mostly where i live before i joined firebase so i really like relating a little bit for my past when i said um when i set up these talks so i will say that my first game on the ios app store was a one-time purchase for ten dollars it did manage to shoot to like the number one spot in the rpg category but being a complete single player offline adventure it probably wouldn't like you know make it that well um in today's market and i will say that looking at the numbers for rpgs versus every other game genre yesterday's market probably was a tough sell too um there were pretty limited roads for growth
you know the game could not get patched over the air um it was actually mostly written in a custom engine in c with some c plus sprinkled in which that they're not the same language and we chose the hard one um making calls to the web at the time required hand twiddling bits and a 512 character static buffer which i know there are non-engineers uh listening to me today so just just imagine the biggest headache you've ever had then imagine having that like every time you had to connect to the internet that was more or less my life back then um we couldn't message players in game updating the game without spinning up an app store release wasn't possible and our community consisted mostly of mobile gaming message boards we did not have a location of our own and in fact i was listed as the resident rockstar on our wikipedia page so we didn't really even manage that very well but of course when i finally made a connected game my sequel light 3 experience did not scale super well to the cloud um i tagged a lot of players as cheaters for
no apparent reason um player progress would like sync to the wrong database shard pretty much everything you'd expect a c plus dev like mistake to make is what i did so this is where i really like uh to highlight some of firebase's build tools they are backend as a service kind of things as a term that a lot of folks like to use and to show you how this might be different i'll highlight a game called lotteria this was actually a google doodle living on google's homepage so if you're ever worried about firebase scaling this scaled literally overnight to like home page levels of traffic and specifically i'm going to walk you through the find a game flow but every part of lotteria is enabled by a real-time database there is a complete write-up here so you can like the technical folks can read through this at their leisure and scan this qr code of course to go there faster but um if you haven't heard of the game lotteria before it's a lot like bingo um you see if this card on the right
matches one of the cards on your board if it does you place a token down and if you get four tokens in a row you scream lottery and win um so it uses a simple matchmaking system to get a game started first a player will click find a game and they'll create a real-time database node with their player id right here and eventually they're expecting a game id to get populated right here in this box and the player also adds another node to looking for gamecube which at this point i should stop take a step back and give you a brief overview of real-time database this is a nosql database that's optimized for speed you won't want to use this for something like storing a player position in like a first person shooter but it's great for the asynchronous multiplayer experiences that i see on a lot of mobile games these days and it's great for lotteria where um you have very few state changes like a new card happens every few seconds someone screens lotteria once in a game
but when the states do change you need to everyone needs to see it quickly you need to like resolve it without any conflict um so back to lotteria's system a player joined a game they're placed in a queue then lotteria looks for groups of players and if they're enough to start a game it adds a game to the games node and each player is then assigned the game id to play in listeners in each game client know to change the game state when this gets populated and then can just play the game to their hearts content um but when i say that lotteria listens for player for a player moving into a game what i mean is that a cloud function trigger is fired when they're looking for gamecube updates then code runs on trusted servers in google's cloud which scale horizontally with demand so as your game gets popular since i used a trigger it happens in the background background so uh clients don't have to worry about you know disconnecting whilst the fine for game
uh function uh is running or if you hit a cold start with like um really simple net code you won't lock up while you're waiting for like a function to return it's just all happening in the cloud without your knowledge and um when it's time to enter a game it's just a call from real-time database it's nothing you have to do with like you know curl or anything um and since much of this logic is written using the real-time database sdk this means that users are manually inserting themselves into you know the gamecube and stuff so you may be wondering what stops another player from kicking you out of the queue or jumping in line or even just hijacking your whole your whole game the answer is firebase authentication um lotteria uses something called anonymous sign-in which grants a unique instance specific id to each client that joins the game and then this enables things like security rules and real-time database to lock players to only being access only being able to access things that you want them to access
and i will note that this slide says you can implement it in under 10 lines of code if you're a unity developer and only using anonymous sign in depending on your preference with curly braces this can be as few as three lines of code or one if you're evil now anonymous sign in lets you create a power account without any friction but if your game is more permanent than a google doodle uh you are going to want to persist this user account in some way so we offer integration for a whole ton of different sign-in providers a common flow you'll see um a lot of games and even apps do is that you start the game as a guest um with no friction and then once the player sees the value of the of your game and they want to continue it you can migrate them to a more permanent account maybe using google single sign-on or game center and i'll say that there are hooks for all these providers but we don't actually favor any of them in fact the google sdk is a separate download and integration so you know we're not forcing you to
choose google you can really choose any of these we have custom hooks in case you don't want to use this we see a lot of um games publishers want to have a user account for all of their games so they can just implement that id as a custom hook and again i'm going to cover all of this scan this code to look more or to find out more but um even if you prefer to have more control over your infrastructure fire a firebase project is actually a google cloud project on the back end so if you're like back-end engineers are a little nervous seeing like kind of the bumper lanes we put up they can always dive into the back end tweak things to the heart content or even migrate onto different infrastructure as your game gets big if that ever becomes an issue which hopefully it won't but you always have that escape ramp there's a whole ton to cover like cloud storage is great for storing large binary files a firestore is another database that we're pushing a lot now that scales um better than real-time database but
slightly slower it's still good for a lot of the same use cases but um firebase is way more than just a database and if some of you non-developers have tuned out and gone over to the discord this is a great time to come back because i want to highlight some of the release and monitor products we have so even if you're not using any build tools these kind of help you get a good night's rest uh before you hit the launch button on most of my games release day is kind of the same i hit submit celebrate um and then i just hit refresh on all the app stores as the game slowly propagates out and then i'm just stuck obsessively checking user reviews ratings and like you know refreshing all the message boards like and sometimes it's great i've written games to the top of the app store charts but other times it's um complete devastation like i tanked a game's rating overnight from five stars to one star and you know that that's the worst i basically couldn't sleep crunch for the entire week and it was
not only a terrible experience for me but also my dedicated players so i want to know two things before i hit go is the game stable and is the game fun for stability the first thing to do is add crashlytics to your game it just sits there in the background and waits for anything bad to happen usually crashes it's a free service and usually works automatically if your game experiences an error or call stack is automatically uploaded with any other relevant data so you can gauge how stable your game is which devices crash and how and where they crash and you can also append your own data to this if there's something that's unique to your game that you want to measure the goal here is to holistically determine if your game is stable but if you do have an issue you'll know how widespread it is and what's failing um so you know whether it's all hands on deck crunch through the weekend or that cosmic ray you're allowed to claim once in a career i've already claimed that so i'm not allowed to say that's a problem anymore um the thing with crashlytics though is
that you do have to run it on a device if your game isn't out yet you're only testing against phones you have in-house and i think a story i like to tell a lot is that we were getting user reviews that players in one of my games were booting to a blank screen we went and bought the phone that uh players were complaining about and we couldn't replicate it on our end it turned out that the manufacturer shipped the same name of phone with different chipsets and different regions so where we were testing against the us variant with the u.s graphics card uh they were seeing like the european variant with the european graphics card and we just couldn't uh repro the issue um and this is obviously worst case scenario um players will start to think you're accusing them of like lying or something so this is where test lab comes in um your options here are to either upload an apk and let like an automated robot try to play through your game um this is actually behind the play pre-launch report or you can
configure a game loop that lets you run a pre-defined loop through your game on both real and virtual devices um and we've sourced these from all all over the world and in all matter of performance categories when a test completes you get a detailed report with a video play through and since most game breaking bugs are not crashes my blank screen was not a crash you get a video with performance statistics overlaid this also means that if you're testing out a new particle effect and if you want to see if it like ruins the experience in a low end phone you can just upload it to test lab run and then like scrub through to where the particle effect is and see what your frame rate is and of course you'll eventually want to get players in on the action which is where firebase app distribution comes in this is a service that lets you upload an ipa or apk that you can then share either internally with your team or externally with testers it does a lot of the things you'd expect like creating testing groups which uh i once sent a producer a a version of the game with
like a hand-drawn loading bar test groups kind of help you avoid that um and it manages invite links for you and i would be remiss if i didn't mention that both app distro and test lab can be fully automated i tend to drag and drop things because i'm mostly doing prototyping stuff or deveral work but you could have like a pre-commit hook before you merge into your mainline branch that verifies that everything works or if that's too much you could have like when your nightly build goes off it could automatically up upload it for your testers and run a check to send an angry email if somebody broke the build instability isn't the whole thing you want to know if your game is fun what i like to call opening a dialogue with your players or what firebase calls the engage pillar i like mine better but i guess engage is catchier you want to engage as many of your players as you can because you know that five star to one star update i mentioned in-house nobody minded even tester we
brought in but the moment our game update hits hit the public internet everybody just got angry at us it was like the worst so a great thing to do first is add some sort of analytics from firebase this means google analytics you'll get metrics like your retention cohorts right out of the box and i'd recommend doing this from the moment you have a prototype you know if my co-workers are still playing my like kind of like funky prototype with my you know awesome programmer right um it means that i found my winning design but google analytics is also working hard to improve the experience for game developers so you can log any events you want even make up your own but there are a handful of events that when you use them automatically start populating a games dashboard on the google analytics console and then you want to test your changes with your playerbase which is what a b testing is for the firebase ecosystem anything you can measure with an analytics event you can measure with an a b test uh and using something like remote
config you can deploy changes to your live game without waiting for app store updates even if you're using unity or cpus plus um anything you can parameterize in your game you can a b test like if you want to see if players like your game with five lives or ten lives you can run an a b test against ten percent of your player base measuring maybe like session time or seven day retention and uh just see which one's out if you have two different menu flows this is a great place to test that too but don't stop at gameplay um like i said my first game was a one-off one-time purchase but that's not the major the popular business model these days now you also want to ship the game for free and give the players an option to like spend money after they've gotten a feel for your games like and they want to commit so something you can do with analytics is measure how often folks spend money and on what but with firebase you can enable predictions which given a sufficiently sized player base allows you to predict whether a player will trigger any given event
based on their history so far for instance if a player exhibits a play pattern in the first week that looks like a player who would spend money in game you might rearrange your store so you have fewer incentivized ads and more spend a dollar to earn currency kind of transactions so you basically get google's ai tops for free without worrying about things like training models at all although there is a way to manage your am models with firebase if that is your thing um but i want to hammer home that this isn't all firebase you can build connected features a game needs today ensure your game is stable measure how your players like it test changes engage your players even invite new players to your game with links to persist across game installs so play a game of tic-tac-toe install the game and then you're playing in the game you're invited to with the goal of getting all the heavy lifting on the back end out of the way so you can focus on what probably matters most
just finding the fun and that's it i went really fast i think i'm in time wow you went really fast thank you for that awesome presentation patrick that was really good um as you can probably imagine with such a cool presentation as that was got millions of questions so let's get started um the first question that we've got is i want to have one player invite another player and reward both of them with coins or game currency how easy is this for a game developer using unity for ios and android store so if you want to reward both of them i think um well the the product you'd use from firebase is called firebase dynamic links this is what i hinted at at the end that uh lets you invite a player into your game with an invite link that persists across a game install um i believe you get a event or a callback when that happens you can you can embed your own data so that your
flow might be like embed the player id in the invite link for the person who invited you when the game launches with this invite link pull the other player id out and reward both users in like real time database or firestore or something cool thank you so yeah it should be pretty straightforward i guess it's a long way of answering sorry i'm an engineer so you make it sound so easy of course because you are an engineer is firebase okay to use for attribution for ua on google ads for an android game um the the questioner says i have heard it is not very reliable and accurate compared to regular mmps are there any big companies firebase are there any big companies firebase for attribution i mean i suppose yeah yeah i wouldn't know offhand which companies use it um this would be a great thing to follow up with me later or to ask in the discord i'm sure i can i was going to ask can we find you in the discord yeah
yeah yeah and look for me i put a little fire emoji after my name so it's easy it's the pop of color in the easter name list i'm kind of embarrassed no don't be you're amazing so go over to discord and ask patrick that question directly and he'll pull that information out for you seek him out um here's another question you are supposed to be able to get like an event from it but i don't know the reliability so this is a great thing to follow up with right i heard that facebook google logging can enable tracking in absence of idfa so is it allowed to ask player to log in to both facebook and google through firebase auth sdk i mean when it comes to um idfa i don't quite know and i will say anything privacy related uh probably best to talk to an actual lawyer and not me um i i do know that we have guides on like working with idfa on um on our page so i will recommend you look at those and again see me after i'm sorry like i should
have had like a slide with links or something but i i can certainly help you help route you to the right place no no it's fine you've got all the predictive stuff in place that firebase but you haven't got the predictive answers you've really got to work on your engineering gear stupid engineering believe it or not i'm not believe it or not i'm not a uh ai person um you probably can't say it out loud but cough if that was samsung causing problems with their different phone builds for different regions under the same name somebody has commented um wait what was the question again they said you probably can't say out loud but please cough if it if that was samsung causing problems with their different phone builds for different regions under the same name you mentioned something earlier about chipsets i'm sure other uh i'll avoid avoid any kind of signaling it sounds like somebody uh ran into the same problem i did and specifically with text mesh pro uh uh font compilation back in the day it's
better now um i've got a question that i'm going to leave right to the end because it's just a really nosy question but um the next question that i've got that really is about like google firebase is can firebase test lab work with bullet point one apk of the game developed in unity we've kind of already had that question and the second bullet point is ipa of a game developed in unity all right so um this is uh the crashlytics folks want to talk to any game devs they can so certainly reach out to them and i can help her out but the answer to both is yes um there is not currently a sdk to like kind of smooth over the rough edges of test lab um but as long as you can handle a custom intent and um on android or a custom url scheme on ios um game loops will work just fine as far as um kind of the the feature parody disparity whatever um i believe that robo tests only work
with apks right now but we'll work with unity specifically i think the big thing that throws some game engines off is sometimes it sees an edit text off screen and thinks it's an app instead of a game but unity doesn't have that issue um as far as game loots themselves they work on both ios and android um and yeah again they work on real and physical or real devices unity itself doesn't emit x86 builds for android so you can't test like um on the virtual devices which is a little unfortunate you don't get to play as much with screen resolutions and stuff but there's plenty of like actual hardware in the test lab cloud for you to use um i've got a question um about the relationship or the differences maybe together between a real-time and cloud firestore would you say that real time is better to use than firestore for games or the other
way around what's your personal preference so we have an entire page on choosing one database over the other um the biggest thing for firestore is that it is currently still beta for the games sdks so c plus and unity which means that we more or less have confidence that you can actually ship a game with it now but there are still some bugs that are open in our github issue tracker and whatnot um other than that um the thing uh the thing with firestore is it has supports way more concurrent connections i'm going off the top of my head so definitely hold me to task and double check in our like doc pages but i believe firestore is around 1 million active users um it can handle our active connections um whereas realtime database is something like 100 000 or 200 000 something in that range so with real-time database for a lot of games you will have to handle sharding on your own and uh but it will be um faster as like
slightly better performance characteristics so again there's an entire uh page where you can like weigh the pros and cons and like even click buttons i want to do this i want to do that and i'll try to make a best guess but generally they're both uh pretty good and they're both like firestore being slower like maybe you're waiting one and a half seconds instead of half a second right but it's still really fast um thank you so much for your talk today we've got a lot of love in the room for you as well and there's a crashlytics engineer that wants uh anybody to message sam on discord with any questions also he's under the name sam e firebase crashlytics so he wants uh everybody to know that i've got a question for you though patrick as part of pocket gamer connects digital five all this week we've been doing a variety of different bits and pieces and one of the things that we've been doing is careers week you know engineers get a lot of stick and database engineers especially dbas do get a heck of a lot of bad press
um because it sounds like the job's boring blah blah you're one of the most exciting engineers i've ever spoken to i just want to know like for the purpose of people that are attending maybe our careers we on a scale of like one two like a gajillion how much do you love your job i mean i absolutely love it here like obviously like i can't fake being like excited about a thing um like google can't pay me enough to like uh smile and dance so when i start bouncing it is because i'm like legitimately excited but um that that is a thing that i've noticed in like the games industry a little bit and one of my co-workers actually has been heading up um i guess a back-end uh summit on the like gdc track just for this reason so backend engineers can like all gather together and talk excitedly about like their stuff so um i think it's a lot of fun don't hate on like the database engineers you need them like i said when i uh when i first went
from just like sequel light 3 because i was tired of like flat files stuff to like postgres or my sequel whatever we used in my first game i had a really hard time making that transition it's harder than you might think even if you're like me and used to like building game engines from scratch or something but it seems to me like one of the greatest things that you've brought us this afternoon on top of that incredible firebase keynote is that incredible shirt danielle mentions in the chat that this is an amazing shirt and i completely agree you look like 100 on fleek thank you so much oh thank you um and from all of us at pocket gamer connex digital five thank you so much for attending the keynote today and we hope you enjoy the rest of the the show the rest of this week we hope you have a great opportunity and discord to talk to people who have attended your talk
you
Google Firebase serves as a comprehensive backend-as-a-service ecosystem designed to alleviate the technical burdens associated with modern game development. By providing specialized SDKs for Unity and C++, the platform enables developers to offload complex infrastructure management—such as secure player authentication, matchmaking, and real-time data synchronization—to cloud-based services. This approach allows creative teams to prioritize core gameplay mechanics and design while maintaining a scalable, high-performance backend that supports global player bases.
The platform integrates a robust suite of monitoring and optimization tools that span the entire lifecycle of a title. Services like Crashlytics provide critical stability insights, while Test Lab and App Distribution streamline the quality assurance process across diverse hardware configurations. Furthermore, the integration of Google Analytics with A/B testing and predictive modeling empowers developers to make data-driven decisions regarding user retention and monetization strategies. These tools facilitate rapid iteration, allowing studios to refine features based on real-time player behavior and performance metrics.
Transitioning from local storage solutions, such as SQLite, to more sophisticated relational databases often presents a significant hurdle for developers, regardless of their proficiency in engine architecture. Firebase addresses this challenge by abstracting away the complexities of server-side data management. By providing accessible, cloud-native infrastructure, the platform ensures that developers can implement professional-grade backend systems without the need for extensive specialized server engineering. Ultimately, these tools foster a more efficient development environment, enabling creators to focus on delivering polished, stable, and engaging experiences to their audiences.
Each row is a game or company this document names, each column a document, oldest first. A mark means that document names it. Select a row to see those documents.
Two & a Half Gamers · 2026
Comments