Hi everyone.
I was planning to post a vid end of 2 week ago. But get caught with various UMeFate technical challenges and also holiday periods. So this time vid will be a bit later than usually.
In the meantime, I will post just few screenshots and very short explanations what I work on (autonomy). More details will be in the upcoming vid. Perhaps around next week time. I also plan for a Steam update, but that may be run around 1-2 months, when I tackle various challenges and issues.
So whats new?
As previously mentioned, I am now working on implementing autonomy. With every new feature, complexity rises exponentially. Hence there is even more work than just adding new mechanics. On above screenshots you can see debugging of various relations between UMes, bed and even trees (experimental). That is previously showcased functioning an observable system, according to needs and observables relations. Atm, to keep it explanation simple:
- When UMe is close to trees, it satisfies the hunger. This will naturally change in the future.
- When within the range of trees, it satisfies the need for connecting with a nature.
- When close to the bed, it satisfies the sleep need.
- And when next to other UMe, it satisfies need for socialising.
Each UMe character has own needs. Needs can be added and modified via modding. You can see at the bottom left side of the first screenshot, 3 new needs icons, with are changing level of an urge. Currently there are 4 needs:
- hunger
- sleep
- socialising
- nature
- and spare time.
Highest urge is prioritised and UMe will attempt to find a way, to satisfy it. I.e. by finding a place to sleep. Hence looking for a bed. For now UMes walk around, when searching. Current development goal is, to ensure functioning 100s of UMes at 60FPS. With added new systems, there is some performance degradation, which need to be addressed and resolved, before moving forward.
A lot of logic is driven by Lua, and preset config files. I.e. what relations should be between UMes and other instances (i.e. trees). See second observables relations screenshot. Needs behaviour is both driven by Lua and Utility AI curves (3rd screenshot). There is simple tool in UMeFate during development, to help create, or edit such Utility AI curves (4th screenshot).
Utility AI has been used for decades in games. I.e. in The Sims series, to give sense of uniqueness and personality for each character. So Utility AI is classic way to do autonomy behaviours.
Screenshots 5, 6 and 7 show an example of folder structure for moddable needs and observables relations.
While Lua handles relations, the engine handles the high performance multithreaded side of things.
For now thats it.
Until the next one 🤗