Skip to main content

Schema Evolution

Protobuf schemas can be changed however is needed during the development phase of a game, but once these are in production some considerations are to be kept in order to not break the games during updates (or their histories). The most important part is to keep their field IDs, which are the values protobuf uses to de/serialize data (names are not used except as a code-convenience). If a field is not required anymore or needs to change, it must be marked as deprecated and the name can be optionally modified (e.g., float deprecated_bet = 1 [deprecated = true];) adding a new field with a new id (e.g. int32 bet_index = 2;).

Additional Notes
  • During development, if the protobuf schema is altered without considering backward compatibility, it will likely break any ongoing sessions and previous play histories so it is recommended to delete that player and create a new one.