Communitygithub.com

unity-technologies/construire-un-jeu-en-direct

Créez et exploitez un jeu en direct à l'aide de Unity Services. À utiliser lorsque l'utilisateur doit implémenter, connecter ou déboguer des fonctionnalités pilotées par le backend — passes de combat, succès, progression des joueurs, sauvegardes cloud, classements, matchmaking, économies virtuelles, logique serveur autoritaire, anti-triche, comptes joueurs et authentification, configuration à distance, indicateurs de fonctionnalités, tests A/B, analyses ou déploiement de ressources cloud. Se déclenche sur les opérations en direct, le service en direct, le backend, l'autorité serveur, le code cloud, la sauvegarde cloud, la configuration à distance, les données joueur, la rétention, la boucle de monétisation, le passe de saison, le classement, les sessions multijoueurs, les salons ou toute intégration Unity Services.

Qu'est-ce que construire-un-jeu-en-direct ?

Cette compétence fournit un guide complet pour créer et exploiter un jeu en direct avec Unity Gaming Services (UGS). Elle couvre l'ensemble du processus, de l'initialisation des services à l'authentification des joueurs, en passant par l'utilisation de services clés comme Cloud Save, Cloud Code, Remote Config, Economy, Leaderboards, Multiplayer, et Analytics. L'architecture présentée met en avant un principe fondamental : pour toute donnée sensible (XP, récompenses, monnaie), les écritures doivent transiter par Cloud Code pour garantir l'intégrité du jeu et la sécurité anti-triche. La compétence offre des références rapides pour chaque service, ainsi que des plans de fonctionnalités prêts à l'emploi (inventaire, économie d'or, quêtes, etc.) et des modèles d'architecture réutilisables. Elle inclut également des listes de validation pour le déploiement et des vérifications de conformité avec les conditions d'utilisation du Unity Asset Store. Destinée aux développeurs Unity souhaitant intégrer des fonctionnalités backend complexes sans écrire de logique serveur personnalisée de zéro, cette compétence supporte tous les packages UGS officiels et facilite la création de jeux complets et opérationnels.

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/unity-technologies/skills/tree/main/skills/build-live-game

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Construire un Jeu en Direct avec Unity Gaming Services

Paquets UGS

PaquetVersion MinimaleObjectif
com.unity.services.core1.16.0Initialisation, graphe de dépendances
com.unity.services.authentication3.6.1Connexion et identité du joueur
com.unity.services.cloudcode2.10.3Modules C# autoritaires côté serveur
com.unity.services.cloudsave3.4.0Stockage clé-valeur par joueur et partagé
com.unity.remote-config4.2.5Configuration de jeu côté serveur
com.unity.services.deployment1.7.2Déploiement de ressources cloud depuis l'Éditeur
com.unity.services.tooling1.4.1Contrôle d'Accès et Surcharges de Jeu
com.unity.services.apis1.1.1Clients REST générés pour tous les services UGS

Modèle d'Initialisation

Tout jeu UGS commence de la même manière. com.unity.services.core doit s'initialiser en premier, puis le joueur se connecte :

using Unity.Services.Core;
using Unity.Services.Authentication;

await UnityServices.InitializeAsync();
await AuthenticationService.Instance.SignInAnonymouslyAsync();
// Tous les autres services sont maintenant prêts

Après InitializeAsync(), les singletons de service (par ex. CloudSaveService.Instance, CloudCodeService.Instance) sont disponibles.

Carte des Paquets

Fondation

