PROJET AUTOBLOG


Planet-Libre

source: Planet-Libre

⇐ retour index

Ilphrin : Dev' d'un Gauntlet: La programmation telle que l'a écrit Satan

lundi 2 mai 2016 à 00:00

Mettons un peu de contexte derrière ce titre étrange… Nous approchons de la fin de 2e année à Epitech, et l’un des plus gros projet de C++ a commencé: Indie Studio.

Nous sommes 6 sur ce projet, avec 1 mois et demi devant nous pour développer 1 jeu dans une petite liste:

Nous avons quelques restrictions dont deux d’entres elles qui sont: Un jeu 3D, et un jeu multijoueur. Une fois le jeu choisi on va prendre un moteur 3D en piochant l’un de ces deux-là:

Mon but est d’écrire un article chaque fois que nous nous réunissons tous pour bosser une journée entière dessus, afin de noter notre avancée et partager un peu nos démarches, idées, et pourquoi pas quelques bouts de codes. Mais nous ne pourrons pas diffuser le code du jeu réalisé puisqu’il sera au nom et à la licence d’Epitech.

Je dirais que nous avons travaillé principalement sur 2 aspects aujourd’hui:

1) La documentation/L'organisation

Nous avons commencé a nous répartir les tâches, en fonction des envies et des capacités. Moi et mon binome dans ce groupe, Nathanael, devons nous occuper de tout ce qui attrait à l’environnement de jeu et l’interface. C’est-à-dire un menu principal pour commencer.

Mais aussi la gestion des cartes dans lesquelles les joueurs vont jouer avec notamment une possible génération aléatoire de carte, et les mécanismes pour ajuster le niveau de jeu: Le nombre de monstres, la force de ceuxi-ci, l’adaptation au nombre de joueurs, etc…

J’avais fait un peu de lecture à l’époque ou j’ai codé TuxleTriad sur la façon de gérer la difficulté dans un jeu du type de Gauntlet, et j’en avais retenu un “algo” que je pense utilise pour notre jeu.

Chaque acteur - monstre, boss, héros, pnj - possède un ‘poids’ qu’il lui est attribué préalablement par le biais d’un fichier de configuration et qui détermine un peu sa force globale. Un héros aura un grand poids, et le but est qu’une fois le niveau crée, le total des poids des ennemis soit supérieur ou égal au poids des joueurs. Viennent par dessus s’ajouter des modificateurs externes pour ajuster la difficulté selon une situation ou un événement.

Il y a plusieurs avantages à ce principe:

Je vois par contre un défaut à ce système: La mise en place. Nous allons avoir besoin de beaucoup de données de configurations pour générer tout ça, un fichier par niveau par exemple.

Sinon nous en avons profité pour lire la Doc’ d’Irrlicht, et la chose la plus importante: Ça vient de l’Allemand et ça signifie Feu Follet! Quand même, je me devais de le dire ;)

On sais donc que l’on peut utiliser OpenGL facilement sur Windows et sous Linux avec Irrlicht, qu’il possède un module de gestion des controlleur de types manettes, et qu’il possède un gestionnaire de fichier XML integré, dont nous nous servirons surement pour décrire les stats’ des monstres, des joueurs, et de tout le reste.

2) L'enfer

Voilà on y arrive. En fait j’ai oublié de mentionner une restrictions de taille tout à l’heure: Nous devons créer un installateur pour Linux ET Windows.

2 problèmes: De 1 personne n’aime coder sous Windows dans notre groupe, et de 2 on a jamais eu de projet à faire sous Windows avec Epitech, et là on va devoir tout apprendre sur le système de compilation et de linkage sous Windows.

Et croyez-moi, maintenant que nous avons frolé le museau de la bête, on a pas envie de sentir ses poils! (J’espère que vous avez bien l’image en tete maintenant).

Je vais vous épargnez les détails, mais dans le gros de notre processus d’apprentissage voici ce qu’il s’est passé:

Ce qu’il reste à faire donc:

Je peux vous dire que les insultes contre Windows ont été nombreuses (surtout venant de moi :D).

Bon maintenant qu’on vois à peu près comment ça marche ça devrait le faire, mais plusieurs choses me gênent énormément dans ce que l’on a fait, mais que l’on ne peut pas faire grand chose contre par manque de temps:

Et enfin, pouquoi c’est si mal documenté? J’veux dire, la comilation c’est quand même l’essence même de l’informatique, pourquoi une chose aussi triviale est un tel calvaire à réaliser? Je sais que Windows se veut un OS pour le grand public, mais il y a bien des gens qui codent dessus? Sinon GNU/Linux n’aurait pas de soucis de popularité.

Je ne veux que deux possibilités pour que quelqu’un développe de son plein gré (c’est-à-dire en dehors de son travail et tout) sous Windows: Soit il le fait depuis des années et connait le workflow Windows, dans ce cas ce serait sympa de la part de ce mec de populariser le MSDN ou de nous faire un ptit Wiki (j’offre des cookies =D), ou alors c’est que la lobotomie commerciale de Windows fait des merveilles, et que les gens ne codent sous Windows que parce qu’ils pensent que c’est ce qu’il se fait de mieux.

Alors que franchement, entre nous, au final c’est pas si mal notre petit:


./configure
make
make install

Gravatar de Ilphrin
Original post of Ilphrin.Votez pour ce billet sur Planet Libre.