Pages

Friday, August 20, 2010

Too Bad

Alright, this has got to be my fourth failed attempt at blogging. It's just not something that I can get totally into. I don't have enough to say I suppose. At least, not that other people want to read. And I have no desire to market my blog or anything else like that. All I want to do is make games, not write about them every day! Anyway, I finished the falling blocks design. It was nothing like that "prototype design" that I put up. It's on FGL right now under the name "Up". When it's released to the public I'll write one last post here with a link.

Have a nice day.

Tuesday, August 10, 2010

Falling Blocks: The Initial Design

Over the past few days I've been jotting down design notes and ideas, mocking up graphics, and familiarizing myself with Flixel (tune in for a discussion of some sort about Flixel down the road). But one can only deal in theory and scribbled notes for so long. Ultimately, it just comes down to prototyping and seeing how it works. I am a big proponent of an iterative game development process, at least for small projects like this one.
  1. Prototype
  2. What is it missing?
  3. Add, remove, or fine tune features
  4. Repeat
So for my first stage of prototyping of Falling Blocks (which we'll call the game for now for brevity. I'm terrible at thinking of names), I need a bare-bones design that will still offer some gameplay and a basis for critique for further iterations. Here is what I've come up with over the past few days:

Single Long Level
In the well-worn tradition of Tetris and Bejeweled (in endless mode), the gameplay of Falling Blocks will consists of a single, very long level. The goal for the player is to get as far through this level as he can without dying. Or perhaps, if he's had practice, to get to the end of the level. While this style of "single-level" gameplay isn't quite the way to go if you're looking to make the next Final Fantasy or blockbuster FPS, it fits perfectly with the surreal, casual gameplay that I'm looking to create with this game.

