Thursday, July 26, 2012

Camera - Super Mario World

In many of the best retro platformers, rarely does the view remain static, centered on the player. It moves and adjusts based on particular circumstances.

Today I was taking a look at Super Mario World's camera and how it works, since it's a bit different. It can more or less be divided into 2 catagories, which I'd refer to as,

1. Fixed
2. Vertical

However, before explaining the difference let's take a look at horizontal movement, which is more or less consistent throughout the game.

Horizontal Movement

In this picture, the red line represents where Mario is oriented in the view. The blue area represents a sort of buffer zone. If the player continues to the right, Mario will always stay oriented on the red line. That is, Mario will remain slightly off-center. This gives the player a slightly larger view of what's ahead.

If the player moves back into the buffer zone, the camera position remains unchanged. This keeps the screen still during moments when the player needs to move backwards temporarily, keeping the focus on what's ahead.

If the player passes through the buffer zone, the camera shifts to to where the player is and the camera's orientation is reversed, with Mario now slightly to the right. The buffer zone is also flipped.

In this way, the focus is always on what's "ahead" of you, and doesn't switch simply because you go back a few steps. It only re-orientates itself if you leave the buffer zone, which is the game's way of deciding which way the player is going to go at a constant pace, rather than just temporarily.

With that out of the way, let's take a look at the first type of camera tracking.


In the fixed camera mode, vertical movement is not tracked. That is, the camera does not oriented itself based on Mario's vertical location. Since the level is horizontal and ground based in nature, that's where the camera remains.

Mario can even leave the screen, and the camera will not move vertically.

It's also important to note that the camera's view does not go very far below the ground. (the lowest point where the player can safely stand). This is to avoid wasting the upper portion of the screen.


Like fixed mode, upwards vertical movement is not tracked just by moving. Unlike fixed mode however, it does adjust based on platforms. When Mario lands on a surface higher than where he was previously standing, the camera shifts upwards to his location.

It's also interesting to note that when jumping up to a higher platform, the view seems to orient based on where the center of the screen would be if you were to ignore the hud, allowing you to see above and below equally. (since the hud obscures things above you somewhat, I suppose.)

Falling works in a different way. It's tracked a little more like horizontal movement, wherein you have a small buffer below you. I suppose this is so that the camera will not re-orientate itself if the platform you jump down to isn't that much lower than the one you were on.

After passing the buffer, Mario remains oriented slightly lower on the screen.

If you land on a lower platform from a higher one, the camera does not re-orientate where Mario is on the screen, since you're basically still at the end of the buffer the game uses for falling. This means that falling onto a platform orients Mario lower in the camera's view, whilst jumping to a higher platform put's him higher. (still with me?)

That's it.

To put it simply, the purpose of camera orientation is to avoid wasting important screen space, and to direct the player's attention. Mario uses the two types depending on the type of level, and where the player's attention needs to be, fixed for flat,  horizontally oriented levels, and vertical for levels with a lot of vertical movement. (I'm ignoring the camera movement when you use the cape, since that's a bit different.)

In the end it's a bit difficult to describe well, so next time you play Mario, or any other good platformer for that matter, try focusing on the way the camera moves, where the player is oriented on the screen, etc. I think you'll find that they tend to be a bit more complicated than just centering the player in the center of the screen, and it's one of the things that makes them work so well.

Anyhow, back to work -___-

Sunday, July 22, 2012

Graphic preview July 21

Another quick update. I figure I'll switch to giving these little graphic previews every Sunday, to stay consistent.

Partway through doing the obligatory forest tileset. One of the first areas will include a waterfall with good ol falling logs, so that should be fun to animate.

As for the rest of the game, I find that after doing Kurovadis the programming side of things is significantly easier than before. Now it's less a matter of how I can do something, but how I want to do it. I'm still doing this game as a template, so I'm constantly trying to work out how I want to do things from here on out.

Anyhow, that's all for now.

Iris Action

Well, Iris Action has been released, and it's a game many of us have been looking forward to. Of the H-games that exist today, very few meet the standards of a commercial quality game, so it's a breath of fresh air when something comes along that raises the bar for the rest of them. Iris will no doubt do exceedingly well on DLsite with it's level of quality. (It already has, unsurprisingly)

Everything aside, the adult content is fairly well done and varied, the gameplay is leagues above most action H games, and I'm sure it will more than satisfy player's of this genre. That being said, I'd like to take a closer look at the game's design.

Breakdown and critique

To summarize, Iris action is an action platformer. You have a variety of short ranged attacks, and a limited number of throwing knives to attack enemies with. It's progression is level based and linear, and with the exception of health upgrades and coins, your only objective is to make it from check point to check point,  reaching the end of each stage.

With that out of the way, let's take a look at the individual elements that make up the gameplay.


