>_ DevTrendsfr

Langue

Accueil

Langages

Sections

Frontend Backend Mobile DevOps AI / ML GameDev Blockchain Embarqué Sécurité
C-sharp

Comment fonctionne Unturned en coulisses : dissection du code source d'un jeu de survie zombie populaire

De nombreux développeurs de jeux passent des années à se demander comment les grands projets parviennent à équilibrer des mondes ouverts massifs avec un code réseau stable. Parfois, la réponse est juste devant nous, et elle se trouve sur GitHub. Smartly Dressed Games a publié U3-SDK en open source — c'est essentiellement le « squelette » de leur jeu à succès Unturned, construit sur le moteur Unity.

Je suis tombé sur ce dépôt en cherchant des exemples d'implémentations de SDK volumineux pour le modding. Ce n'est pas juste une collection de scripts pour créer de nouveaux chapeaux ou armes. Ce que nous avons ici, c'est le code source principal du jeu, qui révèle comment un projet comptant des millions de joueurs a survécu et évolué pendant plus d'une décennie.

Pourquoi un développeur devrait explorer le SDK d'un autre

Si vous créez votre propre jeu sur Unity, vous le savez : les tutoriels YouTube montrent souvent des exemples « stériles ». En réalité, vous devez gérer l'optimisation d'inventaires massifs, la synchronisation de véhicules sur le réseau, et toute une série d'autres problèmes.

U3-SDK est intéressant parce que c'est un projet vivant. Il est mis à jour presque quotidiennement. C'est une excellente opportunité pour voir comment les professionnels organisent l'architecture d'un grand projet C#, comment ils travaillent avec les assets, et comment ils construisent le processus de chargement des mods depuis le Steam Workshop.

À l'intérieur du dépôt

Le projet est basé sur Unity 2022.3.62f3. C'est une version LTS assez récente, donc le code ne ressemble pas à des reliques antiques de l'ère Unity 5. Juste après le clonage et l'ouverture de la scène GameStartup.unity, vous atterrissez dans l'environnement de travail du jeu.

Architecture et mise en réseau

L'une des choses les plus cool ici est l'implémentation du réseau. Unturned est connu pour ses serveurs avec des centaines de joueurs. Dans le SDK, vous pouvez voir comment les tâches sont distribuées entre le client et le serveur. Par exemple, comment les impacts de balles ou les mouvements de personnages sont traités pour minimiser la latence.

Système d'objets et de fabrication

Si vous avez déjà essayé d'écrire un système d'inventaire, vous savez à quel point c'est un casse-tête. Dans U3-SDK, vous pouvez étudier comment la base de données des objets est implémentée. Ce n'est pas juste une liste JSON, mais une structure complexe avec le support de différents types de données, des états d'usure et de personnalisation.

Outils de création de contenu

Le développeur Nelson Sexton a ajouté au SDK des exemples complets de création de logique complexe. Sur la chaîne officielle, il y a une vidéo montrant la création d'une roquette autoguidée basée sur ce code. C'est un exemple clair de comment fonctionne l'API du jeu : de l'acquisition de la cible à la physique de vol du projectile.

Comment exécuter ceci sur votre PC

Le processus d'installation est le plus transparent possible, bien qu'il nécessite que le jeu soit installé sur Steam, car le SDK récupère des binaires lourds et des assets depuis le dossier principal d'Unturned. C'est une solution judicieuse : le dépôt ne pèse pas beaucoup, et vous avez accès à tout le contenu du jeu.

  1. Clonez le dépôt.
  2. Installez la version Unity requise via Hub.
  3. Lancez Steam et vérifiez qu'Unturned est installé.
  4. Ouvrez le projet et appuyez sur Play dans la scène de démarrage.

Au fait, si vous prévoyez de plonge dans le code, mieux vaut installer Visual Studio avec les charges de travail Unity et développement desktop .NET dès le départ. Sans cela, naviguer entre les classes deviendra un calvaire.

Valeur pratique pour votre projet

Je vois plusieurs scénarios d'utilisation de U3-SDK, même si vous n'êtes pas fan de jeux d'apocalypse zombie :

  • Apprendre les patterns. Voyez comment les singletons, les gestionnaires de ressources et les systèmes d'événements sont implémentés dans un projet à forte charge.
  • Optimisation. Unturned fonctionne sur du matériel très faible. Le code contient de nombreuses solutions intéressantes pour économiser la mémoire et le temps CPU.
  • Créer des mods. C'est le chemin évident. Au lieu de deviner pourquoi votre plugin « fait planter » le serveur, vous pouvez le déboguer directement dans le contexte du code source du jeu.

Cela vaut-il le téléchargement

Si vous débutez dans le gamedev, le projet pourrait sembler surchargé. Il y a beaucoup de code, et il y a encore plus de connexions entre les classes. Mais pour ceux qui ont déjà pris leurs premiers coups dans Unity, c'est un véritable manuel.

Il n'y a pas de « balles en argent » ici, mais il y a des solutions éprouvées par le temps. Le dépôt est activement vivant, avec près de deux cents issues ouvertes et des commits réguliers. C'est un cas rare où un jeu commercial à succès est aussi ouvert envers la communauté.

C'est adapté pour ceux qui veulent comprendre l'architecture sandbox, le code réseau et la construction de systèmes extensibles. Si vous prévoyez de publier votre propre jeu sur Steam avec support des mods, vous devez absolument étudier U3-SDK — ne serait-ce que pour voir comment les meilleurs le font.

Projets similaires