Also like Tetris, there will be "stages" within this single level. Once the player reaches a certain threshold of height on the screen, the viewport will shift up so that the player is once again at the bottom of the screen (though he is still at the same height on the tower. It's only the camera that moved). Each shift signifies a new stage, and each stage is characterized by faster falling blocks. Each of these stages has a name:
  1. Humble Beginning
  2. Seeing it All
  3. In the Clouds
  4. Taller Than Tall
  5. Stratosphere
  6. Mesosphere
  7. One With the Cosmos
  8. Endless Space
Initially, I was thinking of making the game endless, where you just keep climbing trying to beat the previous highscore, where there is no real end. It would just keep going and going. However, I like the idea of making some subtle statement about life, and I would like to do this by ending the game like so: when the player reaches the top of "Endless Space," the final stage, the viewpoint does not shift. Instead, without gravity or air to hold him down, the player simply floats away, lifeless and without want or need, into the endless space that is our universe... I like the idea of a good, subtle ending to a fun, short game.

Grid
The grid is made up of four by four isometric blocks.

Falling Blocks
Blocks fall in random intervals which vary depending on the current stage.

  • Higher stages will tend to drop blocks more rapidly. 
  • The falling speed of blocks is constant throughout the game. 
  • A shadow shown below a falling block will warn of a coming block before it appears on screen. 
  • A block cannot begin falling onto a given square if there is already a block in the process of falling there. 
If a block falls on the square where the player is standing, the player is squished and the game is over. If the player is in transit from that square to another (i.e. in mid-animation) at the moment the block hits, though, he is safe. Whether or not he is squished is determined at the moment the block hits the block below it and stops moving, not sooner. The player will have to exercise a bit of suspension of disbelief in this case because it will be possible for the player to save himself just in time even if it appears that his head or torso have already be crushed by an encroaching block.

A filling algorithm chooses which location to drop new blocks based on a preference to fill in an entire level before adding too much to the next few levels in order to avoid getting the player into impossible-to-avoid situations that will cause frustration and premature quiting of the game.



Controls
The game is played with just the arrow keys. Up=NE, Left=NW, Right=SE, Down=SW. Pressing a key moves the player one step in that direction if a) the target square is on the same level as the player, b) the target square is no more than one level higher than the player, or c) the target square is lower than the player. This means that the player can jump down a virtually unlimited number of levels (though there shouldn't be more than two or three levels to jump down if the filling algorithm works properly).

Menu
The menu will feature three options: Play, Instructions, and Credits. The instructions page should be simple with not much more than, "Avoid falling blocks. Climb higher." Clicking the play button should launch the player right into the game at stage one.

I think that just about sums up everything that's needed for a bare-bones prototype. I get the feeling that I'll definitely be adding some additional features relatively early in the process (like bonus collectibles of some sort to increase the player's score or something like that), but it's important to set an initial goal off of which other features can be built. Without the solid foundation of core gameplay down first, the actual implementation can easily grow quite painful very quickly.

Until next time, in the Land of Dinosaurs,

-Isaac

Sunday, August 8, 2010

Free Game Graphics

While I feel that the best way to get art for your game is to make it yourself (or get someone else to make it for you), there are some situations where free art just fits the bill. If you can't draw, you can't afford an artist, or you don't have enough of a history to convince someone to do it for free or for *cough* "royalties" *cough*, these sites might have just what you need. Though, quite frankly, free game art is generally free for a reason. But hey, maybe you'll find that perfect little gem (figuratively and not) you needed to polish off your indie title. Good luck and happy developing.

Lost Garden
The first site that pops into any indie developer's mind when free game art is mentioned. Danc, a brilliant artist and designer has been offering his quality assets to the development community for free for a good while. Why? For the betterment of the art of game design I suppose. Anyway, this is definitely worth a look, and if you have some time left over, be sure to read through some of the archives from his blog. He's got some pretty interesting things to say.

Sheep RPG Character Kit
I get the feeling that more was planned for the future when this page was set up, but for now you can find an excellent RPG character construction kit with tons of outfits and accessories that you can add or remove. If you are making an RPG and this is the art style you're going for, do yourself and favor and click that link up above.

Nuvorm Explosion Generator
Need unique, good looking explosions for your shoot 'em up? Look no further. Nuvorm has managed to create one of the coolest generator's I've seen. Just keep clicking render until you find something you like. When I first came across this site, I sat for a good ten minutes just cycling through random explosions, ogling over their brilliance.

SpriteLib GPL
Somewhat dated looking and specific, but I'm sure they'll find a good home in a welcoming developer's arms.

Molotov.nu
Tons and tons of low-res, RPG-appropriate tilesets and sprites. The graphics that weren't made by the site-owner have their licenses intact, and everything appears to be pretty open. Making a graphical rogue-like or a top-down 8-bit RPG? There's probably something here you could use.

Reiner's Tilesets
Tons of 3D-rendered isometric sprites and environment elements. Everything's a bit toony looking, but if that fits with your vision, this site's wide array of offered assets are sure to please.

GameBeep
Some paid, some free, lots of varied 3D and 2D art assets with some audio thrown in for good measure. Medieval, scifi, pixel art, textures, tilesets, etc. Definitely worth a look.

Ironstar Media's Free Assets for Indie Developers
I just came across Ironstar Media's offering while compiling this list and I'm definitely excited to look through what they have. Click click click!

Charas Project
Another great resource if you're putting together an 8-bit top-view RPG or something similar. The generators are pretty nifty, too.

TIGSource Assemblee: Part 1
Here be the remnants of an old game-art competition run on TIGSource. Lots and lots of cool assets if you're willing to sift through the threads.

Incompetech Royalty Free Music
After all those sprites, I thought I'd top things off with a nice music site. Everything here is free to use and royalty free (double free!), and the music isn't half-bad.

There are tons more sites out there offering free graphics. Just try a Google search for "free game assets." I listed here some of my favorites, and some that I thought might be hard to find with traditional search methods. I also only linked to legitimate sites, not spritesheet rip sites like www.panelmonkey.org. Anyway, I hope this list helped. I'll try to keep it up to date and the links alive.

Until next time, in the Land of Dinosaurs,

-Isaac

P.S. If you just can't find art that fits your needs, read this and rejoice in Danc's wisdom.

P.P.S. Gah! I almost forgot! Take a good long look at OpenGameArt.org and be pleasantly surprised. Then weep at the momentous occasion that you discovered such a treasure trove of awe and wonder.

Falling Blocks

I suppose I forgot to mention in that last post that I won't be dedicating all my time to an online game. Doing that would be insane. Instead, I'm leaving it on the shelf to fester in my mind and, when I have some free time and no other projects going on, I'll draw up some graphics or jot down some design ideas, and when I have tons of time, I'll put some effort into the programming. The networking stuff is a pretty daunting a task, so it's not something I want to go into unless I'm sure I'll come out alive and sane. So basically, don't worry. It's still there, even if I'm caught doing other things.

Here is one of those other things: a simple game design that will be a good opportunity for me to play with the Flash platform (which I am completely fascinated by. Read this and Danc's magical words may convert you as they did me). The basic idea is simple: the player controls a character who is caught in a small, but very tall room. Blocks are constantly falling from somewhere up above. The goal is to avoid the falling blocks when they fall, and to jump up onto them once they do such that you are in a good position not to get squashed, and to jump even higher when more blocks fall. The room  is an isometric 4x4 grid, and the player is only able to hop a single block height at a time.

The "jump on top of falling blocks" isn't a new concept at all, though I'm not sure it's been done isometrically (feel free to prove me wrong). Of course, I wouldn't be able to sleep if I knew I was making a game in an existing mini-genre without adding something new, so here are some ideas I have:

  • Power ups that fall from the sky and let the player do things like hop two blocks at once, or survive a single block crush.
  • Stages. Once the player reaches a certain threshold of height, the blocks all fall out from underneath the level and the room is back at square one, but this time blocks fall faster.
  • As the player gets higher and higher, blocks appear faster because they have less time to fall.
  • Bombs that occasionally fall instead of blocks. Run away from these. They are bad.
One problem that plagues all falling block games is that there is a high potential to get stuck in a situation that just isn't possible to get out of if the player just tends to be really unlucky with where the blocks fall. So some algorithm has to be devised that tries to reduce this risk. I'm imagining something along the lines of "preference goes to filling an entire level before adding too much to the next level(s)." Of course, done wrong, this could make it too easy. I suppose this is one of those things that you fine tune in playtesting.

Finally, here's a simple mock-up of what the falling block might look like. Notice the shadow that indicates a block is about to fall. This will help the player decide where to go before a block comes down and crushes him.

I'll try prototyping this in Flixel, but if I get as frustrated as I did the last time I tried using it, I'll flip over to PushButton Engine, which may be overkill, but I'm happier with overkill than mind-numbingly infuriating.

Until next time, in the Land of Dinosaurs,

-Isaac

Saturday, August 7, 2010

My Online Game

I'm in the infant stages of developing an online game. This is the sort of thing that every new game developer immediately decides to pursue and almost as quickly decides is much, much too hard. Of course, there are those who don't manage to figure this out and who decide to bring down game development communities with them when their ideas don't strike home. Just take a look at the GameDev.net Help Wanted forums and count how many [MMO] tags you see on the first page. Then, of course, there a surprising number of these projects that actually make it off the ground, and seeing posts of success months or even years after I remember seeing their Help Wanted post always gives me a warm tingly feeling inside.

Anyway, I've decided to go for an online game.

When I'm in design mode (as opposed to develop mode), my creativity tends to be driven by artwork. I don't think of game elements, then try to imagine what they might look like. Instead, I create random doodles and widgets and things and try to imagine how they might fit into a design. I personally feel like this opens a different part of the mind to innovation in game mechanics and design, less limited by logic and "the norm." Of course, this method does tend to lead to quite a bit of unused artwork that doesn't manage to find itself in the design. But hey, the more practice drawing game art, the better one gets, right?

So my online game project began with some graphics. I felt that, as an individual developer, I had to decide between being innovative in art, or innovative in gameplay. I settled for neither. I'll copy art from popular games, and I'll implement well-worn MMO game mechanics that I know and love. If I'm lucky, I'll mix them in just the right way, and I'll try to make it fun, but I'm not going to maintain any delusions about "changing the industry" or the other crap that one tends to hear quite often over on GameDev.

Here's the first revision of a character that I put together. I'm not totally satisfied with the position of the head during the running animation. When switching quickly between running and standing, it looks a bit like some Egyptian head-bob dance.

Now imagine running around a decently-sized platformer universe, slashing mobs with swords and hitting them with fireballs, collecting armor, weapons, experience, etc. Well, I'm pretty excited about it. I'm using XNA (just Windows. I can't do the networking stuff I want on the Xbox), and I'm leaning towards Photon to help out on the server side, though quite honestly, the only thing I have to go on is the front page "BUY PHOTON NOW SUCKERS" information. I'll take a closer look when the time comes.

Until next time, in the Land of Dinosaurs,

-Isaac

P.S. I used GraphicsGale to make that pixel art. It's definitely one of my favorite art packages geared towards pixel art out there and is worth a look if you're interested.