Depuis quelques semaines, les nouveaux outils d’OpenAI occupent une place de plus en plus importante dans mon environnement de développement. Étant moi-même un fervent consommateur de crédits OpenAI, je me suis lancé un défi un peu fou, recréer, directement dans un navigateur web, un jeu inspiré de Battlefield Heroes.

Pour ceux qui ne l’ont pas connu, Battlefield Heroes était un jeu sorti en 2009 qui proposait une approche beaucoup plus légère, colorée et décalée de la licence Battlefield.

Mon objectif n’était évidemment pas de reproduire le jeu original à l’identique, mais plutôt de retrouver une partie de son esprit et de son ambiance tout en expérimentant jusqu’où l’assistance par IA pouvait m’accompagner dans le développement d’un véritable jeu.

D’un simple prototype à un véritable petit jeu

J’ai commencé par créer, avec l’aide de GPT, les fondations d’un jeu de tir solo inspiré de cet ancien titre dans une V3 disponible ici.

Puis, pendant environ une semaine, j’ai conçu, corrigé et amélioré le projet pour lui ajouter toujours plus de fonctionnalités et progressivement l’éloigner du simple prototype technique. Et les choses sont allées assez vite comme le montre la version finale ici.

J’ai notamment intégré des mécaniques de combat plus poussées, des animations, des arbres destructibles, la conduite de chars, différentes armes secondaires ainsi qu’une vue à la troisième personne.

Mais je ne voulais pas m’arrêter là. J’ai également développé une interface inspirée de l’esprit de Battlefield Heroes, avec une direction volontairement légère et amusante.

Les drapeaux capturés affichent par exemple le logo de la faction qui contrôle la zone. Les PNJ sont capables de combattre à pied, mais aussi de prendre le contrôle de chars.

Et ils peuvent même piloter des avions. Il est ainsi possible d’assister à des combats aériens entre PNJ directement au-dessus du champ de bataille, pendant que les affrontements continuent au sol.

INFINITY AREA
INFINITY AREA
INFINITY AREA
INFINITY AREA

Progression, expérience, monnaie et boutique

J’ai ensuite voulu donner au jeu une véritable boucle de progression. Le projet dispose désormais de niveaux, de points d’expérience, d’une monnaie en jeu et d’un système permettant d’acheter de nouveaux skins et de nouvelles armes. Il y a même un classement.

Tout cela reste évidemment loin d’être terminé, mais pour environ une semaine de développement, le résultat commence déjà à ressembler à un véritable petit jeu plutôt qu'à une simple démonstration technique.

INFINITY AREA
INFINITY AREA

Et tout tourne dans le navigateur avec Three.js

C’est probablement l’un des aspects que je trouve les plus intéressants dans cette expérience : tout fonctionne avec Three.js et du JavaScript standalone directement dans le navigateur.

Pour construire l'univers visuel du jeu, j'utilise également des modèles 3D acquis avec des licences commerciales sur différentes grandes plateformes de contenus destinées notamment à Unreal Engine et Unity.

Malgré cette architecture web, le projet commence à proposer un nombre assez conséquent de systèmes fonctionnant simultanément.

J’ai même ajouté une météo dynamique, pluie, neige, soleil, nuit, vent ou encore brouillard peuvent venir modifier l’ambiance du champ de bataille.

Entre les soldats, les véhicules, les avions, les combats, les destructions, les captures de drapeaux, la progression et les changements météorologiques, le prototype initial a rapidement pris une tout autre dimension.

INFINITY AREA
INFINITY AREA

Et ce n’est que le début

Il reste énormément de choses à améliorer et à développer. Mais c’est justement ce qui rend cette expérience intéressante.

Mon objectif est de continuer à faire évoluer le jeu et de partager son développement au fur et à mesure. À terme, j’aimerais également explorer la possibilité d’en faire une expérience multijoueur directement accessible depuis un navigateur.

Cette semaine de développement m’a surtout permis de constater à quel point l’IA peut aujourd’hui accélérer certaines étapes de création lorsqu’elle est associée aux compétences et aux choix du développeur.

Elle ne construit pas le projet toute seule, il faut concevoir les mécaniques, faire les choix techniques et artistiques, tester, corriger, optimiser et recommencer encore et encore. Mais utilisée comme outil de développement, elle permet d’expérimenter extrêmement rapidement.

Et quand on voit ce qu’il est déjà possible de construire en quelques jours dans un simple navigateur, difficile de ne pas imaginer ce que nous pourrons créer demain.

Ce n’est que le début de l’aventure.