The AI debugging is, hopefully, getting close to being finished. I think most of the problems are solved, thankfully.
One of the major problems was caused by issues rotating the postions on the graph to match the rotated city position, but I have managed to fix this.
I have a few things left to do with the AI, which I intend to do over the next few days, and I then have to look at some more bugs that I have noticed during this debugging session.
I have fixed most of the minor issues with the AI system, and I am now working on the final complex issue.
There are some fundamental issues with the AI for the NPC’s that populate the cities. These issues only appear when the cities are oriented at extreme angles, which they would be for a city located at one of the poles of a planet.
There are a few problems here that I am working to solve.
In addition, extreme orientations has caused other issues, most notably with the sky orientation, and the snow accumulation shader, which I will also need to fix shortly.
There have been some serious issues uncovered during the stress testing.
When the player is oriented at extreme orientations (Such as, for example, the “South Pole” of a planet) several issues appear.
Some of these issues are related to object placement, and snow rendering, but the most serious issues is that the AI navigation breaks.
This is the next issue that I need to fix, but it will be extremely complex.
I have managed to prove that the basic concept behind what I am doing does work, but I will need to very carefully rewrite the code to handle extreme orientations.
The next goal is to conduct more extensive stress tests of the project in worst-case scenarios, and try to find all crucial bugs before I add any new features.
I have already fixed some minor issues related to object placement, etc, and the main goal now is to test the AI and pathfinding, which I have been postponing, because this is likely to be complex.
I have spent quite a bit of time with the server port, and it seems that it will take considerable time.
I am now reasonably familiar with the Mirror networking system, and it seems that porting will not be hugely difficult, but it will involve a lot of tedious rewrites of my existing code, not to mention extensive testing and debugging, which will take even more time.
This, however, will need to be done, since UNET will be deprecated quite soon.
I have made further improvements to the project, mainly related to bug fixes and minor performance improvements.
I have been focusing mainly on the procedurally generated planets. So far, there have been no major issues, with the exception of the terrain density issues which I will look at at some point.
Other than that, everything seems to be working very well.
I have been doing quite a lot of debugging and testing, and so far, the project seems to be holding up well.
There were some issues with the vegetation system, and with the day/night system, on procedurally generated earth like planets, but these have been fixed now.
There was also an issue with the framerate dropping when dense forests were being created.
This is fixed, but there is an issue with the larger structures, like cities being created on terrain that is too steep, causing the terrain to protrude through into the city buildings themselves.
In addition, the Level of Detail and ground cover placement systems don’t scale properly with the terrain density. On some planets forests are far too dense, causing FPS issues (The collision system doesn’t allow ground cover objects to be created too close to each other, so if the density is too high the collision system will have many more collisions to deal with, slowing the system down), while on other planets, the terrain is far too sparse.
I will need to look at these issues at some point.