In the beginning of the week I re-factored the “objectives” code into “mission” code. The goal was that a “mission” could have multiple “objectives”. Objectives being test conditions for events – object destroyed, one object going near another, etc. So missions now can have multiple test conditions for success, eventually they’ll also have test conditions for failure as well.
Then I re-worked the text info for the player, lots of improvements leading into a dialog system. Basic stuff – in terms of – you’ve probably seen it before in other games. You see a portrait of a “speaker” and their dialog scrolls, and the player’s “avatar” responds. Some HUD mission info work was done, and I’m fairly happy with it.
This weekend I polished up the dialog as well as working on the first mission for the player which meant new triggers, objectives and cutscenes. Its going well, I’m almost done with the first leg of the intro, there’s even a few “hidden” missions for the player to stumble upon.
The rough goal is this – finish up the intro mission, polish, then release iteration 15. Then add in key mapping and then we enter the “beta” stage, and proceed from there.
Looking over the post above – a lot of interesting things (though whether they are interesting to anyone besides me is debatable) tend to happen, but then they drift away from my recollection so I might not end up writing about them. For example when I added a trigger for launching ships out of bases/stations. Previously the turrets (on a ship) would “pop in” right as the ship fully exited – whatever it was being launched out of. I scripted this “launch ship” trigger into a cut scene and so I thought – man – I’m showing this so early on and showing a odd turret pop in so early on, I have to fix it, and so I did. Just one of those somewhat unexpected/interesting things. Maybe its a good thing I don’t mention more things, kind of getting rambling here.
Early last week I improved the dock with and collide AIs. For the dock with – since the hangars/bases tend to have multiple launch tubes for fighter drones I enabled the use of all of them not just the first one as was the case as of the previous post’s writings. For the collide with AI I modified the “aim lead” code for projectile weapons and now have a freaky good collide with AI. Very happy about this because prior to this it was embarrasing to have the ore drone ship constantly miss colliding with the ore rock, then eventually getting lucky, it was made worse since you’d see multiple drones trying to smack into one rock, but ending up orbiting it. The other good news about the improved collide with AI is that I can use this for better “intercept AI” across the board. Since this tweak has ships leading other objects and chosing a path to intercept – where the object will be – not where the object is – which in case of moving objects – tended to mean lack of collisions/intercepts. So I can use this for combat AI, for formatino and go to AIs as well. Eager to get this implemented.
The mining process is mostly done its fairly fun to watch now that the pieces are fairly competent, it adds life to the game. Now I need to finalize dock with AI a bit, put in a error correcting system in place.
I then did some more work towards the HUD and UI – I realized that my line of thinking was deeply flawed – a face lift to a bad system – leaving the project with a better looking bad system. So I opened up a 2d paint program and dabbled some, when I’m ready for more contract art I’ll have a much better idea what to ask for, since I already made a lot of mistakes a long the way.
Then came some tweaks to planets, now there can be textured planets, including an atmosphere level, fairly basic stuff, but a good begning and opens up the door for lots of experimentation – again to see what works and what doesn’t.
This weekend I did a bunch of stuff across the board working on the HUD, story sytem, triggers. I also enabled the ability for ships to carry other ships – so unlike carriers the host ship doesn’t manufacture the ship(s) it is carrying, the host picks them up then drops it off. Allowing for the use of smaller ships carrying fighter drones, or beyond.
Next up – I’m getting close to implementing a “dialog” system – so instead of the old “Objective pop up” where the game pauses, they will be a real time conversation going on that the player may actively participate in – I haven’t decided yet. At this point the first leg of the “story” aspect of the game should be fairly well under way, meaning that I can release the next iteration.
I have a rudimentary “asteroid” mining system in place. Thanks to a new asset which is a cannon mounted to a rock. The cannon shoots an asteroid, the weapon fire creates “baby” asteroids that splinter off. Then a nearby drone hangar base launches drones which pick up the rocks and ferry them back to the base. Its pretty neat! I just have to polish up the collide with and dock with AI. It works, but the dock with AI needs error correction in case the ship doesn’t get in on its first pass. This is all automated or as usual the player can hop into ship, blast the rock then hop into a drone and pick up rocks. I hope that this aspect of the game adds to the live of the world, gives something for the player to attack, guard etc. There’s going to be another way of mining asteroids, for different factions, we’ll see
I also received another new asset – a “base” station. So I worked on having it orbit a planet. Planets were originally in the very early days of the game – in fact one of the earliest pieces of code I wrote was having them rotate and orbit around a sun – this wasn’t accurate in anyway, but hey they did move. I scrapped planets when they weren’t big enough or were too big and became navigational hazards, but always wanted to bring them back. And now they are – yay! For planet rendering I modified the new sun shader code by letting diffuse and specular light impact the “planet” object.
While adding planets, I polished up the sun/light handling code – now there are different types of “suns” – invisibile ones (only emitting light), billboard ones (2d sprites) and physical ones (ones that you can collide with). Adds a good balance of tools for future use.
This past week’s focus was almost exclusively on HUD and GUI. The great news is that the GUI is completely re-done and in doing so I learned a lot about how skinning (the visual representation aspect – both in terms of visual assets and the coding/scripting that goes behind the scenes) of it all works. The HUD has been re-done as well, and it has led to more understanding and knowledge as well – always a plus – and the visuals are greatly enhanced. I’m not embarrassed by the current state – hah! – that feels good to say – very pleased with the outcome. Though I hope for an even greater quality in the months/years to come.
What’s most interesting I think is how the process worked – it was essentially on a item by item basis – for example – here’s a cross hair asset, here’s a targeting bracket. And although this isn’t a great way of doing things – it is pretty much the only option for me and this project. A better way – I believe – would have been to have 10 different mockups/demos/prototypes and then go from there. Unfortunately there aren’t resources for this. So we have to hack away as best as we can.
A problem arose today that often happens when one project aspect comes to a close – is that I have trouble switching gears, though I did do some more work towards the story – it mostly came in the form of a good (I hope) idea that was spawned by a new asset – an assault platform – a big gun mounted to an asteroid.
As an aside – I keep having thoughts of scaling back – but looking through the GUI/HUD – I keep thinking why don’t we go simpler? I’m open to the idea, but for now I’ll continue on the current path. I hope to release iter 15 in about a month – so I have to be a bit more strict with myself.