Shadows of Doubt DevBlog #15: Moving in the Citizens
Shadows of Doubt is a detective stealth game set in a fully-simulated sci-fi metropolis! There’s been a murder and it’s up to you to solve it by any means necessary, with the condition that you keep a low profile. A unique mix of procedural generation and hand-crafted design enables every room of every building to be explored. Citizens go about their lives independent of the player as you watch from the Shadows, in search of crucial information. Read previous dev blog entries here.
It’s been a while since the last blog and I’ve been busy! Firstly some quick announcements: I’m in the process of expanding ways you can find out about, keep track of and follow progress on the game. First off is the official Discord server, and second are new places to follow this dev blog at Game Jolt and soon Itch.io. You can also subscribe to the mailing list that I set up a couple of blog posts ago, but for some reason, haven’t mentioned until now. A steam page is on its way- more on that at the end. Last but not least, I’ve been dabbling in making some concept/branding art for the project. Truthfully this has been repurposed from a much older piece I did years ago, but I’m pretty pleased with it- and shall likely be using it for a lot of the early promotional stuff that you’ll see soon.
The previous dev blog covered my first foray into interiors and my first attempts to procedurally decorate them. I’m pleased to say the game is progressing at a decent rate now; whereas before the new interiors were limited to my floor editor, they are now actually in-game. It took a while as there’s a lot to integrate; one of SoD’s main selling points is complete freedom to explore- and that means being able to go into any room in any building. When you’re talking about even just a couple of city blocks worth of skyscrapers, that’s a hell of a lot of rooms! I’ve had to do a lot of work under the hood in terms of culling to get this working, but you can, at last, do this without any extra loading times. I’ve got a lot to refine, but it’s working well. Using low-fidelity assets really helps as it keeps texture sizes small.
The second hurdle was to re-write the AI to take advantage of the new interiors system, as they’ve completely changed to how they were prior. I opted for an overhaul of the previous very basic AI in favour of a new goal-based system. A lot of things have stayed the same, such as the way the AI sight each other, but they now employ a new sims-like stat system that dictates their minor actions throughout the day (needing to eat, drink, sleep etc). Whereas before their routine was almost completely pre-computed- meaning a lot of extra, spontaneous actions such as checking out a suspicious noise or sighting had to be written separately. This could potentially break their pre-computed routine, meaning the game would have to calculate it again. This new system allows for a lot more flexibility.
As the goal is still to have a lot of citizens simulated with this AI, I’ve done a few things to limit the performance cost of it: Most notably, the AI’s update rate will only be high when nearest the player and when not doing actions that require them to be more aware. By dynamically changing this with proximity to what’s actually on-screen, I can make the performance cost of 95% of the citizens at any one time relatively insignificant. It’s had some teething problems, but I’m almost there- and hope to complete the new AI around the beginning of May.
Most significantly for the game though, this means I’ll finally have furnished, individual rooms that you can sneak into, complete with simulated citizens that are capable of interacting fairly realistically. This is a pretty big milestone that I’m super excited about. I’m hoping to launch the Steam page around then as I feel for the first time I’ll be able to effectively communicate (show, not tell) what the gameplay is like. Up until now, my descriptions have been somewhat vague, as I’ve tested a lot of ideas throughout this development. But what I’ll have soon is a stealth game with some pretty clear mechanics, that although lacking a lot, will be the first thing that’s actually somewhat playable. The sand in the sandbox if you will. Only took me 2 years!