Bonjour ! Nos articles ont été jusqu'ici centrés sur le style visuel et l'univers d'Outer Wonders. Cependant, transformer le tout en jeu requiert aussi de la technologie. L'article d'aujourd'hui vous propose donc d'en apprendre plus sur ce sujet !
Comment fonctionne un jeu vidéo ?
Comme vous le savez certainement, les jeux vidéo sont des applications infomatiques qui chargent du contenu (niveaux, images, sons), traitent vos demandes d'interaction (par exemple : "le joueur 1 a appuyé sur le bouton A"), réalisent un certain nombre de calculs, transforment le tout en une série d'images accompagnée de son, et sauvegardent parfois des données (par exemple : vos parties sauvegardées et vos meilleurs scores).
Le fonctionnement de votre ordinateur, console, téléphone ou tablette peut donc être résumé par le schéma suivant.
Les technologies de jeu vidéo doivent donc être en mesure de faire travailler tous ces composants en équipe afin de créer une expérience unique.
Cette collaboration peut être délicate à mettre en œuvre, car tous ces composants parlent des langues différentes et il se trouve que les ordinateurs, appareils mobiles et consoles n'embarquent pas tous exactement les mêmes composants !
En d'autres termes, même si un jeu fonctionne correctement sur votre ordinateur, il n'est pas garanti qu'il fonctionnera aussi sur votre téléphone, votre console, ni même sur d'autres ordinateurs.
L'arrivée des moteurs de jeux
Au début et au milieu des années 1990, la situation décrite ci-dessus posait d'importants problèmes aux développeurs. En effet, concevoir une technologie capable de fonctionner sur tous les PC impliquait de prendre en charge des composants n'ayant rien à voir les uns avec les autres (à titre d'exemple, les joueurs des années 1990 se rappelleront peut-être avoir navigué dans des menus Settings où ils devaient désigner manuellement leur modèle de carte son – Sound Blaster et Ultrasound, ça vous rappelle des souvenirs ?).
Par conséquent, les technologies de jeux vidéo devaient connaître la langue de chaque composant avec lequel elles pourraient avoir à traiter.
De plus, la gestion du contenu (c'est-à-dire par exemple : le chargement des niveaux, des textures et des sons à partir de fichiers) était un processus complexe et chronophage.
C'est donc pour toutes ces raisons que le concept de moteur de jeu a commencé à se populariser chez les développeurs de jeux vidéo.
Les moteurs de jeux sont des technologies conçues pour résoudre tous ces problèmes et rendre ainsi le développement de jeux vidéo plus aisé.
Conception de notre technologie taillée pour nos besoins
Depuis que les premiers moteurs de jeux ont été créés, la communication avec la plupart des composants d'un ordinateur s'est simplifiée, avec la démocratisation de technologies standardisées connues sous le nom d'API (Application Programming Interfaces, ou Interfaces de Programmation d'Applications), facilitant grandement le développement de jeux multiplateformes sans avoir à recourir à un moteur de jeu.
Pour cette raison, les moteurs de jeux d'aujourd'hui sont conçus de plus en plus comme des outils de productivité permettant de créer et de publier des jeux dans un laps de temps réduit.
Cependant, en poursuivant ce but, les équipes derrière les moteurs de jeux modernes doivent faire face à un défi majeur : comment concevoir un moteur de jeu adapté à la réalisation de jeux de genres très différents ? À titre d'exemple, les jeux d'aventure présentent de nombreuses différences avec les jeux de course, donc créer une technologie répondant aux besoins de ces deux genres de jeux nécessite des compromis.
C'est ainsi que les moteurs de jeux d'aujourd'hui sont devenus particulièrement complexes.
Du fait de cette complexité, nous avons opté pour une approche différente avec Outer Wonders.
Plutôt que d'utiliser un moteur existant, nous avons pris la décision de créer notre propre moteur à partir de SDL 2, une technologie légère et éprouvée pour réaliser des jeux multiplateformes, nous permettant de traiter les graphismes, le son et les interactions avec le joueur de manière efficace et compatible avec de nombreuses plates-formes, tout en conservant la liberté nécessaire à l'orientation de notre moteur en vue de satisfaire les besoins propres à Outer Wonders.
Alors que la majorité des moteurs de jeux sont créés via les langages de programmation C et C++, nous avons également pris la décision d'utiliser le langage Rust, qui est en grande partie compatible avec C et C++, tout en étant aussi efficace et en offrant une meilleure stabilité.
Concernant les graphismes, notre technologie prend actuellement en charge OpenGL 3.3, Direct3D 11 et Vulkan. Ce qui signifie que nous sommes en mesure de produire des versions d'Outer Wonders pour Windows et Linux dès aujourd'hui avec peu d'efforts pour chacune des plates-formes et prendre en charge la plupart des ordinateurs ayant jusqu'à 10 ans d'âge. En réalité, notre technologie a été testée avec succès sur des ordinateurs Windows embarquant des cartes graphiques de tous les principaux fabricants, ainsi que sur quelques ordinateurs fonctionnant sous Linux.
Et toute cette technologie tient en seulement quelques Mo !
Pour terminer, nous avons également un éditeur de niveaux maison. Voyez ci-dessous ce qu'il nous permet de réaliser !
Et ce n'est pas tout ! Mais nous gardons le reste pour de futurs articles sur ce blog.
En attendant, suivez-nous sur Twitter, Facebook, Instagram, ou suivez notre flux RSS ! Un serveur communautaire Discord est également en cours de préparation.
À bientôt !