Gearbox built an online services platform named Spark for Borderlands 2. As this was an entirely new effort for Gearbox, we learned that building a service is quite different from building a game. Along the way, we shipped two beta releases in the original Borderlands to help us succeed. The genesis of Spark, key milestones and challenges in its creation, and post-mortem from launch are discussed. This talk will help others understand why we created Spark and also what it takes to launch an online service.
Gaming in the Cloud: How Gearbox Software Uses Amazon Web Services to Reach M...Jimmy Sieben
Gearbox Software uses cloud technology to power the SHiFT service and communicate directly with millions of fans. This presentation describes some of the things we have done with SHiFT in Borderlands 2 and how we have used the cloud to reach a broad audience.
Anthony Pecorella's talk at GDC Europe covering the math and design of idle games. This talk goes into details about formulas and progression systems as well as tools available for balancing these systems. Bonus sections include a quick look at stupidly-large numbers and a summary of some recent notable additions to the idle game genre.
You can try the spreadsheet models out at http://kon.gg/idle-math-spreadsheets.
Gaming in the Cloud: How Gearbox Software Uses Amazon Web Services to Reach M...Jimmy Sieben
Gearbox Software uses cloud technology to power the SHiFT service and communicate directly with millions of fans. This presentation describes some of the things we have done with SHiFT in Borderlands 2 and how we have used the cloud to reach a broad audience.
Anthony Pecorella's talk at GDC Europe covering the math and design of idle games. This talk goes into details about formulas and progression systems as well as tools available for balancing these systems. Bonus sections include a quick look at stupidly-large numbers and a summary of some recent notable additions to the idle game genre.
You can try the spreadsheet models out at http://kon.gg/idle-math-spreadsheets.
Idle Clicker Games Presentation (Casual Connect USA 2017)David Piao Chiu
Idle Clicker Games: Why are they so popular and how can I get in on the action?
Idle clicker games are a young genre that has seen explosive growth in the last few years thanks to the popularity of games such as Clicker Heroes and AdVenture Capitalist. This session will explore the evolution of the idle genre from simple indie projects to games with major licensed IPs and celebrities (Chuck Norris, WWE, Crazy Taxi, He-Man, etc.). We will also share best practices for improving retention and monetization (both IAP and ads).
Building Games for the Long Term: Pragmatic F2P Guild Design (GDC Europe 2013)Kongregate
Every Kongregate talk they're always saying "guilds, guilds, guilds". Sure, but does that even work for my type of game? And what should a guild design for my game look like?
In this design-focused talk, guilds will be deconstructed into their kernel and then built back up feature-by-feature with an eye on implications for retention, monetization, and engagement. Examples from the industry will be used to look at best practices and missed opportunities while it explores traditional and experimental guild elements. It will also walk through the exercise designing a guild system for a popular casual game, challenging the audience to step outside the boundaries of traditional genres when thinking about guilds in games.
For more information, visit: www.adriancrook.com
This is a sample teardown or game deconstruction based on Supercell's Clash Royale. What is a teardown? Read on for background or drop us a line on how you can learn more: www.teardownclub.com or www.adriancrook.com for our full suite of services.
At all major game developers, product managers regularly produce teardowns. A teardown is an in-depth analysis of a competitor’s product, designed to highlight what can be learned. Product managers then pass these teardowns on to their internal development teams to help them make better products.
The industry term for this analysis is Teardown, and if you’ve never heard that before, it’s because the information Teardowns contain is so valuable that they are rarely shared publicly.
Teardown Club is AC+A's leading edge competitor analysis that your product management and design teams need to make profitable games.
WHAT DO OUR TEARDOWNSCONTAIN?
A teardown is usually delivered in PowerPoint format and contains the following:
Executive Summary
Monetization Features/Economy Breakdown
Context/Background/Genre Competitors
Retention/Compulsion Loop Breakdown
Core Loop Analysis
Viral Loops Analysis (if applicable)
First Time User Experience (FTUE) Overview
Summary with Key Takeaways
A teardown is laser-targeted to divining the valuable lessons from a product. Everything from the latest retention mechanisms to the highest converting monetization implementations - and beyond.
Large publishers have entire worldwide product management groups whose job is to produce teardowns and share this knowledge with their worldwide studios, ensuring their products beat the market.
This was given as a 1.5 hour lecture to the MDES students at CCA, removing the opening game play and the later exercise. It's better at 2-3 one hour lectures, plus game play.
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
http://creativecommons.org/licenses/by-nc-sa/4.0/
Originally presented as part of GDC 2013 Level Design in a Day bootcamp. Co-talk between level designer and artist about the how and why of building massive games with modular art kits.
A post mortem about one of the highly anticipated but "launch failed" pojects I did. This is THE talk I was sued about by the publisher as I was too honest.
Maximize Your Production Effort (English)slantsixgames
Efficient Content Authoring Tools and Pipeline for Inter-Studio Asset Development
With the complexity of today's video games and their associated tight timelines, it is paramount for video game studios to have a highly efficient content authoring process and production workflow. With a trend towards outsourced development of game assets, there are additional considerations that are important for achieving optimal workflow between studios that are co-developing or sharing assets. This lecture gives valuable insight into how to create new content authoring tools and data transformation pipelines that promote efficient work flow for both internal and remote production teams. Specific considerations for outsourcing and worldwide development are made along the way.
Idle Clicker Games Presentation (Casual Connect USA 2017)David Piao Chiu
Idle Clicker Games: Why are they so popular and how can I get in on the action?
Idle clicker games are a young genre that has seen explosive growth in the last few years thanks to the popularity of games such as Clicker Heroes and AdVenture Capitalist. This session will explore the evolution of the idle genre from simple indie projects to games with major licensed IPs and celebrities (Chuck Norris, WWE, Crazy Taxi, He-Man, etc.). We will also share best practices for improving retention and monetization (both IAP and ads).
Building Games for the Long Term: Pragmatic F2P Guild Design (GDC Europe 2013)Kongregate
Every Kongregate talk they're always saying "guilds, guilds, guilds". Sure, but does that even work for my type of game? And what should a guild design for my game look like?
In this design-focused talk, guilds will be deconstructed into their kernel and then built back up feature-by-feature with an eye on implications for retention, monetization, and engagement. Examples from the industry will be used to look at best practices and missed opportunities while it explores traditional and experimental guild elements. It will also walk through the exercise designing a guild system for a popular casual game, challenging the audience to step outside the boundaries of traditional genres when thinking about guilds in games.
For more information, visit: www.adriancrook.com
This is a sample teardown or game deconstruction based on Supercell's Clash Royale. What is a teardown? Read on for background or drop us a line on how you can learn more: www.teardownclub.com or www.adriancrook.com for our full suite of services.
At all major game developers, product managers regularly produce teardowns. A teardown is an in-depth analysis of a competitor’s product, designed to highlight what can be learned. Product managers then pass these teardowns on to their internal development teams to help them make better products.
The industry term for this analysis is Teardown, and if you’ve never heard that before, it’s because the information Teardowns contain is so valuable that they are rarely shared publicly.
Teardown Club is AC+A's leading edge competitor analysis that your product management and design teams need to make profitable games.
WHAT DO OUR TEARDOWNSCONTAIN?
A teardown is usually delivered in PowerPoint format and contains the following:
Executive Summary
Monetization Features/Economy Breakdown
Context/Background/Genre Competitors
Retention/Compulsion Loop Breakdown
Core Loop Analysis
Viral Loops Analysis (if applicable)
First Time User Experience (FTUE) Overview
Summary with Key Takeaways
A teardown is laser-targeted to divining the valuable lessons from a product. Everything from the latest retention mechanisms to the highest converting monetization implementations - and beyond.
Large publishers have entire worldwide product management groups whose job is to produce teardowns and share this knowledge with their worldwide studios, ensuring their products beat the market.
This was given as a 1.5 hour lecture to the MDES students at CCA, removing the opening game play and the later exercise. It's better at 2-3 one hour lectures, plus game play.
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
http://creativecommons.org/licenses/by-nc-sa/4.0/
Originally presented as part of GDC 2013 Level Design in a Day bootcamp. Co-talk between level designer and artist about the how and why of building massive games with modular art kits.
A post mortem about one of the highly anticipated but "launch failed" pojects I did. This is THE talk I was sued about by the publisher as I was too honest.
Maximize Your Production Effort (English)slantsixgames
Efficient Content Authoring Tools and Pipeline for Inter-Studio Asset Development
With the complexity of today's video games and their associated tight timelines, it is paramount for video game studios to have a highly efficient content authoring process and production workflow. With a trend towards outsourced development of game assets, there are additional considerations that are important for achieving optimal workflow between studios that are co-developing or sharing assets. This lecture gives valuable insight into how to create new content authoring tools and data transformation pipelines that promote efficient work flow for both internal and remote production teams. Specific considerations for outsourcing and worldwide development are made along the way.
BlackBerry Jam Asia 2013 - Gaming on BlackBerrySegitiga.Net
Slide presentation by Sujoy Ghosh (Marketing Manager, App World & Content Marketing - APAC, BlackBerry) & Pratik Sapra (Application Development Consultant, BlackBerry) on BlackBerry Jam Asia 2013 in Hong Kong, September 27 2013 titled Gaming on BlackBerry.
Massively Social != Massively MultiplayerPaul Furio
A talk from the Login 2011 conference on how to build games that connect hundreds of thousands of players in the same experience, using NoSQL, OSS tools & tech, and good planning. Also covers BigData analysis for understanding what your players are doing and what they want.
Inside the IT Territory game server / Mark Lokshin (IT Territory)DevGAMM Conference
In my talk, I will talk about the internal structure of the game server, which support our games of the Vorodezh ITT division. What can be learned from the talk:
- what technologies did we choose for the development of game servers (spoiler: Vert.X Hazelcast, Postgres, Kafka, Prometheus + Grafana, Consul, Photon Cloud);
- how we use them (spoiler: not all for their intended purpose);
- how we install updates;
- some interesting mistakes that we caught while working with Vert.X and Hazelcast.
(GAM404) Hunting Monsters in a Low-Latency Multiplayer Game on EC2Amazon Web Services
Hear how Turtle Rock launched Evolve, their fast-paced mercenary-vs-monster first-person shooter (FPS), to millions of players using AWS regions around the globe. Turtle Rock provides an in-depth view into Evolve's architecture on AWS, including both their Amazon EC2 and Elastic Load Balancing web API stack, as well as their Crytek-based UDP game servers. Hear how they used Amazon VPC subnets, along with an RDS MySQL based server registration service, to balance players across Availability Zones and regions. Learn about Turtle Rock's innovative game server scaling logic, which maintains a pool of game server capacity while keeping costs in check. Finally, see Evolve’s Graphite and Grafa monitoring setup, which provides player count and server health status across their worldwide fleet.
The Day 1 Keynote at "Into the Box" conference sets the stage for an exciting journey into the world of modern development. Join us as renowned experts and industry leaders take the spotlight to explore cutting-edge tools, techniques, and frameworks that are revolutionizing the way we build software. With a focus on harnessing the power of innovation, this keynote will inspire and empower attendees to embrace the latest trends and technologies in the realm of web and mobile app development. Prepare to be captivated by insightful talks, engaging demonstrations, and a vision of a future where developers thrive in the box and beyond. Don't miss this opportunity to kickstart your conference experience with an invigorating and inspiring session.
Dino2 - the Amazing Evolution of the VA Smalltalk Virtual MachineESUG
Dino2 - the Amazing Evolution of the VA Smalltalk Virtual Machine
First Name: John
Last Name: O'Keefe
Type: Talk
Video1: https://www.youtube.com/watch?v=Ii8Dwq1b6YI
Video2: https://www.youtube.com/watch?v=30L7fWvtddU
Over the last 18 months we have evolved the VA Smalltalk VM from a Smalltalk model-based 32-bit VM to a C-based 32/64-bit VM. During this talk I will tell the story of our journey along this evolutionary path, describe some of the innovative techniques and approaches we took to reach our goal, and demonstrate the running 64-bit VM.
Bio:
I have been developing software for over 45 years. I joined the original IBM Smalltalk prototype team in 1990 and was a founding member of the IBM VisualAge Smalltalk development team. I was Team Lead and Chief Architect of IBM VisualAge Smalltalk from 1997 to 2007. In February 2007, I joined Instantiations to lead the VA Smalltalk development team. I am currently the CTO and Principal Smalltalk Architect focusing on future product architecture and development. I live in Durham, NC and work in Raleigh, NC.
Write retrogames in the web and add something more with AzureMarco Parenzan
Mi piacciono i retrogames, sin da quando ho iniziato a usare i computer con il mio amato Commodore 64 negli anni ottanta. Così nel mio (poco) tempo libero cerco di reimplementare, non come sviluppatore professionista, i giochi più semplici e coinvolgenti con cui ho giocato, portandoli sul web con JavaScript e Phaser.io. Quindi voglio condividere la mia esperienza.
Poi, dato che lavoro con Azure e i giochi diventano delle Web App, cerco di evolvere i giochi aggiungendo alcune nuove e moderne funzionalità, così per sperimentare un po' i vari servizi di Azure, soprattutto quelli che normalmente uso meno.
The new stack for SharePoint Framework
Intro to Software lifecycle + devops
Intro to VSTS/Azure
The build system + deploy
Unit tests with SPFX
Intro to tech debt management
Conclusion
Designing a pragmatic back-end service for mobile gamesiFunFactory Inc.
For competition in the mobile gaming industry getting fierce, mobile game developers now face tough challenges including handling a different service landscape and working on a tight time budget. These obstacles lead the developers to seek handy solutions to abstract away development complexity and to reduce overall development cycle. This talk will focus especially on the back-end side of mobile game services. It will first review issues in mobile game services, then highlight the requirements of back-end services for the services. Finally, the talk will propose a vertically-integrated back-end platform.
Unite2014 Bunny Necropsy - Servers, Syncing Game State, Security and Optimiza...David Geurts
A 30 minute extension on the presentation Syncing Success. Talks about all the lessons learned and how we improved upon them. Very good tips on Unity and how to manage MonoBehaviours to make unity games run super smooth. Unity Asset Bundle build tool plan and setup
The Art of the Pitch: WordPress Relationships and SalesLaura Byrne
Clients don’t know what they don’t know. What web solutions are right for them? How does WordPress come into the picture? How do you make sure you understand scope and timeline? What do you do if sometime changes?
All these questions and more will be explored as we talk about matching clients’ needs with what your agency offers without pulling teeth or pulling your hair out. Practical tips, and strategies for successful relationship building that leads to closing the deal.
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf91mobiles
91mobiles recently conducted a Smart TV Buyer Insights Survey in which we asked over 3,000 respondents about the TV they own, aspects they look at on a new TV, and their TV buying preferences.
UiPath Test Automation using UiPath Test Suite series, part 5DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 5. In this session, we will cover CI/CD with devops.
Topics covered:
CI/CD with in UiPath
End-to-end overview of CI/CD pipeline with Azure devops
Speaker:
Lyndsey Byblow, Test Suite Sales Engineer @ UiPath, Inc.
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Albert Hoitingh
In this session I delve into the encryption technology used in Microsoft 365 and Microsoft Purview. Including the concepts of Customer Key and Double Key Encryption.
Essentials of Automations: The Art of Triggers and Actions in FMESafe Software
In this second installment of our Essentials of Automations webinar series, we’ll explore the landscape of triggers and actions, guiding you through the nuances of authoring and adapting workspaces for seamless automations. Gain an understanding of the full spectrum of triggers and actions available in FME, empowering you to enhance your workspaces for efficient automation.
We’ll kick things off by showcasing the most commonly used event-based triggers, introducing you to various automation workflows like manual triggers, schedules, directory watchers, and more. Plus, see how these elements play out in real scenarios.
Whether you’re tweaking your current setup or building from the ground up, this session will arm you with the tools and insights needed to transform your FME usage into a powerhouse of productivity. Join us to discover effective strategies that simplify complex processes, enhancing your productivity and transforming your data management practices with FME. Let’s turn complexity into clarity and make your workspaces work wonders!
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024Neo4j
Neha Bajwa, Vice President of Product Marketing, Neo4j
Join us as we explore breakthrough innovations enabled by interconnected data and AI. Discover firsthand how organizations use relationships in data to uncover contextual insights and solve our most pressing challenges – from optimizing supply chains, detecting fraud, and improving customer experiences to accelerating drug discoveries.
Dr. Sean Tan, Head of Data Science, Changi Airport Group
Discover how Changi Airport Group (CAG) leverages graph technologies and generative AI to revolutionize their search capabilities. This session delves into the unique search needs of CAG’s diverse passengers and customers, showcasing how graph data structures enhance the accuracy and relevance of AI-generated search results, mitigating the risk of “hallucinations” and improving the overall customer journey.
Pushing the limits of ePRTC: 100ns holdover for 100 daysAdtran
At WSTS 2024, Alon Stern explored the topic of parametric holdover and explained how recent research findings can be implemented in real-world PNT networks to achieve 100 nanoseconds of accuracy for up to 100 days.
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfPaige Cruz
Monitoring and observability aren’t traditionally found in software curriculums and many of us cobble this knowledge together from whatever vendor or ecosystem we were first introduced to and whatever is a part of your current company’s observability stack.
While the dev and ops silo continues to crumble….many organizations still relegate monitoring & observability as the purview of ops, infra and SRE teams. This is a mistake - achieving a highly observable system requires collaboration up and down the stack.
I, a former op, would like to extend an invitation to all application developers to join the observability party will share these foundational concepts to build on:
In his public lecture, Christian Timmerer provides insights into the fascinating history of video streaming, starting from its humble beginnings before YouTube to the groundbreaking technologies that now dominate platforms like Netflix and ORF ON. Timmerer also presents provocative contributions of his own that have significantly influenced the industry. He concludes by looking at future challenges and invites the audience to join in a discussion.
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
GraphRAG is All You need? LLM & Knowledge GraphGuy Korland
Guy Korland, CEO and Co-founder of FalkorDB, will review two articles on the integration of language models with knowledge graphs.
1. Unifying Large Language Models and Knowledge Graphs: A Roadmap.
https://arxiv.org/abs/2306.08302
2. Microsoft Research's GraphRAG paper and a review paper on various uses of knowledge graphs:
https://www.microsoft.com/en-us/research/blog/graphrag-unlocking-llm-discovery-on-narrative-private-data/
Removing Uninteresting Bytes in Software FuzzingAftab Hussain
Imagine a world where software fuzzing, the process of mutating bytes in test seeds to uncover hidden and erroneous program behaviors, becomes faster and more effective. A lot depends on the initial seeds, which can significantly dictate the trajectory of a fuzzing campaign, particularly in terms of how long it takes to uncover interesting behaviour in your code. We introduce DIAR, a technique designed to speedup fuzzing campaigns by pinpointing and eliminating those uninteresting bytes in the seeds. Picture this: instead of wasting valuable resources on meaningless mutations in large, bloated seeds, DIAR removes the unnecessary bytes, streamlining the entire process.
In this work, we equipped AFL, a popular fuzzer, with DIAR and examined two critical Linux libraries -- Libxml's xmllint, a tool for parsing xml documents, and Binutil's readelf, an essential debugging and security analysis command-line tool used to display detailed information about ELF (Executable and Linkable Format). Our preliminary results show that AFL+DIAR does not only discover new paths more quickly but also achieves higher coverage overall. This work thus showcases how starting with lean and optimized seeds can lead to faster, more comprehensive fuzzing campaigns -- and DIAR helps you find such seeds.
- These are slides of the talk given at IEEE International Conference on Software Testing Verification and Validation Workshop, ICSTW 2022.
Communications Mining Series - Zero to Hero - Session 1DianaGray10
This session provides introduction to UiPath Communication Mining, importance and platform overview. You will acquire a good understand of the phases in Communication Mining as we go over the platform with you. Topics covered:
• Communication Mining Overview
• Why is it important?
• How can it help today’s business and the benefits
• Phases in Communication Mining
• Demo on Platform overview
• Q/A
Communications Mining Series - Zero to Hero - Session 1
Igniting the Spark: Building Online Services for Borderlands 2
1. Igniting the Spark:
Building Online Services for
Borderlands 2
Jimmy Sieben @jimmys
Lead Programmer, Gearbox Software
2. A Word About Me
• I’ve been programming for 20+ years, 15 professionally
• Making games since 1995; at Gearbox for over 10 years
• Network Programming on multiple titles
• Halo: Combat Evolved (2003: PC)
• Brothers in Arms: Road to Hill 30 (2005: PC/Xbox)
• Brothers in Arms: Hell’s Highway (2008: PC/PS3/Xbox 360)
• Borderlands (2009: PC/PS3/Xbox 360)
• Borderlands 2 (2012: PC/PS3/Xbox 360)
3. A Word about Borderlands
• Introduced in 2009, sold over 6 million
• Coop Shooter Looter:
• FPS Action, Action-RPG Mechanics
• 4 player Cooperative, drop-in drop-out
• Borderlands 2 released in 2012, sold over 6 million
• Refined Shooter Looter, enhanced coop play
• Built SHiFT and Spark to connect to community
• A new initiative, something we’ve never done before
4. What is Spark?
• Spark: Our backend platform
• Internal name
• SHiFT: Our online service
• Customer-facing
5. Spark Features for Borderlands 2
• Archway
• SHiFT Account Signup, Platform account linking / authentication (Xbox LIVE, PSN,
Steam)
• Code Redemption & Rewards
• Discovery
• Dynamic configuration, per-environment and per-user
• Supports user populations for betas and testing
• Micropatch
• Data-driven hotfixes for rich game content
• Hard-coded or service-delivered (tied into Discovery)
• Leviathan
• Telemetry for gameplay
• Stats and Events with rich metadata
6. Why do this?
• Games are increasingly social, connected experiences
• AAA Games must go beyond the box
• Embrace the web and mobile, companion experiences
• Engage with players any time, anywhere
• Build the brand
• Ultimately, all about the customer
• Build the connection directly to the fans
• Enable the community to forge connections
• These are pillars of the next generation of games
7. Archway: Accounts and Authentication
• Single Sign On via ticket verification
• Xbox LIVE, PSN, and Steam supported
• Platform ID only comes from a valid
ticket
• This makes it difficult to impersonate a user
8. Spark: Single Sign-On Process
Game: Game:
Spark Backend:
Acquire User Ticket Send ticket to Verify ticket
from Platform API Spark
9. Spark: Reward Redemption
• Built a system of Offers and Entitlements
into our account system
• Created a code generator for 5x5 codes
10. SHiFT Code Example
Xbox 360 CBKBJ-3TXBH-55S3X-W6TT3-9BSZ5
PlayStation 3 WBKTB-CB6TT-X6WCJ-9T5BB-W5CBT
Steam WTCTB-HHX3C-39FJJ-JB333-FWWJZ
These are real-live codes, good for a Golden Key in Borderlands 2.
Redeem them when you get home
14. Spark: Micropatching
• Borderlands 2 is a rich data-driven game
• So much of the game is actually implemented in
data, how can that be updated on the fly?
• We built a system to package data updates into
Micropatches, deliver them via Spark
• This allows us to do balance tweaks, bug fixes,
live events by changing data implementation
• Authoring support in editor and backend tools
15. Spark: Telemetry
• How do players experience Borderlands 2?
• Drive Micropatches
• Provide business intelligence during launch
• Get visibility on exploits and cheats
• Feed into future development
16. How do you do this?
• What does a backend service look like?
• GDC talks
• HighScalability.com
• Amazon, Facebook, Microsoft, Google publications
• Phone a Friend
• How do you choose technology for Blue Sky?
• Know your priorities: What you like, Healthy ecosystem
• Rapidly evolving space
• Just choose and go – adaptability is key
17. The Challenge of AAA
Startups & mobile teams reference soft
launch, gradual run-up to inflection point
(John Mayer tweets about Words with Friends)
Day 0 Day 1 Day 30 Day 120
18. The Challenge of AAA
• AAA game launches are the opposite:
Vertical, long tail and plateau
Startup
AAA
Day 0 Day 1 Day 30 Day 120
19. Building the Service
• Research
• Build a team
• Start coding
• Ship it 2-3 years later?
• …. This isn’t easy. Is there a better way?
20. Building a Beta!
• We shipped BTest for Borderlands on Steam
• Beta test of our toughest feature: Telemetry
• Early visibility into key decisions and
questions for Authentication
• The focus of the first 10 months of Spark
• Shipped on 9/9/2011
21. BTest Postmortem: Test Everywhere
• We took our beta to different networks
• 2k and Gearbox corporate
• Home, with and without VPN
• QuakeCon!
• QuakeCon used a transparent Squid proxy
• Exposed a copy/paste bug in our HTTP code
• Oops, sending POST data on a GET!
22. BTest Postmortem: Crash Bug!
• Clock synchronization problem on server
• Game clients slowly drifted away from server
• Some crash reports early
• By Saturday morning, all clients crashing
• Workaround server side, instantly fixed crashes!
• Lessons
• Some test are vectors very difficult to predict
• Server tunability is incredibly valuable
• Tuesdays are the Best Days! (Not Friday!)
23. BTest Postmortem: Leaderboard
• We created a simple leaderboard to encourage players to
try the update
• It got slower and slower and slower, until updates were taking
over 45 minutes. Refactored queries and got updates down to 20
seconds
• Hacker submitted bogus data within hours of launch
• Lessons:
• Test with full data set early
• Try and break your assumptions
• Malice is the Norm
24. BTest Postmortem: Database Schema
• We didn’t know exactly what we wanted to ask, so
we built a very flexible, generic model
• Very quickly got too slow to work with
• How many enemies killed: 1 hr+ query times!
• Database size out of control
• Hard to plug in tools for visualization
• Lessons:
• Knowing what you want to do w/ data is crucial
• Data archival was very useful
25. BTest Postmortem: Capacity Planning
• Looked at Steam data in March
• Predictable decline to July Launch
March May July September
26. BTest Postmortem: Capacity Planning
• We shipped Btest in September…
• Steam Summer Sale!
• Borderlands 2 announced!
Planned
Actual
March May July September
27. BTest Postmortem Capacity Planning
• Scrambled to handle dramatically higher load
• Resized DBs, more servers, reconfiguration
• Lessons:
• Pay close attention and adjust constantly
• Be plugged in to PR and Business
• Be agile
28. Building another Beta!
• BTest was so helpful, we shipped another
beta!
• Launched December 13, 2011 (a Tuesday!)
29. Gearbox Moves into the Cloud
• BTest1 was hard to operate on shared hosting
• Capacity hard to adjust, and we didn’t get it right
• We knew we needed to design for more flexibility
• BTest2 Shipped on Amazon Web Services
• EC2, RDS, ELB
• Steep learning curve, but paid off…
• Didn’t get everything right…
30. BTest2 Postmortem: Holiday Stability
• We launched and were mostly stable
• However, problem Christmas evening!
• Our game was still selling, new people playing
• Queues were backing up, not severe
• A few days later, CPU is pegged!
• The Cloud to the rescue! Deploy more bigger!
• Lessons:
• Queue storage in cloud gave wiggle room
• It was actually pretty easy to recover from CPU peg
• Capacity planning still hard!
31. BTest2 Postmortem: Missed
Opportunities
• New to AWS, Deployed regular EC2 instances
• Skipped VPC
• This turned out to be a mistake
• More difficult to secure some resources like we wanted
• Had to build load balancing logic into app layer
• Lessons:
• Embrace as much of the feature set as you can
• Don’t be afraid to choose long term over short term
• Especially for a Beta!
32. Going Wide
• After shipping two iterations, had some
confidence in architecture
• Define the final feature set for the game
• Building an implementation plan is hard
• Include all stakeholders
• Navigate difficult policy waters
• Finish building the team and finish the code!
33. Discovery: Design for Tunability
• Created Discovery service which is central store
for service configuration
• If the client doesn’t get service info, disable it
• Flexibility is key:
• Simple key/value pairs, dirt-simple format
• Different configs for environments, titles, and platforms
34. Discovery: Design for Testability
• Endpoint URLs and Versions from Server
• Single point of entry hardcoded in code / platform config
• Client overrides for configuration via INI and
command line
• Allowed developers to work offline
• Allowed QA to customize things for testing
• Supported even in final builds
• Enabled internal and external beta scenarios!
35. Design for Bad User Behaviors
• Be conscious of user behaviors which can harm the service
• Signup / Signin
• Code Redemption
• We implemented client side throttles
• Prevent button mashing denial of service attacks
• Don’t create incentives for users to be bad
• Signup/delete path not optimized for churn
• Signup rewards once per platform ID, ever
36. Load Testing Difficulties
• We didn’t fully understand how ELB worked at
first
• Amazon’s documents are good, but easy to overlook
• Turn off DNS caching
• Prewarming critical
• JMeter limitations led us to write custom scripts
• Costs can get out of hand! Watch carefully!
• Should have invested more in automation
37. Launching Borderlands 2
• Borderlands 2 launch: September 18, 2012
• The team was all set in the war room
• Night and day shift established for launch
• Latest capacity info from industry friends
and experts projected we would survive
• But still, wave of terror washed over me a T-6 hrs
38.
39. So?, What Happened
• Nothing!
• Well, almost. At least at first.
• Email queues backed up, deployed more workers
• Slowing turning up the dials on telemetry
• Watching the numbers, generally OK
• Went to sleep happy!
• A few things did come up in the following days…
40. Day 1: Bad Query
Beware tolower() query on indexed columns
Our testing missed this because it only shows on a loaded database
41. Day 2: Keeping Telemetry Going
• Launch week capacity was tough to manage
• We wanted to keep costs in check, but had
not implemented AWS Auto-Scaling Groups
• Manually add/remove instances at set times
43. Day 2: Operation Mistake Reveals Bug
• Made a mistake pushing change to Redis
• Lots of users kicked off service accidentally
• Many of them didn’t come back automatically!
45. Day 2: Telemetry Bug
• Actually found 5 different bugs
• Reauthentication is a tricky process to test
• Bugs in each layer involved in process
• Hard to test all the interactions in the system
• Fixing it was also a challenge
• Coordinate operations, dev, production, QA
• More on that later…
46. Day 3: Bad Build
• An early Steam patch was released with bad
configuration, pointing at test environment!
• Fortunately, just after patch release we took
down test environment for maintenance.
• Deployed a workaround on server frontdoor
• Could not bring it back up until all users
were patched
47. Day 3: Bad Build Continues!
• It wasn’t just our main SKU that had this problem
• We released that code to the Russian SKU as
well, which had a delayed update plan
• It took almost 3 weeks to deploy that patch
• Still not out of the woods.
• Unpatched users still out there
• Pirated copies? Users that didn’t update?
• Lesson: be very careful with configuration!
48. SHiFT Codes!
• A few days into launch, we were stable
enough to start using our SHiFT Codes
• Randy Pitchford (@DuvalMagic) got things
started with some quick tests
• Engaged directly with devops team to
measure results
• Got a little TOO engaged…
50. SHiFT Codes: Chaos
• While looking for real-time code redemption results, I
issued a bad query that impacted some monitoring
• Took most of the afternoon and evening to recover
• Redis failover scripts did not work as expected
• Restart monitoring node, stabilize cluster
• Move some monitoring functionality to new node
• Lessons:
• Try not to intermingle monitoring for different components
• Be extra careful querying 100MM record datasets!
51. SHiFT Codes: Optimizations
• During week 2, we used a new type of
code that was active for a period of time
• This allowed us to build a social
engagement strategy around code
redemption times
• Essentially created Flash Mobs for SHiFT
56. SHiFT Codes: Optimizations
• Linear table growth as redemptions increase
• By the second weekend, there were many many rows
• Lookups on this table were missing an index
• Didn’t catch this growth over time in testing
• Query for entitlement and offer info not cached
• This data doesn’t change during a code drop
• Missed this: requires large table and flash mob
• Easy to cache in app layer to reduce DB pressure
57. SHiFT Codes: Unexpected Behavior
Telemetry traffic pattern changes when a code drops
Users Save & Exit game, wait to redeem in menu
Causes spike and lull in telemetry traffic
58. SHiFT Codes: Unexpected Behavior
• We didn’t expect this behavior
• Fortunately this didn’t cause a big problem
• Had extra capacity on hand for launch window
• Lessons
• Carefully think through interactions of systems
• However, must recognize that not all user behaviors
can be predicted
• Be prepared for surprises
59. The Challenge of AAA: DLC
• Successful AAA games must have a DLC plan
• Borderlands 2 successfully launched 5 packs
• Week 4: Gaige: Mechromancer character class
• Week 5: Captain Scarlett & Her Pirate’s Booty
• Week 10: Mr Torgue’s Campaign of Carnage
• Week 17: Sir Hammerlock’s Big Game Hunt
• Week 18: Domination, Madness, and Supremacy
60. The Challenge of AAA: DLC
• This put a lot of pressure on live team
• New Features, bug fixes, balance tweaks
• Packaging and builds
• Meanwhile Spark team had challenges too
• Improve service manageability, security patches, keep it running
• Optimize server performance and costs
• Lesson: Very difficult to do things post-launch
• Plan ahead for anything you need in the first 10 weeks
• Lots of slack in schedule, communicate with dev
62. What Didn’t Happen?
• Spark performed above expectations
• No downtime in launch window
• User-facing components didn’t buckle
• Team wasn’t killed keeping it going
64. Why Did We Succeed?
• Great team of smart, passionate, and
committed people
• Spent adequate time testing user-facing (10
weeks from certification to launch)
• The cloud: over provision, then scale back
• We launched 2 betas
65. What’s Next?
• We originally developed Spark for a single
title, Borderlands 2
• Felt that constraining scope was key to success
• SHiFT was so successful, we shipped it
again!
• Aliens: Colonial Marines launched February 2013
• Integrated accounts, rewards, and built new
rewards for SHiFT
66. Getting Spark to 1.0
• Finish integrating Amazon features: VPC & ASG
• Optimize costs around known traffic patterns
• Enhanced monitoring and deployment tools
• … And beyond!
• Find new ways to use the platform!
• Experiment with new ways to engage with fans
67. Final Thoughts
• This is really important for next-gen
• Capacity planning is very hard to do
• Coped by being agile and relying on the cloud
• Ship early and often
• Possible even for AAA Games!
Jimmy Sieben @jimmys
jimmy.sieben@gearboxsoftware.com
Editor's Notes
I’ve been programming for over 20 years, professionally for 15I have been making games since 1995 and have been at Gearbox for over 10 yearsNetwork Programming on multiple titlesHalo: Combat Evolved (PC)Brothers in Arms: Road to Hill 30 (PC/Xbox)Brothers in Arms: Hell’s Highway (PC/PS3/Xbox 360)Borderlands 1 (PC/PS3/Xbox 360)Borderlands 2 (PC/PS3/Xbox 360)
In order to do anything interesting, need to know who players arePlatform ID coming from a ticket means it is hard to impersonate a user, as the attack has to generate a signed ticket, but the platform controls the secret key…
We wanted to provide a means to give players rewards from social channels
A code gives you an Offer (customer-facing term is Reward)RewardsOffer Text is localized on backend, sent to client on loginEach instance of an entitlement can have unique parameters (consumable? Amount? which inventory to spawn)
Entitlements can be part of many OffersOffers can contain main EntitlementsSince Offer text is customized per-reward, can build flexible and compelling Rewards from simple building blocks
???:Future-proof design since the smarts live on the server
Live event example: Gear Up event as a lead-in to Sir Hammerlock’s Big Game HuntRight click menu to copy micropatch string to clipboardPaste into INI for local testing, custom configuration via command lineLinks to bugs in backend tools, custom management of patch setsA/B testing and experiments and betas also supported
I recall at GDC Online 2010, the Newtoy team described Words with Friends spiked after John Mayer tweeted about it.
Launch night was big, the first weekend was the peak. Sustained traffic for the first couple of monthsboosted by DLC, eventually settle into a stable player base
First thoughts…Wait, we need to think about this some more…
Why not use the game we already have, Borderlands, to help us learn about building the serviceWe need to iterate, and ship sooner. So let’s launch a beta on Steam!Great choice because it was easy to update, rapid iteration on PC. Good size player base, but not so large that a mistake would destroy the game or seriously damage our fans
This was a case that we missed in internal testing, getting all the network configurations right can be tricky
Bad (or maybe good) luck that the servers were up just long enough that by Btest launch they had drifted enough to expose the bug – we rejected tickets from the futurePatch Tuesday is a thing for a reasonAlso release Micropatches on Tuesdays, built our hotfix workflow around this lesson
We archived all of this data, and constantly replayed it over the rest of development as we refined the system
We started in March, looked at Steam dataPredictable decline to planned July Launch
Unfortunately, R&D caused our schedule to slip a bit, so we didn’t launch until SeptemberMeanwhile, marketing was doing what they do best: selling our game! A couple of things happenedAnd, we announced Borderlands 2!
New set of goals as Borderlands 2 takes shape
Steep learning curve as the team was familiar with traditional IT environment. Experience with virtualization, but on a much smaller scale for internal resourcesStill, we jumped right in and started digesting the APIs, had an environment up and running pretty quickly, with a LONG list of things to improve on post-btest
PII, first-party considerations for platforms we shipped on, regional restrictions, EULA and TOS…I want to talk about a few things that really helped in terms of the actual code
BTest taught us the wisdom here
This is also the mechanism by which we intend to support future A/B tests and experiments within our game
We took these notes from a talk Christopher McArthur from Riot Games gave at GDC Online 2011: “Building the Chat Service for League of Legends: From Struggle to RedemptionEmail sending in those paths, don’t want users abusing themA special hash conputed to ensure a given platform ID cannot get rewards more than once
We had done some isolated load testing of components, but only limited work past BTest of the system as a wholeWe had about 10 weeks from going into final certification before launchNot a lot of time, but enough to get some real work done, so we focused heavily on load-testing at this timeWe planned to support millions of logins and data posts every hour
Here’s the team ready for launch in the war room
Beware tolower() query on indexed columnsOur testing missed this because it only shows on a loaded database
Massive variability in traffic between bottom and the top on this day
You can see the change there at 20:20Found bugs in telemetry code, new failure mode testing didn’t catch
If we hadn’t taken test server down by chance, could have been very messy to deal with.
Not sure how many are pirated copies, versus just users that didn’t patch or have somehow hacked their local setup
Unfortunately, we got a little too engaged…
I love this graph because it really captures the chaos of that afternoon
Graph from first timed release – system help up fine, but at the time I thought of it as a shark fin, a portent of pain to come…
Another test that weekend,fin is getting taller and fatter… uh oh.
Another test, now we are really getting into trouble, like the shark’s body is surfacing
Uhoh, now we are in real trouble
Right at 2pm, code drops and traffic spikes – had to redeem code in main menuDoes not recover for quite some time, users play is interrupted
Did not model or test for itManual scaling and coordination with PR ensured we had capacity for code drops in the early days
I want to talk about something else that was unexpected for us during the launch window.New content launching every 4 or 5 weeks, releases and certifications were back to back and we didn’t want to miss any dates.
The first 10 weeks, up through the second campaign DLC launch, was very intenseThis is definitely something to think about when planning your live team for your service
I am particularly proud of that last point.This is the war room during our peak traffic on Sunday. We were definitely all tired on September 21, but we didn’t turn into zombies in the office just barely keeping it up. We were actually able to send guys home and things kept working.
Team had the right puzzle pieces that fit together, complementing each others’ strengthsThat 10 week period I talked about, we proved out a lot of capacity for our most critical components and knew how to scale themTake advantage of the cloudBut really, the 2 betas helped us tremendously. We found and fixed many problems in those releases, effectively we shipped a 0.1 in BTest1, a 0.2 in BTest2, and something like a 0.9 with Borderlands 2
We developed for one title, but always had the future of this being a cross-title thing in mind, so key elements were designed with extensibility in place
These are all things we have recently completed, or are in the process of wrapping up nowVery happy with how the first iteration of our platform worked outBuilding collaborations with other studios, new ways to use shift codes, new platforms to expand onto
Mantra of ship early and oftenCapacity: Found that it continued to evade us over timePlease fill out Speaker Evaluations in your email when they scanned your badgeStop here – just show the shift code slide again if askedIf doing Q&A, please state your name and affiliation(not to me: repeat questions or rephrase/summarize)