Earthopia

Jeu de survie et de construction en science-fiction réalisé sous Unity lors de la Space Game Jam 99.

Présentation du jeu Earthopia réalisé lors de la Space Game Jam 99

Informations générales

  • Projet : Earthopia
  • Événement : Space Game Jam 99
  • Durée : 10 jours
  • Période : Du 10 au 19 avril
  • Type : Survie, construction et science-fiction
  • Moteur : Unity
  • Langage : C#
  • Outils : Unity, Mixamo, Git
  • Contrôles : Manette, clavier et souris
  • Rôle principal : Gameplay Programmer et intégrateur Unity

Contexte de la Space Game Jam 99

La Space Game Jam 99 est un événement de création de jeux vidéo ouvert aux étudiants de plus de 18 ans, toutes spécialités confondues, intéressés par la protection de la Terre, de l'humanité et par les enjeux du secteur spatial.

Organisée intégralement en ligne, cette Game Jam s'est déroulée sur une période de dix jours, du 10 au 19 avril. Elle avait pour objectif de promouvoir les valeurs de la Fondation de l'Espace et de ses partenaires auprès des futurs acteurs du secteur spatial, mais aussi auprès d'un public intéressé par le jeu vidéo et l'exploration spatiale.

Tout au long de l'événement, notre équipe a eu l'occasion d'échanger avec des professionnels du domaine spatial et de l'industrie du jeu vidéo. Leurs retours nous ont permis d'affiner le concept, de mieux définir les priorités de production et d'améliorer la cohérence de notre expérience de jeu.

Présentation d'Earthopia

Earthopia est un jeu de survie et de construction en science-fiction 3D mêlant exploration, analyse et recyclage de ressources dans un univers post-apocalyptique.

La Terre a disparu, engloutie par la pollution. Réfugiée dans l'espace, Laïka, une astronaute, tente de préparer le retour de l'humanité. Depuis un vaisseau-satellite, elle analyse les vestiges de la planète afin d'identifier des zones encore exploitables.

Pour survivre et reconstruire, elle doit collecter et recycler des débris spatiaux, puis utiliser les ressources obtenues pour fabriquer différentes machines capables de relancer progressivement la vie : un germinateur, un purificateur d'air et une pompe à eau.

Une expérience divisée en plusieurs phases

Le jeu repose sur une succession de phases complémentaires. Le joueur explore d'abord le hub principal, puis accède à une phase de collecte en apesanteur durant laquelle il récupère des débris à l'aide d'un grappin.

Les matériaux collectés sont ensuite utilisés dans une phase de construction sur Terre. Le joueur doit y placer des machines, restaurer les ressources indispensables à la vie et survivre dans un environnement hostile.

Contrôles et accessibilité

Nous avons privilégié une prise en main simple, principalement pensée pour les manettes Xbox et PlayStation. Les déplacements et les actions ont volontairement été limités afin de rendre le jeu rapidement compréhensible et accessible à un public varié.

  • Déplacement : stick gauche ou touches Z, Q, S et D.
  • Caméra : stick droit ou souris.
  • Menu et pause : bouton Start ou touche Échap.
  • Grappin : bouton Y ou clic gauche.
  • Validation : bouton X.
  • Interaction : bouton B.
  • Placement des machines : bouton A.

Ma contribution au projet

Au cours de cette Game Jam, je suis principalement intervenu sur les aspects techniques, la programmation gameplay, l'expérience utilisateur et l'intégration de nouveaux systèmes dans Unity.

Character controller de Laïka

J'ai mis en place le contrôleur du personnage principal, Laïka. J'ai commencé par intégrer dans Unity le modèle 3D réalisé par les artistes, puis j'ai recherché et importé des animations adaptées depuis Mixamo.

J'ai ensuite créé l'Animator Controller et développé les différents scripts modulaires nécessaires à la gestion du personnage :

  • déplacements du personnage ;
  • gestion de la caméra ;
  • interactions avec l'environnement ;
  • activation des différentes actions de gameplay ;
  • compatibilité avec le clavier, la souris et la manette.

Le contrôleur a ensuite été adapté aux différentes phases du jeu, qui imposaient chacune des contraintes de mouvement et de caméra particulières.

Système de grappin

J'ai programmé et intégré le grappin utilisé durant la phase de collecte en apesanteur. Il permet au joueur de récupérer les débris spatiaux situés dans l'environnement.

Le système comprend la détection des objets ciblés, le déploiement du grappin, la récupération des ressources ainsi qu'un temps de recharge destiné à réguler son utilisation.

Une animation de déploiement et de retour a également été intégrée afin de rendre l'action plus lisible et plus satisfaisante pour le joueur.

Timer de la phase de collecte

J'ai développé le système de temps limité de la phase de collecte. Celui-ci permet de définir la durée disponible pour récupérer des ressources avant la fin de la séquence.

