I have added the ability to change the text on the navigational markers. This makes it possible for the player to place markers at various parts of the world, and leave a message that could be read by other players.
The next step is to extensively test the random world generation, there are some problems here, mostly to do with non y-up rotation, etc.
I have continued to make smaller improvements to the project, in addition to testing.
I have added some improvements to the nav system to make finding object easier, and the next objective is to improve the item code, to combine persistent objects with moveable objects, inventory objects, etc.
The idea will be to create a single item type that supports all features.
I have added full support for the Prolog language to my unity project. I intend to use this to massively improve the AI features in the future (by adding logical inference, knowledge bases, etc).
In order to build the DLL, I had to make some code changes, including removing most of the GUI code, since this was not compatible with the current version of unity.
I then had to write some custom code to hook into the prolog dll from unity, and run queries, etc, but this all seems to be working well, and should add a whole host of new options to my project.
I have tested, and improved, the persistent server system, and made various other minor improvements and bug fixes.
The main issue that I am concerned about now is that in the next version of unity, 2020.1, the Oculus package has been deprecated. This could mean that there could be significant problems when porting to this version.
However, the 4GB texture issue (preventing unity from working properly if resource files are over 4GB in size) should be fixed in 2020.1, so it is very important that I port over to this as soon as the final version is available.
I have made substantial improvements to the terrain generation system.
Up until now, I could choose between either generating smooth, flat terrain, or generating coarse, rough terrain.
Smooth terrain was far better for walking, driving, and placing buildings, however rough terrain looked far better for mountain ranges and upland regions.
I have added a new system with uses an animation curve to blend the noise values of the terrain as it is being generated, which means I can specify that low land areas are smooth and relatively flat, while upland areas are course and rough.
In future, I can also specifc a separate graph for each planet, and possibly even generate the graph dynamically, leading to a substantial increase in the variation of the terrain.
I have created a dynamic picture system to the project. This allows me to choose a specific image, or a random image, from the hard disk, and display it within a picture frame.
The system works with any size picture frame, portrait or landscape, and can be used to display any image (as long as it is approximately square or rectangular) in .png or .jpg format.
This makes it very easy to rapidly decorate walls, etc, with art, since a small number of frames can be used to display a large number of pictures. I can also change the pictures at runtime, providing the basis for a customisable building or decoration system.
I had some issues with loading the images from the disk in the build though. It seems that I can’t use directory names (DirectoryInfo dir = new DirectoryInfo(path);) with resources.load, so I had to move the images to the streaming assets directory, however to get them to load properly from there, I had to duplicate the data, so I now have two copies of that data, one in resources, and one in streaming assets.
This is obviously not ideal, especially since I am using directory names in a few places in my project, meaning that a lot of assets are duplicated, but it seems to solve the problem for now.
I have spent some more time working on various bug fixes and improvements.
I have fixed issues with the AI navmeshes, and I have also done some preliminary research into updating and upgrading various core features of the project.
There are several features, such as the webkit, the Oculus Rift package, and the MCS character creation system, that I will need to update at some point, some of them sooner rather than later.
I am also working on fixing issues with the player movement and gravity, etc.