Instant action mode and the battle editor are coming along nicely. XML files are working – the game reads them to create ships/stations/asteroid bases. You can now mod in game objects now, add in new ones, etc. Go nuts! You can make a carrier whose hangar bay launches has other carriers! Oh the infinity! Will have to create some documentation on modding.
Also I overhauled the way that moving objects happened (either station placeholders or instant action objects). Pretty happy about this, been meaning to improve this, I think its pretty sold now.
Somewhat worried because I’ve modified the game in several key places and didn’t do much testing. Hopefuly not too many bugs in there. Also the XML files could have a lot of typos leading to sluggish ships (if I typed in the speed value wrong) or other issues.
Instant action mode is going well. The game now reads XML files for ships, stations and soon asteroid bases. These aren’t used yet to generate ships, but soon will (that’s the easy part once the loading is complete). The “Battle Editor” can add ships and stations to the play area and clicking play pushes those objects into “game mode.”
A lot of polishing still left to do, error checking like making sure there’s at least one playable ship and making sure objects aren’t colliding with each other before beginning the battle. Setting factions, duplicating groups of objects (for quick and easy you versus them scenarios and for quickly adding ships). Saving and loading of previously created scenarios. Things like that
Already this is reminding me of when I was in grade school recess, I would play with little plastic toy soldiers and even pull up weeds and plant them into the sandbox battlefield to create trees and terrain.
The goal for iter 10 is to add the begining of instant action mode. First stage is to create a “battle editor” allowing the player to create custom battles. The player will add objects – ships, stations, etc to the game field, designate their sides (enemy, friend, etc), positions etc and then press play and battle it out. Initially all units that are in game will be unlocked, but later on the player will unlock units via the main “story” game or pre-created battle scenarios.
The battle editor will serve a variety of purpouses, sure it is there for fun and another neat game mode, allownig the player some quick action. But there are some very practical uses concerning the development of this project. It will allow for testing art assets, tweaking game balance (how many fighters can take out a corvette?), observing/testing the AI and creating videos to post on YouTube
Its going well so far, a lot of the work has been completed, luckily I’m able to re-use a lot of the code already. The battle editor closely resembles tactical mode, there’s a free floating camera, the player is able to position units (same code as positioning stations), collision checks need to be performed (stripped down physics engine code) so that units don’t overlap causing unintended consequences.
I’ve reached the stage where I need to populate lists of objects for the player to add to the battle. I’ve decided to make the switch from hard coded (in the executable) asset lists and their paramaters to having the game read text files. Thus making the objects accessible to the player, I’ve been meaning to do this for a while and this will be the first step. The objects will be read into the game from xml files (easily openable in notepad or other editors), allowing for modding. Eventually a modding tool will be finalized meaning that editing the files will be done via this graphical tool rather than notepad or some other text editor. I’ve started creating this tool in a seperate (from the main game) project file, intending to one day release it as open source. I’m starting to think this over, and am now leaning towards making this part of the game itself – meaning that at least for some time it wouldn’t be open source. I’m still debating this, the pros of combining the project would be simplicity and speed for me – not having to have the same code in two different places (characteristics of objects – reading – editing – saving of files). Another pro is that the player wouldn’t have to look very far for the modding tool. The con is of course the open source nature, still I don’t know how many people would find this editor useful, it would be very specific to my project. I guess I can always seperate it out later on once the code is completed.
Iter 9 features the addition of the “research” system. Your basic click here then wait a bit and now you can build a new class of ship or station. Pretty boring (nothing very new or innovative about this), but it accomplishes several important things.
Delayed gratification: yep I’m withholding things for your own good and enjoyment, so appreciate that corvette and enjoy that new frigate when you can build it. You’ll plan it out in your head… first I’ll research a defense station so that it will protect the shipyard that I will research next… etc… etc… dreaming of things to come
Game pacing: you can’t build a destroyer right from the start. I know you can’t so if I send one against you I’ll know it will be a bit of a challenge.
But in actuality it is busy work! To extend the life of the game and give me greater control over the experience. So I hope that in future iterations I’ll make this more intersting. Right now research comes at the cost of your crew not producing ore, energy and/or food. Plus the player has to pick and chose which research item to research first. But in the future I hope to add more interesting mechanics for example: blow up a bunch of frigates to be able to research your own, or better yet capture one (via the Command ship) and make it dock with your station – then take it apart to learn its secrests. Basically making things more interesting.
Plans for iter 10: instant action system – very excited about this – it will give me the chance to test game performance (you’ll be able to create custom battles of any size). Via staging battles I’ll be able to tweak ships, balance game play and you’ll be able to quickly jump into combat for some fast action.