Drowning

Last week I implemented drowning/swimming gear (which allows for swimming without drowning, of course). I also finished up some level art, and completed the level artwork specification, which means subsequent level art will be easier and faster to create.

Over the weekend, I did mostly nothing, although I did a couple of tiny things. Last night I found myself somewhat bored at one point, and started working on a “fun” npc that does not actually belong in the game.

Today, I’ve been working on a fish npc, as a nice change of pace. Fish are really easy to draw :-P

Inventory

Yesterday, I finished up the game’s roadmap, so I finally have an excellent picture of what work is left before the game is ready for release. Since I’ve got it pretty much worked out, I figured today would be a good day to let everyone know where I’m at.

There are 6 distinct phases left for development:

-Phase 1 involves a lengthy list of things that need to be implemented/finished. I am giving myself one full day for each item on this list (although a few of them should be fairly quick, meaning some days I will get to multiple items). As of right now, this list is 15 items long. There are 17 days left before the end of October (14th – 30th), and I’ll probably do little or no work on the 31st, as it’s Halloween and the big Minecraft update is scheduled to come out that day. So, I should be done with phase 1 by the end of October, and have already started on phase 2.

-Phase 2 involves creating all of the remaining npcs. There are currently 25 of these remaining. I hope to devote no more than a week to this process.

-Phase 3 involves creating all of the remaining level artwork (tiles, backgrounds, etc.) There are 12 levels, and I hope to devote no more than a week to this process, also. I am actually optimistic that I can clear phase in about 3-4 days.

-Phase 4 involves actually designing and creating all of the levels. This is also where I will create the boss levels, and setup the bosses in them. Again, I hope to clear this one in no more than a week, probably less.

-Phase 5 involves adding in any sound effects that haven’t been already (I’m adding those in as I go, for the most part), as well as creating all of the game’s music. Having never created (real) music before, I am finding it hard to come up with a decent estimate for this one, but I plan on setting aside a whole week for it, just in case.

-Phase 6 is essentially just finishing touches. I make sure everything is working alright, finish up the port work for Linux and Mac (hopefully), and do closed beta testing. As this part involves testing and such, it is inherently impossible to estimate how long it will take, but I’m giving it a week, too.

So, assuming 15 days for phase 1, and a whole week (which should be fairly conservative) for each of phases 2-6, I should be done with the game on December 3rd. This estimate will probably end up being wildly inaccurate, but at least I’ve got one now. Barring some unforeseen catastrophe, the game should be ready for release sometime in early December. I’ll also be taking care of the government paperwork regarding the company somewhere in there. I hope to begin showing the game to online distributors shortly before release, and we’ll see how that goes then. At the very least, the game will be available from this site on release day (but probably not before then, unfortunately).

As for today, I implemented an inventory and added in all of the special items that can be collected throughout the game. Short and sweet.

Traps

Yesterday I implemented traps, which means it will now be trivial to add lots of cool new things to try and destroy poor Hubert. I gussied up the test level a bit more (the test level will eventually be transformed into level 1), and made a change to how climbing movement works. You now slide down the rope/pole/whatever twice as quickly as you can climb up it.

Today, I have been taking a hard look at the game’s design and plans, and have cut a ton of stuff (most of it felt a lot like filler anyway). The game’s design is now leaner, meaner, and, uh, finish-able-sooner-er! Some other aspects of the design were modified and updated, and I am currently working on a roadmap that should make moving forward (and finishing the game!) even easier.

Vendor Trash released!

A couple of years ago, I was working on my own version of a Drugwars-esque game that replaced the drugs and wars with RPG items and RPG battles, respectively. I essentially finished the project, but I never actually released it publicly. This was partially due to the fact that I couldn’t decide how to release it. I updated things here and there over the next couple of years, and kept all the libraries and whatnot up to date.

Fast-forward to today, and I decided that I should just release it as free and open source, so people can play around with it. It is fairly simple, but quite addictive and fun to play, if I do say so myself. I’ve setup a page/forum for the game here on the Cheese and Bacon site, and the game’s files are currently hosted on SourceForge.net here.

As I said, it’s open source, so do whatever you want with it. The game is licensed under the ‘Tasty Cheese’-ware license. The code is awful compared to my more recent endeavors, and was actually pretty dirty even back then, so you’ve been warned.

