Skip to content

Achievements

Achievements synchronize meaningful game goals with the IGP platform. A project can unlock one-time achievements directly or report progress for cumulative achievements.

EngineStatusPackageDetailed steps
UnityPreviewUnity main packageUnity Quick Start
GameMakerPreviewGameMaker main packageGameMaker Quick Start
GodotPreviewGodot CoreGodot Quick Start

All three engines report achievements through the Desktop Session. The game only needs an attached session and the achievement capability; it does not need to join a room or wait for realtime transport.

  1. Define achievements in the backend and choose stable keys that do not depend on localized display copy.
  2. Complete Startup and connection and confirm that the current session advertises achievements.
  3. Trigger unlock or progress reporting at a clear business event such as level completion, collection completion, or a cumulative counter update.
  4. Keep the same idempotency identifier when retrying one business event. A network retry must not become a new event.
  5. Handle success, duplicate, and error results. A duplicate unlock normally means an earlier request succeeded and must not grant the in-game reward twice.
  6. Keep achievement clearing in test flows or explicitly authorized reset tools, never in the normal player path.
  • Keep achievement keys aligned with backend configuration while localizing names and descriptions separately.
  • Use the game’s own save state to grant rewards; do not rely on one network callback to prevent duplicate rewards.
  • Queue reportable events while offline and retry them with their original idempotency identifiers after reconnecting.
  • Decide whether cumulative progress uses an absolute total or an increment before implementation.
  • A new achievement unlocks and appears on the platform.
  • Repeating the same unlock does not grant the business reward again.
  • A cumulative achievement grows according to its backend definition.
  • A detached Desktop Session produces a clear failure or queued result and can be retried safely.
  • Test-account clearing is absent from production player flows.