The next goal that I have been working on is the addition of several new enemy types for the third campaign of the game.
These are almost completely done. I have been able to mostly reuse code from other NPC and enemy types, but there are quite a few unique elements to these AI enemies too.
The basic logic works fine, and the movement, attacks, etc, all seem ok too.
I still have some debugging to do, but the AI mostly seems fine.
Both of the capital ships that I am adding to the game have been modelled, and textured.
I used a combination of static textures and repeating textures.
I also added in new functioning main and secondary guns, and new projectiles, for these ships.
This took some time to do, but it worked quite well.
There is still a lot of experimentation to be done with respect to texturing large objects.
I have also made improvements to the other art work in the game, and added some special effects, including some new shaders that can hide half of an object. I have used these shaders to create the effect of a ship passing through and FTL gate.
I have finished texturing the new fighter craft, and I have set them up in unity.
The textures are relatively simple, since they will only be visible from a distance, however they do look quite good.
The shield effects in particular work quite well.
I also had to make some changes to the code to allow the ships to carry multiple weapons, and fire multiple missiles at once, etc, but this was not difficult.
I also did some testing and debuggin on the new craft.
The next goal is to add the artwork for two new capital ships.
I have finished almost all of the modelling, and done some testing, etc, and so far everything looks fine.
The next problem however will be the texture. For these large ships I will need to use some kind of repeating texture, and I don’t have a lot of experience creating these.
I have finished the early prototyping for all of the missions in the third campaign of the game!
This is a major step forward!
I had some last minute issues and bugs, but these were fixed relatively quickly.
I had some issues with guis and raycasting, and I added a simple concept for adding dialogs with selectable buttons to the shuttle, but this was not difficult.
It is possible to see the console and game information displays from inside the shuttle now.
There are still some bugs, etc, with the guis, but I can look at these when I add in the story sections.
The next step is to work on the artwork, which will be mostly space fighters, weapons, etc.
I have come up with some concept sketches for the starfighters, and have started working on some 3D blockouts for them. Since they won’t be viewed from up close, resolution of the texture art does not need to be as high.
Almost all of the work on the third campaign is done.
I spent most of the week on Mission 9, this was one of the most complex missions, because it uses Wave Function Collapse to create a dynamic maze for the player to fly through.
This turned out to be a lot easier than I thought though.
I also added some additional elements to Mission 9, and I got most of Mission 10 done too.
Mission 10 is the last mission in the campaign, and there are some elements that are unique to this mission that I had to add in.
The testing for this worked well.
Now, all that is left is some testing and debugging, and some other minor tasks, etc.
Additional testing has uncovered a few areas where the game mechanics need improvement. One of these areas is that adding multiple cities to the world at the same time causes performance issues, but when I limit the world to generating just one city, sometimes the game will create a city further from the player first, and then not create the city closest to the player. This means that the player can save in a city, and then load the game and the city they were in won’t appear.
This is something that I will need to look at later.
However, in general, everything seems to be working very well!
The next goal is to fix the few remaining bugs and issues from the story missions.
I have finished the 8th mission out of the 10 missions in the third campaign.
This one was relatively easy, but there were still some new mechanics that I had to add involving gravity vectors, jetpack velocity, and walking on 3D objects.
Walking on 3D objects is an issue I have struggled with before. I want the player to be able to walk on the exterior hull of starships, etc, and have the gravity vector point down into the hull. This is difficult to do, because if I point the gravity vector toward the center of the ship, the players position will be “slanted” toward the center. If I point it toward the surface normal of the surface they are walking on then the gravity will suddenly shift every time they walk over an uneven surface.
I eventually a solution that works fairly well. I simply consider the object as a cube, and get the “face” of the cube that the player is on, then use the upvec of that face as the gravity direction. As the player moves around the object, change the upvec gradually (Using slerp). This is crude, and likely only works for generally square shaped objects, like starships, but it works ok. For more rounded objects, simply pointing the gravity vector towards the center might work better.
I have also started work on Mission 9. I thought that this wouldbe one of the most complex missions in terms of mechanics, since it involves generating a section of geometry procedurally using Wave Function Collapse.
However, in actual fact, preliminary research and testing has gone very well, and it may not actually be as difficult as I thought!
I am hopeful that I will get this mission and the last one done in the next few weeks.
I have now finished 7 of the 10 or so missions that will be in the third campaign in Spiritus Astrum.
I am still working with simple programmer art, and I have not added all of the story triggers, etc, etc, but I am making good progress.
I have made improvements to the NPC’s and AI in the campaign missions to hopefully add some more depth to the story and gameplay, as well as fixed some bugs, etc.
I was concerned about the AI navgrids, etc, since I spent a lot of time adding my own custom extensions to the A* pathfinding project (Designed to work better for non y-up, dynamic worlds), but they actually work fine. There is one minor issue where a graph will not generate properly if another graph is being created at the same time, but this is not serious.
I have also improved the story logic slightly.
The next goal is to try to finish all of the missions with the next few weeks. One of them in particular will be quite difficult.
I completed two more missions in the campaign. There will be about 10 missions in total, I have completed 5 of them, and I am working on the 6th.
So far they are working out very well. I am just working on the prototyping and core mechanics for now, but I am confident that the campaign should be fun to play.
I have added new enemy types, as well as made improvements to the navigation menus to make the space combat scenes work better.
In addition to this, I have improved the enemy AI.The AI will now attack rival factions in addition to the player.
There are still some core mechanics to add, including some quite complex ones (Involving Wave Function Collapse), and I have some bugs to fix, etc, but I am making good progress.
I have completed another full mission in the new campaign.
This one took a long time to do, since it involved travelling to a planet and generating a navmesh, and then spawning NPC’s and issuing commands. The game has code to do this, but it didn’t cover this use case, so I had to make some complex changes.
I have also made improvements to the character creator system, so that I can create not only random NPC’s, but specific characters and character types as well (Ie, characters wearing the same uniforms, etc).
There was a lot of work involved with this particular story, but it works quite well, and I can reuse the mechanics that I added in other stories.
The next goal is to continue with the missions in the current campaign, there are quite a few left to do.
I have begun working on the implementation of the third main story for Spiritus Astrum.
The first two missions of the new story are now basically done. The artwork is not done yet, I am just using placeholder art, but the triggers and code for the first two missions are done.
I have added multiple enemy types, objectives, mission types, zone changes, and placeholders for story scenes, etc.
In addition, I have improved and extended the AI and space combat features in the game (Although I haven’t done any balancing yet).
My plan is to try to get the entire story done at some point next month, and then I can spend some time testing and retesting it before working on the artwork.
So far, it seems to be going well, and it seems quite promising.
There is, however, a LOT of work needed with this, from adding more missions, to bug fixes, balancing/tweaking, and adding story sections, and of course, the artwork.