All

Hi guys! I’m here today to talk about the technical aspect of the project and the various steps I passed to get the current version.

 

We must know that even if game engines are more and more intuitive and complete, making a game isn’t easy as some may think. To start a development, the first approach is the choice of software: we are dealing with increasing number of softwares on the market, we must take the time to compare and find the one that fits the nest with our expectations. The choice is based with the type of game, the graphic orientation and the platform wanted. A 2D beat’em all thought to be released on PC and consoles wouldn’t permit to use « small »softwares like Game Maker that are too limited in terms of features, but also « big » softwares like Unreal Development Kit which are provided for big 3D games. So we chose to use Unity software, which I had already try during my studies.

 

A the start, working on Unity was unthinkable for me, who, after two years of development of web games, was settled in HTML5.
Actually, after my arrival in the team during October, my first week of prototyping Mother Russia Bleeds had left a bad taste in my mouth because of the complexity of making a 2D game on a 3D engine software. But the release of 4.3 version, including a brand new 2D system development, immediately changed my mind. Developing a 2D game in Unity became a pleasure that I had lost at the end of my professional experience in the web. Early development has been done ​​with confidence, as I was discovering all the new features that would make the development easier: an animator to manage or even transitions between animations of an object, an ergonomic animation timeline to modify them, integrated 2D physics engine making easier the movements of the characters, etc.. Of course these new functionalities needed time to get all their bugs fixed.

 

Mapping controls of game is childish, create a good gameplay is harder. Especially when we want a very nervous gameplay based on the responsiveness of the controls. We did the « monkey test » : press all the buttons like a brute, and check that there is no crash. I also had to manage the physical, knowing that objects are on a single plan, without a ground (as is the case for the majority of beat’em all retro). This needs to simulate a ground for each player so that if he jumps, he falls at the same vertical position. I also managed the camera according to one or more players, managed all the transitions from character animations, simulated shadow casting, controlled blood during ejection strokes, managed differentiation of sounds depending on the blow and the affected target, created artificial intelligence, etc. I can not tell you everything so the amount of work is consistent, I just wanted to let you know that develop this game takes us a lot of time and that you will have to be patients!

 

Anyway, develop a game is far from being something childish, despite all the aid that software like Unity has to offer. You have to control everything that the player makes, but also all possible interactions during the game, in addition to everything that goes on behind: the camera, the physics engine, light, audio, AI… This is why it is essential to be able to program yourself all these components, despite the time that it takes so that the final result corresponds to the best expectations.

 

LE CARTEL

 


 

Salutations jeunes gens, je suis là aujourd’hui pour vous parler de l’aspect technique du projet, des différentes étapes par lesquelles je suis passé afin d’en arriver à la version actuelle.

Il faut avant tout savoir qu’un jeu ne se fait pas en deux temps trois mouvements comme certains peuvent le penser, malgré des logiciels de création de plus en plus poussés et intuitifs permettant d’être accompagné tout au long du développement. La première approche concerne le choix du logiciel : on a affaire à de plus en plus d’outils sur le marché, il faut donc prendre le temps de les comparer et de trouver celui qui correspond le plus à nos attentes. La priorité se situe au niveau du type de jeu, de l’orientation graphique et des supports visés à terme. Partant ici sur un beat’em all 2D pour PC et consoles, nous pouvions déjà éliminés les « petits » logiciels comme Game Maker qui sont trop limités en terme de fonctionnalités, mais également les « gros » logiciels comme l’Unreal Development Kit qui sont prévus pour des gros jeux en 3D, très techniques graphiquement parlant. Notre choix s’est donc tout naturellement porté sur Unity, logiciel en vogue ces derniers temps, auquel j’avais déjà pu m’essayer durant mes études.

 

Développer sur Unity était au début impensable pour moi, qui, après deux ans de développement de jeux web, était ancré dans l’HTML5, pendant lesquelles mon entente avec Unity était plutôt tendue. D’ailleurs, après mon arrivée dans la team fin Octobre, ma première semaine de prototypage sur Mother Russia Bleeds m’avait laissé un goût amer, quant à la complexité de réaliser un jeu 2D sur le moteur 3D du logiciel. Mais la sortie de la version 4.3 d’Unity, comprenant un tout nouveau système de développement 2D, m’a fait complètement changer de bord la semaine qui suivie. Développer un jeu en 2D sur Unity devint un plaisir que j’avais perdu au terme de mes expériences professionnelles dans le monde du web. Le début du développement se fit donc en toute sérénité, au fur et à mesure que je découvrais toutes les nouvelles fonctionnalités qui allaient me simplifier la vie à l’avenir : un animator permettant de gérer soit même les transitions entre les animations d’un objet, une timeline d’animation pour modifier ces dernières de manière fluide et intuitive, un moteur physique 2D intégré facilitant les mouvements des personnages, etc. Bien entendu il fallait un temps d’adaptation à ces nouvelles options, encore fraîches au point que certaines étaient encore buguées et empêchaient à court terme de profiter pleinement de l’outil.

 

Du temps, il en faut pour développer un jeu. Récupérer les touches du gamepad est enfantin, adapter le comportement que le joueur doit avoir en fonction de sa situation, c’est autre chose. D’autant plus qu’il faut prendre en compte le confort du joueur, en travaillant la réactivité des contrôles. Il faut que le « test du singe » ne fasse pas planter le projet : appuyer sur toutes les touches comme un bourrin, et vérifier que rien ne plante. Il faut également gérer la physique, sachant que l’on se trouve sur un plan unique, sans sol à proprement parlé étant donné que l’on se balade sur un plan vue du dessus avec des personnages vue de profil (comme c’est le cas pour la majorité des beat’em all rétros). Cela demande donc de simuler un sol pour chaque joueur afin que lors d’un saut il retombe à la même position verticale. Il faut gérer la caméra en fonction d’un ou plusieurs joueurs, gérer toutes les transitions d’animations des personnages, la projection d’ombre simulée, l’éjection contrôlée du sang lors des coups, la différentiation des sons en fonction du coup porté et de la cible touchée, l’intelligence artificielle, etc. Je ne peux pas vous parler de tout tellement la masse de travail est conséquente, je tenais juste à ce que vous le sachiez, pour ne pas nous en vouloir que le développement de ce jeu prenne du temps et qu’il va vous falloir être encore patients !

 

Bref développer un jeu est loin d’être quelque chose d’enfantin, malgré toutes les aides qu’un logiciel comme Unity peut nous offrir. Il faut contrôler tout ce que le joueur fait, mais également toutes les interactions possibles en cours de partie, en plus de tout ce qu’il se passe derrière : la caméra, le moteur physique, la lumière, l’audio, l’IA … C’est pourquoi il est donc indispensable de pouvoir programmer soi-même tous ces composants, malgré tout le temps que cela demande, afin que le rendu final corresponde au mieux à ses attentes.

 

LE CARTEL

 

————————————————————————————————————————————————————————————————————————-

 

Shared

1 Commentaire

Vivement plus de chroniques 😀

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée.

Vous pouvez utiliser ces balises et attributs HTML:/abbr> s