A few steps from hell

– english below –

3   Bonjour à tous et à toutes !

Aujourd’hui, on va parler un peu de nos niveaux de jeu, comment ils fonctionnent, et de ce que cela implique.

Comme vous le savez, le projet SillySquad est un jeu où s’affrontent deux équipes, et donc l’environnement où évoluent les personnages doit être réfléchi par l’aspect “plateformer” du jeu.

Notre jeu étant réalisé en 3D, une des intentions que l’on souhaitait obtenir était la sensation de profondeur dans notre décor. Pas seulement entre la zone jouable et l’arrière-plan, mais y compris dans la zone jouable : chaque étage est légèrement en arrière de l’étage précédent. Pour augmenter cette impression d’espace dans la profondeur, mais aussi pour rendre le jeu plus dynamique, la caméra ne se contente pas de regarder l’ensemble du niveau, mais elle bouge et se concentre sur la zone active de jeu.

Résultat, si l’on prend notre niveau en vue de coupe, on obtient un escalier. Et c’est là que ça se corse un peu…

LVL_Stairs

En découle toutes les contraintes liées au changement d’étages et donc de profondeur pour un personnage ou un objet. Dès le départ, nous savions que l’on pourrait faire un saut normal et rester sur notre étage, ou bien faire un saut pour pouvoir changer d’étage. Pour descendre d’un étage, la commande intuitive du “bouton saut + stick vers le bas” marche très bien. Mais pour monter, deux solutions s’offraient alors : le double saut, ou bien une commande différente disant “là je souhaite aller en haut” (exemple “bouton saut + stick vers le haut”).

On a donc développé les deux commandes, et on a testé ce qui était le plus confortable. La commande spécifique avait certes l’avantage d’être fonctionnelle facilement, mais rendait le jeu plus rigide : je veux monter ? Ok, mais je dois être devant une plateforme que je peux atteindre, lever le stick, potentiellement m’arrêter. Bref, c’était loin d’être agréable.

LVL_JumpStyles

L’avantage du double saut, c’est bien évidemment sa fluidité et son confort. Cependant, il soulevait plusieurs questions : que se passe-t-il lorsque l’on fait un double saut, mais qu’il n’y a pas d’étage derrière nous : Reste-t-on à la profondeur de l’étage actif, ou bien change-t-on de profondeur momentanément ? Si je fais mon second saut juste avant de retomber, que se passe-t-il ? Et si je tire dans les airs ?

Il était donc grand temps d’user du pouvoir ultime de la prise de décision. On prend les deux idées, on les jette dans une cage, elles se battent à mort et on récupère l’idée victorieuse. Ici, le double saut, bien sûr. On choisit alors comment résoudre nos problèmes un à un. Pour une question de lisibilité, suivant la hauteur du personnage lors de son saut, il ira comme un grand garçon derrière même s’il n’y a pas de plateforme où se poser, et reviendra, toujours comme un grand garçon, devant. Ah, c’est bien d’être autonome. Et pour le tir ? C’est simple comme une pirouette. Je saute une fois, je peux tirer sur mon étage ; je lance le double saut, je ne peux pas tirer car je fais justement une pirouette, ça tourne trop pour que je puisse viser !

2   Bon, c’est bien cool tout ça, mais on veut de la profondeur. Et pour ça, on a besoin de jouer sur le champ de vision (FOV) de la caméra. En effet, si on prend une caméra avec un FOV faible – voir pire, avec une caméra isométrique – on perd tout effet de perspective et tout est à la même taille. Le fait que notre jeu soit en 3D perd de l’intérêt. Surtout, ça ne fait pas très “Regarde ! Je suis la profondeur dans ton écran !”, on a donc choisi d’avoir un FOV “assez-élevé-mais-pas-trop-quand-même”. Pas trop élevé, car au-delà d’un certain niveau, la déformation de la perspective est trop importante et nuit à la lisibilité pour déterminer si oui ou non une plateforme se trouve derrière notre personnage par exemple. C’est donc un compromis entre confort de jeu et l’impression de profondeur.