PaquetObjectifSingleton / Point d'Entrée
CoreInitialisation, graphe de dépendances, registre de composantsUnityServices.InitializeAsync()
AuthenticationConnexion du joueur (anonyme, social, Unity, nom d'utilisateur/mot de passe), identitéAuthenticationService.Instance
Services APIsClients REST générés pour tous les services UGS ; accès API administrateur via comptes de serviceClasses API directes

Données et Configuration du Joueur

PaquetObjectifSingleton / Point d'Entrée
Cloud SaveDonnées clé-valeur par joueur (Par défaut, Public, Protégé) et données personnalisées à l'échelle du jeuCloudSaveService.Instance.Data.Player / .Data.Custom
Remote ConfigConfiguration de jeu côté serveur, indicateurs de fonctionnalités, définitions JSONRemoteConfigService.Instance
EconomyMonnaies virtuelles, articles d'inventaire, achats, magasinsEconomyService.Instance

Logique Serveur et Sécurité

PaquetObjectifSingleton / Point d'Entrée
Cloud CodeModules C# autoritaires côté serveur pour écritures de confiance et validationCloudCodeService.Instance → CallModuleEndpointAsync
ToolingCréer et déployer des fichiers de Contrôle d'Accès (.ac) et Surcharges de Jeu (.ugo)Éditeur uniquement (Fenêtre de Déploiement)
DeploymentDéployer des ressources cloud (.rc, .ac, .ccmr, .lb, etc.) depuis l'Éditeur UnityÉditeur uniquement (Services > Deployment)

Social et Compétitif

PaquetObjectifSingleton / Point d'Entrée
MultiplayerSessions, matchmaking, salons. Blocs de Construction : Session Multijoueur, Session Matchmaker, Session ServeurMultiplayerService.Instance
LeaderboardsSoumission de scores, classements, paliers, historique des versions. Bloc de Construction : LeaderboardsLeaderboardsService.Instance

Télémétrie

PaquetObjectifSingleton / Point d'Entrée
AnalyticsÉvénements personnalisés, événements standard, gestion du consentementAnalyticsService.Instance

Architecture — Comment les Paquets se Combinent

                    UnityServices.InitializeAsync()
                              │
                              ▼
                     AuthenticationService
                    (connexion → PlayerId)
                              │
              ┌───────────────┼───────────────┐
              ▼               ▼               ▼
        Remote Config     Cloud Save      Economy
      (config de jeu,   (état joueur,   (monnaies,
       définitions,     progression,    inventaire,
       feature flags)   préférences)    achats)
              │               │               │
              └───────┬───────┘               │
                      ▼                       │
                 Cloud Code                   │
              (écritures côté                │
               serveur, validation,  ◄─────────┘
               logique anti-triche)
                      │
              ┌───────┼───────┐
              ▼       ▼       ▼
         Cloud Save  Economy  Leaderboards
         (écritures  (octroi   (soumission
          protégées) côté      de score)
                    serveur)

Principe clé : Pour toute donnée affectant l'intégrité du jeu (XP, récompenses, monnaie), acheminez les écritures via des modules Cloud Code. Les écritures directes du client ne sont appropriées que pour les données non sensibles (préférences, paramètres d'affichage).

Services Principaux — Référence Rapide

Authentification

Paquet : com.unity.services.authentication (>= 3.6.1)

Gère l'identité du joueur. Méthodes de connexion : anonyme, fournisseurs sociaux (Google, Apple, Steam, Facebook, Oculus, etc.), navigateur Unity, nom d'utilisateur/mot de passe, et flux de code d'appareil.

Après la connexion : PlayerId et PlayerName sont disponibles. Toutes les méthodes de connexion déclenchent l'événement SignedIn. PlayerAccountService (pour la connexion via navigateur Unity) se trouve dans un assembly séparé (Unity.Services.Authentication.PlayerAccounts).

Cloud Code

Paquet : com.unity.services.cloudcode (>= 2.10.3)

Exécute des modules C# côté serveur (.NET 9) pour des opérations de confiance. Les modules sont déployés sous forme de fichiers .ccmr. Le client appelle :

var result = await CloudCodeService.Instance.CallModuleEndpointAsync<TResult>(
    "NomModule", "NomFonction", args);

Préférez les modules C# aux scripts JavaScript pour la production. Les modules prennent également en charge les messages push en temps réel via des abonnements, les déclencheurs pilotés par événements et le cadrage de session multijoueur.

Cloud Save

Paquet : com.unity.services.cloudsave (>= 3.4.0)

Stockage clé-valeur par joueur avec trois classes d'accès, plus des données personnalisées à l'échelle du jeu :

Classe d'AccèsLectureÉcritureCas d'Utilisation
Par défautPropriétairePropriétaireParamètres privés, préférences
PublicTout le mondePropriétaireProfils publics, noms d'affichage
ProtégéPropriétaireServeur uniquement (Cloud Code)Données anti-triche, état attribué par le serveur
PersonnaliséTout joueurServeur uniquementÉtat de jeu partagé, configurations globales

Les valeurs sont sérialisées au format JSON. Prend en charge le contrôle de concurrence par verrouillage d'écriture via SaveItem, les requêtes côté serveur via QueryAsync, et le stockage de fichiers binaires.

Individual skills in this repo

This repo contains 9 individual skills — each has its own dedicated page.

unity-technologies/2d-pixel-perfect

Sets up, diagnoses, and fixes pixel perfect 2D rendering in Unity projects. Use when working on any retro-style or pixel art 2D game.

unity-technologies/audio-setup-mixers

Scans the scene and audio assets to appropriately route Audio Sources into existing Audio Mixer Groups, classifying each source by what it plays. Use when the user asks about cleaning up mixer assignments, routing audio through a mixer, or which group a sound belongs in. Creating mixers and groups, and setting volumes, are not automated — the skill inventories what exists and asks the user to add anything missing.

