Posted on ven. 13 avril 2018

J’ai finalement terminé la réalisation d’une version jouable de mon jeu de Versus mettant en conflit de 1 à 4 tanks aux statistiques personnalisables dans une carte simpliste, mais pas définitive !

Ce qu’il en était :

Mes Débuts : Le développement a débuté le Lundi 12 Février et à ce moment je ne sais pas exactement le résultat que je souhaite atteindre, mon GDD n’est pas complet et est approximatif. Je découvre alors les différents types de physique disponibles dans le moteur de jeu que j’ai choisi : BLENDER.

Le choix de Mécaniques : On passe alors d’une physique savonneuse à certaines versions extrêmement rigides et statiques. Un tir est implémenté, puis quelques options originales apportant un cachet visuel (traces des roues visibles, filet des balles apparent…).

Les bases du Jeu : D’une version à l’autre, l’étau se resserre et mon choix définitif de gameplay se portera sur le contenu de la Version 7-02-01 à ce moment visuellement pauvre. Cette version marquera le développement et servira de base sur laquelle poser les règles du jeu.

first_version

Gameplay : Les déplacements sont suffisamment complets pour pouvoir proposer plusieurs types de vitesse (recul, arrêt, marche, course, sprint, dash). L’animation qui accompagne le tir arrière de sprint est assez grâcieux et accentue l’impression de vitesse, en plus d’un atout stratégique. Idem pour la mine qui augmente drastiquement la vitesse et empêche par la même occasion de se faire surprendre par le flan arrière.

Ce qu’il en est devenu :

Les ajouts : De nombreux ajouts notables ont pu voir le jour dans cette version 13-04, les projectiles sont personnalisables facilement dans le BGE (PV, couleur, forme…), beaucoup de scripts sont pensés pour être automatiques (par exemple : pour créer un Object destructible, il suffit de l’attacher avec le script approprié, de lui appliquer certaines properties, parents ou physics types et l’Object est maintenant destructible)

trace_roue

Les feed-back : Visuellement, le jeu n’a pas évolué et seuls quelques sons ont pu être implémentés. Mais il n’en reste pas moins agréable et fun à parcourir. Son gameplay nerveux et ses spawns aléatoires enrichissent l’expérience !

visuel_life

Techniques de développement :

Logiciel et Langage : J’ai utilisé le Blender Game Engine de A à Z pour réaliser la version actuellement jouable de mon jeu (je dis ‘‘actuellement’’ car Godot 3 me fait les yeux doux depuis un moment). J’ai réalisé une suite de script python pour animer les différents meshes et interagir avec eux.

blender_python

REMOTIVATION : Enfin bref ! je sais ce que vous voulez, moins de bla-bla pour plus d’action et d’images frappantes ! Je vous comprends… mais je vais devoir parler un peu plus des techniques de développement, alors on se remotive et on écoute une chanson détente : https://www.youtube.com/watch?v=UhRXn2NRiWI

Gestion des Controller part 1 : A la base pour contrôler les joueurs et leurs mouvements j’utilisais des sensors en brique logique, ainsi je n’avais qu’a les récupérer (nom-variable = cont.sensors["nom-du-sensor"]) pour vérifier si le Sensor étai appeler (if nom-variable-sensor.positive : ). Cette technique s’est avérée trop complexe car je devais recréer un tank pour chaque manette (bien que la technique nom-variable-sensor.index = nom-variable-index soit utilisable, je ne le savais pas à ce moment).

Gestion des Controller part 2 : J’ai alors suivi les conseils d’Adrien, intervenant à Activdesign,
qui m’a indiqué une doc Blender BGE qui permet de paramétrer les touches d’une manette sans avoir besoin d’un sensor. Pour cela, j’ai commencé par définir une global variable avec le procédé suivant
GameLogic.globalDict[dictionnaire-name]. Puis j’ai récupéré l’index du tank dans le Script (nom-variable-index= GameLogic.globalDict["tank-nb"][own["tank-name"]]) puis le Controller assigner à l’index (nom_variable_manette=bge.logic.joysticks[nb_index_tank]). Pour finir, on vérifie si une touche est appuyée (2 in nom-variable-manette.activeButtons : ) ‘’activeButtons’’ renvoie un tableau et on vérifie si la touche que l’on veut (ici B, soit 2) est appuyée.

Ce n’est qu’un exemple, mais le développement de fonctionnalités qui peuvent paraître simples voire évidentes peuvent demander une extrême rigueur sur le BGE, la ou d’autres moteurs de jeux implantent ce genre d’options directement dans l’interface de leur application comme Unreal Engine.

Collaboration avec un Artiste :

Clément : Aujourd’hui, Vendredi 13 avril, une version jouable est disponible et propose une partie de 1 à 4 joueurs dans une carte simpliste qui n’était pas prévue à la base ! Le dernier jour de développement était censé me permettre d’implémenter les sons, les visuels et la map réalisées par Clément, un Game Artiste d’Activdesign. Il a donc réalisé l’intégralité des textures du jeu, ainsi que les modèles 3D (qui ne sont pas présents pour le moment à mon plus grand regret).

Déroulement du jeu :

Le menu : Au démarrage du jeu, un menu s’affiche et nous propose de jouer puis de choisir une carte (ceci est un faux choix puisqu’il n’est possible que de jouer un mode de jeu sur une seul carte). Le dernier tableau du menu est lui assez complet et propose déjà d’activer des joueurs dans la partie (grâce à la vérification de l’index de manettes on peut checker les manettes connectées pour ainsi éviter les AFK) et permet aussi de personnaliser les statistiques de votre véhicule (points de vie, cadence de tir, vitesse de déplacement, point de dégâts).

menu

La partie : Vous pouvez en suite vous rendre dans la seule carte disponible et vous déplacer ou vous voulez dans celle-ci, tirer trois types de balles pour abattre les autres joueurs et les murs.

La fin :

La critique constructive : Pour que le jeu soit considéré comme un réel jeu Versus, il faudrait déjà un compteur de point ! où est le visuel ?! Ne serait-ce qu’un matchmaking, ce jeu n’a pas de sens, POURQUOI JOUER ?!

La réponse à critique constructive : ouais mais… c’est une béta !

La critique constructive : j’achète !!!!!!!!!!!

argent

Ange HUBERT

Commentaires


Links