Shadows of Doubt DevBlog #6: First Person Adventures
Shadows of Doubt is a first person detective 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.
This week has been hugely productive– following on from last week, I’ve implemented basic interiors so you can now go inside every building (complete with stairwells). That’s not to say interiors are anything like complete- there’s no furnishings, doors, or really anything of note, just rooms decorated in a sickly green striped wallpaper. However, the rooms even existing in 3D space is a nice milestone.
I’ve had to start thinking about the culling techniques for the game, as the game can’t possibly render every single room in every single building across the entire city at once. I’ve been able to appropriate my pathfinding/grid system to help me here, as interior space configurations are massively simplified by being on an internal 5×5 grid system, it’s able to help the engine know what to render and what to skip. The streets are rendered from inside a building, so you can see out the windows, but not vice versa. The only exception to this rule is the ground floor, which is rendered at street level, so it’s possible to have things like shop storefront windows which you can see into and out of. I’m happy with this compromise as it’s generally pretty tough to see into a window above the ground floor if you’re in the street.
After my graphical production spree, I’ve now settled back into coding the gameplay. The main reason for this is to get something at least semi-playable I can demo pretty soon. I’m finding the pieces are finally fitting together a little more. The complete simulation of detective cases gels well with the player being an active character in the world. For example; don’t want to spend several in-game hours dusting the crime scene for prints? No problem- just leave it to your other detectives while you track down a lead.
You might, want to question the prime suspect, but also canvass all of the neighbours to leave no stone unturned- again, not a problem, just leave the boring stuff to your minions! If there’s nothing for your other detectives to do, that’s not a problem either- they’ll sit back at the office and generate ‘paperwork’, which is a resource you need to unlock various orders (for example obtaining a search warrant).
Essentially it’s going to be a first-person detective game which allows the player to focus on the more interesting side of detective work. It’s also going to be possible to do the opposite and be the one sitting back at the office, passively generating the paperwork resource, while you simply order your detective teams to do everything.
I’m going to draw a line at combat though. Stealth, sneaking about and tailing suspects are definitely on the cards, but combat not so much. If I do ever decide to explore it, it would be a minor part of the game, so just to reiterate- this isn’t a shooter.
One decision I’m stuck on is what to do with the old default view; the isometric camera. As you can see below, the game looks great from this view, but sadly I cannot find much of a practical use for it. Currently, it’s been taken out- the first person camera being essential for exploring, while the top-down camera is better for navigation and a general overview of the city. You can switch between them seamlessly with the F key. What the top-down camera can’t do, however, is differentiate between different floors in a building. This could be where the isometric camera is useful.
Lastly, with the focus now back on gameplay, I’ve been working on a first-person object interaction system. I’ve taken some inspiration from the original Deus Ex and System Shock here, as I’m sure anyone familiar with them will no doubt recognize. Maybe it’s my own nostalgia, but in my opinion, it remains the clearest graphical way to interact with the game world. Not having a first-person weapon to design around frees up both mouse buttons to become available for world interaction- I’ve not quite figured out the rules for this yet, but it gives me some freedom in that respect.
In the week ahead I’ll be continuing to evolve the gameplay. My first gameplay milestone involves having the AI killer murder someone, have the crime be reported, and then for the player to be able to visit the crime scene and find various bits of evidence.