Shadows of Doubt DevBlog #5: Pivot!
Shadows of Doubt is a detective management/simulation game set in a procedurally generated and fully simulated city. As head of the police detective department, it’s your job to organise your sleuths and track down AI serial killers before they strike again! Read previous dev blog entries here.
Sometimes you can judge how hard I’m working on the game by lack of my blog updates, it’s fair to say that’s been true recently. I’m rallying to get something presentable and playable to some extent by late summer.
It’s always been my personal game dev philosophy that I’d rather make games that are too ambitious for their own good, rather than under-ambitious. This project is not an exception. Despite my enthusiasm, however, so far the ‘game’ part has always seemed off. I love a good management game, but I guess a big reason why detective games and management games haven’t crossed paths before (to my knowledge) is that… Well, it’s pretty fun for the player to do the detective work, not leave it to a team of minions!
The game needed an injection of excitement in order for me to clarify where my ideas were heading…
In the last update, I mentioned about putting a first person controller inside the 3D city that I’ve constructed, just to get a sense of what it would be like to explore the city from street level. Although my original idea for the game certainly didn’t require that, part of what makes development fun for me is trying out those ideas. It’s been a huge amount of work to create this simulated city and population, and I thought it a shame that you can’t really feel ‘among’ it with a top-down camera perspective. I only really started with the overhead perspective because it’s typically part of the management game genre. Often the reason for that is because the player is required to build things– that’s not the case here, so it seemed ripe for experimentation.
This is about the latest in the project I can comfortably change something as fundamental as this without having to remake a lot of things. The first person perspective is more of an addition than a change. I still want to keep the framework that I’ve made involving the procedural cases, population etc and even most of the management aspects. You can still pause the game at any time and interact with all the case files, as I’ve shown previously. The key difference being the player is now the detective. You’ll still need your team of professionals to complement you- (eg forensics experts, ordering DNA tests, autopsies etc). But you’ll be visiting the crime scenes, questioning and pursuing suspects yourself and generally being more a part of the world in addition to having that slightly lighter management role.
This, of course, is a lot more work on my plate. As a bit of a visuals enthusiast though, I’m having a lot of fun making some of the early assets. I’ve chosen to go for a hybrid of pixel art and voxels to make the creation process relatively easy. I’m loving working with voxels- it’s like working with Lego. I have a huge catalogue of building models from Concrete Jungle which I can adapt and ‘voxelize’- it’s saving me a decent chunk of time and because the art style is so different it doesn’t feel like a cheat.
Because of my ‘everything-is-simulated’ approach, the procedural generation means shadow baking is unavailable to me. The lighting is going to be a bit primitive as a result, but luckily this works fine with my low-fidelity art style. It also means all the interiors have to exist in some state– when I’ve got skyscrapers with 20+ floors, this is a challenge.
This is my custom-built floor editor. As you may be able to deduce, buildings floors are planned using a 5×5 grid. I need to keep these aspects of the game as simple as possible, as the game needs to handle a lot of pathfinding to simulate the citizens. I can designate zoning to each room (for example street-facing ground floor rooms may be retail/shops, floors above may contain residential apartments). The game will populate these rooms with businesses or apartments as appropriate when the city is generated in a similar way to SimCity. The different occupant types are also contained within presets (Unity scriptable objects). I can use different floor presets to generate buildings that are different from each other internally, while keeping my workload manageable. It’s all about those nested presets! Interior decor will be a whole other layer to this, but that’s not so important right now.
I’m really excited to show more as the game progresses!