Le timer est relié à l'interface utilisateur et au déroulement global de la phase afin de fournir au joueur une information claire sur le temps restant.

Système de placement des machines

J'ai conçu le système de placement utilisé dans la troisième phase du jeu. Il permet au joueur de sélectionner puis de positionner les machines nécessaires à la reconstruction de l'environnement.

Une prévisualisation du futur emplacement est affichée avant la validation. Le système vérifie également les collisions et les contraintes de placement afin d'empêcher la construction d'une machine dans une zone invalide.

Ce système a notamment été utilisé pour le germinateur, le purificateur d'air et la pompe à eau.

Paramètres en jeu

J'ai conçu et intégré un panneau de paramètres regroupant les principaux réglages du jeu. Celui-ci permet notamment de modifier les volumes sonores et plusieurs options liées à la sensibilité des contrôles.

Cette fonctionnalité a nécessité l'ajout de nouvelles actions dans l'Input System de Unity afin de permettre l'ouverture et la navigation dans le menu aussi bien au clavier qu'à la manette.

J'ai également adapté l'architecture de gestion des entrées existante et développé un gestionnaire central chargé de l'ouverture, de la fermeture et de l'application des différents réglages.

Transformation du hub en environnement 3D

Ma contribution la plus importante a concerné la refonte complète du hub principal. Dans sa première version, celui-ci reposait essentiellement sur une succession d'interfaces traditionnelles.

Je l'ai transformé en un véritable environnement 3D explorable, dans lequel le joueur peut se déplacer librement entre les différentes zones du jeu.

J'ai intégré les modèles du nouvel environnement, incorporé les textures et appliqué les matériaux nécessaires afin de conserver une direction artistique cohérente sur l'ensemble du hub.

J'ai également adapté le contrôleur du personnage aux contraintes de cet espace. Certaines fonctionnalités, comme le saut ou certaines libertés de rotation de la caméra, ont été limitées afin de garantir une navigation plus stable et plus lisible.

Les anciennes interfaces ont été transformées en écrans directement intégrés dans l'environnement. J'ai développé les systèmes permettant au joueur d'interagir avec ces éléments depuis le monde 3D, ainsi que les zones de transition permettant de charger les différentes scènes du projet.

Cette refonte a considérablement renforcé l'immersion et a permis au hub de devenir une véritable composante de l'expérience plutôt qu'un simple menu de sélection.

Corrections et améliorations de la phase de collecte

J'ai corrigé plusieurs problèmes liés au grappin, notamment son animation de déploiement et de retour, afin de rendre son comportement plus cohérent visuellement.

J'ai également remplacé certains modèles 3D par leurs versions les plus récentes, notamment les câbles présents dans l'environnement.

Une animation de rotation a été ajoutée aux objets collectables pour améliorer leur visibilité et leur donner un comportement plus crédible dans un environnement en apesanteur.

Amélioration des interfaces

J'ai participé à la refonte de plusieurs interfaces du projet, notamment par l'intégration d'une nouvelle police d'écriture plus cohérente avec la direction artistique.

Cette intégration a nécessité plusieurs réglages dans TextMeshPro, notamment pour garantir l'affichage correct des caractères accentués et maintenir une bonne lisibilité sur l'ensemble des menus.

Tests et équilibrage de la phase sur Terre

J'ai mené plusieurs phases de tests sur la séquence se déroulant sur Terre afin d'améliorer les sensations de contrôle et la fluidité du gameplay.

Les principaux éléments ajustés ont été :

  • la vitesse de déplacement du personnage ;
  • la vitesse et la durée de l'animation de saut ;
  • la sensibilité horizontale et verticale de la caméra ;
  • la prise en main au clavier et à la souris ;
  • la prise en main à la manette ;
  • la lisibilité et le rythme des interactions.

Compétences mobilisées

  • programmation gameplay en C# ;
  • développement de character controllers ;
  • gestion de l'Input System de Unity ;
  • intégration et configuration d'animations ;
  • création de systèmes d'interaction ;
  • développement d'un système de construction ;
  • conception d'interfaces et de paramètres en jeu ;
  • intégration d'environnements, textures et matériaux 3D ;
  • gestion des transitions entre plusieurs scènes ;
  • tests, équilibrage et correction de bugs.

Une expérience poursuivie au-delà de la Game Jam

La Space Game Jam 99 a permis à notre équipe de construire les bases d'Earthopia en seulement dix jours. Le potentiel du concept et les retours obtenus nous ont ensuite encouragés à poursuivre le développement du projet.

Cette seconde phase de production nous a permis de reprendre les systèmes existants, de corriger les principaux problèmes, de renforcer l'expérience utilisateur et de transformer plusieurs prototypes de Game Jam en fonctionnalités plus complètes et plus robustes.

Équipe et participants de la Space Game Jam 99