Sunday I did try and make some art for the game, since the art I'm using now isn't mine (and hence I wouldn't feel comfortable letting people download a demo until thats resolved). Unfortunately computer art isn't my thing - I'm not the greatest artist, but I could *draw* a spaceship on paper. I can't however seem to make a good one on the computer. I tried to use Inkscape - no luck. If anybody has any tips/tricks/advice on how to get the best out of my programmer art skills, please leave a comment.
In the coding side, I started writing a class to let me define objects in XML. The motive behind this is so that all the game data (ships, weapons, extra map data, etc) can be created quickly and modified easily, and not live in code. For the first pass, I went with a straightforward XML to object idea. Basically some simple XML like this:
Becomes a GameName.Data.Weapon object with the included values.
I finished this and now I'm rethinking the way I've gone about it. For example, the Weapon class contains the "name" and "damagePerHit" fields, but it also contains a field that is an Emitter from the graphics engine. I initially mixed some graphics objects in with the other data because I need to define how the weapon particles look. However initializing the Emitter object is too complex for my reflection class - its constructor takes arguments that aren't available until the game is started.
So the most direct route solution is to create new classes to be twins with classes like Emitter, but these classes only contain specific data items that don't depend on the game state. Then these classes can be filled with the XML, and at the appropriate time that data will be copied to the right place in the real in-engine object.
However, this doesn't seem optimal either. If I'm going to go to all that work - the result should be easier to use than simply filling in fields on an object. I'd like to find a way that makes creating these objects easier - but doesn't put any limitations on how much control I have over object creation. Not sure what that solution is going to be yet, but in the next couple days hopefully I'll bang something out.