unity-technologies/generate-editor-search-query

Generates Unity Search / Quick Search queries and opens the Unity Search window for read-only Unity Editor asset or scene-object lookup requests. Always use when the user asks to find, search, show, locate, filter, look up, query, or list concrete assets or scene objects in the current project or scene, even if Unity Search is not named. Covers materials, textures, prefabs, scenes, scripts, shaders, GameObjects, components, Lights, Cameras, UI objects, labels, paths, references, selected or named assets, and asset types. Also use when the user explicitly mentions Unity Search, Quick Search, Search window, open Search, or asks what Unity Search query to use. Do not use for general project overview, project structure, folder-purpose summaries, gameplay/system explanations, how-to programming questions, web search, repository text search, build logs, package installation, menu or settings search, modifying results, or non-Unity filesystem search unless the user explicitly asks to use Unity Search.

unity-technologies/implement-in-app-purchases

Implement, configure, and debug Unity In-App Purchases (IAP) — store connection, product catalog, consumable/non-consumable/subscription purchases, two-step pending-confirm flow, receipt validation, entitlement checking, restore transactions, Apple extensions (promotional purchases, Ask-to-Buy, code redemption), and Google Play extensions (subscription upgrade/downgrade), D2C Capabilities(direct to customer), 3rd party payment provider (Stripe/Coda) via Unity IAP/Unity Cloud. Use when the user needs to add, modify, debug, or migrate from native Android/iOS billing, 3rd party packages(RevenueCat/Adapty/Essential Kit/Unipay supported) to IAP. Triggers on microtransactions (MTX), monetization, real-money purchases, store purchases, buying items, support D2C, purchase via Stripe/Coda, migrate from native billing(Google's BillingClient or Apple's StoreKit/SKPaymentQueue/SKProduct)/RevenueCat/Adapty/EssentialKit/Unipay.

unity-technologies/initialize-ai-navigation

Sets up and configures the Unity AI Navigation system — NavMesh surfaces, NavMesh agents, obstacles, links, modifiers, areas and costs. Use when creating walkable navigation meshes, adding pathfinding agents, setting up patrol routes, configuring obstacle avoidance and carving, connecting separate NavMeshes with links, coupling navigation with animation, or troubleshooting navigation issues.

unity-technologies/levelplay-unity-integration

Integrates the LevelPlay Mediation SDK via the Ads Mediation UPM package. Use when a developer asks about adding ads to a Unity game, implementing rewarded, interstitial, or banner ads, setting up ad mediation, configuring ad networks, installing or updating the Ads Mediation package, troubleshooting LevelPlay namespace errors, resolving Android gradle or iOS CocoaPods dependency issues for ads, configuring ATT or privacy settings for ad compliance, tracking impression-level revenue (ILRD), initializing the LevelPlay SDK, or setting up ad unit IDs. Also use when a developer wants to monetize their Unity game with ads, asks how to get started with LevelPlay, ads, or mediation, or needs help with any part of the LevelPlay integration workflow including platform-specific setup for iOS or Android. Also use when upgrading the LevelPlay or IronSource SDK version, migrating from deprecated IronSource.Agent APIs, or migrating a game from Unity Ads to LevelPlay.

unity-technologies/localization

Sets up and configures Unity Localization, including locales, String/Asset Tables, CJK font support, and Addressables workflows. Use when the user wants to add languages to a project, translate UI text, support Asian (CJK) languages with TMP fonts, or mentions i18n, l10n, multilingual support, or making a game support multiple languages.

unity-technologies/manage-sprite-atlas

Manage SpriteAtlas using prebuild pipeline with IPreprocessBuildWithReport (DEFAULT approach). Use it to configure master atlases, variant atlases, texture settings, packing settings, and platform-specific configurations. Use when the user asks about creating sprite atlases, optimizing sprites, configuring atlas settings, adding sprites to atlases, creating variant atlases, implementing automated atlas generation, or runtime sprite atlas access. Always use prebuild approach unless user explicitly requests manual authoring.

unity-technologies/migrate-birp-to-urp

Plans, executes, and troubleshoots Unity projects moving from the Built-in Render Pipeline (BiRP/BIRP/Built-in RP) to the Universal Render Pipeline (URP). Use when the user asks to upgrade, convert, switch, or migrate a project, scene, material, or shader to URP/Universal Render Pipeline; fix pink or magenta materials after URP; convert Built-in materials/shaders; move a 2D project to URP 2D; review lighting, quality, post-processing, baked lightmaps, or reflection probes after URP; or diagnose visual problems after a render-pipeline migration.

Skills associés