Et soudain, ce petit changement nous offre des possibilités supplémentaires de level design. Car si la perspective se fait bien sentir, cela veut aussi dire que le niveau le plus éloigné sera aussi moins large visuellement que celui du premier plan, alors qu’en réalité, ils font tous les deux la même taille. On a alors pu combler cet espace vide latéral avec des plateformes potentielles supplémentaires dans les étages les plus hauts.

LVL_StairsExtension_FR

Pour l’instant, on parle de plateformes et d’escalier, mais il serait intéressant de se demander à quoi tout ça va ressembler. Mais pour cela, il faudra patienter encore un peu.

ic_roadi_01


1   Hi everyone !

Today, we’re going to talk a little bit about our levels, how they work, and what that involves.

As you know, the SillySquad project is a game in which two teams compete against each other, so the environment in which the characters evolve has to be thought of as a « platformer » aspect.

Our game being made in 3D, one of the intentions we wanted to achieve was the feeling of depth in our stage. Not only between the playable area and the background, but also including the playable area: each floor is slightly behind the previous floor. To increase this feeling of depth, but also to make the game more dynamic, the camera doesn’t just look at the whole level, but instead moves and focuses on the active playing area.

As a result, if we take a slice cut of our level, we get a staircase. And that’s where it gets a little tougher…

LVL_Stairs

This creates all the constraints associated with changing floors and depth for a character or an object. From the beginning, we knew that we could make a normal jump and stay on our floor, or we could make a jump to be able to change floors. To get down one floor, the intuitive « jump button + stick down » control works very well. But to climb up, two solutions were then available: a double jump, or a different command saying « here I want to go up » (for example « jump button + stick up »).

So we developed both controls, and tested what was the most comfortable. The specific command had the advantage of being easy to use, but it made the game more rigid: I want to climb? Okay, but I have to be in front of a platform that I can reach, raise the stick, potentially stop. Anyway, it wasn’t very pleasant.

LVL_JumpStyles

The advantage of the double jump is obviously its fluidity and comfort. However, it brought up several questions: what happens when you make a double jump, but there is no floor behind you? If I make my second jump just before falling back, what happens? What if I shoot in the air?

It was time to use the ultimate power of decision making. We take the two ideas, throw them in a cage, they fight to the death and we get the winning idea back. Here, the double jump, of course. Then, we decide how to solve our problems one by one. Depending on the elevation of the character during his jump, he will go like a big boy behind, and will come back, still like a big boy, in front. Ah, it’s good to be autonomous. What about the shooting? It’s simple as a spin. I jump once, I can shoot on my floor ; I start the double jump, I can’t shoot because I am actually doing a spin, it turns too much for me to aim!

4   Well, that’s cool, but we want depth. And for that, we need to tweak the camera’s field of view (FOV). If you take a camera with a low FOV – or even worse, an isometric camera – you lose all perspective effect and everything has the same size. The fact that our game is in 3D loses interest. Most of all, it doesn’t look very « Look! I’m the depth in your screen! », so we chose to have a FOV « high-enough-but-not-too-high ». Not too high, because beyond a certain point, the perspective distortion is too high and affects legibility to determine, for example, whether or not a platform is behind our character. So it’s a compromise between game comfort and the feeling of depth.

And suddenly, this small change offers us additional possibilities of level design. If the perspective is well felt, it also means that the farthest floor will be visually smaller than the foreground floor, when in reality they are both the same size. This empty lateral space was then filled with additional potential platforms for the upper floors.

LVL_StairsExtension_EN

For now, we’re talking about platforms and stairs, but it would be interesting to ask what all this will look like. But for that, we will have to wait a little longer.

ic_roadi_01

Répondre

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion /  Changer )

Photo Google

Vous commentez à l'aide de votre compte Google. Déconnexion /  Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s