Free Game Downloads -- Sodaware.net

Free Game Downloads -- Role Playing Games, Puzzle Games and Action Games.

Browsing Category: Development Diaries

06 Nov, 2006

Happy Development Time

Things have been a little bit quiet over the last few weeks, mainly because I’ve been in the wonderful world of “the crunch”. It’s a tough place, and it’s also self-inflicted which makes it so much more fun.

Moaning aside, what’s been going on?

  • Planning — As usual, I’ve been doing a lot of planning work. This includes designing screens and interface elements, as well as cleaning up some of the dirtier aspects of the specification. Some of it is fun, but most of it is quite dull.
  • Coding Nuts & Bolts — More dull programming tasks, such as cleaning up resource management and creating a state manager. It’s as exciting as it sounds.
  • Graphics — As you can see from the wonderful illustration, art is not one of my strongest skills. There are quite a lot of graphics that need to be done, so I’ve been spending some time on them. The game has a very “unique” look…
  • Object / Entity System — Creating a component based object system took a while to get working, but it finally did something interesting. Unfortunately it’s a little bit too slow for production purposes, so it’s been left on the sidelines for now. It’s definitely something I fully intend to write about in the future, and I’m planning to use it in future games once it’s been optimised significantly. The best part was seeing all those sessions of design and coding pay off, even if it was only a moving box. Sometimes it’s so easy to get caught in the theory that you forget how much of a boost seeing something on the screen is.

Other fun things include the sale of my first and second Text Link Ads. Although they’re hardly going to fund a new lifestyle of champagne and caviar, it was a welcome confidence boost.


28 Aug, 2006

More Development Fun

Sleept is Good The past week has been quite paradoxical. On one hand, I seem to have done more than ever before. I’ve been getting up at 6:30 and really knuckling down to get some work done. On the other hand, I seem to have worked on everything else except my game. It’s not even playable at this point, yet every time I open up the IDE I just stare for a few minutes before wondering what on Earth I should do. It’s quite disheartening, and it almost feels like my coding mojo has left me. Not a good sign.

I’m not sure whether it’s a proper rut, or if I’m just struggling because nothing fun is happening. It doesn’t seem so long since I was able to code up a nifty demo in a few days, and yet I’ve been at this for several weeks and have virtually nothing to show.

Perhaps I should dye my hair black and write some poetry.

Moaning aside, things are going well in other areas. I’m getting to grips with a few project management applications, which I’ll be writing about in the future. I’ve also been polishing up a few of my libraries so I can release them into the wild. Writing unit tests and documentation aren’t the most entertaining tasks on the planet, but someone has to do them.

So what’s in store for the next few weeks and months?

I’m cleaning up some of my internal resources so I can release them to the public. They’re not exactly earth-shattering, but I find them useful and sharing things is always good. I always imagined this site as somewhere I could share my tools and code, so it’s about time I actually started doing it.

I’m also working on some interesting blog topics, including the next article in the “Game Design Lessons” category. I’m also preparing a few surprises in a few months, and I hope you’ll stick around to see what they are.


25 Jul, 2006

What’s going down…

As many of you will know, hot weather and software development do not go together. The last few weeks have seen temperatures in Britain hit the high 90s, which wouldn’t be so bad if I had air conditioning. Suffice to say, my productivity hasn’t been as high as I’d like it. Still, at least I have a mild sun-tan.

Here’s what’s been cooking (almost literally) over the last few weeks:

Flexible Resource System

So far this has turned out to be a huge time saver. Instead of altering code every time a new resource should be loaded, the application will scan the resource directory and load resources as required.

The current system uses XML to define which resources should be loaded. XML makes the whole system nice and flexible, and it’s easy to read and modify. Every resource used by the game can be loaded using this system, and each resource file has a namespace to avoid naming collisions.

Future improvements will add a “load on demand” system and a resource cache to help lower memory consumption.

Debugging System

Debug log preview

The standard Blitz debugging system is somewhat lacking. It does the trick if you’re running your program from the IDE, but once it’s in the wild it’s useless. Naturally, I had to write my own system.

The logging component is quite simple, uses XML for storage and XSL to make it look pretty. It’s not particularly powerful, but it’s useful for getting system information and tracking function execution times. So far it’s saved me from a few problems, and helped me to smooth down a couple of time consuming functions, so it’s powerful enough.

Debug Console

I created a Doom style console that allows the user to manipulate game objects using a command line. It can also display internal information that can be useful for debugging purposes. It’s the sort of component that isn’t vital, but is super handy when it’s there. Just the ability to spawn objects manually is worth the time it took to create.

An Object / Entity System

This is easily the most time consuming thing I’ve worked on, and it’s also the most complex and frustrating. It’s still not finished, but it’s usable.

The main idea is to have a “pluggable” object that will be given different behaviours. At the moment, each object is made up of States, and each State is made up of Triggers. These triggers fire “Actions” when they are activated. For example, a treasure chest would have two states (“Opened” and “Closed”). A chest with the “Closed” state would have an “onInspect” trigger, which would run several actions when the character inspected it. These actions could include giving an item to the character, as well as playing sounds, animations and changing the state of the chest to “Opened”.

BlitzPlus doesn’t support true Object Orientation, so the whole system has been a bit of a battle. I’ve been using the “Blitz Virtual Machine” to script behaviour, and it’s working nicely so far.

Some Flexible Tools

To save time, I created an automatic build script that will build resources using a simple script. At the moment it’s a series of batch files and smaller tools, but I’ve started writing a Blitz builder that’s loosely based on nAnt.

The Blitz Builder uses an XML script to build the application and its resources, and each script can have various configurations. It’s quite simple at the moment, but it’s being built in a flexible way so new commands can be added easily using plugins. It also has much better output, so the full build process can be built and timed. No prizes for guessing what file format the output logs use…

Other Bits and Pieces

Other tasks I’ve been working on include designing a nice website for the project, trying out various project management tools and cleaning up some of my code libraries so they can be released at a later date.


Complete Archives

 


Browse By Date

Adventures in Shareware

Welcome to "Adventures in Shareware", the blog of an indie software business known only as "Sodaware". Learn all about indie games, the people that make them and how you can improve your own indie business.

Download Free Computer Games | Site Map | Links | Contact Us

© 2005-2007 Sodaware. All rights reserved. About Us | Privacy Policy