It’s been a long while since our last devblog. Things have still been rather hectic. Today, I’m not showing anything that is really new or unique; instead, I thought I’d talk about our decision to include slopes in our platformer.

At the base level, a platformer only needs a solid block for collision surfaces. The original Super Mario Bros. didn’t have any sloped tiles and it performed quite well. Even the implementation of something like a pass-through platform – you can jump through it from the bottom, and use a button combo to drop through it while standing atop it – doesn’t require much effort to execute properly. But when a developer adds slopes of any kind to their game’s engine, it can be quite a mess to sort out, especially if the engine wasn’t written to account for them in the first place.

Taking some considerations from this old postmortem for M.C. Kids, I decided to make my sloped tiles non-solid tiles with a special variable for each one that makes entities interact with them differently when encountering them instead of a normal solid tile. So basically, sloped tiles act as though they’re solid by the player’s perspective, but in actuality they aren’t triggering all the same collision behaviours that a normal square block would. I had actually never programmed sloped surfaces in a platformer before. Most of the engines I have developed over the years have been viewed from a top-down perspective. I don’t often try to make platformers, so programming Arctimicia is a constant learning experience.

Slopes_Screen

I only programmed in 45 degree slopes because any further variation seemed a little unnecessary for what I hope to achieve. It would also require me to rework the way tilesets are set up in order to fit in more sloped tiles for each set, and I don’t really want to do that. I won’t be going into details on how I programmed this change; if you so desire, there are numerous articles on the Internet about the subject, like the one I linked in the previous paragraph. Instead, I’d like to explain my rationale for including this slight extra layer of complexity, because I think this sort of thought process might be of more interest.

First, and most obviously, slopes make the world of Arctimicia look just a little more smooth and organic. Gone are the hard, blocky hills and edges that used to line every path. Games like Super Mario Bros. can get away without using slopes because they have different aesthetics and level design. A normal Mario level has a long, flat pathway with a bunch of pipes and floating blocks to jump around. Everything fits within the screen height; the game doesn’t even scroll vertically.

MarioNESNintendo

Conversely, a normal Arctimicia level has large areas of twisting, turning terrain with caverns tucked in underground, all built from the same earthen floor tiles. Arctimicia doesn’t even have that many floating platforms. Raised platforms are mostly made from the same texture as the lowermost floor. I specifically wrote the engine to draw large spaces of background tiles to make these platforms look as though they’re connected to the floors below them. For pass-through platforms, I can connect “stilt” generators that create background poles to connect them to the ceiling and/or floor. So, while the presence of many different blocks looks normal in a game like Mario, in Arctimicia, where everything is meant to appear more organic, I personally found the blocky look to be a little jarring.

Additionally, sloped platforms allow characters to naturally walk up and down hills rather than having to hop over them or stumble down them. I always thought that was kind of weird in platformers, especially when the player was forced to hop up a staircase. Staircases exist in the real world so people don’t have to hop up big steps, but in many video games, characters are incapable of just stepping up without leaping from the ground.

slopes_GIF

But these reasons alone weren’t enough to make me take the time and effort to include slopes in the game’s engine. I honestly could have done without slopes and the game would have probably looked O.K. The blocky look is even sort of “in” for some reason or another. In truth, there was another, stronger motivation for me to revise the platforming in the game, and that was the game’s battle system.

As I mentioned early on in this devblog, our protagonist, Arc, has two main abilities: a swing of the Thunder Wand and a projectile blast of ice magick. Various enemies respond differently to these abilities. Some take damage from one attack or the other (or, rarely, both), while others are impervious to such threats. Many enemies can only be defeated by a special technique tentatively called the Ice Breaker. First, the enemy is frozen with an ice blast, turning it into a solid ice block. Then, the enemy is hit with thunder magick, causing it to slide away rapidly. When the frozen enemy hits a wall (or another enemy!), it breaks and takes damage, usually defeating it in one blow.

slopes_Ice

This technique is so prevalent in the game that it has been responsible for a lot of changes to the gameplay during the course of development. Recently, one of those changes has been the implementation of slopes. Here’s the idea: In a world full of hard edges, it doesn’t take long for a sliding, frozen enemy to hit a wall and break. But in a world full of slopes, it takes just a little longer – and just a little farther – for sliding enemies to break. During this time, enemies that have a higher resistance to ice now have a greater chance of escaping before they break. Also, XP orbs left behind by defeated enemies have a higher probability of being further away from the player, meaning it’s not so easy to just smash an enemy, take a few steps and collect the XP. Finally, there is an added bonus in that ground-bound enemies now have more mobility, whereas without slopes, they would be restricted to much smaller platforms. All of these things result in a very subtle enhancement to the general challenge of the game.

Of course, there’s no way of knowing how meaningful this enhancement will ultimately be until rigorous testing is done, but I believe it will be significant enough to warrant this extra work.

Until next time, if you have any questions or comments, please post them in the comments section below, or get in touch via social media:

PlasmaCaptain @Twitter

PlasmaCaptain @Facebook

TandemShock @Facebook

Thanks for reading!


Next Article ►

Facebooktwittergoogle_plusredditpinteresttumblrmail

Plasma Captain on Patreon

Shirts from TeePublic

Latest from TandemShock