Today I connected the gui system to the entity editor. The gui can now be designed graphically. And the entity editor is connected to the lua interface. So the mod support makes progress.
And I improved the speed of the city AI. In the test field the AI can now collect resources, built buildings and fight with sticks (ranges attacks will come soon).
This is an image of the test field (not the real game, do not worry). As I was in a funny mood I used apes instead of humans. The red text indicates that the monkey "thought". The monkey in front collects resources, the barracks where build by the monkey in the background.
When the AI works the buildings will be created in the voxel world (and of course the humans (not monkeys) will then collect resources, build cities, ...)
And of course I also did a lot of other stuff. All lags are removed and the engine is 3 times faster (and the loading time of a map is now about 3s if there is no world generation).
Then I improved the far landscape, added a antialias shader, created the foundation for volume rendering, screen space ambient occlusion is implemented (but not tested), the level editor can be used to create mods, the far voxel landscape is bug free, ..
The next step is to test the AI and then connect it to the voxel world, ...
Tweet: Profiling, profiling
Found a new profiler which is really good for profiling games: https://github.com/yse/easy_profiler
Already found all bugs which produce lags. But I have to add an asynchrone loading mechanism to resolve them.
Apart from this I did a lot of stuff:
- Support for Detail Textures and Normal Maps
- Light sources can have a mask throught which the light goes
- Physic Engine: Vehicle (but still need to add car models and player control)
- Physic Engine: Soft Body (Rope, Patches, TriMeshes) -> again here I still need to make the code which sends the rope to the GPU
- Mod Support: Better Entity System in the Editor (will allow to add entities in the level editor).
- Mod Support: Instanced Meshes
- Mod Support: Commen Data Format between the Game and the Editor
- The "house building" modul makes progress. Will allow the creation of new houses and streets during game play.
- Batch geometry buffer for far houses (sounds really fances but is in fact really easy: We pack one city block in one draw call so that it can be rendered faster).
- Global Illumination: Connected the Global Illumination Rendering System to the normal engine. Theoretically I could now bake lightmaps. But still need to test it.
And AI stuff:
-AI language for the city generator is finished. But still needs debugging. So exited to define the rules which will create streets, houses, usw.
This sounds so harmless but it nearly broke my brain :-). Hey a part of this software can solve basic school math problems (or could find a problem in an electronic circuit). For the interested I implemented a CHR constraint solver. This is for example used in the control of the cars so that they follow the traffic laws.
And I am working on a planning algorithm, which will allow NPC's to have their own goals and follow them. But this is still very theoretical.
What's next?
This month I plan to add a lot of new features mainly in the engine so that we are on a similar level as Unity, usw. I am thinking here of Screen Space Reflection, Screen Space Ambient Occlussion, Mask effects on the screen, camera to texture, a renderer for the soft body elements and make them accessable via the editor. The second goal is to test the AI language and improve the city generator.
Then after this month I will start a big debugging phase, where I will test the new features and make use of them. For example a detail texture could improve the visual quality of the trees, ground, usw.
Tweet: New version with massive speed improvements
New version with massive speed improvements uploaded. Check it out!
The terrain is now also smoother!
Additional there are a lot of bug fixes. Sadly the far landscape does not work in combination infinite landscape. But this bug will also found soon!
And we added a new version to the world generator. There are now more underwater plants and coral reefs.
Tweet: Speed up of the engine
Yes! I managed to speed up world generation and world changing by a factor of 5. It is now a real joy to explore the landscape. When the conversion of the map files works I will upload a new release.
A side effect is that the surface of the landscape is now completely smooth.
And I also see now further improvements in the world generation..
Virtual CPU and Game Controller
Perhaps you saw that I upload a new release:
- It contains bug fixes regarding the virtual CPU which make it work
- The LCD and the keyboard are now also working
- Game Controller Support
I added the first game controller support. You cannot do everything yet, especially when you go to the inventory. And I had problems in accessing all game controller buttons. You need to press the "Reset" button in the "Movement" and "Action" configure dialog (because the new default settings are not loaded automatically). Or you can config the game controller by yourself.
Regarding the CPU and the LCD, I will write some documentation. It uses a pascal dialect as programming language!
New Homepage and New Version
New Homepage
Hey guys, perhaps you live in europe or you know what is going on here: The new data protection ordinance law becomes law this friday (DSGVO).
As I had to update the homepage anyway I create a complete new one which contains now a reference of all available game entities. I also updated the presentation, the links, the modding informationl and the gallery. Instead of WordPress I now use a software which I developed for my master thesis in mathematics to create the homepage.
And regarding the DSGVO: I do not collect any data of you. So I had not much work with the new data protection ordinance law!
New Version
As demand I uploaded the current development release to the "developer_build" branch. So you need to switch the branch to test it. The reason for this is simple:
This is not an official build.
There are still many bugs which need to be resolved
It could damage your maps! (read below why this is not a problem)
Because of the last point it will NOT use the default map folder. Instead it will create a new one. So you will NOT see your normal maps in the loading window. In order to load them you need to manually copy them from the "maps" folder to the "unstable_maps" folder. Or you can create a new map!
So this version is only for you if want to test out my current development version. I plan to update it more often as the release version.
Change log:
Switched from 32bit float to 64bit floating point (this will allow much larger landscapes). It will still work on 32bit systems!
Smooth fade-in/fade-out of the landscape
New lighting rendering system (which is much faster and improves the visual appearance)
New far landscape (You need to generate a new map in order to be able to see this)
Lots of bug fixes regarding modding support! The youtube tutorials will now work
CPU, Keyboard, LCD (but they are contain bugs)
Really cool new dungeons (with dirt, chests, furniture, monster, plants, better layout, new automatically generated rooms ...)
Improved navigation system of the monsters
Improved multiplayer mode
Improved speed of the animation system
There are traps, new doors, new crafting objects, rail roads ... and so on but the recipes are not implemented yet!
Improved the visual programming language
Switch from Java to Lua as scripting language (but still need to test it)
It should rain!
And a lot of other stuff!
So you if you are interested you can test the version. Else simply wait for the next release!
Tweet: Changed to the debugging phase!
So all main features for the next release are implemented. Next step is to debug the stuff:
Debugging: The compile pipeline is updated. Create first windows exefile based on C++11
Debugging: The virtual cpu does not crash any more. The first "Hello World" program was successfully executed.
Debugging: The update of the far voxel landscape does not crash any more :-). The only bug which is left creates cracks in the ground :-(
Debugging (Lua script integration): New entity successfully created!
Release: I plan to make new releases of the development version. For this I will introduce a new Steam branch which will contain these versions. These release will use a different map folder so that your maps are not accidentally damaged by bugs!
This was in fact the main reason, why I did not made new releases. I did not want to damage your worlds, because I really changed a lot in the engine.
Tweet: Mod Interface
I got a new e-book reader. So I read a lot of books about game development. Now I had the idea to make the mod interface more userfriendly: Keep it small is the new goal!
I added now Lua support (Java is such a mess!) and make now special functions for the mod developers in the engine.
And the cool thing about Lua is that it is embedded. There is no extra dependency!
Originally I exported 10000 functions and over 400 classes. Now I plan to export 1 class and 60 functions. Keep it simple!
Implementation: The keyboard and the LCD code is finished. The 3D models also are and the IO library is loaded into the virtual CPU. Next is debugging the stuff..
Implementation: Digged out an old real time raytracing library of mine. We will see what I can make out of it (perhaps real-time global illumination). But this will take some time.
Debugging: Corrected bugs in the old non-voxel part of the engine. I will use this to debug the AI once it is implemented.
Planning: I am nearly finished with the design and the scientific paper about the new AI language. The only thing I still need to do is to write the introduction (this is a part of a paper where you write about people who have done similar things).
Tweet: LCD
Implementation: LCD is finished. It will use a simple text mode interface which can be controlled via a program.
Implementation: Added a special client component which directly reads out the keyboard.