I have made good progress with the advanced guis.
I have found some assets and sample code that should allow me to create both radial sliders, and advanced graphs.
THIS is the graph asset that I bought, and THIS is the free radial gui package that I used.
With these two features, I should be able to create advanced guis. I also intend to improve the enemy AI and targeting, tracking, etc, to take advantage of these new features.
I am also moving ahead with wth dynamic story, and the HDRP concept.
I have made some more progress with the HDRP. I have fixed some bugs that were causing some issues, and replaced or modified several simple shaders that were also causing issues.
The next two goals are to come up with a simple concept for the terrain blend shader, and fix the issue with the background queue.
In my main project, I am also working on some advanced GUIs, and a simple concept for a dynamic story generator. I want to be able to create random events in the game, that respond dynamically to the players actions.
I have been working with the new shadergraph in the HDRP to try to replicate my terrain blending shader.
I am trying to blend multiple textures using the height of the vertices to select a texture, so higher vertices would have snow, lower ones would have grass, etc.
I have achieved a very simple proof of concept, but it only works with two textures, and it doesn’t blend between them, it cuts abruptly.
I am not sure how to add the other textures, etc, but I think I am at least making some progress.
The research into the HDRP is not actually going too bad so far.
I have managed to get the shaders on my characters basically working (although their clothes have some clipping issues) and most of the other shaders work properly.
I have also fixed some minor issues that I was having before.
The main issues now are the custom shaders that I have written, and modified, for the terrain and grass, and some other bugs that I am seeing with the background renderqueue.
There is also a lot of testing and debugging to do.
Even now, it is clear that the graphical capabilities of the HDRP are far superior, but I am still not sure if a port is feasible.
Unity 2019.3 is almost out, and the High Definition render pipeline will be officially out of preview in that version.
For that reason, I have decided to do some more research into porting to the HDRP.
There are a great many issues with porting my project, because I have a lot of custom shaders and render code, which would all need to be redone, however it becoming clear that the current “build in” render pipeline will be becoming obsolete at some point in the future.
Even now, all new Unity development (Raytracing, Shader Graph, Virtual Texturing, etc.) seems to be going into the SRP’s, and is not compatible with the built-in render pipeline.
If I cannot port my project to the HDRP, I will, at some point, be prevented from updating unity and taking advantage of new features, which would be a significant problem.
I have been working on improving the real-time performance of the procedural city asset in my project.
There is a noticeable drop in framerate when loading in even small cities, and this needs to be solved.
My idea was to load all of the building objects themselves into another scene, and then load this scene asychronously. This would become an “object pool”, and I could select and place an instance of an object from the async scene without having to instantiate it.
The problem is that the city generator asset that I am using also has other performance issues that make it unsuitable for real time use.
I am not sure how I am going to fix this, I may in fact need to create my own procedural city asset, and I have been doing some research into some options for this.
THIS video on youtube provided some excellent tips and source code for procedural city generation.
Ideally, I would add multi-threading to the current city generator asset, but this may not be possible.
I have added a reasonably complex gui that controls the ships reactor.
The gui buttons and sliders are all wired up to the in game variables, and the effect looks quite strong. I intend to add more gui widgets and control in the future, but I think the colour scheme and the current gui widgets seem quite good looking.
I have decided to spend some time upgrading and enhancing the gui system in my project, and to add the random events that I created last week into the gui system.
It is now possible to control fires, radiation leaks, etc, all from guis that are placed within each compartment.
I have not integrated it fully into the main game yet, there are still some variables and effects that are not wired up to anything, but the concept code is more or less working.
It seems to work quite well, and there is great potential to extend it in the future to handle even more complex situations and variables.
This will eventually form the basis for a much more complex dynamic story system, which I intend to work on in the coming months.