Status
SteamPeaks
ChartsSalesUpcomingPatchesNewsCalculator
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
NewsSteam's own announcements 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 festsUpcomingPatchesNewsRecordsTrendingSignals
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
HARWELL: Mars IndustriesNewsBuilding Modifiers
Community

Building Modifiers

HARWELL: Mars Industries · published 28 Dec 2025, 16:34 UTC

All newsPlayers around this dateRead on Steam

Development Showcase: Modifiers

Hello, it's Caleb, developer of Harwell. It's been a little while so I thought I'd write a festive write-up of what's been going on, and the most recent implementation in the game - building modifiers. Modifiers have taken some work to implement - having to build in JSON files, adjusting the building system, building them into the inventory system, and more. They're almost complete so I wanted to write a dev diary about the progress so far.

I hope everyone has had a lovely Christmas this year!

Updates to AI

Since the last update, I've been balancing the AI and configuring it to make sure it's competitive but not crazy. Initially, the AI was quite passive - it would barely build after the first few buildings and it didn't quite know how to manage its money properly. Now, it's quite the opposite! The AI is aggressive and actually overbuilds, it's quite tricky to fight against. It's not quite perfect and I need to continue tuning it, but I may have to leave it for now as there's a good chance it'll be redundant until I finish implementing the core gameplay features and add more resources/buildings.

In the current alpha build, the AI is reaching multi-million pound companies in a couple of in-game hours - whoops! Don't worry, the final game will be easier, but it won't be that easy, I also still have plans to implement AI modding and different AI behaviours.

Modifiers?

Up until now all buildings worked the same - built it on any tile that isn't a mountain. What about Wind Turbines - what if they're next to a mountain? The output should be lower, no?

I've currently implementing a moddable modifier system. Much like how buildings and resources work, modifiers can be define using JSON files, the game reads those JSON files and applies it to the specified buildings in the game if they can find it.

The main one I've started with is a reduced output modifier for Wind Turbines depending on how close to a mountain tile they are:

Next to a mountain = -50% output

2 tiles away = -25% output

3 tiles away = -5% output

This should mean building placement now has its own strategy, you have to consider how the placement of a building affects it's output and ultimately effects your bottom line. We want profit!

Logic

Tile Custom Data

The game on load builds a reference of the map tiles, each tile has a 'terrain' custom data String which defines what kind of tile it is. All of the mountains for example have it set to 'mountain'. This custom value is how the game will calculate modifiers when you're placing a building. For now, the terrain String is hard-coded in the editor, but in the future this data might be made moddable as well.

The game stores the data for each tile at the game start, tagging tiles with custom terrain data and caching them for later. When placing a building the game then searches the radius around the building coordinates in 'rings' extending outwards, noting any found tags in the cache. From there, it can display modifiers that will be applied. When the building is placed, the modifiers will be calculated on the host so that the correct building input/outputs can be given.

Optimisation/Performance

Currently, tile data doesn't change so it can be cached on game start and used later, which helps improve performance considerably. Perhaps if dynamic tile attributes get implemented I may have to change this, but we can always add/remove from the cache as tiles update if that happens.

Another consideration with modifiers was when to calculate them - constantly calculating modifiers may be costly. Instead, the modifiers are applied when the BuildingManager completes its batch processing where it uses queues and batching to update the buildings on the map. This should help bolster performance.

Limits to the search radius are also in place - currently the game will search up to 10 tiles out from the building coordinates. This is so that it's not searching the entire map for every building you want to place. Currently, the maps are 32x32 tiles, but I plan to build out larger maps such as 64x64 and it may also be moddable/custom in the future, so if huge maps are made I want it to also support them.

My current approach to performance is to not just make it performant for the current version of the game, but to make is as performant as possible. I want to ensure that even if things are scaled up, it will have minimal effect on performance. It won't always be the case as some things will just be costly to calculate, but I'll certainly try! I want Harwell to work on any PC or smart toaster in your house as best it can.

Modding

Much like buildings and resources, the modifiers in the game will be moddable. Using JSON data to create the modifiers not only allows modding by players, but also makes it much easier for me to implement modifiers!

This is the wind turbine modifier JSON file. Things may change so this might not represent the final version.

That pretty much sums up modifiers, at least for now. Stay tuned for more updates, I'm exciting for what's to come in 2026. I hope everyone has a wonderful new year.

See you in 2026!

Caleb

More from HARWELL: Mars Industries

Other announcements

All news
Community8 Jul 2026Dev Diary #1 - The Building BlocksHello, Pioneers, and welcome to the first Harwell: Mars Industries dev diary. If you're new here, hello! I’m Caleb Houlding, solo developer of Harwell: Mars Industries, along with publisher Aquila Interactive. It's great to have you here! Today we’re looking at the building blocks of Harwell: Mars Industries, and we'll be showcasing the implementation of various buildings, along with their reso…Community28 Apr 2026New Publisher Announcement!Mars is open for business! Developer Caleb Houlding is partnering with publisher Aquila Interactive to announce Harwell: Mars Industries , a sci-fi economic strategy game set on Mars, coming 2027. This is the start of an exciting journey, and we'd love for you to head to the Store page, wishlist and come along with us for the ride in our Discord . What is Harwell: Mars Industries Each corporati…Game update13 Apr 2026v0.20.4 PatchNew Features · Friends system with Steam and Nakama integration — add friends, see their status (online, in-game, in-lobby), and invite them directly to games. · Beautiful Shadows toggle in Graphics settings for the new lighting pipeline. · Game end screen redesign with full-screen overlay, financial graphs (revenue, expenses, company value, profit, debt), per-resource production tables, and co…