Handling Game Updates
Game updates are a normal and expected part of the game lifecycle. Updates are used to optimize the gameplay, freshen the look or feel, to add exciting new capabilities, or to fix bugs. Skillz is a competitive, real-prize platform so there are additional considerations that have to be made when preparing and releasing game updates.
Non-Breaking Changes
Non-breaking changes are ones that have no effect on fairness, perceived or actual. The game experience is identical to the release build, where players who play the new build will see no differences in it from the previous release. These changes should be compatible with the existing game tournament templates and gameplay parameters.
Important
Breaking changes which are not implemented correctly will negatively impact game revenue, so it is critical that developers correctly evaluate changes to determine if they are "breaking", and that those changes be implemented correctly for rollout.
Breaking Changes
Breaking changes are changes to a new build that make it substantially different from the last release, or which can have any impact on fair play. This includes but is not limited to:
- Changes to the gameplay experience
- Graphics
- The way a user interacts with the game board
- Score, difficulty, time limits or durations
- Addition or removal of previously existing mechanics
- Game models
- Match results screen
- Any new content that is inaccessible to players on older versions
- Any other changes that require edits to gameplay parameters or their values
If any of these types of changes are being planned or implemented, or if there is risk of two players not receiving the identical experience, we consider this a Breaking Change.
Development of Breaking Changes
Develop the update using the sandbox
environment. The default behavior of the new game build should match the currently released client behavior. A player with the new build should receive the exact same experience as a player with the last release build, under the current tournament template's gameplay parameters.
Implementation Requirement
The breaking change(s) must be enabled through a new gameplay parameter or through a change in an existing gameplay parameter's value. Otherwise, players on different versions of the game may be matched in tournaments, impacting fairness, which may result in refunds.
This requirement makes sure that the change to the game can be managed appropriately, since it is not possible to predict when certification (by App Store, etc.) will be complete, and the new build will be live. Once the update is live across all endpoints, and the majority of players have been updated to that version, the updated tournament template(s) will be updated, enabling the changed functionality.
Release Plan for Breaking Changes
When development and testing is complete, switch the environment to production
and follow the general steps below to release the update:
- Release the update to the app stores and games.skillz.com.
- Allow as much time as possible for users to update the new version, naturally.
- App store rollout timing is inconsistent, so players will receive access to the updates at different times.
- Auto updates often run overnight for users.
- Natural adoption via automatic and manual methods is ideal, as forced updates lock players out until they take further actions. This risks impact to daily active users.
- Once all platforms are confirmed to have access to the release, you must request that all previous builds be disabled via the Developer Console. This is known as a forced update as it renders disabled builds unplayable.
- Request that all tournament templates be updated to enact the new gameplay parameter key/values. This will enable the breaking changes for all players, simultaneously. Note that all tournaments awaiting a match will be cancelled when this update occurs, and all entry fees for those tournaments will be refunded. For that reason, the Skillz team will determine an off-peak time for this change.
- The update is now complete, with all matches maintaining fair play.