The game only works on Windows right now, but the binary is included with the download, so check it out, and let me know what you think!

Gameplay video

I’ve uploaded a video to Youtube showcasing the game’s current features and gameplay. It ought to be a good demonstration of what the game currently has, and should give you a good idea of what the game will look like.

I changed the size of the cow so it wasn’t a tiny toy cow compared to Hubert. I also fixed a bug with platform movement, and tweaked moving platforms a bit.

I added a couple of new AI variables, allowing greater control over things such as the cow’s mooing. I also tweaked some numbers here and there in the AI code.

Sound effects have been added for a number of new events, including levers, splashing in water, and more. I also tweaked some sound effects to sound better/not burst eardrums.

I redid some of the tile artwork, and added what I’m calling “clutter” tiles. So ground, walls, etc. can have random rocks and such embedded in them, making scenes more varied and pretty and whatnot. The backgrounds got some more attention, too, although I plan on completely redoing these at some point, since I’m still not really happy with them.

I’m moving ever closer to the major level push, wherein I will pretty much just be adding levels/level artwork for a while. Only a few features still need to be implemented before I can do that.

Artwork

For the last day or so, my main focus has been on cleaning up artwork, fixing/replacing/adding sound effects, and generally making the game presentable. I’ve also fixed a couple of bugs and done some other little stuff here and there. Today I’m working to finish this process, and later I should have a demonstration level ready to go. I’ll try to post a video tonight showing off what’s currently in the game. After all this presentation stuff is dealt with, I plan on implementing traps :-)

A new player sprite, among other things

[Originally posted September 27th, 2010]

Despite the fact that it has been almost a week since my last dev journal, work has continued unabated. Last week I finished modifying the artwork to fit the new style, and created a new player sprite. I also filled in most of the missing player animations.

I finished up doors/triggers, and fixed up moving platform movement. I also fixed a bug with world map collision. There were a few little updates here and there, but on Friday I began working on getting VBOs (vertex buffer objects) implemented for the hardware renderer. In layman’s terms, I was hoping to greatly enhance rendering performance when using hardware rendering. After working on this for hours on Friday, as well as a little bit over the weekend, and hours more today, I finally got them working and optimized. Unfortunately, I found that VBOs actually caused a slight decrease in performance. I spent some more time playing around with them, but ultimately it looks like the rendering method I was using before will work better.

So, I spent the past hour or so reverting all of the necessary code. It should be mentioned that the VBO stuff was not a total loss, as I did come across a couple of nice optimizations I could do while working on it.

I just now rewrote the way the renderer accesses the dimensions of an image to be rendered, which cleaned up a lot of code nicely.

I’m calling it quits for now, although I will probably look at some other ways to optimize rendering tonight. Tomorrow, I will be resuming regular work.

Cross-platform, ho!

[Originally posted September 21st, 2010]

I finished fixing up the new hardware renderer code, and got the screenshot function working again. I also fixed a worldmap collision bug.

With the renderer finished, the game is now platform-independent, so I hope to eventually release the game on Windows, Linux and Mac.

I tested the game on several different OS’s, just to see how it performs. On an emulated Windows 98 SE (via VirtualBox), it ran pretty decently in software mode (hardware mode blows up). In Linux, I tested it in Wine, and found that it ran quite well, but only in hardware mode. Software mode performed horribly. Then, I moved on to the main event, and got the game to compile natively in Linux (Opensuse 11.3). It runs quite well natively, so I’m thinking a cross-platform release is a real possibility.

Tonight, I decided to work on some level tiles, and I decided to throw out the slanted look I had been planning on, as it was going to delay the game far too much. I’m currently the game’s sole artist, and art is not exactly my forte, so anything that reduces art requirements is a Good Thing.

Here’s a screenshot of the slanted look that I was working on.

For a good look at the current direction I’m going, check out this video.

Platformer lighting

[Originally posted September 21st, 2010]

So, originally I wanted to use a somewhat fancy (from a technical standpoint) lighting system in Hubert’s Island, in which each tile had its own lighting value. You can see a video demonstrating this here. Ultimately, this just doesn’t look good, however. It was actually Aneissa who convinced me to let it go, as it was fun to write the code for, and a shame to just cut. Ah well, it was an hour well spent anyway.

A simple sprite-based lighting system has replaced the tile-based lighting, and you can see that in action here.

What do you guys think?