Tuesday, July 24, 2007

Game updated: Asteroids

After a lot of rewriting and optimizing code for Flippuzzle I felt like I needed to look at something else to keep my mind a bit sane, so I did a revisit to my Asteroids game. Since I spent the last three days optimizing rendering code, that's just what I continued doing with Asteroids.

The main bottleneck was the smoke rendering, but with some nice special case code to stiffen up the entity-management and smaller smoke textures I managed to double the framerate and make it much less CPU-hungry.

Play it at pjio.com.

Tuesday, July 17, 2007

Fleshing up with graphical effects

I got this idea about how some pretty particle-effects could improve Flippuzzle. I thought it seemed a bit overkill for a simple puzzle game, but since I had the old explosion code from Asteroids just lying around, I decided to give it a go. I figured it would be nice as some kind of reward, like showing some nice fireworks when the player makes it to the highscore table.

So, said and done I spent yesterdays evening on implementing, and tweaking it until it worked, at least a bit like it's supposed to.

Now when it's there I've realized that just simple particle effects isn't enough. The level-finished screen needs some cool animations and that is that.

I've put togheter some simple movements of the whole gaming area where it zooms out a bit and rotates around itself. It actually changes the whole feeling of the game in some strange way, to the better I hope, but I might be wrong there.

I think I'll tweak the animation a bit and see where it goes, hopefully it'll turn out fine, otherwise I guess I'll have to remove it again.

Thursday, July 12, 2007

Leveling up

I've spent some time adding more levels to my soon to be finished game Flippuzzle. Now there are almost 40 different levels to play, two or three more and I'll be happy with the amount. Besides adding a few more of them, the levels also needs to be sorted, to make sure they come in a nice and non-repetitive order.

Damn, game development is a lot of work. If anyone claims the opposite they're lying and will most likely spend eternity burning in hell for that.

But even though it's a lot of work and it seems to take forever to get the tiniest little detail finished, it's still great fun, and progress is being made.

Tuesday, July 10, 2007

IMGUI

The development of Flippuzzle is moving on smoothly and the menus looks a lot nicer and cleaner today than they did three days ago. I've put quite a lot of work into getting rid of all unnecessary menus. Earlier the player had to pass through four different screens to start a new game, now two is enough to fire it up.

I've been using the IMGUI desgin pattern for my menus, this is something that have worked really well, and that's why I'd like to tell you a few words about it.

IMGUI stands for Immediate Mode Graphical User Interface. The idea is to let the rendering and logic for the GUI melt together. This reduces needs for callbacks and event handling and therefore removes a lot of the awkward parts of GUI coding.

Button example:
if( DrawButton( "ok", 25, 25 ) )
{
//the button was clicked..
DoSomething();
}

Besides the improved readability, this makes sure you don't have to initialize/cleanup all your buttons. Just render, check for action and forget. Nice and simple.

I'm really pleased with this system. It's fast to create and edit menus and they can be as dynamic as you like them to. I recommend using IMGUI, especially when the amount of menus is quite small. The bottom line: it's ideal for most games.

For more information about IMGUI check out Casey Muratori's video on the subject at Molly Rocket.

Sunday, July 8, 2007

Introducing: Flippuzzle

A while ago I posted a screenshot from my current project with a promise to give more info about it. So, here we go!

The game is called Flippuzzle, and is a 3-dimensional puzzle game. All levels will be based on photographs taken in Greenland. I had two reasons for choosing Greenland,
1. the nature over there is simply amazing
2. I came across a lot of really nice photos for a really nice price


















Above you can see an actual ingame screenshot. The gameplay is controlled with mouse only and the goal is to get all pieces to their right position, just like with a regular jigsaw-puzzle. What differs this puzzle from regular jigsaw ones is that the pieces are linked with their neighbors and rotates with them. It sounds complicated, but it's quite logical once you get the grip of it.

The game is starting to feel quite finished now. What's left to do is:
  • Add more levels. At the moment I've got 25 but I'd like it to be somewhere around 40
  • Add music. The code for loading and playing the music is almost done, but I need to find and select some nice tunes that match the game. This is tricky.
  • Fix the menus and instructions, the menus is really unsatisfying in the current build, and the instructions simply doesn't exist.
  • Polish.
I'm hoping to get finished with the game sometime this summer, but you never know, when I started the project it was supposed to take about one moth. That's over two years ago today..

Monday, July 2, 2007

Frets on Fire

The game to play at the moment (besides my versions of Snake and Asteroids) is without any doubt Frets on Fire.



Fun, innovative and open source. There are some stability issues, but it's still a great game. If you haven't tried it yet, then you know what to do..