I was reading the old diary posts of ‘Prince of Persia’ by Jordan Mechner (http://jordanmechner.com/) It makes me feel really weird to read that a big shot designer as Jordan was once in the same place as I am right now. While developing Prince of Persia he was also hoping it would be a hit for basically the same reasons as me.
One thing struck me as very interesting and it made me think; the sword fighting. It’s really hard to image that Prince of Persia started out as a platform-adventure game without the action. The sword fighting was added after Prince of Persia was into development for months.
It’s a really significant thing that changed Prince of Persia from a good game to an instant classic.
It made me wonder; what is Flipper’s sword fight ? does it have a sword fight at all ? This is a really difficult question to answer at this moment, and I’ve been thinking about it for a long time. My short answer would be; the star item!
Let me explain why :
When it comes to big things, I think I struck gold from the beginning on. Blowing things up is fun. Even after one year of development, and countless hours of testing, I still love to blow stuff up in Flipper.
The star item got added into development quite late. And It made a huge difference on the gameplay. It made the game more interesting for players to play and (maybe more importantly) replay.
It also increases the difficulty of the game quite a bit. Because you need to spend your powerups to reach the star AND exit. This limits your possibilities, and requires totally different strategies.
It also creates three new goals for the player to complete.
The first goal is collecting. I think it’s a natural thing for humans, they like to collect. If you find a star it will show up in the level-menu.
The second goal is increase your highscore; the star is worth 500 points, so it boost the score a lot.
The third and last goal is extra content. If you collect all the stars in a world, a special star level will unlock for that world.
In most games the first two goals are enough to motivate the player, but there’s no motivator like extra content. It’s a big reward. Combine all these elements together and replaying the game becomes really fun.
I image that most players try out Flipper first, without going for the star. Since they are new, getting to the exit is a big enough task. After that they can replay the levels in each world to improve their highscores and collection, yet once every few levels there’s going to be a new level (star level) to keep things fresh and new!
This way replaying the game isn’t really replaying the game (since new, not-yet-played, content gets available).
I think this really makes for a strong game!
woensdag 23 december 2009
donderdag 17 december 2009
A hit game
Okay, the last few days have been quite boring on the development front. Hence the fact I didn’t post all that much. Basically I’m waiting for Nintendo to hand me a seal of quality for the USA version, I hope it happens before Christmas.
Today I finished the European version, which wasn’t really that much work. I had to edit the font for some German letters, included a new e-manual and I replaced the rating screen (pegi).
Tomorrow I’ll probably work on the website for goodbyegalaxygames.com which I haven’t spend much time on before, since I wanted to finish the game first.
The problem with being done with development is that your mind kicks in. Normally there was always a bug or an issue to worry about. Something that needed to get fixed. Now everything is done, and suddenly I find myself in panic mode.
I feel like I’m at a crossroad where one road leads to fame and a career as a professional game designer and another road to being a loser. I’ve dreamed all my life of being a game developer.
Now I feel like it can really happen…. Or not.
When I started programming and making games at the age of 9, I wanted two things for my game; that my friends would love to play it, and a good review in the Power Unlimited. The videogame magazine everybody in the neighborhood was reading at the time.
Things didn’t change much. I still have those two goals. But I also know that Flipper really needs to be a hit. I need to earn some cash with it. To pay the rent, but more importantly; for creating my next game.
Last few days I’ve been playing with a new game concept in my head. Hopefully I’ll get the change to create that concept into a full game as well. If Flipper brings in enough money, I can quit school and make a real career out of videogames.Please let Flipper do well… please.
Today I finished the European version, which wasn’t really that much work. I had to edit the font for some German letters, included a new e-manual and I replaced the rating screen (pegi).
Tomorrow I’ll probably work on the website for goodbyegalaxygames.com which I haven’t spend much time on before, since I wanted to finish the game first.
The problem with being done with development is that your mind kicks in. Normally there was always a bug or an issue to worry about. Something that needed to get fixed. Now everything is done, and suddenly I find myself in panic mode.
I feel like I’m at a crossroad where one road leads to fame and a career as a professional game designer and another road to being a loser. I’ve dreamed all my life of being a game developer.
Now I feel like it can really happen…. Or not.
When I started programming and making games at the age of 9, I wanted two things for my game; that my friends would love to play it, and a good review in the Power Unlimited. The videogame magazine everybody in the neighborhood was reading at the time.
Things didn’t change much. I still have those two goals. But I also know that Flipper really needs to be a hit. I need to earn some cash with it. To pay the rent, but more importantly; for creating my next game.
Last few days I’ve been playing with a new game concept in my head. Hopefully I’ll get the change to create that concept into a full game as well. If Flipper brings in enough money, I can quit school and make a real career out of videogames.Please let Flipper do well… please.
zondag 6 december 2009
When rules try to kill game design
Okay, I haven’t been posting as much as I wanted. But it has been very VERY busy. Basically I worked on the USA and EU version of Flipper. And hopefully (if everything goes right with the lotcheck) the USA version is available around xmas (but probably January).
As you may know there are a lot of technical rules for developing a console game, but there are also gameplay rules. I’m sure that when they created them it seems like a good thing, in fact if you read the rules they seem good. The problem is, they don’t always work for every game.
Flipper happens to be one of those games. It’s a puzzle game. It’s normal for the player to get trapped. However the rules say a player should never be trapped. And this is where my nightmare game design begins.
In flipper, there’s a powerup which lets you build blocks. You can build staircases and bridges with it. However, if you build it on top of the player. The player gets trapped. This is against the rules.
There are few options that one can take to solve this problem :
a.) When the player is inside a block, just push him up (to the top of the block). But this sucked because it ruins most of the puzzles. For example, in most of those puzzles, flipper is on top of a hill. You build a block against it (while the player stands against it aswell) and the player gets pushed to the top. Now the player can get Flipper without solving any of the puzzles.
b.) Not being able to build blocks around the player. Which also suckes a lot because now there’s a invinsible boundary where you can’t build. And you need to move the player before you can. This is irritating. Besides that, it was cool to be able to lift the player up by building a block under him (this is different than building a block ON him).
c.) Let the player die instantly (well, after the dying animation). Which is still against the rules, but a little better then letting the player decide it’s over (and manually have to restart the level). However, it also doesn’t give you the change to free yourself (in case you have a destroy-powerup).
In the end I decided to go for C. I don’t wan’t to just pick a fight, but I feel this is too important for the fun of the game. I don’t want to kill the puzzles for something as stupid as this.
Just to get something visual in this post: here’s a look at the result screen. You get points for unused powerups (solving the puzzle with the least amount of powerups), you get points for trapping the enemies (letting them fall of the world), and you get 250 points for reaching Flipper and another 500 points for finding the golden star!
As you may know there are a lot of technical rules for developing a console game, but there are also gameplay rules. I’m sure that when they created them it seems like a good thing, in fact if you read the rules they seem good. The problem is, they don’t always work for every game.
Flipper happens to be one of those games. It’s a puzzle game. It’s normal for the player to get trapped. However the rules say a player should never be trapped. And this is where my nightmare game design begins.
In flipper, there’s a powerup which lets you build blocks. You can build staircases and bridges with it. However, if you build it on top of the player. The player gets trapped. This is against the rules.
There are few options that one can take to solve this problem :
a.) When the player is inside a block, just push him up (to the top of the block). But this sucked because it ruins most of the puzzles. For example, in most of those puzzles, flipper is on top of a hill. You build a block against it (while the player stands against it aswell) and the player gets pushed to the top. Now the player can get Flipper without solving any of the puzzles.
b.) Not being able to build blocks around the player. Which also suckes a lot because now there’s a invinsible boundary where you can’t build. And you need to move the player before you can. This is irritating. Besides that, it was cool to be able to lift the player up by building a block under him (this is different than building a block ON him).
c.) Let the player die instantly (well, after the dying animation). Which is still against the rules, but a little better then letting the player decide it’s over (and manually have to restart the level). However, it also doesn’t give you the change to free yourself (in case you have a destroy-powerup).
In the end I decided to go for C. I don’t wan’t to just pick a fight, but I feel this is too important for the fun of the game. I don’t want to kill the puzzles for something as stupid as this.
Just to get something visual in this post: here’s a look at the result screen. You get points for unused powerups (solving the puzzle with the least amount of powerups), you get points for trapping the enemies (letting them fall of the world), and you get 250 points for reaching Flipper and another 500 points for finding the golden star!
dinsdag 3 november 2009
new trailer, out now!
Last night was a freaky moment. For the first time in over a year, I had nothing to do on the Flipper project. I filled out some documents for Nintendo, but after that it was done. For the first time In ages I had nothing to do for the night, I had to go to bed.. like all normal people do at night. It was a shocking moment.
I’m sure there will be some minor adjustments to Flipper, but no real work. All my focus goes to promoting the game now. So if you have a game-website and you would like to know more about Flipper, don’t hesitate to mail me!
Promotion
First off, I did a podcast with the wiiDS podcast guys. You can check the interview out here; http://thewiids.co.uk/blog/?p=1247. In the interview I discuss all kinds of things about Flipper and it’s development process. I had a great time, thanks guys!
And now for the really big news; THE NEW TRAILER IS OUT NOW! Yes, finally! The publisher made it, and they gave me permission to start spreading it today. I think the trailer is absolutely awesome!
Go ahead and check it out :
You can find this trailer and the other trailers at the official Goodbye Galaxy Games youtube channel : http://www.youtube.com/goodbyegalaxygames
I’m sure there will be some minor adjustments to Flipper, but no real work. All my focus goes to promoting the game now. So if you have a game-website and you would like to know more about Flipper, don’t hesitate to mail me!
Promotion
First off, I did a podcast with the wiiDS podcast guys. You can check the interview out here; http://thewiids.co.uk/blog/?p=1247. In the interview I discuss all kinds of things about Flipper and it’s development process. I had a great time, thanks guys!
And now for the really big news; THE NEW TRAILER IS OUT NOW! Yes, finally! The publisher made it, and they gave me permission to start spreading it today. I think the trailer is absolutely awesome!
Go ahead and check it out :
You can find this trailer and the other trailers at the official Goodbye Galaxy Games youtube channel : http://www.youtube.com/goodbyegalaxygames
donderdag 22 oktober 2009
new things for the eyes!
I’m releasing some brand new screenshots,artwork and other stuff today! First off; I would like to present the logo and artwork! It’s done by Paul and it looks amazing!
The reason the logo isn’t on the box-art is because we (me and the publisher) felt that it wouldn’t be as readable when resized (what happens a lot on internet sites). I really feel like the box-art captured the mindless fun that you will experience while playing Flipper.
Okay now onto the screenshots! The ingame screenshots aren’t too revealing (the same world I have shown before) with maybe the exception for the pirate world (I didn’t really promote the pirate screenshots from my last blogpost).
What I find more interesting is the menu screenshots. Which hasn’t been shown before! The world-select screenshot shows all the worlds and reveals a little hint about the last world (robots!). The level-select screen shows the basic flow of the game (level 5 is the star level and level 6 is the bonus game). As well as how highscores are visible (at the bottom, it changes when you select a level). Also note the little golden stars appearing behind a level (if you collected a star there). Collect a star in the first 4 levels and the star-level opens! Also note how the menu-theme changes when you select a different world!
dinsdag 6 oktober 2009
new new new
Finally new blog update! It took some time, because work right now is pretty frantic. Same excuse as last time :) right now, I’m trying to make a perfect build for Nintendo. Which is very hard. So many little rules. As you might have read, I wanted to get a build on its way last Friday. But I really misjudged the work that comes with making such builds. It’s looking good now, I’m positive that I will meet the deadline of this Friday!
I’ve been looking in to some other things as well regarding the Flipper projects. One of them is the price point. I wanted it be 200 points, badly. Even though the game is much bigger than all other 200 point games. I felt that everyone should try it, and that nobody would skip the game at 200 points.
It turns out that the price point isn’t just a matter of the developer wanting it. There are other parameters involved such as the download size. The Flipper game is fairly large, and because of that there might be a change I have to choose to sell it for 500 points.
I’m wondering right now what to do. If I really want the 200 point, I might be able to scale the game down (i.e. lose a lot of sound quality). But I don’t know if I want to make the game WORSE for 200 points or that I rather make it BETTER for 500 points (i.e. improve the sound quality that’s in the game right now).
PLEASE NOTE; that it’s not certain the game will be 500 points (or 200 points). I didn’t discuss this with Nintendo or the publisher, so I don’t know if they will make a fuss about it or not. Maybe if I ask really nice, they let me get away with 200 points even though the game is rather big :)
It’s just something floating in my mind right now.
Some time ago there was a preview of Flipper on Edge Online (http://www.edge-online.com/features/preview-flipper). Because I love the magazine, I decided to give them some exclusive screenshots of the pirate world.
Because it’s more than a month ago, and because I know some of you are itching for news, I decided to release them in their full glory right here :
I’ve been looking in to some other things as well regarding the Flipper projects. One of them is the price point. I wanted it be 200 points, badly. Even though the game is much bigger than all other 200 point games. I felt that everyone should try it, and that nobody would skip the game at 200 points.
It turns out that the price point isn’t just a matter of the developer wanting it. There are other parameters involved such as the download size. The Flipper game is fairly large, and because of that there might be a change I have to choose to sell it for 500 points.
I’m wondering right now what to do. If I really want the 200 point, I might be able to scale the game down (i.e. lose a lot of sound quality). But I don’t know if I want to make the game WORSE for 200 points or that I rather make it BETTER for 500 points (i.e. improve the sound quality that’s in the game right now).
PLEASE NOTE; that it’s not certain the game will be 500 points (or 200 points). I didn’t discuss this with Nintendo or the publisher, so I don’t know if they will make a fuss about it or not. Maybe if I ask really nice, they let me get away with 200 points even though the game is rather big :)
It’s just something floating in my mind right now.
Some time ago there was a preview of Flipper on Edge Online (http://www.edge-online.com/features/preview-flipper). Because I love the magazine, I decided to give them some exclusive screenshots of the pirate world.
Because it’s more than a month ago, and because I know some of you are itching for news, I decided to release them in their full glory right here :
zaterdag 19 september 2009
the content is DONE!!
Okay, it took me some time to write a new blog post. But I had a good reason; Flipper development is going hard and fast! As of today basically all the content is done (I get 2 more songs on Monday, and I need to put in some translations) but all the graphics and levels are DONE.
I’m really happy and relieved right now. As some of you know I started school at the beginning of September, and I’m developing Flipper! at night. For the last few weeks I didn’t sleep more than 3 hours a night.
And now it’s basically done. And I’m so happy with the levels and how the game turned out. For the first time in my life I actually like to play my own game! Normally I don’t play my own games because I know all the levels and AI code by hearth. So it isn’t fun.
But in Flipper! there are just so many ways to complete a level or get a higher score. A wasted so many testing time on breaking my own high scores.
The high score is defined through the following parameters : how many items are left over in the level, how many enemies you killed and if you collected a star.
Combine this with the big freedom the powerups give you (you really can use the powerups everywhere). And the fact that you can improve your platform skills (i.e. get the timing just right so you can pass between two enemies). The platform skills aren’t necessary to complete a level but they do help if you want to get a really good score.
Also the guys from sonic picnic (http://www.sonicpicnic.nl/) have provided the audio for Flipper! and I must say, it’s awesome. Especially the different songs for each theme. It really captures the atmospheres of the worlds. And they sound darn catchy as well!
Next week consists of cleaning up the code and making sure the game follows all the rules of Nintendo. Then the game can be send to Nintendo for testing where it hopefully passes and gets added to the store/channel.
Also next week, I will make an official statements regarding the game and publisher (and hopefully release info). I will probably add some new visuals (the new logo is AWESOME!) and screenshots.
I’m really happy and relieved right now. As some of you know I started school at the beginning of September, and I’m developing Flipper! at night. For the last few weeks I didn’t sleep more than 3 hours a night.
And now it’s basically done. And I’m so happy with the levels and how the game turned out. For the first time in my life I actually like to play my own game! Normally I don’t play my own games because I know all the levels and AI code by hearth. So it isn’t fun.
But in Flipper! there are just so many ways to complete a level or get a higher score. A wasted so many testing time on breaking my own high scores.
The high score is defined through the following parameters : how many items are left over in the level, how many enemies you killed and if you collected a star.
Combine this with the big freedom the powerups give you (you really can use the powerups everywhere). And the fact that you can improve your platform skills (i.e. get the timing just right so you can pass between two enemies). The platform skills aren’t necessary to complete a level but they do help if you want to get a really good score.
Also the guys from sonic picnic (http://www.sonicpicnic.nl/) have provided the audio for Flipper! and I must say, it’s awesome. Especially the different songs for each theme. It really captures the atmospheres of the worlds. And they sound darn catchy as well!
Next week consists of cleaning up the code and making sure the game follows all the rules of Nintendo. Then the game can be send to Nintendo for testing where it hopefully passes and gets added to the store/channel.
Also next week, I will make an official statements regarding the game and publisher (and hopefully release info). I will probably add some new visuals (the new logo is AWESOME!) and screenshots.
vrijdag 21 augustus 2009
Easy Compression
Thanks to the pretty detailed graphics (sprites of 48x48 with 6 frames of animations drawn from 8 sides) I went over the normal DS RAM limit (4 MB). This isn’t a huge problem, since the DSi has 16 MB ram (4 times more!). However I like to try and keep everything as small as possible. And I was never satisfied with the way I handled the graphics (I was also too lazy to really change anything, until I hit this limit).
I applied a technique that I also use for my voxels. Although recently, I noticed this is also the way John Carmack did store the graphics for Doom.
Basically what I do is, throw out all the transparent pixels of the bitmap (and with transparent I mean the color the game doesn’t draw). This (especially for sprites, which always seem to have a lot of transparent pixels) decreases the size a lot.
I just scan the bitmap map, and store only the pixels that aren’t transparent. I do this using ‘slabs’ or lines. When I find a pixel that isn’t transparent I create a new slab or line. The line will grow (in width) until we hit another transparent pixel.
Here's a sprite animation from the pirate theme world -
At the same time I store all non-transparent pixels in a array.
When I want to draw such a picture in the game. I just loop through the lines and draw them. This way I can figure out where all the non-transparent pixels go on the screen. It’s also faster than my normal approach (since I use to scan over every pixel in the 48x48 bitmap, and then decide if it needed to be drawn).
This is kind of cool, because normally compression means you need to decompress. Which makes things slower instead of faster!
I applied a technique that I also use for my voxels. Although recently, I noticed this is also the way John Carmack did store the graphics for Doom.
Basically what I do is, throw out all the transparent pixels of the bitmap (and with transparent I mean the color the game doesn’t draw). This (especially for sprites, which always seem to have a lot of transparent pixels) decreases the size a lot.
I just scan the bitmap map, and store only the pixels that aren’t transparent. I do this using ‘slabs’ or lines. When I find a pixel that isn’t transparent I create a new slab or line. The line will grow (in width) until we hit another transparent pixel.
Here's a sprite animation from the pirate theme world -
At the same time I store all non-transparent pixels in a array.
When I want to draw such a picture in the game. I just loop through the lines and draw them. This way I can figure out where all the non-transparent pixels go on the screen. It’s also faster than my normal approach (since I use to scan over every pixel in the 48x48 bitmap, and then decide if it needed to be drawn).
This is kind of cool, because normally compression means you need to decompress. Which makes things slower instead of faster!
donderdag 30 juli 2009
Okay, today I can finally show of the new art for Flipper! It’s done by Paul Veer, and it’s amazing! The world have a lot more detail now. And the sprites are just fucking awesome. He animated all characters from 8 sides, they have many different animations. And the same goes for other objects!
A little more in depth view of the art. We recreated the boy because nobody (including us – me and Paul) seemed to love the nerd-character. The boy is just easier to bond with.
We had a discussion about keeping the fish as the exit-point versus something else (i.e. a tele-portal). But I really wanted to keep the fish, since it’s just an awesome character and it’s such a big part of the story. Next to that I like the Donkey Kong nostalgia aspect of keeping the goldfish as exit.
Most of the time Paul and me were on the exact same page. We both adore pixel art and as such we are fans of old games that use cool pixel art. And the art he creates is exactly what I had in mind.
I’m very glad with his work on Flipper!
you can check out all the new art at : http://www.goodbyegalaxygames.com
zondag 26 juli 2009
Menu madness
Last week I threw out all the menu code and completely rewrote and redesigned it. One would be surprised to see how something as simple as menu code can quickly become a huge mess.
Basically I made a brilliant *ahem* design for the menu. Later one of course, I needed to insert a few menus that didn’t have the same setup/structure. I hacked those in. After that I decided to add and pass a few parameters from menu to menu, needless to say I didn’t thought of it before, and they were also hacked in. So all in all it got messy.
So I started to re-write everything. In my defense, the second time coding something is always easier. Because now I knew all them menus and functionality I would need. So I could all incorporate them into my design from the start one.
I’m pretty pleased with the results. The code is clean (and a lot shorter) and very readable. The menu is more clear and faster. So it was a good week.
Next week (starting tomorrow) I will do the last few gameplay-coding thingies. And then the code is done. Meaning that next week I will clean all the code up, and finish it. After that It’s all about the content (which is done for probably 60%).
Basically I made a brilliant *ahem* design for the menu. Later one of course, I needed to insert a few menus that didn’t have the same setup/structure. I hacked those in. After that I decided to add and pass a few parameters from menu to menu, needless to say I didn’t thought of it before, and they were also hacked in. So all in all it got messy.
So I started to re-write everything. In my defense, the second time coding something is always easier. Because now I knew all them menus and functionality I would need. So I could all incorporate them into my design from the start one.
I’m pretty pleased with the results. The code is clean (and a lot shorter) and very readable. The menu is more clear and faster. So it was a good week.
Next week (starting tomorrow) I will do the last few gameplay-coding thingies. And then the code is done. Meaning that next week I will clean all the code up, and finish it. After that It’s all about the content (which is done for probably 60%).
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!
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
twitter!
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 :
http://www.twitter.com/HugoSmits
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!
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 :
http://www.twitter.com/HugoSmits
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
sound!
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.
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
pathfinding
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.
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.
vrijdag 1 mei 2009
stuff
Okay, I’m pretty silent about the game for the last few weeks. And today isn’t different. I have some interesting meetings planned for next week but I really can’t tell anything about them. The Party 7 went extremely well. They all liked the game and it was nice to chat with them.
I’m planning on making a really cool new trailer. It will show new puzzles and features and the new cool world themes! It will hopefully also feature some music this time ;)
I’m planning on making a really cool new trailer. It will show new puzzles and features and the new cool world themes! It will hopefully also feature some music this time ;)
vrijdag 24 april 2009
Night before the Party 7
Okay, so it’s Friday again, this evening the Party 7 officially opened. I will be there tomorrow in the afternoon. To hang around and chat with friends. But more importantly let people play Flipper.
Most of the crew from gameparty (the guys behind the Party 7) are industry journalists/professionals. So their opinion really counts for me.
I worked really hard on the latest build. Trying to get the old bugs out, put in some fancy menu’s and overall polishing. I’m really happy with it, it looks far better than I expected.
Here’s a quick screenshot of the main-menu I’ve put in :
That’s all I’m going to show right now. Expect more after the party :)
Most of the crew from gameparty (the guys behind the Party 7) are industry journalists/professionals. So their opinion really counts for me.
I worked really hard on the latest build. Trying to get the old bugs out, put in some fancy menu’s and overall polishing. I’m really happy with it, it looks far better than I expected.
Here’s a quick screenshot of the main-menu I’ve put in :
That’s all I’m going to show right now. Expect more after the party :)
maandag 20 april 2009
Just a few more days
Okay, everything is looking really good. The new levels and theme are in. The menu’s got fixed up, and I’m now rewriting some parts of the code / cleaning code stuff up. It’s just a few more days till the party 7. I’m pretty excited to go and meet some old friends.
I will probably post new stuff around the party 7 (probably the Monday after the party).
I will probably post new stuff around the party 7 (probably the Monday after the party).
vrijdag 17 april 2009
Does this still count an Friday-post ?
I promised to update my blog every Monday and Friday. Well I forgot! I’m still working but it’s past midnight, so I guess it still counts as Friday but I lose some bonus points :)
Anyway, today was hell. I’m working on the interface for the top screen. It pretty basic, it has a background (changes with the theme) and the inventory graphics(which power up your currently holding).
However, I needed to do everything in tile mode this time. And it was hell just to try and figure out what kind of data the damn hardware wants. I managed to get it all working eventually, but I’m not feeling satisfied. It would have been so much easier if I could use a 1D array as vram. Just like I use for the bottom screen.But the hardware doesn’t allow for it.So far it's the only thing I hate about the NDS, other than that it's pretty neat to code for!
Awell, back to work!
Anyway, today was hell. I’m working on the interface for the top screen. It pretty basic, it has a background (changes with the theme) and the inventory graphics(which power up your currently holding).
However, I needed to do everything in tile mode this time. And it was hell just to try and figure out what kind of data the damn hardware wants. I managed to get it all working eventually, but I’m not feeling satisfied. It would have been so much easier if I could use a 1D array as vram. Just like I use for the bottom screen.But the hardware doesn’t allow for it.So far it's the only thing I hate about the NDS, other than that it's pretty neat to code for!
Awell, back to work!
maandag 13 april 2009
Happy easter!
Well, after I ate some eggs today I got right back to work! The second world theme is almost done :) But I’m not going to post any screenshots today. I want to wait till more is finished (not only the new theme, but also the new menus). I’m preparing a new ‘beta’ for THE PARTY 7 (http://www.the-party.nl/) which is held in the weekend of 24th April. I will probably post some screenshots before that though :)
Okay, back to work!
Okay, back to work!
vrijdag 10 april 2009
Update friday
This blogging is still new to me. And I’m trying to figure out what the best date and timelaps are to post. I think I’m going to stick with Friday for development diary/tech talk and Monday’s for releasing new stuff about the game.
First off; I would like to thank everyone for the awesome messages that I got after announcing the game! I was already pretty dedicated and motivated, but seeing so much positive reaction really shows me this game might just work :)
Engine tech talk
If you’re not a game programmer feel free to skip this part!
After the announcement I’ve got a lot of questions about the engine. So I thought it might be good idea to explain it a bit. My voxel data (created by my own win32 tools) uses a modified approach to Ken Silverman’s slabs. The basic idea behind slabs (for the ones not familiar with Ken’s work) is that all visible (from at least one angle) voxels that are next to each other on a line (with no air between them) get grouped together into a slab. So you only need to store x,y and with of the slab for a bunch of voxels. Instead of x,y per voxel.
I use the slabs and an octree to scan through my data. And I use a subset of the data for the destruction part.
Game talk
Right now I’m working on a new theme to go with the second world. It’s pretty hard to come up with some decent looking themes. So I’ll probably make a few before I pick the right one.
After that I’m going to work on the menu graphics. When all graphics things on my list are done, I’ll probably add visual feedback for the character movement first. After that I want to edit the level-data format abit. Hopefully I have some nice new screenshots next week :)
First off; I would like to thank everyone for the awesome messages that I got after announcing the game! I was already pretty dedicated and motivated, but seeing so much positive reaction really shows me this game might just work :)
Engine tech talk
If you’re not a game programmer feel free to skip this part!
After the announcement I’ve got a lot of questions about the engine. So I thought it might be good idea to explain it a bit. My voxel data (created by my own win32 tools) uses a modified approach to Ken Silverman’s slabs. The basic idea behind slabs (for the ones not familiar with Ken’s work) is that all visible (from at least one angle) voxels that are next to each other on a line (with no air between them) get grouped together into a slab. So you only need to store x,y and with of the slab for a bunch of voxels. Instead of x,y per voxel.
I use the slabs and an octree to scan through my data. And I use a subset of the data for the destruction part.
Game talk
Right now I’m working on a new theme to go with the second world. It’s pretty hard to come up with some decent looking themes. So I’ll probably make a few before I pick the right one.
After that I’m going to work on the menu graphics. When all graphics things on my list are done, I’ll probably add visual feedback for the character movement first. After that I want to edit the level-data format abit. Hopefully I have some nice new screenshots next week :)
maandag 6 april 2009
Flipper announcement!
It’s finally time to show you guys my project; Flipper!
Flipper! Is an awesome puzzle-adventure game for DSi-ware. One day our
hero wakes up to find his goldfish, Flipper, is missing! It's upto you to find his goldfish and more importantly find out how it went missing in the first place!
Use cool powerups to modify the landscape to your advantage. There’s a wall in
your path ? blow it up! Can’t reach something ? build a staircase or
platform to stand on!
Flipper! Features multiple themed worlds, containing mind bending puzzles. In addition there’s also a time mode, and bonus levels.
Flipper! Is an awesome puzzle-adventure game for DSi-ware. One day our
hero wakes up to find his goldfish, Flipper, is missing! It's upto you to find his goldfish and more importantly find out how it went missing in the first place!
Use cool powerups to modify the landscape to your advantage. There’s a wall in
your path ? blow it up! Can’t reach something ? build a staircase or
platform to stand on!
Flipper! Features multiple themed worlds, containing mind bending puzzles. In addition there’s also a time mode, and bonus levels.
Flipper development
Flipper!
This is an awesome puzzle-adventure game for Nintendo DSi-ware! How awesome ? so awesome I decided to drop out of school to work on it fulltime, no kidding. The game was originally planned as a triple A - NDS cartridge game, I even found a publisher that would fund the project and bring it to the mass. However, due to the economy crisis the publisher went bankrupt!
I still believe holy in the concept/game and thus I decided to transform it into a DSi-ware title (easier to publish) and kept on working!
Sure, development like this can be hard at times. I use to work for commercial game development studios doing 3D programming, which earned me a nice paycheck at the end of the month.
Now I’m indie and on my own.And the paychecks are gone (living from my savings).
But I finally found back the true romance of game development; Sitting behind your computer late at night eating cold leftover pizza while thinking up new puzzles for the game is just great!
And I just can’t imagine doing anything else besides indie gamedev!
This is an awesome puzzle-adventure game for Nintendo DSi-ware! How awesome ? so awesome I decided to drop out of school to work on it fulltime, no kidding. The game was originally planned as a triple A - NDS cartridge game, I even found a publisher that would fund the project and bring it to the mass. However, due to the economy crisis the publisher went bankrupt!
I still believe holy in the concept/game and thus I decided to transform it into a DSi-ware title (easier to publish) and kept on working!
Sure, development like this can be hard at times. I use to work for commercial game development studios doing 3D programming, which earned me a nice paycheck at the end of the month.
Now I’m indie and on my own.And the paychecks are gone (living from my savings).
But I finally found back the true romance of game development; Sitting behind your computer late at night eating cold leftover pizza while thinking up new puzzles for the game is just great!
And I just can’t imagine doing anything else besides indie gamedev!
Galaxy Engine
Today I would like to present my latest 3D engine. The first true 3D voxel engine for Nintendo DS!
The work on this engine was quite different from my normal 3D work. Mainly because the Galaxy engine doesn’t use any polygons but voxels.
This allows for some really awesome new gameplay elements. Something you can rarely expect from a 3d engine! Basically the engine gives you full control of every voxel in the scene.
Which allows fully destructible 3D models. You can restore voxels that were destroyed, or you can add new ones on the fly!
Also, because the engine uses voxels instead of polygons. It’s now possible to add any kind of object/shape to the scene without any disadvantages regarding speed. For example in a polygon engine, a simple cube would only have 12 polygons (triangles) while that count would increase fast for a fully rounded sphere. However in a voxel engine, the voxel count for the given example wouldn’t increase that fast.
The engine also features per voxel collision detection (next to the normal object vs object detection).
Besides voxels, the engine also supports 2D sprites (for an example of that, look at the player/objects in Flipper). Also, everything rendered 100% in software mode. Which leaves the GPU free to do whatever you want!
The engine runs on both Nintendo DS and DSi.
The work on this engine was quite different from my normal 3D work. Mainly because the Galaxy engine doesn’t use any polygons but voxels.
This allows for some really awesome new gameplay elements. Something you can rarely expect from a 3d engine! Basically the engine gives you full control of every voxel in the scene.
Which allows fully destructible 3D models. You can restore voxels that were destroyed, or you can add new ones on the fly!
Also, because the engine uses voxels instead of polygons. It’s now possible to add any kind of object/shape to the scene without any disadvantages regarding speed. For example in a polygon engine, a simple cube would only have 12 polygons (triangles) while that count would increase fast for a fully rounded sphere. However in a voxel engine, the voxel count for the given example wouldn’t increase that fast.
The engine also features per voxel collision detection (next to the normal object vs object detection).
Besides voxels, the engine also supports 2D sprites (for an example of that, look at the player/objects in Flipper). Also, everything rendered 100% in software mode. Which leaves the GPU free to do whatever you want!
The engine runs on both Nintendo DS and DSi.