Hello everyone and Happy New Year 2025
Nearly 2 months past, since UMeFate last blog post. But I can assure you, UMes were working hard. Well for most of the part, besides chilling during x-mas period and New Year πΎπ
In the brief:
The terrain was significantly upgraded,
The map editor has been added.
Basic roads building have been added.
Automatic land plots along roads were added.
Walls buildings were temporarily disabled, until get fixed and improved.
You can checkout upcoming changes yourself on our latest vid π
UMeFate Pre-Alpha: Roads Land Plots and Map Editor #21
But the past two months were far from simply improving and adding mechanics. In fact, it turned out, it became the train of endless challenges. Many of them less, or more expected. But plenty of gotchas hunted UMes too.
Research
Spent some time researching and prototyping various technologies that can be used in the project.
Including terrain related, for an optimisation, and some graphics.
On the graphics side, nothing changed atm. But having promising tools on hand. Yet work is prioritised for the much further time down the roadmap. That includes split screen functionality. But it is far more complex than simple.
Regarding the terrain replacement, it happened that something that initially looked promising, became unapplicable for UMeFate project. That came in the prototyping phase. So Fail Fast I would say, and this prototype was scrapped early. Unity Engine provides decent tools for this application and goals.
Improving Land Plots
Concept of land plots is rather simple. Allow the game to place regions, where households can be built and occupied. Future goals are that UMes can live there and attend various events. As well as travel to other land plots.
Base mechanics to create land plots was already previously presented discussed in the blog post https://antyversum.com/2024/08/07/building-on-multiple-land-plots-test/
But the system, while functional, was very limited at that time and anything making things automated would be quite tedious. So idea was, to either create some mechanics to populate world with land plots, all make it more natural, by placing roads and allow land plots to be automatically placed next to the road.
So roads - land plots prototype system was developed in that time
While it is more functional on the video, in the Map Editor current implementation is incomplete yet.
This work led to many internal refactoring changes, of how land plots, roads and building walls were working, by unifying its mechanics. In short, each of these 3 systems operate on a similar concept of placing nodes, creating links, and restricting how next nodes can be created. More about it in the blog below
Unification and optimisation brought a range of challenges. Including how native terrain height was sampled at the runtime, limiting advantage of performance written code. There are also other changes, how the height and land plot zones are treated, followed by building walls mechanics.
Added Roads
So here again the idea is simple. Allow place roads and generate land plots along roads. Still thinking, if I should stay on the concept of manually placing land plots, similarly as in The Sims series, rather than automatically generating. Either way, creation of land plots outside roads is possible, but not finalised, with lower priority.
As with land plots and walls, roads use the same base mechanics to place nodes and links. More work is required however for roads alone, as these need to consider terrain elevation and improved terrain snapping. Tools that are used in the game code, allow to create crossroads, but mechanics it is not integrated as of yet.
There are multiple things for crossroads to work. Hence these are deprioritised for the future down the roadmap.
One of the major elements of crossroads is, how land plots are handled, when roads are connected. Will require more tinkering.
Atm land plots are generated based on extending the sides of the road, along the road curve points. That produces inner and outer points for land plots to follow, on each side. The interesting part is, that extending points further, when road curves, can cause overlapping points. This required some smart application, to prevent such happening, creating new curves and plot new points along these curves. In some rare cases the issue still may be present, typically can be mitigated by resolution of points along land plotβs curves, or other settings. Then finally there is also segmentation, which tells how many land plots there can be, on the each side of the road. Or just one, or none side.
Editing and snapping to the terrain had its own quirks, as all worked fine on existing terrain. But when loading custom editor terrain, tons of surprises were lurking around the corner. Had support from other developers on the problem.
Brand New Map Editor
Ok this is big one. Few things here to highlight. Initially it was using generic terrain, which could be edited only from the Unity game engine editor. And that's fine for the time being. But this needed to start making different arrangements of the terrain more often. Be able to save and load maps. And start preparing mechanics, for saving game states.
Also, why not open the ability for players, to create their own maps in the future? π
There are many benefits of course. But also additional challenges.
The thing is, if I decided to stay with native in-game engine editor terrain tooling, it would become harder to implement runtime ingame map editor. With this process, opening now routes for expanding upon map editing tools in game.
As the result, current ingame map editor allows to create terrain elevations, no texturing atm, roads, land plots editing, saving and loading maps and roads. The last one still has its own issues, which need to be addressed.
On a side note, roads are saved as Json file, human readable text file and can be modified. It is just a range of major points, at which roads follow and curves.
The native game engine terrain also imposed mentioned performance limitations of different kind, which lead requirements, to hack into it, to create something like a ghost terrain, which in the end, allows to sample terrain height in a performant way. Here from a technical point of view, mentioning Unity DOTS Burst. That is now mostly resolved. But experiencing issue with a terrain resolution, which may cause potentially visual bugs.
General Improvements
Number of internal code improvements and refactoring were conducted. Some UI additions and enhancements. And most like a few more bits, which were forgotten to be mentioned here.
Plenty New Bugs
Saying all that, there are bugs on bugs to be haunted down, before could release new game demo update to the Steam, which will be in time announced.
One of bug, which can be noticed on the video, is land plot NAN value for its area. Something that need to be looked into for sure. πͺ²πͺ²πͺ²
Further Work
Naturally resolve critical bugs. As of immediate work, is to polish map editor as it works now. Then fix base gameplay, and related map editor artifacts, which affects the gameplay.
Bigger challenge is regarding returning wall functionality. It has much more improved mechanics in general, which so far looks good. But is incomplete atm., to what it was. So need fixing walls placing, ensuring these works in compatibility with land plots, which they were previously presented as yes. I need to improve the floors generation. And fix furniture placing mechanics. Then can start looking into writing an AI.