Normally I'd start with the basics like movement and attacks, but so much of this game's design is effected dramatically by the view.

Quite often you'll reach blind spots where you can't really see where you're going, taking leaps of faith as a result. This is also an issue when it comes to dropping off ledges, since many of the enemies are small and low to the ground. Something like this could have been better dealt with if the view adjusted based on what part of the stage you're in, rather than staying centered all the time. If there's nothing below you, shift the player to the bottom, if there's nothing above you, shift the player the the top of the screen, etc.


Next is movement.

The player's horizontal speed is quite high, in fact in most cases you completely outpace your enemies and anything they throw at you.

Likewise, the player's jump height is also fairly modest (a little over twice your height), and along with your horizontal speed you can jump rather far. However, it's a little hard to control, as you can't really change direction in mid air so much as stop yourself somewhat before you hit the ground.

You'd expect the movement speed and jump height to give the player too much freedom, but this isn't really the case in Iris Action. Together with the view, your speed actually discourages you from bypassing enemies. It's often a bit unreliable to jump, since it's quite easy to overshoot your target, or hit an enemy by accident, and with the limited view, jumping over an obstacle is a bit of a gamble, since chances are you're going to run into something off-screen that you couldn't see. Running forward also results in getting hit by a projectile or enemy, unless you stop every few steps to check what's ahead.

This creates an environment where it's usually wise to deal with anything that's directly in front of you before attempting to progress, since everything ahead is unknown. Though it does pay off sometimes to take the gamble and do a long jump over numerous enemies

Back to jumping, another issue with the speed is running off of ledges by mistake. Iris action works like the above picture, wherein you can only jump while directly on top of the platform. Since you run so fast, it's difficult to judge where the edge actually is vs where it looks like it is, and sometimes this results in just running straight off. Repeating the same jump numerous times to try and reach a particular platform.

Many platformers compensate for this by making it so that the player can still jump a split second after they've gone off the platform. In game's where you move quickly, the player doesn't really see the difference, but they feel it. Mario is a good example of a game that does this. 


You have a pretty good variety of melee attacks, some of them have distinct uses and trade-offs. For instance you have a 3-hit combo that ends with a longer ranged attack, but you can also do the long ranged attack by itself, in case you need to do it faster. You have a flip which is effective against hitting things above you, a stronger but slower attack, etc. In addition, you also have a backflip for quick dodging, and an aerial kick which hits enemies below you. Bottom line, you have a good degree of choice.

The aerial kick ends up being used a lot to avoid landing on enemies, compensating somewhat for the fact that you can't always see what's below you. It can also be used in quick succession as an attack, but it doesn't really do as much damage as well placed regular attacks, and can sometimes put you in a bit of a bad position.

On the other hand, the slide is practically useless. Against some enemies it does nothing, and sometimes using it results in the enemy dying, yet getting hit yourself. The distance is also pretty shallow. As an attack it's a little baffling as to why it's there.

That being said, with the variety of attacks, you can attack enemies coming from nearly any angle while you're on the ground. On the other hand, your aerial attack has a very limited hitbox and jumping isn't really precise, so the player is encouraged to face aerial enemies from a standing position for the most part. 

The other part of combat is the throwing knives. They're more or less your "I don't think I should try dealing with that" attack. There are a few cases where using melee is a bit risky, so the knives work as a good contrast to this, and it's one of the few powerups in the game, so they help to keep things a little more interesting.

Hit Boxes

A general practice in platformers is to keep the hit boxes of everything the player wants to avoid smaller than you'd expect, and make the hit boxes of positive things larger then you'd expect. That being said, the enemy hit boxes in this game are rather unforgiving , and some enemies will even harm the player without actually touching them. Again, like with the ledges, this is more of a sense of feel than difficulty, player's like to feel that every hit was fair.

As for what they do for the rest of the game, the hit boxes push the player into being a bit more cautious, and it's part of the reason why you inch along so much, despite being able to run like the wind. 


As I've mentioned, despite the ability to move quickly the gameplay is, for the most part, based around dealing with things before you progress. Many of the enemies are either static or repeat a pattern, so in a lot of cases it almost becomes almost puzzle like, forcing you to consider what you do before you do it rather than dealing with things on the fly. A lot of the enemies are more akin to traps, than things you have to actively react to. Most importantly, though almost every enemy is placed with a specific role to any given scenario, rarely does it feel like things were just thrown around randomly.

It's also important to mention, you don't get much invisibility after getting hit, and given the amount of health you have and the size of hit boxes, there's never really a situation where rushing in and flailing ideal. There's no outlasting enemies here.


Well, that's all, not gonna go too in depth.

