Go to content Go to menu

It can be noted that I spend ample amounts of time caught in thought concerning trivial matters. Sometimes this can be seen as a rather keen attention to detail; a trait of value in matters of design.

More often than not though, it exhibits itself in the form of obsession concerning minutiae, of which this posts relates in the context of 2d camera systems.

A quick recollection of my favorite 2d platform games reveal to me that many cast the camera focus front-and-center upon the main player character unrelentingly tracking its movement pixel-per-pixel. Due to this the viewport, through which the player sees the world, adheres absolutely to the character in a 1-to-1 manner.

A slightly alternative method would be to borrow camera tracking as can be seen in films; a more organic and smooth method. It has been my observation that giving the camera the property of acceleration of its own, thus untying it from the strict movement of the character, gives the scene a much more cinematic feel. It gives the feeling of a camera-man trying to follow the actions of the main character, giving the player much more of a sense of dynamic movement. This idea isn’t at all original, I’m just wondering as to why the technique isn’t used more.

The way I go about achieving this is simple: Instead of applying newtonian physics to simulate organic movement of the camera, I simply apply the distance between the camera and the character as the velocity of the camera. This ensures that the camera moves fast when the character is far from centerscreen, slowing down as the camera draws a bead on the position of the character. It won’t over-shoot, so it won’t give the feeling of a camera-man franticly finding his target, but should give a smooth experience overall.

I will demonstrate the idea with the use of pseudo-pseudocode.

if CameraCenterX != CharacterX then
CameraCenterX = CameraCenterX – (CameraCenterX – CharacterX)

apply a velocity as a multiplicative factor to taste and of course the time delta to keep it framerate independent.

Instead of plain:

CameraCenterX = CharacterX

Of course, excuse any logic errors since I’m very tired. I might upload videos demonstrating this using the game engine that I’m currently writing (MAJOR work in progress) since it’s much easier to SEE it than to read about it.

Here’s something that I’ve been considering: (since I’m done with my experimental 2d camera system, 2d physics integration, and seamless map loading system (more on those later, maybe), I’ve started do code the player controls for the 2d game I’m working on)

In a 2d platform game, which feels more natural to you as a player; When, after you jump, you’re still able to change trajectory in midair and float to and fro as you’re falling, or have your momentum carry for the rest of the jump, without any chance of changing direction until your feet hit ground?

Also; when you jump at a wall with speed and continue holding down the direction button, which feels more natural; bouncing back or sticking and sliding down the wall? (Not like Megaman X slide, just sliding down at like 90% of normal gravity speed) Also, this transfers to running on the ground into a wall instead of jumping at a wall as well, bounce back when you hit the wall or just stop and stand there?

Other things that I’ve already decided on in terms of controls, but will enumerate anyway;

  • One of my pet peeves is that in certain 2d platform games, you can sometimes just hold the jump button and the minute the player character touches the ground it jumps again. I have taken measures to make sure this can’t happen.
  • In certain old games, they use if-elseif structure to determine keypresses, but using that structure makes sure that a certain key of that group will have priority. You can check for this in games where if you hold down the keys for 2 opposing directions, and no matter the order in which you press them both down, one direction always overrides the other. I have taken measures to make sure this can’t happen.
  • Being that keyboard and mouse is inferior to good ol’ d-pad for 2d platformers, I’m trying to make one that just wouldn’t be able to play well without kb+m, the camera system I hope will exemplify this ideology.

I might perhaps do an update in the future on the work I’ve done in the other areas of the game such as map system, camera system, etc. and how I’m trying to innovate in those areas.

Once I get closer to a playable build then I might do an official preview of the project (tentatively titled “Silhouette”) and actually talk about the concept, look, and gameplay.

Also, hit me up if you’re able to do vector art or totally awesome digital painting and willing to collaborate.

I have many interests

I wouldn’t say that I’m a jack of all trades, but damn close enough to it. In my time I’ve dabbled in the areas of Programming and related fields thereof; I’ve tried my hand at digital media production including graphic design, film, and even 3d modeling; Photography and digital manipulation; Writing (The first chapter of many novels, poems, campaigns, and this here blog); and even music and sound production (Albeit short lived).

But none of those I would call my passion

I’ve gone to school for the past three years as an art student, only now realizing that it’s not for me. Unlike my close friends who go to school for art, I don’t often spend my free time on creative output relating to my field of study.

Unlike Alex who, in line with his field of study, creates his beautiful LXstrations in his free time; Chris who produces pride-garnering, fanciful vector work; or Marcus who just makes awesome shit (Which are in-tune with his interest in industrial design(I think))

I never really spent much of my free, creative, efforts on art pieces or anything like that. Even though I changed my major to Computer Science I still don’t spend my moments working on applications or really code anything of my own.

So what do I do?

I design games.

For years now any moment when my brain isn’t being wrapped around school or work, I spend my free thought cycles designing and refining games. My pet project, which I spend at least 6 hours out of everyday working on, is a Role Playing and Tactical Combat/War Game System. Hell, I even created a mini-game in this system that I’m mildly proud of (Ask Alex, Chris, JohnT, or Joe what they think of Rasslin’).

I spontaneously think up and refine designs for games. Often. Hell, I’ve even got a design for a RTS/Sim game based on the concepts of Hive Mind (Or Hive Mentality as Rhi suggested) and Insectoid Intelligence. In a sudden flash of unguided thinking I designed the framework for a MMO based in the Metroid universe (Trust me, it doesn’t suck like it may sound)

Not even computer or video games even. My main work is a table top game. I’ve tossed around some board game concepts. I’ve even thought up ideas for CCGs and card games of the classic type (Which aren’t really my bag).

But how do I go to school for that?

Thus I’ve decided, I can’t. There are so many things that being a game designer encompass that there really isn’t any one field that I could go into that would really set me in the right direction. I can’t get a degree in game design.

Which is why I’ve decided that I’m going to start writing, first small, design documents and open source them. There are probably plenty of beginning programmers that are in need of a good design document to develop around. Hell, how many open source games are there that are just copies of commercial games? Shit, how many commercial games out there that are just copies of other commercial games?

Too many.

I just hope that when the mortar hits the pestle that I can churn out something original and fun. I can’t program nearly well enough, I don’t have the skill to put the pencil to the paper (Or paint to the canvas or whatever), but I sure as fuck can design a fun fucking game.

Once I get over this whole laziness thing.