[Music] welcome to bringing players together building cross play in destiny 2. today we're here to talk about what it took the destiny 2 team to realize the cro the cross-platform experience for players the lessons we took away from the development process and how they can be applicable to you if you're looking to bring cross-platform play to your game so let's dive in a little bit about me i'm john chu a senior technical program manager at bungie in the central technology organization as a technical program manager we function as the producers for engineering-focused teams helping to find road maps and product vision while driving the execution of our various projects i've been at bungie for three years now having worked on various teams for and building and improving our tools around the engine such as improving workflows for ui designers updating the destiny 2 engine for activities and speeding release build times and currently my focus is on
leading initiatives that span across multiple teams around the studio like most recently delivering cross play for destiny 2. so that brings us to what we're here to talk about today we'll be doing a deep dive on the production of cross play and the challenges and lessons we took away from building and releasing this feature to players i'll be focusing more on the production process team organization and some design considerations that come with building for cross-platform and while i'll touch on some of the technical challenges that we faced it'll be more of an overview an explanation of the deep technical specifics is worthy of like a whole other session we'll have time at the end for questions and these slides with speaker notes will be uploaded to vault um so first off quick anyone here have have you played destiny 2 anyone nice most people here um so for anyone that hasn't played destiny 2 is an action mmo first person shooter in which you play as a guardian imbued with the power of light protecting humanity you take on challenges and activities
all while shooting and looting your way to getting better gear and personalizing your character to be the ultimate monster killing machine in terms of how we build maintain and release destiny 2 we utilize a games as service model to constantly deliver updates and new content to players our main content deliverables are yearly expansions and four seasonal releases during that year initially released in 2017 destiny 2 is now in its fifth year and 16th season of being a live game most recently last month in february we released the witch queen and season of the risen and when it comes to platforms destiny 2 is currently available on seven different platforms playstation 4 and playstation 5 xbox one xbox series one xns stadia steam and microsoft pc store and lastly destiny 2 is built in our proprietary tiger engine it's a large legacy code base built for the original destiny with some parts of the engine reaching back to the halo days of bungie there's a great 2015 jdc
talk given by chris butcher that goes into in depth about the history and development of the tiger engine if you're interested in learning more but needless to say there's a lot of systems in code within our own engine that are foundational and hard to change and we'll discuss some of the interesting challenges that this presented when building crossplay later in this talk so now that you have a little bit of a background of destiny 2 let's talk about the crossplay project and how we went about building this experience the biggest reason we wanted to build crossplay was to deliver on creating a truly unified destiny universe by releasing across many platforms players can play destiny 2 from wherever they wanted even other devices supported by stadia we further built towards this with with the release of our cross progression system cross save in 2020 this allowed players to bring their guardians and all the loot and gear that they had spent so much time amassing on one platform to any platform that they wanted while with cross save you can now hop between your pc and console and continue the story of your guardian wherever you
wanted the one thing that was missing was that when players cross platform boundaries that meant leaving behind the friends that they had on one platform people have different preferences for the platform that they like to play destiny 2 with just to demonstrate of all the people that raised their hands how many of you prefer playing on pc playstation xbox stadia i for one like playing on xbox and for the longest time i didn't have access to like a gaming pc to be able to play with my friends who preferred playing on steam so that's where crossplay comes in crossplay is the culmination of all these earlier efforts and now allowing you to play together with your friends from whatever platform you want now all players could exist in a single destiny universe rather than segmented ones by platform and while doing this effort wasn't creating new content like a raid or a secret exotic mission um that for players we knew that doing this was the right thing to do and would be a delighter for them so for this reason we committed to making cross play happen
so when we first started the pre-production of cross-play guided by our overarching vision of creating a single destiny universe we outlined some high-level goals for the project while destiny is being released on multiple platforms we wanted to use cross-play as a chance to center destiny as a platform for all your social interactions with players that you meet while in-game regardless of where you're playing from you should not be limited in your destiny experience and everyone on any other platform should be accessible to you to be friends with to communicate with and more and while we defined goals for this experience we also made sure to articulate constraints that we could use as razors to help make decisions along the way first was that we were date driven we wanted to release cross-play as soon as possible for the best player experience so we targeted a release of september 2021. the pre-production planning for this project started in the summer of 2020 and this gave us a little over a year to plan execute and release cross-play so
we had to scope accordingly to meet this deadline next the experience needed to be seamless especially to new players we didn't want to over complicate the experience of getting a new player from character creation through to having their boots on the ground in the first mission and lastly we knew we would have to collaborate a lot with our first party platforms like sony valve google and microsoft and we knew it was important to respect our partner relationships with each of these companies each platform has their own unique certification requirements and while building cross-play we should be doing our best to adhere to the spirit of these requirements so let's talk about the actual team that built cross-play this effort was a cross-team initiative that spanned across the studio with four core teams working together on the experience the teams that were involved were first the engine client team working on the lower level engine code making changes to things like matchmaking and networking the ui ux team working on the
ui players would be interacting with to manage all their new cross-platform friends and invites the services team tasked with standing up all the new game services and the bungie.net team working on the web and mobile experiences for bungie.net and destiny 2 companion app in total there were about 50 people working on this on crossplay this includes all sorts of disciplines like engineers testers designers producers and all that we also had our technical account management deeply integrated on the team to handle our first party partner relationships so and additionally in addition to that there were a lot of people around the studio that were involved in this effort our publishing and marketing and analytics teams helping get let us engage players and how they would we're playing cross play the player support and community teams giving us their player feedback and also the site reliability and network operations teams making sure the services we were standing up were healthy when they were live and lastly this is all done while we were working remote so in terms of the development timeline of cross-play as mentioned
before we started pre-production during planning during the summer of 2020. from then it was about a year of development to fully release cross-play with the season of the lost in august of 2021 along the way there were a couple milestones and events that helped us we spent the first couple of months working on major tech pieces of the experience while meeting with first party partners to get approvals for our designs this all led us to having our first proof of concept by the start of 2021 in which we had two platforms joining together for the first time we also utilized live updates to game to the to get early versions of cross play out to players in the season before we launched we released an alpha of cross-play for bungie employees to have some cross-play features enabled for them and later a beta in which we enabled cross-play for in a strike playlist for all players to try out these early releases helped get cross-play out there and incrementally build on the experience and we'll talk a little bit more about that later in the talk and even after the full release we've been continuing to add more features to
crossplay like with extended text chat on consoles it was definitely a journey to get cross play in the hands of players so from that timeline you can see we used a lot of different milestones and releases to release cross-play and um and one of my favorite quotes about the process that we used comes from within the studio we can't control our outcomes but we can control our executions we tried our very best to execute in the best way possible to make the right decisions for the team the experience and the player and that's the main focus of what we wanted to share in this talk because in the end that's really all you can control because once it's in the hands of players you have don't really have much control over that but luckily for us crossplay was released to a lot of positive attention from our players uniting them all together and letting them play and engage with each other in a new way so now that we talked about the motivations and circumstances surrounding the making of crossplay we'll move on to the actual lessons we learned at bungie we really liked the number seven if you were at alan blaine's talk yesterday he used seven axes i have seven lessons so this
section comes in that many parts here's the seven lessons we learned in building cross play first up building cross play in our own engine meant creating a lot of new systems from scratch cross-platform play is a pretty easily understood concept it's allowing everyone on your various platforms to to play together and so the conclusion is that's just networking around bits to different platforms right and i mean sure let me see this head down um and actually i mean sure that's definitely part of it but to create a truly great cross-play experience there's so much more to it and there's a couple other reasons that cause us to need to build so many new systems first was that we built destiny in our own proprietary engine all the new cross-platform tech functionality for the engine needed to be created from scratch next many systems that we were using were based on platform level apis and all these need to be recreated in engine to support cross-platform unlike a game that uses a third-party engine like
unity or unreal which has a lot of cross-plat built in we had to build a lot of platform equivalent systems and services also many surrounding systems are needed to enhance cross-play like how does your player identify themselves across various platforms so let's do a run-through of all the various systems starting with networking just to get all these guardians in the tower together core networking tech had to be changed in order to enable sending of content across various platforms the networking changes that we made were some of the biggest and scariest of bone breaking changes since it's one of the most fundamental and underlying systems in the destiny 2 engine since we had shipped separately for various platforms we had made optimizations for each of them and this didn't all play well together when we combined them for cross-play for example our package layout is not always the same across various platforms so we can't just network memory handles from one platform to another we ended up creating a mapping layer to communicate over the network with consistent handles
that could be mapped to appropriate handles on a given platform also the way we handle online sessions for fire teams had to be changed since we could no longer rely on a single session hosted by a single player we now have to maintain separate online sessions for each platform if you're interested in learning more about the destiny 2 networking there's a 2015 talk given by justin truman for you to watch so and there's a lot more of the technical specifics that i glossed over um like we did with not networking but needless to say these were big changes and we needed to get them right to get platforms able to talk to each other and be able to be in world together and these were some of the earliest pieces that we took on so let's talk about player identity in a cross-play world players spend many hours in destiny 2 going through raids and dungeons facing off in competitive matches all trying to get that god roll of their favorite shotgun or trying to get the right mods for their armor the guardian that you play as is an extension of yourself and while the weapons you equip and getting your armor to look just right is
important equally as important is your name and how you identify yourself to other players usually you use platform names like your gamer tag or your steam name among other names for that equivalent to identify yourself and by extension your character in online games however with crossplay that's no longer sufficient say on playstation you go by oryx and all your friends there know you by oryx but one day with crossplay you hop onto your pc and you start playing on steam but there your profile name is salvathun and you try to fire team up with your friends but none of them recognize you by that name so using platforms named platform names in this case was no longer sufficient with crossplay it was important that we deliver a consistent experience where someone is easily identifiable no matter what platform they were playing from we needed to create a consistent name that identifies a player that is unique so that players could find them to that end we created the concept of a
bungee name this consists of a player name and a four-digit unique identifier for example oryx1234 this allows multiple players to have the same name in this case oryx but allows people to search for a specific person with the four digits and guided by our earlier stated goal of the project of not narrowing the new player funnel for new players logging on once crossplay was enabled we needed the experience of setting a bunch name to not be complicated or add extra time and effort we created a seamless experience that seeds the player name of a bungee name from the platform that the player first logs on with so to demonstrate this is the screen that players i met with for the first time once they logged in once crossplay was enabled it tells the player that their bungie name is being set from their platform name in this case you can see on the left that they were signing on for the first time with steam and their profile name was cosmos bng this seeds into their bungee name and their unique the unique identifier of zero seven four eight is added to the
end as you can see on the right side now that player is now known as cosmos bng and it's what is displayed above their head in game and in the roster wherever they play it's their consistent identity so next is friends and presence the concept of friends and who the people you can play with was completely changed now your roster could have people from any and all platforms that destiny is available on and that brought with it many new challenges destiny 2 is an mmo with many communities of players that are that is fostered by deep social mechanics most activities are meant to be played with others even if you play solo we match you up with other players like with strikes or when you free roam destiny 2 is meant to be played with others now that players could interact with anyone that meant we could no longer use platform friend list without changes you would not have access to friends that you were making on other platforms since you could make and have friends anywhere now we were exposing players to
a whole new social network of destiny players we created the bungie front service to handle this new social graph for players to engage with and enable them to become friends with anyone when a player friends someone in-game whatever platform they log in with they will appear on the bungie friends list additionally platform level presence was no longer enough to keep track of when someone was playing destiny so we stood up a present service to track players online and offline statuses when they were playing with this concept of a new bungie social network we needed to make sure that all interactions people have when and have come to expect with social networks was also present first off was being able to find people and to that end we had to build searching we kept it defining others by the bungee name so as you see in the top left corner there's a search bar this is where the four-digit unique identifier comes into play um and it's important and this helps make sure that people are explicitly searching for the right person upon finding that person they're able to
inspect them and then send them a friend request on the receiving side you need to be able to view incoming friend requests or see pending ones and so and finally being able to action on them by being able to accept or reject requests that come your way also other common social controls like blocking and displaying your presence as offline or online had to be respected as well with this new friend system the changes in identity and this new concept of bungie friends resulted in a major overhaul of our roster system as the major ui screen that players utilize to interact with others a lot needed to be done to account for cross-platform more information needed to be given for players for what platform a friend or a nearby person was playing on now we show a little icon next to each person as you see in each of these roster entries there's a little icon that indicates what platform they're on additionally to help other players with identifying you player detail screens were updated to show all your linked
screen names from other platforms in this case this player is playing from steam with the profile name tinytimgo as you can see towards the bottom but their bungee name is different castor rhetoric this makes it easier for people to recognize you when they're inspecting you so let's move on to the changes that we made to session or fire team invites in destiny 2 fire teams are the group of two to six players that you play through various activities with it's your squad fire teams are a core social and gameplay component to the game it's how many players engage with destiny 2 content they hop online they join their friends on a fire team and they take on a raid or trials match and much like friends list we were relying on platforms for session invites before you could go into your roster and you would see your platform front platform friends list and send people invites to join your fire team but that was all using platform apis to send and they would send the receiving player a notification so if you were on xbox
if you were sent an invite you would see on your in your xbox ui that you were invited and they get a toast notification and you'd be able to accept that it would open up destiny and join your character into the fire team but now we needed a way to to bring off platform players into your fire team there wasn't an easy way to call into other platforms in apis from different platforms so we had to stand up another service to from scratch to manage invites for fire teams we created the invite service to allow players to create and join fire teams with whoever they wanted we leveraged our own notification system to show players that who they had been invited to a fire team you can see this on the bottom right in that gray bar with that notification additionally new ui had to be shown to view and manage pending invites we created a new view which friend requests also go through to do this from here you can see your stored invites which do expire after some time and action on them like accepting or rejecting accepting the invite pulls you into the fire team
and while fire teams act as the group of players you play through various activities of destiny 2 to really engage with each other you need to be able to communicate in destiny 2 players are able to voice chat and also text chat like many other systems our voice engine was previously using platform voice implementations sony apis for playstation players to talk to each other microsoft ones for xbox ones and so on but now with fire teams that had players across all platforms we weren't we if we kept it the same way you wouldn't be able to talk with each other what emerged was the need to create java solution that would encode and decode audio that was portable across all platforms so we turned to using a third-party voice service to handle cross-platform voice on the text side previously only pc players were were the ones that were able to chat with each other and p and the only pc platform that we shipped on was steam so it made sense to use steam apis in this case
however timed with the launch of crossplay was also the release of destiny 2 on the microsoft pc store now with another pc platform our existing solution was not viable if we wanted pc players to be able to communicate additionally guided by our goal of not letting platform limit who you could communicate with we wanted to expand text capabilities to console players as well to that end we built our own text chat service to send messages to players we'll talk a little bit more about the decisions that we made for to build our own text chat and integrate a third-party voice solution a little bit later so all that we covered was just the systems that we did for the in-game client but there's even more to cross-play experience when building cross-play we knew that parts of the experience would need to be accessible from the web and mobile sites in our case we have bungie.net and the destiny 2 companion app having out of game extensions of crossplay offered deeper ways to manage and engage with the experience like it was only through bungie.net that players were able to pull all their linked
platform friends lists and batch send requests to see their bungee friends list additionally iteration on web and mobile is much faster compared to shipping new updates for your game client offering these power user features for cross play in a way that made it allowed us to iterate and polish these features more quickly was really helpful also as a peek behind the curtains one of the web having a web experience that really helped with work arounds when we had bugs in our in the game so when we first launched uh player searching in-game was not was not actually didn't work and we were people were able to add their friends so we were able to route players to the web and mobile sites to search for who they wanted and find who they needed and and we until we were able to get a fix out the next day all up with this and everything else a lot of work went into making this experience so in summary here's the things that we learned in having to build the many new systems for and surrounding crossplay first when you're dealing with your own engine many core and fundamental parts
of the engine will need to be changed from things like changes in underlying networking or revamping ui all this means is that when you build your own cross-platform tech scope and extra time need to be accounted for second when building for cross-platform many of your game's pre-existing systems probably rely on platform apis and features your friends lists session invites voice chat all that most of these features will need to be recreated from scratch and in this case your mileage may vary with because third-party engines like unreal or unity a lot of cross-platform portability of services and systems is already built in but it's important to take stock of what systems you rely on platform tech and will need to be moved across plaid and third extending your cross-platform experience outside your game client to wherever players engage your game can be very valuable this makes it easier for players to give players more fine-grained control over the many new systems that you're introducing having web and mobile account for from the beginning made for a truly cohesive
experience so next lesson is about handling interdependencies now that you have an idea of the systems that were involved in making crossplay you have a better sense of the scale of this large crossteam initiative and with projects of this kind of scope comes many complicated dependencies between all the teams that are working on it and these all need to be wrangled having four different teams focused on separate parts of the experience meant that there were many intertwined dependencies to make things more complicated we were executing under a tight timeline to deliver by september of 2021 this made it all the more important to ensure all teams were not blocked and could make progress also with everyone being remote come complications of being in sync no longer were we able to have ad hoc hallway or desk conversations you couldn't just scroll scroll up to someone's desk and ask them a question which usually helps smooth out questions and issues those didn't happen as organically when you're working from home since you'd have to message someone so how did we approach this issue
we were very fortunate enough to have so many people working on this feature but with more people comes a challenge of making sure everyone is building towards the same goal we emphasize team alignment and providing as many avenues as possible to identify blockers and open issues that anyone on the team was facing we set out to create as many opportunities as possible to ensure we were all building towards the same thing and it's a bit cliche for me as a producer to bias this way but especially in a remote work from home world the solution came in the form of sinks and meetings what we found was that having recurring sinks that pared down attendees by feature area like everyone who was working on communication or chat as well as ones by discipline like everyone all testers or all engineers allowed us to focus conversations on specific topics like open issues and questions or upcoming integrations of certain features one example of how this benefited us was by having a weekly sync to discuss specifically friends and presence by focusing in on how the bungee friend
service would interact with the ui and everything else in the client people were able to bring up their questions we realized we needed to figure out how blocking would work in a cross-play world and this ambiguity was being felt by most people working on this feature we were able to quickly address this by having engineers and designers in the same room to discuss what needed to be done to the experience this was followed up in our weekly engineering sinks for the team to discuss the feasibility of certain technical solutions like how would we be able to ferry the data to the right places also we used recurring rituals like meetings where everyone on the core team was invited this ensured everyone was present to be able to see how everyone was building together and how how we were how we were progressing holistically also we had core team-wide weekly play tests this allowed the whole team to see the experience how the experience was coming together and it was definitely a morale boost to see how the features that they were working on were just kept getting added more and more each week and it got more polished
from all these points above it's pretty clear that the approach that we took was giving team members lots of exposure to each other to build cohesion and empower them to identify and mitigate issues so to sum it up creating dedicated sync points ensures blockers are escalated at a cross-team level and handled quickly having syncs that slice your team in multiple different ways like by working group or feature area or discipline allows for different opportunities to discuss issues at different scales and depths next when dealing with a large team that might also be remote it's important to make sure everyone is aligned offering as many opportunities for the team to see each other helped make sure it make it easier for people across the team to proactively approach anyone else on the team with issues that they might be facing and it gives people a sense of how their work fits into the bigger picture and lastly if you heard all this talk about syncs and meetings and working groups and everything and thought that's a lot of meetings i'd agree sinks to build consensus across the team
come at the cost of ic time or actually time to do things and that's overhead on your team so it's all the more important to find a balance admittedly for us we initially over indexed on syncs too much time spent in meetings meant not enough time to do actual work but we quickly were able to iterate on our processes and able to find a better cadence by lifting total meeting time for the team so now that we talked about the what was involved in with crossplay and how we went about building it let's move on to some of the design considerations and in this lesson it's about matchmaking players come to destiny 2 with many different styles of play for from a preference for what kind of class anyone here uh warlock main um to the liking there we go to liking certain types of damage like solar or stasis or arc the the differences in play styles don't just stop there it extends to the platform you play on for example keyboard and mouse players tend to have
quicker reaction times compared to console players the perception of this is especially important when you're in competitive modes when you throw them all together in crossplay you need to consider the types the types of players that are coming in and what they're coming with for example for destiny 2 specifically there are some interesting challenges in the space for example the game has both competitive and cooperative modes and players have different expectations in how they engage in each activity like with the reaction time difference maybe when you're in a cooperative mode like a strike and you don't it doesn't really matter but when you're in a competitive crucible match and as a console player if you're matched against pc players and that you might perceive reaction time as a difference and it might feel unfair also pc and console players platforms have very different security landscapes players using hacks and exploits are something we're constantly fighting against and can make for a lesser experience if you're exposing a console player who might not be used to this so how do you make it fair for players
on different platforms to play together while embracing full cross platform figuring out how to match players on different platforms in the best way was an important decision that we had to make we landed on making different matchmaking pools based on type of activity this ensured fairness and balance while allowing players to play together not all modes of the game needed to create different matchmaking pools there are strong player feelings about fairness whether it be making controllers as competitive as possible with mouse and keyboard or the different security landscapes with console and pc we opted to keep pc players separate from console players for certain modes we felt protecting players and ensuring fairness was the most important to ensure the best experience for the greatest number of players we arrived at this is this decision from conversations that we had with our player support and community teams who stressed the importance of protecting players experiences additionally we chose to split pools we
chose not to split pools by other factors like input modality like having a mouse and keyboard pull versus a controller pool because making that distinction has interesting complications so for example if you are a pc player and you plug in your controller you enter into the and you kick off a competitive match you hop into your controller pool but you unplug your controller right when the match starts and you start using your mouse and keyboard in this case that distinction of making those pulls doesn't really matter anymore so guided by that principle of fairness and protecting players as the most important it made our matchmaking decisions more clear starting with cooperative modes in this case we didn't use separate pools everyone plays together there was no need to create separate pools of players since there was no edge one platform would have over the other and experience for players in modes like strikes was not drastically altered so when you land in a destination and you hop on your sparrow and you start roaming around the moon you're automatically match made in world with players from any other platform
moving to competitive is where we started using different pools we created two different matchmaking pools the first was the console pool in which we have stadia xbox consoles and playstation consoles and in this case while stadia is technically a pc or you're at least streaming from one that pc is hosted within a data center and it's unlikely to have exploits installed or tampering done to the client so for this case we we included it in the console pool then we have the pc pool in which we have steam and microsoft pc store players so now when you launch a competitive activity where you're playing against other players depending on what platform you're playing from you'll be matchmade with other players in the corresponding pool you belong to that's not to say we can't create fire teams of mixed platform players in from different pools we account for this by making it so that pc players cannot cross over and enter the console pool only platforms in a console pool can cross over and play in the pc pool so for example if you're a playstation player and you fire team up with your
friends who are on steam and load into gambit even though you're on stadia you'll be playing against pc players in the match this keeps the boundaries that we set for pc and console pools so bringing it all together for cross-platform gameplay first understanding the areas for concern for gameplay implications with cross-platform will help guide your discussions and decisions understanding where your players concerns and reservations lie will help identify these areas for us that came from talking to our player support and community teams which gave us directions so we could proactively problem solve next if you're creating different pools for matchmaking being deliberate for what reasons you're doing so is a useful razer for design for us it was the guiding principles of protecting player experiences and fairness that made it much easier to have discussions about matchmaking pools and how we should split up players so the next lesson in a turn in addition to the implications cross-platform has on gameplay there's also new social
behaviors from players that need to be handled each platform possesses their own ex their own standards of acceptable social behavior when online when you combine these players from all platforms these differences in how players are used to interacting with each other can give rise to new forms of toxicity and harassment take for example the kinds of user names that are allowed on each platform some platforms have strict filters against profanity and derogatory language but on others you can name yourself anything that you want so player coming from a platform with filtered names could suddenly be exposed to all sorts of profanity which could range from lewd to derogatory and bullying also platforms offer social controls like blocking and settings to prevent external contact but with cross play new vectors for attack open up if you platform block an aggressor on your account what's to prevent them from hopping over to another another platform to continue harassing you so part of the work for crossplay became
addressing these social behaviors there's many forms of online harassment in games out there and when you expose players to bigger populations as is the case when you bring platforms together that's a risk that you take on it's especially important to recognize that these forms of antagonistic behavior tend to be directed at minorities and more vulnerable groups of player populations so much like how our matchmaking pool's decision was was guided by wanting to protect players we did the same with social controls and systems we dedicated a lot of time and effort to the space to try to prevent abuse and harassment to accomplish this we focus on a couple areas first we addressed user generated content that was associated with cross-play in this case most important was the bungee name it became clear from our early discussions that we needed to filter for profanity since some platforms have various levels of screening for user names if there was if we didn't if there was no platform level filtering there was a
risk that inappropriate names and words would be used in platform names and that in turn would be passed in and seed the bungee name to prevent this we adopted a third-party solution that is versatile and context-aware we'll discuss this a little bit later in the talk another area that we worked on was to create adequate blocking systems to manage who you could interact with we needed our new bungie social network to account for bad actors so in our new bungie sorry bungie block system we aimed for parity with platform blocks but extended it to cross platform we made sure that bungie block expands all platforms if you block a player all accounts that are associated with them are blocked this ensures that if you block a harasser they can't hop around to other platforms and continue that abuse by building these systems we better protect the player and give them more control over their social interactions so here's a quick run through of the bungee box system upon inspecting an offending player you that you intend to block you're given
that option doing that to make it clear what this action does a prompt is shown bungie block prevents all forms of communication whether it be chat fire team invites friend requests and more and once that's done there's a very clear indication in the player details that they're blocked and this spans across all platforms that are linked to them so when it comes to social systems being mixed with cross-play a lot of considerations need to be made building cross-platform potentially exposes players to new toxic players more players and platforms means many new avenues for toxicity and harassment being conscious of existing social interactions existing in your game and new ones coming with cross-platform will help you figure out areas where new forms of harassment and abuse could come from and additionally when these areas are identified prioritizing the work to protect players is very important for ensuring the best experience for all players for us it was a requirement to land blocking to be able to ship only then can you ensure
that you're properly protecting your players so next lesson let's move on to some of the more external factors that we faced when building crossplay so while you can design and build the perfect cross-platform system to be able to release you need to meet the requirements of first party platforms destiny 2 ships on a lot of platforms and having previously shipped on all these platforms we're pretty familiar with the certification requirements that are needed to be met so going into crossplay project we did our due diligence many first parties have whole sections in their certification requirements dedicated to cross-platform play and their car their requirements to allow for that however from our initial designs there were differences in what we wanted in the experience versus what first parties would require some examples some platforms require players on their platforms to be primarily identified by their platform names or in terms of other requirements some platforms don't allow for the showing of
logos or icons of other platforms while you're playing on that platform these are just a few of the cert requirements that needed to be worked through in order to ship so we had to work very closely with first parties to align our requirements with their requirements with our aspirations one of the constituted constraints at the beginning of the project was that we respect first-party partner relationships and work to obey the spirit of requirements it was a very long process that involved a lot of meetings and engagements with first parties but we feel like all parties came out happy it's important to call out here for that first party partner relationships vary drastically from studio to studio at bungie we're very fortunate to have very close relationships with our first parties and we were able to meet with them frequently to reach a mutual understanding so what steps did we take to accomplish that first during pre-production we made sure to go through the requirements for each platform and flag areas that differed from our designs this helped us identify areas that we needed to focus in on and figure out
being able to meet with first party partners helped us understand the sphere of requirements and how we could make that work with our intended experience was a long approval process but starting the thinking and engagements early made sure we were set up for success so some key things for you to take away from our experience you need to be very aware of first party requirements with cross-platform play from the very beginning of your production and account for them from in your designs it's very vital to figuring out a path forward to ship also executing towards your vision while trying your best to respect their requirements allows you to deliver the experiences that work for everyone we wanted to ship something great with crossplay and on the platform partners side they wanted to uphold their brand integrity there was room between the needs of both sides to be successful and from that crossplay was made a reality so in terms of other external factors to consider when building crossplay is with third party solutions and figuring out
how and when to use them to aid your development like mentioned before standing up cross-platform play means building a lot of systems that were previously reliant on platform level apis and services when building these features a couple specific use cases emerged that complicated these systems but were still necessary for example needing to ensure a appropriate names were used for bungee names or using a voice library that was portable across all platforms handling these cases like building a new language filter would have added scope to our project and being on such a tight timeline tough calls had to be made certain functionalities required a lot of effort and would not fit within our timeline for example building a good language filter for bungee names and user-generated content would be a massive undertaking destiny 2 supports 12 languages screening and filtering in all these languages requires a lot of expertise and time so for the specific areas of voice chat text chat and text content filtering and
moderation we conducted make or buy analyses on on what we needed to make ourselves and what alternate solutions existed that were worth it for us to buy there's a lot of existing third-party options that are immersed in these spaces and they build products that are better than anything that we could manage so in the case for these options trying to investigate a third party option offered a chance to save time and enable us to ship a better experience so let's first start looking at text and voice chat there's a lot of different options in this space like playfab vibox epic games there's a lot of great players out there so some considerations that we made in our decision was first whether a third party solution had the libraries that supported all the platforms that we ship on also another consideration was that the cost of relaying the data ourselves compared to using third party was technically cheaper for handling that volume of data but what came what that the cost also added up in terms of long-term upkeep and maintenance
and lastly how easy was it to be able to integrate this third-party solution what kind of documentation and support was available for us to be able to integrate on the text filtering side there's a lot of different options that offer things that different technologies like regex's or flat lists some vendors even offer machine learning that are contextually aware being able to distinguish the difference between someone saying you are an effing idiot as bullying versus someone saying this game is effing awesome as positive sentiment building that ourselves would have been very difficult to train up that model and would require a lot of language expertise in terms of staffing other things to include in this space are also making sure that any filtering solution supported all the languages that we needed and also figuring out what moderation tools were available with each of these solutions for repeated offenders and how it compares to the tools that we currently have and how we could use them to better support our player support teams all these considerations were made to combat toxic social behavior
being highly aware of the needs of your game and making sure a solution fully addresses those is key to making these decisions if something fits right it's a great candidate to use to save time and from having to build from scratch so what did we end up doing for us we ended up integrating a third-party voice chat solution to save on the maintenance overhead if we had built it ourselves we found an external solution to handle voice this allowed us to direct our attention to landing other parts of the crossplay experience for text filtering and moderation the massive amount of work it would have taken to build and support the system for so many languages also led us to integrate a third party it's important to call out in this case that in our experience it did take a significant amount of time to integrate both these solutions choosing to buy a solution that requires engineering work and to get it working within your game and the benefits are not instant
additionally when you when you go with a third party you're effectively tying your game to another product the releases and updates to that are dependent on someone else and you don't necessarily have the most control over that and in terms of the last maker by analysis for text chat while there are a lot of solutions out there that accomplish what we needed we felt that being able to control our own text chat platform from which we could build deeper integrations offered a lot of potential so for that case we ended up building our own text chat what we ended up building ourselves versus buying was unique to our game and needs when faced with decisions like this it's important to consider what features are fundamental to the experience that you're building identifying what was within scope to land made it clear where we should be exploring third party partnerships whether your team actually needs to be building certain features so with so many pre-existing solutions out there knowing what needs to be built in-house is important for determining scope figuring out if you're building a
certain system for things like maintaining a competitive advantage will help adjust your priorities and lastly one important note is that integrating a third-party solution is not a silver bullet adding any kind of new tech in always takes time and can't be done instantly that needs to be considered with your planning and timelines in our case when it came to integrating third parties we did end up being overscoped and land needs these integrations wouldn't fit within our timeline so we ended up pushing these integrations into slipping them into a later release but from a longer term outlook one of the things that we did save on was the maintenance and upkeep if we had built these systems ourselves it's the classic iron triangle problem of production scope versus time versus cost looking into a third party option may help you find solutions when faced with trying to find a balance and now the last lesson that we learned from building cross play and in this case it comes from how we went about releasing it taking advantage of destiny
2 as a live service game cross play was built for an existing game so this release needed to not disrupt our existing players but there's a lot of moving parts that were coming with this project and it was a massive thing to bring to this game we had created the most amount of new services since the original destiny 2 and we had broken a lot of bones like the things with networking to make it possible for platforms to play with each other this was all under a tight timeline to deliver such a huge experience there were big concerns about how it would all come together if we were using a single release and that posed a huge risk if we chose to release in a single season we'd only have one try to get it right so what did we do we ended up spreading out the release of crossplay and its many systems over multiple releases and seasons incrementally adding more functionality as we went along since there were many big changes coming in we wanted to give more time to get them in and let them bake and stabilize after which they could be tested at scale with a live population
we embraced this method of incrementally building and releasing crossplay we scaled from a small 10-person internal play test from making sure things weren't crashing to later a studio-wide play test of about 500 people doing this at an increased scale allowed us to test all our tech changes across all the various platforms and all content when it came to releasing in the live game we used earlier seasons to introduce big tech pieces we front loaded the work to get big bone breaking changes like the new networking changes in early this allowed us to get these features checked into builds very early in the development cycle so we had plenty of time to bake to test and stabilize having these big changes out of the way early and stabilized helped us give us more confidence to tackle the other systems for cross-play we also used an earlier season to introduce new ui and some some of the systems being built for cosplay to start getting feedback and live testing in the season ahead of our launch we created an internal alpha for bungie employees to start using crossplay
in the live retail game employees were given access to additional features like the new roster ui the bungie friends list and more employees were actually able to cross-play with the public for months ahead of the actual release this helped us get out some initial experience bugs and fix them before we had players trying out crossplay and it also gave the team a better sense of how crossplay would feel also to really stress test our new networking and matchmaking tech we conducted a live a limited live beta we enabled it in a strike playlist and all players in the game were able to participate this and try out cosplay the high amount of participation in this beta helped us test out and exercise these new code paths that we were creating between the internal alpha and public beta we were able to gain more confidence in what we were building committing to earlier releases and landing the components necessary affirmed our timelines and helped us finish building crossplace strong also as an added plus this helped build some
buzz and excitement around cosplay and while we saw the internal alpha and public beta as as net positives it wasn't without some bloopers it turns out having parts of crossplay available in your game earlier than the release made for some funny occasions where some players stumbled into cross play earlier than intended and so but like the thing to realize is that when you're adding such large features to your live game that sometimes unexpected things happen overall we saw these as funny occurrences that exposed some bugs and these were just accidents that continued to get cross play on the minds of players and build excitement using the live game to ship parts of crossplay early really helped us ensure a smooth launch by front loading the big bone breaking changes during your development you can introduce high risk changes to your game earlier and give them time to stabilize having a scaled down version available in earlier releases helps you build confidence in what you are building and offers an avenue for early feedback and improve the full release version
and lastly giving internal employees early access to cross play and with real players is a useful mechanism it enables you to test out these new systems in the live game that might not be publicly ready without the risk of exposing your players to a lower quality experience and with that those were the seven lessons that we learned from building cross play that was a lot that we covered because it was a very long journey for the team so if you're looking to build your own cross-platform experience for your game here's the key takeaways that i think are most valuable to you and your team first making cross-play can mean building many new systems and services especially if you rely if you're relying on platform apis or using your own engine that might not support cross platform next while many of these functionalities were handled internally finding opportunities to use third party solutions helps you scope down while executing on a tight timeline next first party requirements affect the design of the experience and from the very start of your planning you should
be taking these into account cross-platform play with established behaviors has cross-platform play in a game with established behaviors has very deep implications on how players interact both gameplay-wise and socially and sometimes that means exposing players to potentially new toxic players and behaviors that is a risk that you take on and you need to ensure that you are properly protecting your players it's good to front load big bone breaking changes to deep engine code so that you have plenty of time to bake and stabilize risky features and if possible using multiple release vehicles to gradually add more functionality across play allows you to scale out testing with a live population in general helps build confidence in your project coming together and that's what we learned from building crossplay thank you for listening hopefully you were able to take some of these lessons and apply them to your game as a note of thanks this was only made this talk was only made possible
because so many people worked so hard to make cross play happen special thanks goes out to all the bungos out there who worked on crossplay to make and made such an amazing experience for players also i'd like to thank veronica peshteriano for being an amazing advisor for guiding me through the talk process and also thanks to caitlin you who helped shape a lot of the format and content of this talk and lastly thank you to the cas and event support staff for making sure gdc runs smoothly there's a couple more talks given by some other bungee folks if you're interested in attending they're happening tomorrow and also we're hiring if you're interested in working at bungie we have many openings across disciplines check out our careers page and follow us on twitter at bungie careers there's a qr code and thank you again i've been john chu and now for some q a hi john hi uh first of all a great great panel absolutely loved it and uh wanted to congratulate you all uh my wife and i are returning players the uh launch
across play i mean incredibly successful it's wonderful glad to hear that yeah totally i had a question for you so um and also thank you uh our logo samurai was up there definitely appreciate that so i can uh understand that neurosymbolic ai to intervene and redirect users and situations of toxicity was likely out of scope in this situation and you know you all were moving very quickly on this project yeah what did you all end up going with in terms of a third-party solution to combat toxicity um so what we ended up going with was unique to our game in our case and um and so it's unique because based on business discussions and also some of the design considerations in terms of filtering as i mentioned before we went with also a machine learning one but was a little bit more directly applicable to the user generated content we can talk a little bit later in terms of like the actual vendor that we used and because like part of it was like i wasn't part of those business discussions but also we can we can just talk about that yeah all good big fan thank you thank you
hi um sorry oh yeah but one second here um question from uh online chat uh was there any automated testing to validate cross-play features if so what did that look like um so yeah we so part of it was there was some automated testing in terms of some of the tools that we were using to help create like connection oh so actually the question was was there any automated testing sorry i forgot to repeat the question um so the answer is there was some automated testing that we did in this case um there were some tools that were created to help create cross-platform cross-platform friends and see your friends lists and also make sure you test that out also things like with cross-platform clans and also automating the changing of bungee names a lot of that was automated to help test out a lot of those systems so that's most of what we did for automation there hi there uh hi john thanks for the talk it was really awesome uh i was curious because i i know it's a problem that i kind of run
into previously but with the naming convention in regards to how um you had to make the bungie username so that people were identified across platforms did you ever run into complications when someone decided to change their username especially the initial one that was kind of taken into the bungee name yeah that's a great question so the question was did we run into any complications of changing names and the answer is the short answer is yes there was a lot of interesting complications with that and that's where it were it became especially important to use that third-party content filtering solution to be able to ensure that we were properly filtering for the right names and in the case that we ended up having to release the feature for bungie name changes a little bit later from our release so we had a couple months in between and we actually just recently enabled that um because we wanted to get the system right so that when players were changing their names we were allowing for the right way to do that so like we were properly filtering for them that we had the right mechanisms to do that to be able to track whether or not we they
could and how how we went about doing that so there were complications and yes we relied on that thank you hi john great a great talk um i had a question about your uh your kind of two your two player poles that you you built for for kind of your pc your and your console players did you ever consider uh making those a little bit more dynamic for players that you identified as trustworthy or or at the offset bad actors yeah so the question is did we make any considerations about making the polls a little bit more dynamic to account for bad actors um we're good actors or good actors yeah two so the way we built the matchmaking pool system was actually we built it in a way that was robust enough to allow for arbitrary pool creation did like so we can make those changes in the future and while we we limited it to but based on platform that the the player was on we allow it so that any activity going forward you can customize how those pools were made so in those cases like if in the future you have some activity
in which it might give just playstation players an advantage somehow or xbox players an advantage in some way we we would be able to control for that in terms of how we split up the pools for that specific activity we're taking it so we wanted to we built it in a way to allow keep the door open for the future to be able to do that as well cool thank you cool so thank you very much for the talk john uh quick question was it worth it because it took about a year of effort 50 engineers and assorted people huge amount of third-party effort yeah i i'd have to say i think it's worth it especially oh sorry the question was what whether building this was worth it so i would say yes i think this was something that our players have been wanting for a very long time and we see a lot of positive sentiment to it i think there's from a business perspective you're not seeing like direct compensation in terms of how much this this adds to that but like this is just and this just adds to the experience because it like i just was recently talking to someone who said it felt like the game had tripled in
population once this was enabled and that is something really magical to be able to do with this in this experience and especially within within the industry you're seeing a lot of like games and like a lot of platforms being able to have like those those lines blurring i think it's very important to be able to embrace that and allow for anyone to be able to play with each other cool thank you firstly firstly great talk um secondly can you scroll back to the previous slide just with there we go he scrolled past that too fast and now my question so like i'm sorry um they're they're i mean technical technical technical decisions influence design decisions and so on and so forth so my question is like has there been a any instance in which now like cross play going forward has influenced like say design of levels or gameplay systems like has it changed anything in a way at least from a design and implementation standpoint so i can't speak directly to that
because i'm not specifically a designer the question is how has like the release of cosplay and how we went about it like changed the way we designed it but like one of the things that i know that we're doing is that we're trying to embrace the incremental building of certain features a lot more crossplay was probably one of the biggest things like outside of crosstalk that we baited in a live game for at bungie and so for that um yes it's trying to change the way that we're releasing it i don't i'm not part of conversations in terms of how directly it applies to design but that's that's part of it as well okay thank you thank you so much i think we're out of time if there's any more questions i can hang out thank you [Music] you
Auto-generated captions from YouTube — names and numbers may be misheard.
Game Developers Conference · 2026
Game Developers Conference · 2026
The Game Business · 2026
Comments