So every week I’ve been thinking – I should do a weekly post! I’ve written them in my mind more than once.
About two and a half weeks ago – I started working on Void Destroyer 2. Its coming along nicely – but the initial few days were very rough, and the following week was only slightly less rough.
First off – I copied and pasted Void Destroyer’s code into a new project, then started working from there. Several times I deleted the pasted code and re-created it. At one point I even thought about re-organizing Void Destroyer’s code to fit better for Void Destroyer 2. Then abandoned that – I don’t want to risk impacting the – finally stable Void Destroyer. It was like pulling teeth.
At one point – in the new copied Void Destroyer 2 project – I got as far as to create a copy/paste of tactical mode code, then removing nearly everything in it, leaving a basic shell of the camera system and a few other items. It barely functioned and that frustrated me a lot. I felt like – “man… this should really be working smoothly like the older systems!” I then abandoned this path – but had the foresight to back it up. Which is good – because my other copy/pastes I deleted and decided to go back to that backup. That’s what I’ve been working off ever since.
The difficulty I found was this – Void Destroyer – is a very nicely (to me anyway) organized and complete project. It is good at what it does – a mission/script based game. Void Destroyer 2 is going to be a different beast – and the differences and specific items that it needed didn’t exist in the old code, or were in – soon to be incompatible spots. It created this sort of a fevered feedback loop where I thought – no this doesn’t belong here, but it can’t function until this other thing is put into place. and that thing needs another item. Basically a – if you don’t know what to do – don’t do anything type of a situation.
To get past this – I decided to ignore the old code – and just have the stripped down copy of tactical mode function with a camera. I added a 2D grid to see the camera move. Then I added a sun, then a base, then a ship, and then attached the camera to the ship. For over a week it was just a very basic 2D type thing – no integration with the “game” at all. That came slowly and in tiny steps.
It sort of works now – I have an “overworld map” (the copy of the stripped down tactical mode code). Via this overworld map – I can move the player ship from area of space to another – something that Void Destroyer couldn’t do. I can see bases generating ships, asteroid fields spawning pirates – these are very basic objects, and the map itself is 2D (for simplicity – just like we have a 2D map of our Earth – even though our planet is not a 2D object). These simple objects (ships/bases) are then sent over to the “old” Void Destroyer code – which generates the more “advanced” ships/bases that can engage in combat/etc. When the player travels near them – or when a pirate ship “attacks” the player.
It is a bit funny – because – I have this beast of a game under the hood – and now I’m communicating with it via this more basic interface/system. In a way it is very easy – in the “overworld map” things are simple (there no physics in the overworld map – because maps don’t tend to worry about mountains when going from point A to point B) – and in the “local space” – I already have Void Destroyer’s code to handle things. Its like I’m putting the icing on the cake.
I keep reminding myself – forget about the complex – keep it simple now. And that helps a lot. For example – I imagine a much more elaborate interface for buying ships (potentially even the player going into first person mode) – but for now I just added a simple list view.
I also keep wanting to create a video demoing this – but I’ve decided to delay this until it looks a lot more polished. I didn’t give a lot of attention to smooth/seamless transitions – so I’ll spend time on that before I create a video.