Tuesday, May 17, 2011

taking it to the next level

An initial challenge going into the project was figuring out exactly how to go about level creation--it seemed like there were a couple of ways to approach it, and I wasn't sure which would be the best course of action.

At first, being naive and inexperienced, I hoped I could simply open up a new image file, draw them out, import them into the game, define surfaces, and be done. The idea was that they would be more organic and stay closer in appearance to my artwork.

I learned very quickly that this just wasn't going to fly. Besides the issue of collision (or, how the game detects your character is walking on a floor, or pushing up against a wall or object) proving to be a giant pain, the issue of dimensions, and keeping them unified and cohesive also gave me issues. After all, the character can only jump so many pixels high, so if, for example, I accidentally made a wall just a little too high for her to scale, I had to go back and redraw--a time consuming, and frustrating process.

Preliminary sketch of the first world's tileset.
From there, I went back to the drawing board, and decided to use the more traditional method of developing tilesets--this would allow me to create a set of  'blocks' that I could more easily place and fit together, making it so I didn't have to draw levels in passes, but instead allow me to fit them together in pieces. If you were lay a grid over the game, you'd see everything is basically cut up into 32-pixel-high by 32-pixel-wide chunks. This not only gives the game its 'retro' look but also gives me a set of dimensions to work with, allowing for much tighter level design.

The process starts with first deciding on the basic look of a tileset. I use graph paper, and just start drawing out a world design. The graph paper is useful for a couple of reasons; first of all, I can't draw a straight line to save my life, so there's that. Also, it lets me rough out how I want to start cutting up the art into chunks.

A deceptively simple looking set of tiles derived from  the sketch above.
From there, I use the sketch as a reference, and start creating the tiles themselves, cutting up the original art into a set of reusable tiles. The tricky part here is to keep the feel of the sketch intact, while creating tiles that are fairly multi-purpose. I try to make it so I can easily reuse tiles, and fit them together in a plethora of different ways so I have the freedom to map out further levels without necessarily needing to draw a new tileset every time.

From there, it's time to import the tileset, and start finally laying out the level itself. This is a slow process (I guess that goes without saying--there's no part of this entire project that doesn't seem to suck hours away at a time). It's also really fun, because it's like putting together a puzzle. It's especially exciting when you figure out neat ways to place your tiles together that you didn't initially plan for.
Starting to come together!
Masks!
Something to note here for those that are interested. As far as the game is concerned, all of this is basically background art in the game world--if the character object was placed on top of this, she'd just fall through, as there is no collision code to any of these tiles. That's where masks come in.

Naturally, there will be more than one tileset in the game. If every tile had it have its own collision code, as I added more and more tiles, the necessary memory usage would go up, and potentially bog down the game. If a rather simplistic, retro-looking game like this were to slow down my computer, I'd just think it was sloppy. So, to combat that, I have a set of simplistic, single color tiles that actually have the necessary collision code attached to them. These go on an invisible layer over the level art, and give the character something to stand on.

Now you're thinking with masks!
You can see here how the game 'sees' the level surfaces. While this method saves me memory, the game actually can detect collision per-pixel, meaning I can have more intricate surfaces than just simple planes and slopes. I handle these on a case-by-case basis, depending on the needs of the level. Also of note, and not shown here, are surfaces you can fall through, surfaces with low friction (slippery, ice floors for example), ladders, and moving platforms you can stand on.

So, the basic layout of the level has been determined, and the masks are laid out. At this point, it's time to dress things up a bit, and start adding backgrounds, foregrounds, and various other game objects...

By no means finished yet, but you get the idea.
And that's all there is to it!

Saturday, May 7, 2011

on theme and atmosphere


Yeah, I'm still alive;  I've just been busy with other things lately, and as a result the game hasn't been getting quite as much attention I would like. Fortunately, life should be slowing down a bit in the next couple of weeks. While I haven't been able to really put in much work on the game itself, I've been steadily churning out concept art and ideas, so it hasn't been a total bust.

Usually the first question I get asked when the topic of making a game comes up is "what kind of game?" Depending on how familiar the person that asks me is with gaming, I'll usually say one of a couple things. Either "it's like the old Mario games" if they're not too big into the scene, or "an atmospheric, story driven 2D platformer--like Super Metroid with some light console RPG elements" if I think they're suitably nerdy.

I bring up Super Metroid because it was one of the first series that truly felt 'atmospheric' to me. I instantly fell in love with the sense of loneliness and isolation that the game was drenched in--I hope to achieve something similar with Kitty Come Home.

You see, despite the cutesy character designs, something I've been working incredibly hard on is juxtaposing that outwardly cuddly appearance with an ominous ambiance. My goal is to create a game that initially seems playful and inviting; but take a closer look at the characters, creatures and environments that make up this world, and you will see a quiet, sinister madness that I hope is a little unsettling.

While I wouldn't go so far as to call it a psychological horror game, I'd be remiss if I didn't at least mention the heavy influence the first three Silent Hill games had on some of the choices I've made for the game's themes and settings.

If I can make go "awwww" and then immediately make you at least a little uncomfortable as you play, then my mission will be accomplished.