My experience is largely in features and infrastructure for growing and retaining users, aka âgrowthâ. Recently, I learned the games industry has a comparable concept âLiveOpsâ. Iâve found value in using the latter to learn more about the space in general.
PlayFab has an excellent guide to LiveOps. The guide is a brief and accessible reference, so Iâll just jot notes below.
Introduction
The guide summarizes LiveOps as âGames are shifting from one-off experiences to services that evolve. Developers of successful live games focus on understanding their players, meeting their individual needs, and cultivating long-term relationshipsâ
In growth-speak, Iâd phrase this as analytics, personalization and retention. There is some direct association with growth: âWeâre investing in games that people play for longer and engage with much more deeply ⌠to drive growth …â
I guess the âliveâ in LiveOps refers to âservices that evolveâ: â… live services
represented nearly 58% of Electronic Artsâ net revenue âŚâ I can see how this would be a big shift from encoding all logic in a released binary. âsave client updates for entirely new features or large assetsâ
âWith a LiveOps game, the real work starts with launch instead of ending thereâ I think thereâs less of a distinction in a non-game app; most apps already pull content from a network.
A summary of LiveOps features:
- âserver-side configurations …â
- â… content data untethered from client versions …â
- â… in-depth analyticsâ
âContent dataâ refers to â… new experiences and content, thereby extending the lifetime of our gamesâ, which explains the claim that LiveOps can reduce up-front investment.
â… the âliveâ part of LiveOps goes through three post-launch stages:
- Iterating your Game …
- Personalizing the Player Experience …
- Managing the Community âŚâ
I think all of these apply to apps in general.
I like how the breakdown also indicates infra and talent required in each step:
- Iteration requires âbuild, test-and-deploy pipeline, basic analytics, and content configurationsâ
- Personalization requires âdata analysts and product managers to use more sophisticated tools such as recommendation systems and live events managersâ
- Community management requires âcustomer support staff, marketing, and community managers ⌠guild systems, user-generated content, and multiplayer services for matchmaking, cross-network play, and communications.â
The guide presents these as sequential steps of maturity. In my experience with growth, 1 and 3 came before 2, since generating per-user state was relatively resource intensive. Also, we could start with relatively naive approaches to 2 and 3, eg friend recommendations by a static topic like âsportsâ, and then layer on more sophisticated alternatives, eg per-user behavioral predictions.
Connecting to people
LiveOps has a user-centric perspective: âLiveOps developers know that players and communities evolve. When creating a game, weâre not movie directors with a singular vision, but more like TV network program managers ⌠LiveOps games are player-centric and react to player desires and needs …â
Iâm a fan of a customer-centric perspective. Differentiating user-centric seems like it should be obvious, but itâs nice to see it emphasized.
My recent experience is in growth as a service, which is why I differentiate âusersâ from âcustomersâ (Customers would be apps that have users/players.)
Acquisition
âWith LiveOps, acquisition is an ongoing processâ I guess this recognizes that people may come and go from a game, although in the terminology Iâm familiar with, returning would be âresurrectionâ or âreactivationâ. (âReactivationâ is listed later as an example of acquisition.)
I appreciate the list of common acquisition sources:
- Store discovery
- Public relations
- Advertising
- Cross-promotion
- Influencer marketing
- Social installs, eg shares
- Reactivation
Helpful tip: âTrack player engagement and retention based on source of acquisition and look for trendsâ Platforms providing acquisition channels should also provide attribution, eg Google Play Storeâs campaign attribution passed to Androidâs Install Referrer API.
Kind of obvious, but the guide recommends A/B testing reactivation inducements. Later the guide simply recommends testing everything all the time.
Retention
Retention is âone of the only data-supported ways to know if players enjoy playingâ
Common techniques for increasing retention:
- Adding content
- Stickiness due to investment – this comes up later in the “conversion” section
- Social connections
- Compelling game mechanics, eg Go has âsimple rules that allow for endless new strategiesâ
Helpful tip: âTry to communicate only whatâs interesting and valuable, and mix up rewards so they donât become background noiseâ Iâve heard this phrased as âfatigueâ Messaging platforms should provide features to help customers avoid fatiguing users.
Engagement
The definition of âengagementâ or âactiveâ usage is often mysterious to me, so I appreciate the general description: âActive communities engage with a game by playing, providing feedback, and promoting (discussing online or in person, creating fan content, and so on) ⌠Common reporting period intervals include 1-day, 7-day, and 30-day.â An arbitrary post from SurveyMonkey has some context for MAU.
Interesting: âengagement is the only KPI that some studios measure.â
Another relatively obvious tip: âLook at how studios with games like yours engage their community as a baseline for your own engagement effortsâ, ie âcompetitive analysisâ. But still, as a general primer, I appreciate the comprehensiveness.
Support
âYour team needs the tools to isolate and identify problems, fix or escalate them … and communicate with players throughout the process.â đ
Common tools:
- External-facing ticketing, so internal and external actors can coordinate
- â ability to look up individual player profiles and make manual changesâ. Ideally, a customer can do this themselves.
- âA way to suspend or ban playersâ
- âA way for players to upload crash logsâ Seems this could be automatic, eg Crashlytics
- âWays to send messages to playersâ (and customers)
Good tip: âChanges in support contact and resolution rates (e.g. number of support tickets opened and closed) can indicate larger issues.â
Data
Analytics
I like the list of common metrics:
- âARPU (Average Revenue Per User) ⌠general business healthâ. Iâm guessing percentiles would be good too
- âARPPU (Average Revenue Per Paying User) ⌠for gauging monetization strategies, such as store design or DLCâ
- (from the monetization section) âPaying rate is just as important as ARPPU for measuring monetizationâ I get the impression paying rate refers to the percentage of users who pay for anything
- âUnique Logins ⌠indicates newly acquired playersâ
- âConversion Rate ⌠success at converting free players into paid players.â
- âRetention ⌠how well your game keeps players interestedâ
- âAverage Session Length ⌠how long your gameplay loop stays funâ
- âSession Frequency ⌠how often players engage with the gameâ
- âLTV (Lifetime Value) ⌠the total number of unique players divided by total revenue generatedâ
- âErrors ⌠how stable your game isâ
- âContent Logs ⌠popularity, stability, and engagement of specific game contentâ This seems relatively game-specific, but I guess it could be generalized to feature-specific metrics
Good point: âSome metrics are best reviewed over long periods of time (e.g. Avg. Revenue), while others benefit from constant real-time updates (e.g. Errors)â And this may change over time, eg crash rates while changing a flag value.
Interesting: âInstead of boosting acquisition through marketing or app store advertising, they built traction by focusing on early retention metrics such as daily active users, session length, and crashesâ and âdirect player feedbackâ
Good idea: âimplementing direct player feedback through a public Trello community board, letting users log bugs directly, and holding community votes on what to work on next.â
Good point: âKnowing your retention rate is important, but offers no insight on how to fix it. For that, you need to do a deep drill-down or segment your audience and experiment.â
Segmentation
âSegmenting groups is a necessary step to deliver the best content to the most playersâ
Good tip: âyour analytics toolset should let you define custom segmentsâ
Common use-cases:
- âDesigners segment players based on in-game behavior to understand their needs and develop player-centric contentâ presumably to increase retention
- âMonetization teams use segments to understand spending patterns, identify fraudulent behavior, and predict revenueâ
- âMarketers create custom segments and optimize messaging for each to acquire or engage playersâ
âThe most important thing about the testing aspect is the cohort and the segmentation …â đ¤ I guess an example would be identifying a low spending segment to test a feature to increase spending, as opposed to testing it on everyone, some of whom may already by spending a max.
A basic funnel:
- New users
- Non-spenders
- Spenders
- High spenders
âOnce you [define a funnel like this], itâs easy to track your progress getting players to move through the funnel from one segment to the next.â
Good tip: âmachine learning can help you automatically segment playersâ
Experimentation
âGood experiments have a hypothesis or some sort of goal KPI to changeâ đ
Iâm glad this is stated: âThe size of your audience can affect how complex your testing can be. A game with millions of players can easily test subtle changes, but one with a smaller audience will only get significant data from tests with stark variations. The same goes for how many tests you can run simultaneouslyâa smaller player base means fewer simultaneous tests are statistically reliable.â Iâd also say an opinionated approach, direct feedback and/or severely limited test concurrency can be a more efficient guide for a small user base than cluttering code with conditional logic and waiting a long time for significant data. Nice: âmonitor user feedback … when player data is in short supply.â
Good tip: âbe sure the test encompasses at least a whole week to measure fluctuations between weekday and weekend playersâ and users in different regions.
Interesting: âMake sure if one player sees something different from another, they can clearly understand whyâ I wonder if an example would be providing UI to list active experiments.
In-game surveys should âonly ask one question at a timeâ
âFailed experiments are an important part of the process to learnâ đ
Best practices:
- âLearn which metrics best capture performance for your gameâs KPIs,and set appropriate periods to monitor and review themâ
- âTest gameplay mechanics early. Itâs harder to test changes ⌠after players have developed expectationsâ Reminds me of changes to Twitter UX basics, like changing the âď¸ â â¤ď¸
- âWhen players have problems, analyze event history …â which implies an ability to collect and analyze such history is important, which may not be obvious before an issue happens
- âUse limited-time events to test changes to gameplayâplayers are often more tolerant of gameplay changes when called out as eventsâ Good idea. Reminds me of sports-based features, eg World Cup. I hadnât thought of them as an opportunity to experiment w basic mechanics.
- âChart out the âfunnelâ progression for players in your game and experiment with ways to motivate players to move through your funnelâ
- âEnsure your analytics tools let you view KPIs by segmentâ
- âEstablish a clear success metric to gauge the impact of testsâ
- âTest qualitative factors by polling players with in-game surveysâ
Launching
âIt helps to put together a designated LiveOps teamâ Iâve also seen feature teams own their launches.
This seems like a launch checklist:
- Feedback loop and KPIs
- Support channels and data access guidelines
- Incident response strategy
Soft launch
Example soft launch: âchoose a smaller geographic area, ideally with the same language as your core audience ⌠and run your game for a few monthsâ or â limiting your initial audience with an Early Access or Beta periodâ. EAP and beta are something I have more experience with.
Good idea: âpay close attention to the core engagement metricsâ for soft launch
Good idea: âDuring soft launch, confirm that you can update the game without causing disruption to players â and make sure that you can roll back changes if problems arise during deploymentâ, ie verify LiveOps infra works as expected.
âMany developers are moving away from soft launches in favor of lean launchesâ đ¤âŚ âAs a small, indie studio, you donât have the money to do user acquisition for a soft launchâ
Lean launch
A lean launch:
- deploys an MVP version of the game
- connects with a target audience, and then
- tunes the game based on player data and feedback
Requirements:
- reliable data pipeline
- smaller manageable audience without inflated expectations
- be able to adapt your game quickly
âCollecting and analyzing your crash data and retention metrics is a mustâ, which is â dependent on an effective LiveOps pipeline that allows for developing several pieces of content at once, and agile deploymentâ
Best practices
- âAssemble a LiveOps teamâ
- âDevelop a calendarâ to coordinate live updates post-launch
- âPut validation checks in placeâ I guess because this approach is premised on making lots of significant changes, so the cost of failure is high
- âRehearse key LiveOps tasksâ, which is good advice, but kind of contradicts an earlier statement âThereâs no such thing as a dry run in live gamesâ
- âEnsure your team has a way to roll back changes â
- âSet roles and permissionsâ
Game updates
âGame updates arenât limited to new levels or game mechanics. They can consist of new items for purchase, events, balance patches, bundles, or anything else that encourages a player to come back and play more.â
âUnderstanding your player base is a key element in designing and delivering relevant updatesâ
âFrequency and consistency are as important as quality when making updatesâ
Tip: experiment with time between updates in addition to the update content âto see if they impact engagement or retention.â
âsave client updates for entirely new features or large assets ⌠assets such as art and gameplay logic are included in the client, but how those assets are displayed to players is driven by server-side logic ⌠plan your content architecture in advance and move as much of your game logic as possible onto the server or cloud.â
Best practices
- âMake a list of everything in your game that could be considered âcontentââ
- Plan how content will get to the client đ
- âThink about offline modeâ đ
- âVary your updatesâ between temporary and permanent changes
- âConsider targeting new content to specific player segmentsâ
- âConsider cloud streaming or downloading assets in the background during gameplay to reduce frictionâ
Events
âA live event is any temporary but meaningful change to a gameâs contentâ
âAnything can be an event … Timebox it, reward it, there you go …â
âSuccessful events often include:
- A measurable goal …
- A limited-time period …
- Engaging themes and content …
- Surprise and predictability …
- A sense of community effort …
- An effective means of communicating with players âŚâ
Reminds me of a âcampaignâ in other applications of targeted content.
Experiment w event frequency: â By experimenting with event timing, they were able to settle on an event schedule that raised their baseline engagement while also minimizing lapsed playersâ
âConsider running repeatable events ⌠Holidays work because players will be more understanding of temporary changes, and often have more time to playâ
âAdding a special, limited-time leaderboard for a specific in-game goal is a common event.â
âEvents can also run in parallelâ
Calendars
A calendar can help reduce the complexity of orchestrating events and avoid fatiguing users.
Communication
âGreat player communication is critical to the success of live eventsâ
Push notifications, email and social media are common channels of event communication.
Best practices
- âMake a list of everything you might want to change as part of an eventâ
- âPrepare to run events from the server, without a client updateâ
- âFind natural ways to promote upcoming events in-gameâ
- âCapture event data in your data warehouseâ for later analysis and segmentation
- âLet your team be flexible when creating eventsâ This seems like basic team management; micro-managing is bad
- âSet goals for eventsâ so we can evaluate performance
- Maintain a calendar for coordination and to avoid fatiguing users
- âUse events to experiment with ideasâ
- âEstablish an event frameworkâ that separates unique and repeatable aspects of an event
Monetization
â⌠every discussion about monetization should consider:
- The kind of game youâre building âŚ
- ⌠[aligning] player needs with your revenue goals âŚ
- Ethical guidelines for monetization âŚ
- How your competition is monetizing ⌠â
Microtransactions
Aka âin app purchasesâ đ
Common forms:
- âCosmetics are items that affect the physical appearance …â
- âAccount Upgrades are permanent enhancements to a player account …â
- âConsumables are items that can be used once for a temporary effect …â
- âVIP Programs are subscription-based programs …â
- Content Access
- âRandom Boxes (or loot boxes) are items players can purchase without knowing exactly what theyâll receiveâ
Common âelements of in-game store management:
- Presentation ⌠should be easy to use …
- Catalog management ⌠(A good rule of thumb is once a week.) âŚ
- Pricing âŚ
- Offers and promotions âŚ
- Fraud ⌠As soon as you start offering items with real-world currency value, there will be fraud âŚâ
Nice: âUse server-side receipt validation ⌠for added securityâ
Conversion
I really like this topic. From the growth perspective, this is part of acquisition.
âtwo main challenges:
- eliminating the barriers to entry
- showing your players valueâ
The first one Iâve come to see a fundamental product consideration. If we want people to do anything, we need to minimize the cost of doing that thing. I think this also ties into an engineering best-practice: keep migrations and changes separate.
Regarding the second point, I think a great counter-example is a paywall before showing any content. âplayers have more of a propensity to pay once they have a trust
relationship with the game and the developerâ
How players spend
I donât have experience with in-app purchases, so this is all interesting.
âPlayers will have different levels of spending they are comfortable withâ
âItâs easy to get caught up focusing on big spenders or trying to sell as much as possible as soon as the game launches. But those methods are often unreliable,
unsustainable, and may reflect poorly on your studioâ Reminds me of low-quality ads, which eventually drive users off the platform.
âBuild a broader, more reliable, and engaged spending base rather than chasing whalesâ ⌠A thousand players paying $10 is preferable to ten players paying $1000 because there is more opportunity for repeat purchases.â
Advertising
âOne of the most popular forms is rewarded videoâshort videos often promoting a different game or app, watched for an in-game reward or more playtime ⌠[beware] players might be lured away by a competitorâs game.â
âAs with almost every other LiveOps effort, you need to continuously test different solutions.â
Good idea: âMany developers segment their audience and only show ads to certain segments, often limiting them to non-paying players.â
Targeting
âYou can usually do an on-the-fly calculation to compare the value per impression of an in-house-ad versus one from an external network, so you can decide what to show for a given player segment.â
Economies
âMany games use two virtual currencies: a âsoftâ currency earned ingame, and a âhardâ purchased currencyâ
âBuild a matrix of all the sources and sinks for in-game resources and build a model of the economic activity you can adjust in a tool such as Microsoft Excel, without rolling out updates.â Iâve heard of managing config this way.
âWhat we want is sustained investment and signs that a player has really perceived value…â
Best practices
- Chose a strategy
- Set ethical and quality guidelines
- Prevent fraud
- Simplicity and variety
- Bundle commonly purchased items
- Pair sales with events â this reminds me of the growth practice of requesting feedback when engagement is high
- Incentivize social sharing
- Diversify ad networks
- Keep loss aversion in mind
- Always be testing âNever stop testing your monetization efforts, because your playersâ perception of value (both real-world and in-game) will change over timeâ
Multiplayer
â… detailed documentation on multiplayer architecture at playfab.com/multiplayerâ
Leaderboards
âAs soon as you add a leaderboard in a game, even if itâs a single-player game, players start seeing progress against other people, and people all of a sudden start engaging moreâ Makes me think there are mechanics for games based on human behavior comparable those used by growth features. For example, leaderboards increasing engagement highlights a human response to hierarchy.
Filtering makes leaderboards more fun:
- Geo
- Platform
- Mode, eg player-vs-player
- Option, eg difficulty
- Level
- Statistic, eg # wins
- Time, eg stats for today
âcombining the variables Platform, Level, and Statistic you could create a leaderboard for âFastest time (Statistic) to complete Ventura Highway (Level) by PC players (Platform).ââ
Leaderboards can also encourage social behavior, eg biggest contributor to team
An ability to reset the leaderboard can encourage participation
Award prizes based on achievements shown in the leaderboard.
Groups
âGroups ⌠can get players more invested in a gameâ
Some group dynamics:
- Communication
- Game progress
- Stats
I wonder if these can be used for other groups, eg a working group.
Interesting: âDetermine how short-term groups are formed based on how much players need to trust teammates to succeed ⌠â
âLong-term groups (such as guilds) have been proven to increase player retention …â Seems like a form of âinvestmentâ that makes an app stickier. The fact that it was âprovenâ makes me think there might be papers to read.
â… how do I provide you the best experience not only within your guild, but when your guild is gone⌠It comes down to matchmaking ⌠the right aspiration together as a group.â Reminds me of work dynamics.
Managing communities
âA dedicated community manager can help keep players satisfied and foster a positive community …â Reminds me of the dev âadvocateâ role
Some ways to avoid bad behavior:
- Limiting communication options
- Filtering words and phrases
- Defining a code of conduct
âThe team behind Guild Wars 2 reportedly built the whole game around the idea that âplayers should always be happy to see one another.ââ đ
âThe more you can provide a framework for people to operate in, the more likely they are …â
Localization
â50% or more of online users will only buy when presented offers in their native language.â
Good idea: given the localization team access to edit strings
âStore as much of the in-game text on the server as possible, so it can be easily edited and localizedâ
Best practices
- Consider multiplayer early in development
- Add multiplayer elements whenever possible
- Experiment with matchmaking algorithms
- Plan for multiplayer scaling needs
- Offer multiple ways to communicate
- Enable customization of groups, to increase engagement
- Reset leaderboards on a regular basis
- Award prizes based on leaderboard stats
- Enable users to ârefreshâ game to explicitly load new config
- Localize communications(!)
Tools and services
The guide lists PlayFabâs API, but I think itâs more interesting as an overview of useful entities and controls:
- Auth
- Content
- Game content
- User generated content
- User data
- Matchmaking
- Leaderboards
- Tournaments
- Reset schedules
- Prizes
- Fraud prevention
- Communication
- P2p
- Text and voice with transcription and translation
- Accessibility (speech to text and vice versa)
- Eng controls
- Config
- Reporting
- Events
- Automation
- Scheduling
- Product & community controls
- Reporting
- Event log
- User management
- Automation
- Scheduling
- Segmentation
- Experimentation
- Messaging
- Economics controls
- Stores
- Sales
- Economy
- Fraud prevention