Jeu d’exploration du système solaire

DIY_simulateur

Il y de cela 2 ans environ, je me suis lancé dans la construction d’un simulateur de navette spatiale, ou plutôt le développement d’un jeu d’exploration du système solaire integré dans une cockpit fait maison.

Je vais donc présenter dans cet article ce projet qui m’a pris beeeaaaauuuccouuup de temps, mais qui a été vraiment super à réaliser.

Projet Initial

Comme je le disais en intro, l’idée de ce projet était de concevoir un jeu d’exploration du système solaire et d’intégrer ce jeu dans une cabane comportant un cockpit interagissant avec ce jeu. Cette cabane serait ensuite placée dans la chambre de mon beau-fils, accoté à son lit mezzazine.

Quelques images du projet initialement pensé :

cockpit seul
cockpit +lit

Organisation du Projet

Ce projet s’est déroulé selon plusieurs phases, et s’est étalé sur environ 2 ans (avec une bonne pause au milieu, donc un temps de développement d’environ 6 mois en cumulé je dirais).

Voici les différentes étapes de ce projet :

  • Définition du projet et besoins (dessins/plans préliminaires, besoins HW & SW)
  • Développement du jeu d’exploration sous Unity (C#)
  • Plans finaux de la cabane
  • Construction du panneau de contrôle (avec intégration de toute l’électronique)
  • Tests du jeu après intégration
  • Bug fix / améliorations
  • Construction du reste de la cabane
  • Installation

Définition des besoins

Pour réaliser ce projet, j’ai tout d’abord mis sur le papier toutes les idées que j’avais (forme de la cabane, intégration avec le lit, avoir un cockpit intégrant un écran, des boutons lumineux, des joysticks, gameplay, … ).

Les éléments essentiels à ce projet ce sont vite démarqué: du bois pour cabane, le combo PC + écran, un set de boutons/joysticks d’arcade. Le reste étant principalement du travail de dev. Au fil du projet d’autres éléments se sont ajouté: des potentiomètres, des leds, des interrupteurs (des éléments « immersion », n’ayant aucunes influence sur le jeu lui même). Je les présente plus bas dans cet article.

Développement du jeu

Le plus gros du boulot a été le développement du jeu. La raison principale est que je n’y connais rien en développement de jeu vidéo. Toutefois, grâce à mon boulot, j’avais déjà pu touché un peu au framework Unity, et je développais déjà un peu en C#. Bon, l’environnement de développement posé, il faut maintenant se mettre au boulot.

1ère étape : définir le jeu, son gameplay, ses fonctions…bref, faire des spécs.

Principe du jeu :

Le jeu est très simple, il s’agit d’un jeu d’exploration du système solaire. Ni plus, ni moins. En conséquence, il s’agit de piloter un vaisseau (vue à la 1ère personne, pour simuler la vue depuis la fenêtre du cockpit). On peut donc se balader n’importe où, et aller découvrir les différentes planètes et le soleil.

Lorsque le jeu commence, le joueur se trouve en orbite autour de la Terre, face à l’ISS d’où il vient de se détacher.

Vue depuis le vaisseau au lancement du jeu

Fonctionnalités :

Voici les quelques fonctionnalités du jeu :

  • Déplacement libre
  • Gestion de la vitesse: orbitale / nominale / boost
  • « GoTo » : montre la direction d’une planète par un appui bouton
  • U.F.O : déplacement automatique vers un O.V.N.I. qui se ballade de manière aléatoire au voisinage du soleil
  • Restart : retour vers l’ISS
  • Appuis boutons générant seulement des sons d’ambiance (« radar », «warning »).
  • Banque de son d’ambiances issus des missions Apollo / Discovery / Mercury (https://assetstore.unity.com/packages/audio/sound-fx/nasa-mission-audio-776)

Présentation de l’interface :

L’interface est largement inspirée de l’interface du logiciel de docking du Soyouz (d’où le cyrillique!)

vue de l’interface de jeu
  1. Infos tout à fait inutiles
  2. position spatiale de l’ovni sur la map
  3. temps écoulé depuis le début de la partie
  4. position spatiale du vaisseau sur la map
  5. position angulaire du vaisseau
  6. indicateurs de vitesse (vitesse courante / acceleration (bool) / BOOST (bool)

Objets du système solaire représentés :

Voici ci-dessous la liste des objets de notre système solaire que l’on peut visiter :

  • Soleil
  • Mercure
  • Venus
  • Terre / ISS / Lune (+LEM sur la lune)
  • Mars / Phobos / Deimos
  • Jupiter / Io / Europa
  • Saturne
  • Uranus
  • Neptune
  • Pluton

Tous les assets représentés ici sont des assets payants / libres que l’on peut trouver dans l’asset store d’Unity (https://assetstore.unity.com/). J’ai fais le choix d’utiliser des ressources existantes car je n’avait ni les compétences ni le temps pour les créer.

Voici donc les liens vers les différents packages d’Unity que j’ai pu utiliser :

Compilation et déploiement

Le jeu a été développé avec le framework Unity, sous Windows, puis compilé et déployé pour la plateforme Unix. Le versioning du projet a été fait avec Gitlab dans mon repo privé.

Construction du cockpit

Design / plans du cockpit

Une fois le jeu assez bien avancé, j’ai pu commencer la construction du cockpit. La première étape étant de dessiner un peu mieux ce à quoi cela devrait ressembler. Les plans et croquis ont été fait sous Sketchup.

Ci-dessous une vue du cockpit en cours de dessin (ce n’est pas la version finale, les enceintes ont été par la suite délocalisées plus bas).

dessin du cockpit (version intermédiaire)

Le cockpit est composé de 2 parties:

  • Le panneau frontal, qui comprend l’écran du jeu, et des éléments de décor (potentiomètres, LED, interrupteurs).
  • Le panneau de commandes composé des boutons et joysticks permettant de contrôler le vaisseau et d’envoyer des commandes au jeu. Il y a 2 joysticks de prévu : à gauche la commande d’accélération (1 axe vertical), à droite le joystick de direction (2 axes pitch / roll)
schéma des axes simulé dans le jeu

Niveau boutons, 8 boutons « planètes » sont prévu afin de pointer la direction de chacune pour un accès plus facile parmi l’étendu du système solaire. 1 bouton de boost, pour se déplacer plus vite, 1 bouton « restart » pour recommencer la partie, 1 bouton « UFO » pour se déplacer jusqu’à l’OVNI, et 2 boutons émettant des sons de radar et de d’alarme.

Construction du cockpit

Après les plans, il est temps de passer à la phase de construction ! Direction le magasin de bricolage !

Pour réaliser l’ensemble de la cabane, il ne m’a pas fallu grand chose à savoir des grands panneau de contreplaqué de 10mm d’épaisseur, de la colle à bois, de la vis à bois, des pointes. Niveau outillage, du classique tel que scie sauteuse, scie circulaire, visseuse, ponceuse.

Voici des photos prises au court de la construction :

Construction du panneau de commandes
préparation des boutons et joysticks sur le panneau de commandes
après un peu de découpe et de perçage, on intègre les éléments.
test sous tension
l’envers du décor
Construction du panneau de frontal
placement des éléments de décor
perçage et intégration de l’écran dans le panneau frontal
peinture du panneau frontal
panneau frontal (panneau arrière) en cours de réalisation
peinture du panneau arrière, on voit les emplacements des enceintes sur le bas du panneau
assemblage des différents éléments
en cours d’assemblage
vue arrière pendant l’assemblage, et câblage des LED et interrupteurs
test sous tension des LED et interrupteurs
Vue arrière après assemblage, câblage et intégration des hauts-parleurs
1ers tests du jeu en conditions réelles ! Mon pc portable est utilisé pour les tests, après installation finale, un ordinateur dédié a été installé derrière le panneau frontal.
Construction des panneaux latéraux

On commence à en voir le bout, ici, quelques photos des panneaux latéraux. Dans celui de droite (celui qui donnera sur la chambre), j’y ai percé un hublot.

Quelques logo de l’ESA, du CNES et d’Arianespace imprimés et collé sur les panneaux pour plus de réalisme !

peinture des panneaux latéraux
vue du panneau latéral droit, après peinture et stickers !

Assemblage Final / Installation

Après tant d’heures passées sur ce projet, la fin pointe le bout de son nez, encore un dernier effort de bricolage et voici le résultat final de la cabane installée dans la chambre :

installation dans la chambre
on voit dans le coin inférieur droit la trappe où se cache le PC sur lequel tourne le jeu
vue intérieure

Vidéo Démo

Voici une vidéo de démo du jeu, il y a un petit peu de lag parfois, dû à l’enregistrement en temps réel.

Résumé Matériel

Au final, niveau équipement/matériel, voici tout ce qui a été utilisé :

pour le jeu :

  • 1 PC de bureau sous Ubuntu + 1 écran HDMI
  • 1 kit Arcade 2 joueurs
  • 2 paires de hauts parleurs (treble + medium)

pour le panneau frontal :

  • 1 bouton ON/OFF lumineux (câblé sur le bouton ON/OFF du PC) 12 potentiomètres de décor
  • 12 switch connectés au total à 16 LED (éléments de décor)
  • 1 carte Arduino (pour alimenter les LED via un USB branché au PC)

pour la construction de la cabane :

  • des panneaux de contreplaqués de 10mm d’épaisseur
  • pâte à bois
  • colle à bois
  • visserie / pointes
  • quelques tasseaux pour solidifier et assembler les panneaux

Pour terminer

Ce projet m’aura pris pas mal de temps, entre le développement du jeu, la construction de la cabane, les nombreux essais, les bug fix, les améliorations, ..Mais ce fût une expérience très enrichissante. J’ai ainsi pu me former au développement de jeu vidéo, approfondir mes connaissances sur le système solaire (sa mécanique et quelques uns de ses constituants), et développer mes compétences au travail du bois. Bref, un travail assez complet, qui a su m’animer jusqu’au bout.

Malgré le caractère amateur d’une telle réalisation, les approximations, les défauts de conception, les bugs, ou autre, je pense que ma plus belle fierté sur ce projet restera sans hésitation d’avoir réussi à faire rêver un petit garçon qui à découvert le jour de son anniversaire un vaisseau spatial dans sa chambre…

A bientôt, pour une nouvelle réalisation,

Loïc

Jeu d’exploration du système solaire

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

Retour en haut