Présentation
Pour le projet de S4, nous avons décidé de faire un jeu vidéo dans le même style que Minecraft. Ce sera pour nous l’occasion d’apprendre l’utilisation de librairie graphique comme OpenGL. Nous avons fait ce choix car Minecraft est un jeu connu de tous et car il est algorithmiquement intéressant à reproduire. Grâce à ce projet nous allons apprendre à générer aléatoirement un monde cohérent ou encore gérer les effets de lumières d’un monde 3D. Nous devrons de même apprendre à sauvegarder un monde unique bloc par bloc dans un fichier, de manière efficace.
Ce projet a une évolution progressive, il serait trop ambitieux de penser que nous allons pouvoir en 4 mois refaire l’intégralité de Minecraft. Nous allons essayer d’implémenter pas à pas un maximum de fonctionnalité du jeu original.
Pour notre projet nous ne pensons pas implémenter un mode survie, qui nécessite une gestion des dégâts, de la nourriture ainsi que pleins d’autres paramètres. Ainsi nous pensons pour l’instant implémenter un mode similaire au "créatif" dans lequel il sera possible de construire et détruire un monde généré aléatoirement.
Outils
En ce qui concerne la gestion des éléments graphiques de notre jeu, nous avons choisi de nous orienter vers une bibliothèque graphique dédiée à la synthèse d’éléments 3D nommée OpenGL. Nous avons fait ce choix car l’utilisation d’une telle bibliothèque nous permettra de nous familiariser avec la gestion de la mémoire graphique et de comprendre comment fonctionne la carte graphique - un aspect sur lequel aucun de nous ne se soit attardés lors de la création de nos projets de S2. En effet, comme dit précédemment, nous avions pour la plupart utilisé Unity ce qui nous a dispensé de cette compréhension et de cette connaissance. De plus, cela nous permettra de pouvoir optimiser tout ce qui touche aux performances graphiques et à la sollicitation de la carte graphique en jeu.
Pour la génération procédurale du monde, nous utiliserons la méthode du bruit de Perlin présentée dans la section précédente tout simplement car c’est cette méthode que le jeu originel Minecraft a utilisé pour la génération de ses mondes.
Détails
Pour ce projet nous avons prévu d’implémenter un certain nombre de fonctionnalités présentes dans le jeu original :
Nous voulons donc faire un jeu avec une vue à la première personne où notre personnage pourra évoluer dans un environnement 3D.
L’environnement sera constitué principalement de blocs de même taille. Notre personnage aura une taille d’approximativement 2 blocs de hauteur et environ un demi bloc de large.
On pourra se déplacer à plusieurs vitesses et aussi faire des sauts. La physique sera présente dans le jeu.
Le joueur aura la possibilité de détruire et de casser des blocs pour pouvoir créer des structures dans le jeu. Les blocs auront plusieurs couleurs ainsi que des textures différentes sur leurs côtés. Certains blocs auront aussi des côtés transparents.
Un éclairage basique sera présent sur le jeu.
Une interface graphique sera présente.
Pour ce qui est de l’environnement, nous voulons pouvoir générer un monde aléatoire mais cohérent, où le joueur peut se déplacer sans difficultés tout en ayant des paysages variés et uniques. Bien que le monde sera aléatoire, nous aurons un système de biomes (des zones géographiques ) de plusieurs types pour avoir plus de diversité.
Pour avoir plus d’information sur le jeu ainsi que pour pouvoir le télécharger, nous aurons un site internet prévu à cet effet.