Status
SteamPeaks
ChartsSalesUpcomingPatchesEventsCalculator
New on SteamEvery app, DLC and depot the minute Steam creates itAppsEvery app on Steam, newest change firstPackagesSubs and bundles, and what each containsDepotsDepots, manifests and install sizesTagsSteam's user tags and the games under themDevelopers & publishersCompanies and their cataloguesTechnologiesEngines, SDKs and anti-cheat found in the filesChange historyEvery PICS changelist as it lands
SignalsNineteen readings of the whole catalogueCompareAny games side by sideRecordsAll-time peaks and the days they were setReportsWeekly and monthly write-upsAlerts & newsroomWatch a game, get told when it movesSteam statusIs Steam up, right nowWeb API explorerTry the endpoints in the browser
EventsSteam's own events and the sales calendarCalculatorWhat a Steam account is worth, and its pile of shame
/
Sign in
/
SteamPeaks
The ultimate resource for Steam data.
ExploreChartsSalesSales and festsUpcomingPatchesEventsRecordsTrendingSignals
DatabaseAppsPackagesDepotsTagsDevelopersTechnologiesChange history
ToolsCalculatorCompareSearchAlertsSteam statusAPI
SiteMethodologyFAQDiscordSupportSign in via Steam
Not affiliated with Valve or Steam. Game names and artwork belong to their owners. All times UTC.
PrivacyCookiesFair useStatus
Viking City BuilderEventsUtility AI - Devlog #1
Community

Utility AI - Devlog #1

Viking City Builder · published 5 Feb 2021, 14:00 UTC

All eventsPlayers around this dateRead on Steam

Hello, fellow Vikings!

I know I haven’t posted too much new video content lately so I’d love to share with you what I have been up to. One of the things that excites me the most about the city builder games is the simulation of living, breathing society. The citizens don’t just walk back and forth between the gold mine and the town hall, like in a typical RTS game. They have homes and families. They have names, lives and interesting stories. After you set up a working economy you can watch them go around their business and start really caring. And since Nordic people of the Viking Age are famous for their grit and strong will, it’s super important to me to breathe life into the citizens of Viking City Builder.

I’ve started by playing my favourite city builders - Banished and Dawn of Man. I’ve immersed myself in those worlds and spent a lot of time watching my citizens. Then I’ve played a little less obvious inspirations of mine, like RimWorld and Frostpunk. I've also watched a lot of youtube videos on Viking life. What was their daily routine etc.

After that I felt I know WHAT I want to achieve. Now I just needed HOW. How to turn my idea of Viking village life into code.

To achieve what I wanted I needed a really robust AI system. My first implementation of the AI was rather straightforward - I’ve used Behaviour Trees to make units do what I wanted. Unreal Engine has a built in BT system that is easy to use and that I am familiar with. It works great for pre-made behaviours, creating Reactive AI, like in Shooter or RTS games.

But what I felt that is really needed is Emergent Behaviours, something that makes you believe this is an independent being, not a pre-programmed bot. I had to go deeper. So I’ve started researching.

I’ve remembered mentions of technologies like Goal Oriented Action Planning and Utility Based AI. After reading a bit on the topic, I’ve decided Utility AI is the way to go. I don’t want this post to become a book so I’ll try to briefly explain what Utility AI is.

Imagine you have a game like The Sims. Your sim has few needs - let’s say hunger, sleep, hydration and entertainment. So how would you program your Sim making a decision what to do next? If you used Behaviour Trees or other Decision Tree approaches you would have to code a lot of cases: if you are super hungry and not tired - eat pizza. But if you are a bit hungry and super tired - maybe sleep first and then eat pizza. Now imagine having to pre-program all those behaviours for the game.

What Utility Based AI does is allow you to create a fitness function - a function that takes some considerations and produces a number for each of the decisions. E.g. for eating pizza you could create a function like: “desire to eat pizza = 5 * hunger + 2 * boredom - 10 * size of my belly” ;) You get the point.

This is exactly what I needed. Unfortunately there is no built-in Utility AI framework in Unreal, so now I spend my time between reading whitepapers on Utility AI and trying to implement it in Unreal. So you know - if you ever feel like I’m not that active on social media - it might just be that I’m trying to figure out the best fitness function for eating pizza ;)

More from Viking City Builder

Other announcements

All events
Community26 May 2023Choose your gjalfrmarr! - Devlog #23Greetings, brave Vikings! After the last series of exciting devlogs, in which we presented various aspects of the game's development processes, it's time for more discoveries. Today, we’d like to present you with material that will reveal the secrets of ancient crafts, focusing on shipbuilding and the fascinating types of ships that the Vikings used. Ready? Therefore, we invite you to read! The…Community28 Apr 2023Nanite technology in Viking City Builder - Devlog #22Greetings, Vikings! We have incredible news to share with you - we're taking our game's graphics to the next level with the introduction of a revolutionary technology developed by Epic Games called Nanite . In our latest devlog, we'll explore the capabilities of this incredible technology, how it works, and why we're using it in our game, Viking City Builder. Nanite is an advanced virtualized g…Community31 Mar 2023Seasons - Devlog #21Vikings! Welcome once again to the world of Viking City Builder, where the seasons ebb and flow just like in the real world. As winter gives way to spring, the landscape transforms, offering new opportunities and challenges for your Viking settlement. Read our latest devlog where we’re showing show you the impact of changing seasons on gameplay, as you navigate positive and negative modificatio…