When it comes down to it, the game has some flaws. But at the very least it's design is focused. Everything seems to limit you're quick movement and encourages you to take it slow, but the challange of going fast is always there regardless, a choice available to the player at their own risk. In addition The layout often funnels you into confrontation, and you usually need to face enemies rather than avoiding everything, but there's also a good mix of cases where the solution is more or less open to the player. Over all, it's not bad. Leagues above most other H games.

If you haven't picked up Iris Action, consider it. Hopefully the developer will continue to make platformers, improve even further, and continue to raise the bar for everyone else. Iris Action isn't perfect, but I'm interested to see where he goes from here.

Sunday, July 15, 2012


Since a lot of what I've been doing thus far has been programming, it's been nice to finally start animating the player sprites. Usually I start with them, but only because I tended to start new games on a whim, so it ended up being random sprites turned game project.

This time around I had to have a few things planned out before I started, but it's at the point where it's important to have the player animated before going any further. I really helps you get the right feel for the controls, and how everything is going to work around the player's movement.

Here's one of the attack animations, though it's not finished yet.

I also started doing some of the world map tileset, since the game is going to have some adventure game elements. 

That aside, I'm mostly programming, at the moment. It will be quite a while before I release any kind of demo.

Anyhow, that's all for now. I'll try and post some pictures every week, to keep things interesting.

Tuesday, July 10, 2012


I thought some of you might be interested in this, whether it be from the standpoint of a gamer, developer, or both. It's called Ouya, and it's a new game console currently in development.

What it is, essentially, is a stand-alone gaming console that runs on an Android OS. This means that any existing games or apps for Android can be played through a TV or monitor, in HD. Since it can run apps, this also means that it will be possible to emulate many different consoles, simply by downloading the apps for it. Most are available online for free, and can be installed without any modification.

However, what this really does is take Android, which has primarily been a mobile platform for casual games, and bring it to non-casual gamers, opening the doors for Android developers to develop console-based games whilst still benefiting from the same framework which has made mobile games so successful. 

The Ouya development team has made it clear that one of their primary goals is to make it as simple as possible for independent developers to sell their work. Unlike The Xbox market place or Steam which have harsher terms and requirements and SDKs that must be integrated, it will be possible for nearly anyone to create and publish their work. 

Game Maker Studio has the ability to export a game for use on Android, meaning at any time I could publish a game and sell it parallel to the PC version. For existing developers, it may also mean a shift away from casual games, and a return to smaller teams working on console based games. We'll see, I suppose.

 And who knows? Perhaps they'll have a thriving adult section, the controller does have a touch pad after all..*cough*

Anyhow, I probably don't do it justice, so you can check out the kick starter page for more info. For $99 you get the console and a controller, so even if you just want to support the project you're still getting the  system once it's released.

Thursday, July 5, 2012

Design VS Fun.

I was reading a forum topic about an H game the other day. In the topic, some of the players were complaining about the fact that the main character couldn't run.

The first thing that came to mind was that the player's movement was limited in order to complement the design. After all, there's a big difference between something like Castlevania, where you can't jump over most enemies, and Mario, where you have more freedom of movement but cant take as many hits. Hell, if you could just run and jump over everything in Castlevania like you could in Mario, you'd probably finish the game in a flash, and all it's subtle design considerations would be blown out of the water.

Of course, none of that really matters to a player when the first thing they think is "I want to run". Would they enjoy that H-game more if they could run, even though it would kill the design as intended by the developer?

This got me thinking about design in general, and how what I look for in a game has changed over the years. I used to like games where your character could do, for lack of a better word, "cool" things. Freedom of movement, fast paced combat, acrobatic moves, what I was looking for in a game wasn't sleek design or challenge, I just wanted to do things that seemed cool and fun to me. Anything that wasn't just going around and hitting stuff with a single attack, like Casltevania. As a kid, if you asked me if the original Castlevania would be better if you could run around doing flips in the air, attacking in multiple directions and doing multiple hit combos, I would have thought it would be way better.

Now, however, it's the opposite. Anytime I see something with more linear and refined design, it's like a breath of fresh air. I want every hit to count, I want every part of a level to be there for a reason, I want to have to think before I approach any obstacle. I'd play Castlevania Rondo Of Blood over something like Symphony of the night any day.

Yet, as a game developer I need to keep in mind that it's not all about super refined challenge-based design. Sometimes people just want to do fun stuff. Sure, in Mario you don't need to jump on a bunch of koopas in a row to get a 1-up, but you try anyway because it's fun and satisfying in and of itself. You throw a shell up in the air and then catch it again, hitting 3 enemies out of the air, even though they posed no threat, not because you had to in order to proceed, but because it was just fun.

It seems that achieving the perfect balance between what the player wants to do, and what you want them to do is the real challenge. Balancing the challenges players present themselves with and the obstacles you set before them, and making the means to overcome either fun and satisfying. I've yet to do something like that.

*Thinking out loud concluded*