maandag 22 juni 2009

pathfinding in action!

One of the key features of Flipper is the fact that all interaction is done through the touch-screen. Using the powerups, but also walking. I tried to make the computer as smart as possible, so it knows what you want to do. This was one of the hardest things to do for me, but the results are pretty cool.

This video shows how the player moves around. The black-dot represents the stylus. Watch how you can touch anywhere on the ground, and the player automatically moves there. Taking the shortest route possible. Watch how the computer finds his way all to the top!

dinsdag 16 juni 2009

vrijdag 12 juni 2009


Okay, I’ve been pretty silent in may. This is mainly because I didn’t have anything to really talk about. Just some small bits which I didn’t put online. Because I don’t like reading such blogs and I thought neither would you.

I decided to only post when I really have something cool to say about the game (like the most recent 2 posts) and not post every Monday and Friday. However, if you would like to know the current state of the game I suggest you follow my twitter :

The twitter will basically become the place were I will put the small bits on (that don’t deserve a blog post). But it will give you a good insight in the development of Flipper!

It’s Friday night;time for a cold beer! Cheers!

donderdag 11 juni 2009


Just recently I started to collaborate with Eirik, he’s going to produce the music for Flipper. Today I received the first test song. I got so excited I started working on the sound code right away.

I feared this was going to be hard (since I had a lot of trouble with sound on the gba, especially getting it to sound right). But it really wasn’t a big deal. Within an hour I was able to play the song on the background. Everything gets streamed and it almost doesn’t slow down the game.

The only thing that’s worrying me is the filesize. The wav songs I currently use are between 6 and 20mb each! Increasing the rom size tremendously. All code+art is around 1,5 MB in rom size. Now the final rom is 28 MB thanks to the songs! I need to find something for that.

I still got enough to do on the sound part, but the fact I got the songs playing without sucking up too much CPU is a big relief. So I’m quite happy right now!

I’ve also added a feature that when you click on a sprite (or close by) the character will move to the exact location of the sprite. Previously you had to tap on the ground (were the sprite layed/standed) and it resulted in a lot of ‘miss-grabs’ (the player stood close, but not close enough to pick it up, so you had to tap again).

And last but not least I’ve tweaked the pathfinding a little. Now it works even better. I guess it’s not the last time I need to tweak it (since there are so many possibilities to go around the level, there’s always an exceptional case that I didn’t take of).

All in all it was a very productive day.

dinsdag 9 juni 2009


Okay.. update time. I’ve been working on the path finding. And it’s getting really really good. Almost perfect :) there are still a few glitches. I found a pretty nice solution. I was kind of worried I needed to examine every voxel within the world.Because a staircase/bridges can be blown up or if you blow pieces of wall/rock away at the right angle you might be able to use it as a staircase.

So I was kind of worried that I couldn’t rely on a standard tile set to check against.
Luckily that wasn’t really the case. What I’m currently using is a grid of 3x3 squares, I put some generic stuff in there (like the height is 4 blocks, or it’s a bridge). I create a move list through the grid, most of the time It works, but if the player gets stuck within a square I try to resolve it with some easy functionality (i.e. switch axes to get to the next square).

I’m really glad it worked. It’s a big relief.

Next up is the sound code. I’ve been putting it off for some time now, because I’ve never really looked at the sound-stuff for DS. So it’s all going to be new. Hopefully it’s not going to be too hard, or costs a lot of CPU speed.