Sunday, January 17, 2021

Big Level Objects (take 64)

En jouant à Rayman Origins (oui, je continue le mois du déterrage de vieux brouillons), j'étais arrivé à la conclusion que les gros morceaux de niveau mobiles étaient devenu un élément incontournable du level design moderne dans les jeux de plate-forme.

Et le post de ce week-end de Ishi sur l'implémentation des bateaux dans son projet en cours: Leiliani's Island me rappelle (encore une fois) que je n'ai pas encore de solution convaincante pour faire ce genre de chose dans GEDS.

Calling them 'a new trend' would be a misnomer. Big Level OBjects are a major trait in many modern (post-3D) platformers. It is pretty obvious if you start playing Rayman Origins after playing the original Rayman game: the level is no longer split into a static grid of tiles versus few movable things on which you can walk anyway -- platforms. Now it looks like the very substance of the level may be moving freely. Movable objects may be significantly larger than your character and yet not looking significantly different from the rest of the level.

Having something large that you can walk on already existed in the original Rayman game, but you would have a clue that it introduces a temporary and distinct gameplay.

If you're in your level editor, you can easily make that cymbal look like 'here be cymbal' icon just like there are 'here be Robo Red' in Commander Keen's TED tool.

Pour moi, ces objets devraient être construits dans l'éditeur de niveau. Idéalement même en même temps que le niveau lui-même pour que les choses s'assemblent bien.

Et bien sûr, il y avait eu des précurseurs avant Rayman Origins. Le meilleur exemple étant peut-être les plate-formes qui s'enfoncent dans la lave et prennent feu dans la Marble Zone de Sonic 1.

Les BigLevelObjects sont plus gros qu'une simple plate-forme et s'intègrent normalement mieux dans l'environnement qu'une plate-forme mobile.

De par leur taille, ils sont à la fois plate-forme mobile, écrabouilleurs, du sol qui s'écroule

In contrast, when you add what I call a Big Level Object, you want the level editor to show precisely how big it is. You may also want to have the flexibility to change its look like you'd change the look so that the level doesn't look repetitive and artificial despite it's using lots and lots of Big Level Objects.

Having them integrate one key element, another one is that their function can no longer be described by a single trait. Platforms can be walked on, and that's it. The big moving rocks of Rayman Origins can be walked on, but they also block your path, they can be climbed on -- just like normal rock structure in the level --, and they can crush you.

They can host other decorative elements (the big palmtree) or interactive elements (the red thing), just like normal ground would do.

Notez aussi qu'ils peuvent être gros assez pour qu'on y mette des objets décoratifs (les palmiers) ou interactifs (le truc rouge).

Bien sûr, dans le code de Rayman Origins, il n'y a pas besoin de se demander si on va faire ça avec des sprites comme dans Sonic ou avec un plan de tiles dédiés comme dans le niveau-écrabouilleur de Super Mario World: que les blocs soient fixes où mobiles, ils sont tracés avec des polygones et il n'y a pas de raccourci possible avec une tile map (enfin, je crois) pour les collisions avec les blocs fixes.

Of course, part of the original 'structure vs. platform' split comes from the technical restrictions of tiles + sprites video hardware that prevailed in the 8-bit and 16-bit era.

There had some BLObs in 16-bit games too, though. Like those sloped ground that dip into lava in Marble Zone or the yellow layer in Donuts Plains 2. Likely, it was done with a dedicated second tiles plane that is scrolled up and down independently from the base tiles plane of Mode 1 and the yellow things doesn't seem to need more than 3 colors + transparency.

(that would mean that the parallax background of that level uses the same plane as the HUD and that an interrupt will have to change priority and scrolling on the fly, unlike what happens with other areas of the game).

Nowadays, with most games using polygons-based hardware, the distinction doesn't hold anymore.