The past week or so

Over the past several days, I’ve been working on a number of different things.

I did some work on the NPC AI system, adding in another npc and… half of another one. I finished up some artwork requirements, and tweaked that stuff here and there. I updated the level editor. I implemented game saving, and added a way to have multiple versions of one level. This means that I can now have something happen in the game world that alters one or more levels in a drastic way. I started working on the world map player sprite, and will finish that up today. I also plan on adding in the mapping system today.

Yesterday, I began work in earnest on the Mac OS X version of the game. It has certainly been interesting thus far, mainly because this is the first time I have ever spent more than 30 seconds with a Mac of any kind. When I started this project, I only had plans for a Windows version. However, as I continued working, I began to realize that it would probably be possible to port the game to both Linux and Mac. For now, I am still only officially guaranteeing a Windows release, but I have high hopes for the Linux and Mac versions. More news on those as it develops.

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.