• Register

Shadows of Doubt is a stealth detective game set in a fully-simulated neo noir city. 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.

Post news Report RSS Shadows of Doubt DevBlog #7: There’s been a (Procedurally Generated) Murder!

In the latest development blog I talk about the first character model, doors, and crime scenes!

Posted by on

Last update I had made some progress on the first-person game world and these last few weeks have continued that trend. I'm enjoying working with voxels so much that switching to 3D modeling for the game actually feels like a nice break from the programming, so it's a win-win situation as far as development is concerned! It's why the graphics suggest the game is further ahead than it is. Since the last update, the biggest implementation is a basic character model, complete with walking animation.


Despite the endless repetition, having a human model in the game has really brought the first-person mode to life.


Originally, I had planned to make the characters as 2D billboard sprites in a 3D world (think original Doom). However, after some experimentation, I decided to try and make a character model using voxels and the same technique I'm using for, well, everything else. Turns out 3D voxel modes are actually way easier- for several reasons: The first being that it's much less time consuming to animate compared to drawing every single frame for every animation for at least 4 different directions in 2D. Secondly, although obviously right now the city is pretty non-diverse with my basic film noir white detective, I have big plans for having all shapes, skin tones, hair colours, and hairstyles etc. Building the character models in a way that is easily segmented into head, torso, and legs means this diversity among characters will be possible, and that's super easy to do with voxels.

The walking animation was achieved by making different leg meshes for each' frame' of animation. This achieves a stop-motion-like effect. Since the legs are symmetrical, I was able to save time and resources by simply mirroring the mesh in the latter half of the walk cycle to complete the animation. I then added some subtle transform movement of the torso and head meshes using Unity's built-in in animation editor. It's by no means final, but honestly, it's better than I was hoping floor (I don't have a lot of experience in 3D animation at all, and I was dreading the task making all those billboard sprites).

These last few days saw the first implementation of doors.


But wait there's more! This week I've also made some doors for the game. Doors in Shadows of Doubt will be able to be closed, open, locked, unlocked, lockpicked, destroyed and keyholes peeked-through. I've only got the first couple of things on that list working so far, but the implementation was relatively painless, and it all seems to be working as planned for now.

I mentioned in my last post, one of the limitations of having a procedural world is not being able to bake lighting. I've already come up with some culling techniques for expensive real-time shadows and illumination. One nice advantage is though, I can have dynamic lights being visible through cracks under doors- a very noir-esque way of telling if the light is on in the room within. This actually happened by accident first of all due to wonky door positioning on my part, but I'm absolutely keeping it!


Crime scenes are beginning to take shape!


Lastly, bringing this blog entry up-to-date with my current focus- crime scenes! This is one of the biggest challenges of the game as murders need to be able to occur anywhere and leave behind logical clues. In other words, I don't just have to place some clue objects and a few blood spatter decals around- I actually have to simulate what happened and have the game generate the objects and placements using that. I have yet to really dive into the simulation aspect, I'm just getting the basics down for now.

Most importantly though, the player drops little yellow crime scene placards when you inspect a clue at a crime scene. Priorities.

Post a comment

Your comment will be anonymous unless you join the community. Or sign in with your social account: