[one_third]We speak with Neon Struct developer David Pittman about the game’s colourful world and clean stealth systems.[/one_third]
Sneaky Bastards: Despite using a similar light and shadow stealth model Neon Struct plays faster than Thief: The Dark Project. There’s no dedicated creep button and sprinting has a greater utility given you can turn it into a soundless slide. Was it a conscious decision to make Neon Struct play faster?
Pittman: I started from the core movement suite of Eldritch, and slowed everything down compared to that game. It wasn’t a conscious choice to make Neon faster than the original Thief games; that was just what felt right to me. I tend toward a faster pace in my own games, and the larger worlds of Neon (compared to Eldritch) and slower movement speed were pushing at the threshold of what I felt comfortable with. I worried that players would feel that movement was tedious if I made it any slower; and if movement doesn’t feel good, the rest of the game suffers.
I’ve always considered that crouching is a dedicated creep button, and combining those into a single input streamlined the control scheme. I love the classic immersive sims, but Thief II in particular had perhaps too many ways to control movement speed—three separate buttons for run/walk/creep, plus a crouch modifier and a speed modifier—and personally, I rarely used anything more than walk and crouch-walk.
The utility of sliding as a fast-yet-silent traversal method was something of an oversight. I possibly should have implemented a countermeasure to prevent its abuse, as the slide-everywhere tactic wasn’t how I expected the game to be played. But ultimately, I don’t think it transforms the game too much. Light and visibility are still more important than sound in most levels.
How did you decide on the abilities and items available to Jillian? Did these change over the course of development, did those changes impact your approach to the level design?
The only items I was certain of from the start were the hack tool, the scrambler (because it was basically Thief’s flash bomb), and the Hitman-style coins, which later evolved into “geocache tokens”. I added the other grenades and stims later, as I played and considered what sorts of abilities I wished I had to get out of a tight spot. The Displacement Orb was the only item that significantly impacted level design, as I had to consider whether the player could use it to break sequences or get to places I hadn’t previously anticipated. Of course, I couldn’t depend on the player having any specific items beyond the hack tool, so I had to build each level so it could be completed without using any items.
The average size of each space is fairly large. Was this notion of more open space leading to more opportunity for risk something you considered when designing the levels?
Absolutely. I wanted the tension in stealth play to arise from the fear of being exposed as the player crosses large, well-lit spaces. If the player can easily move between shadowed or occluded safe spaces across a whole level, there is rarely any real danger (and in the worst case, the player gets bored at the flat pacing and takes risks just to break the tedium). Forcing the player to move through dangerous space means more opportunities to engage with all the game’s systems. And it reinforces a certain theme and aesthetic of the game, of being stuck at the periphery of society, afraid to be seen in the light.
A lot of the levels in Neon Struct start with Jillian standing outside a building that she needs to infiltrate. You can take your time and get a good read on the patrols and layout of the exterior, but once you are inside you have to make do with less information. The interiors are almost black boxes in that regard.
I love the classic infiltration level structure: the relative safety of scoping a building out from a distance, the voyeuristic sense of gathering partial information through windows, the thrill of finally approaching and entering and having to quickly react to new challenges. In an ideal space, I think there would be more opportunity to gather information about the interior from outside. But I never designed a Neon level with that goal in mind, and consequently, interiors tend to be black boxes.
Was the heavy use of glass throughout the world a way to play with that ability to see what was coming and plan for it?
During most of the game’s development, leaning around corners exposed the player. It was difficult to scope out an interior without being seen by guards: leaning around corners or opening doors carried a lot of risk, and the player had few tools to predict or mitigate that risk. I started using a lot more windows, sometimes in odd places, so the player could observe partial patrol paths from a distance, and not constantly be blindsided by guards. (Then shortly before release, user testing convinced me to change the behavior of leaning on lower difficulty settings anyway.)
Was this sense of known and unknown information related to why there are no maps in the game?
There were several reasons I chose not to include maps. I probably could have justified it from a fictional perspective (maybe Jill’s HUDSON device can download floor plans to any building), but having perfect information about a level would be at odds with the theme of vulnerability. In contrast to something like Dishonored, I never wanted the player to feel like a superhuman.
In a well-designed level, with good visual landmarks and clear pathing, the player should be able to build a mental map of the space, in the same way they would in a real, physical space. “Playing the map” impairs that, because the player isn’t paying attention to the 3D space. There are certainly a few levels in Neon where visual landmarking is lacking, but mostly, the levels are small enough that players can learn them without needing a map.
I believe that one of the reasons there’s no UI light meter in Deus Ex was the concern that it would leads to players “playing the UI”. Was that ever a fear? Did you always want to include a light meter?
I had no fear that “playing the light meter” would cause problems. The light meter only reiterates what the level is already telling the player, but it does so without any ambiguity. (By contrast, Deus Ex’s stealth feels difficult and mushy to me, because I don’t have enough information to know when I’m actually hidden.) I experimented with providing similar visual feedback for the radius of the player’s footfalls (like Mark of the Ninja did, if I recall correctly), but I couldn’t find a treatment that worked in 3D that wasn’t terribly distracting.
To clear something up for me, is it actually the case that guards will become alerted if they see others guards alerted even if they have not seen a disturbance directly? It’s something that I feel sure I’ve seen happening and it feeds into this sense of cascading consequences where alerting one guard can quickly spiral out of control.
Yes, guards will “communicate” with each other and even share information about the last place they saw or heard the player. Guard V.O. would have made that sort of thing much clearer, but it seems that there is an intuitive understanding of what is happening. (I might have also provided more information a la the “?” and “!” HUD overlays, but I was wary of cluttering the screen and over-complicating that visual language.)
Is there anything you could tell us about how the AI operates? They seem to react to certain events but not others, like a door opening will evoke a reaction but a camera being disabled won’t. How did you decide on what the AI would or wouldn’t react to, how does that change with the difficulty level, if at all?
The AI uses a stimulus model, with sensors for detecting things by sight, sound, or touch. Each type of sensor is only aware of certain other things in the world; AIs can “see” the player and other guards, for example, but they cannot “see” doors and will not care if a door is open or closed. Certain events—opening doors, switching lights, flushing toilets—emit an “AI noise” which carries information about the thing that caused the event (so AIs react to the player opening a door, but not to other AIs opening a door). Successfully hacking things never emits an AI noise. Although it is sensical that a guard would notice a camera being disabled, I didn’t want to punish the player for a successful hack.
Sensors output a fuzzy (floating point) signal that describes how certain the information about the target is. A target seen in low light at a distance might have a certainty score of 0.2; whereas a target seen in bright light at point blank would be 1.0. Each difficulty level changes the thresholds at which the AI reacts to information. For example, on Easy mode, an AI might ignore a target with a certainty of 0.4; whereas on Normal or Expert, the AI might start searching or immediately attack the target under the same conditions.
I just made sure the game could be ghosted, so items would never be strictly necessary but could be used to get out of a very tight spot.
The only way of interacting directly with non-friendly NPCs is to knock them out and when that happens they crumble to the ground with no fanfare. Jillian never carries a firearm, but as she’s never given an opportunity to do so it never feels like a behaviour that’s been forced on the player from on high. When you started Neon Struct, did you have a notion of how you were going to deal with simulation boundaries like that?
The nonlethal mandate was definitely a “forced on the player from on high” decision, and somewhat antithetical to my play-it-your-own-way values on Eldritch. But after years of making violent action games, I wanted Neon to be more restrained, and it fit the game’s thematic and aesthetic values to entirely remove combat as an option. The player was supposed to feel vulnerable, not superhuman; and Jill is an authored personality, and not the sort of person to indiscriminately kill guards. I even considered removing the non-lethal takedown and forcing the player to completely avoid engaging with enemies, but that seemed like a bridge too far, especially for players not accustomed to ghosting stealth games.
Jillian is able to purchase, and steal, various items but there’s little consistency to her ability to replenish her inventory; there are no shops that can be used between every mission. Given that players may not know when they’ll be able to resupply, did you find that some were being overly circumspect with the use of certain items?
I was only able to do a little bit of user testing on the end-to-end game experience, and questions of item economy ended up being secondary to getting the level design and core stealth gameplay working well for most players. I was aware that some players would save items for some unknown optimal place to use them – it’s a classic inventory design struggle – but instead of worrying about that, I just made sure the game could be ghosted, so items would never be strictly necessary but could be used to get out of a very tight spot.
The inconsistent availability of certain items over the course of the game was somewhat more intentional. I hoped it would encourage players to buy things when they had the opportunity, instead of hoarding money. If a player can just barely afford a good stim, but they don’t know when they’ll have another chance to get one, then maybe they’ll go ahead and justify the cost instead of waiting.
At a couple of points the game “gets weird”; how did you decide how weird to go with Neon Struct and do you feel you could have taken either of those two sequences further?
I always love weird/different levels, even if they aren’t the most mechanically sound. Levels like Thief: The Dark Project’s Constantine’s Mansion, Thief: Deadly Shadows’ Shalebridge Cradle, or BioShock 2’s Outer Persephone are unique and memorable environments because they break from the style and pace of their neighboring levels. With Neon, I knew I would have a mix of social and stealth levels to provide variable pacing; but I also wanted to have some weird moments that pushed the game beyond concrete hallways.
My original vision for the dream sequence was significantly weirder: a black light forest, a path paved with piano keys, 8-bit style monsters, ambulatory musical notes, and a monolithic telephone blaring an air raid siren across the level. But the art requirements for that version were unrealistic, and I was concerned that the visual design would make a poor stealth level. I reenvisioned the level as a physical exploration of Jill’s mind instead of a drugged-out nightmare, and so it ended up more Inception than American McGee’s Alice.
With the STRUCT, I just wanted to pay off the cautiously ’80s cyberpunk vibe with a bright pink and blue level. There was no grand plan for that level; its non-Euclidean spaces, Tron-ish guards, and pseudo philosophical conversations were all added on a whim during its development.
Early on in the game you visit Jillian’s apartment complex and the Agency Headquarters, given the number of locked doors in both locations I remember thinking that I was likely to be visiting these locations again as actual stealth levels. Was this ever something that was part of the plot? Were there other levels that either didn’t make it or were changed from what was originally planned?
Very early in Neon’s development, I considered having Jill sneak back into Agency HQ as an enemy; but that mission got folded into the Data Center/STRUCT levels, and the HQ level wasn’t designed with stealth in mind.
There were two levels which were cut for different reasons. Instead of taking a car from the Old Basilica to the Safe House levels, Jill would have ventured into a network of tunnels beneath the church, eventually connecting to an underground rail and a sewage drain. It was meant to be another “weird” level, with the player constantly descending and feeling claustrophobic and deep underground. But that aspect didn’t play like I’d hoped, and the stealth was bad, and the level didn’t move the story forward, and no one wants another sewer level in a game. So I cut it after maybe two weeks of work.
The other level was scrapped before I’d ever begun to work on it. Instead of taking an aircraft from Manhattan to London, the player would have gone to the docks and boarded an underwater train. Halfway through the trip, deep beneath the Atlantic, the train would be halted by a fake terror threat (from NEON or the Agency) and Jill would have to get it moving again. But the premise was flimsy, the structure of a train would have made a poor stealth level, and this was just another “connective tissue” level that didn’t really advance the plot.
Though I enjoyed my time with Neon Struct, my overriding takeaway is that I just wish there was more of it. Now that it has been out for several months, how do you feel about it? Is it what you wanted?
Thanks! My two main goals with Neon were to make a better Thief than Thief (2014), and to tell an interesting story about mass surveillance. It ended up being a bigger project than I anticipated, and might have been better served by a slightly larger team. But I learned a lot making it, and I’m happy with how it turned out. Working on Dulce for the past couple of months has been a nice coda to the project, and I’m excited to see what people make when I release the editor.
You say Neon Struct “might have been better served by a slightly larger team”. Aside from the levels you mentioned, were there specific systems that you wanted to include but couldn’t due to development constraints? Similarly, I remember being surprised by the existence of the Displacement Orb, but also disappointed when it turned out to be less of a “game changer” than I expected. Were there any systems you wish you’d been able to develop further?
The scope of Neon’s systems is right about where I wanted it to be. My goal from day one was to make a very streamlined, systemically “pure” stealth game, rather than the sprawling, somewhat messy systemic space that I had done on Eldritch. Informally, I was trying to make a Thief rather than a Deus Ex or Dishonored. Perhaps there could have been more fidelity in AI behaviors, or a couple more item types, but nothing that would have radically changed the game. Where I feel Neon would have benefited from a larger team is mainly art fidelity and object density. I’m happy with the lo-fi aesthetic I developed, but certain levels feel especially sparse and sterile.
Informally, I was trying to make a Thief rather than a Deus Ex or Dishonored.
Prior to going indie, you were a programmer at 2K Marin. Level design is not necessarily your primary discipline, but you’ve worked with some very talented designers: Steve Gaynor and Jordan Thomas to name just a couple. Was there anything you learned while working with them that you took forward into your own level design in Neon Struct?
I was an AI/gameplay programmer at 2K Marin for about five years, and worked with a fantastic team on BioShock 2 and The Bureau: XCOM Declassified. Regrettably, I didn’t always get to see how level design or narrative decisions were made – very few people on large teams can have a truly holistic view of a project – but I’m sure some of the implicit lessons rubbed off on me. In particular, the way I scheduled Neon’s production was influenced by my experience there: starting with a small vertical slice to establish tools and best practices, then building out the game end-to-end, testing and iterating, and finally going back and cleaning up the details. But mostly, I’m grateful to still be in touch with so many people from that team, who are now my first line for playtesting and critical feedback.
So the HUDSON? Is that a reference to 2K Marin designer and Ion Storm Austin alumni Kent Hudson?
Yes, the HUDSON was absolutely a reference to Kent. 🙂
You used procedural level generation in your previous game, Eldritch. Did you ever consider doing that for Neon Struct, even if only in limited instances?
I never considered using procedural generation for Neon. One big reason I chose this project over some other potential game concepts was that it would push me to grow as level designer and a writer. Offloading any of that to an algorithm might have betrayed that goal.
And although I had some success with very random procedural levels and stealth in Eldritch, it would be a much greater risk to make a “pure” stealth game with procedural levels. The generation algorithms would need to be designed with an insightful understanding of light, occlusion, surfaces, safe and unsafe spaces, tension and pacing, enemy patrols, and more. With the lessons I learned from making Neon, I feel closer to being able to design a procedural algorithm for stealth spaces, but I doubt if I could have done it well without that knowledge.
Brutalist architecture plays a big part in the visual aesthetic of Neon Struct. Was this use of brutalist forms and style something you wanted to do from the start or was it just a good fit for your engine?
The use of Brutalist architecture was a sort of serendipitous confluence of the limitations of the engine, my personal interest in the style, and cultural associations of Brutalism with totalitarianism.
Neon was built on Eldritch’s voxel engine, but I desperately wanted to avoid the “Minecraft look” of a natural landscape quantised in cubic meter blocks. So I decided that I would not use voxels to approximate more complex geometry in Neon; I would only build structures which would reasonably be composed of 1m cubes. Brutalist architecture proved to be a good fit: its heavy forms and right angles were an ideal style to construct from voxels.
Of course, an aesthetic fit was an important as a technical fit. The cold, fortress-like appearance of raw concrete—and, I suspect, the Brutalist movement’s overlap with the Cold War—has led to Brutalism being associated with totalitarian governments. Applying the style globally to the world of Neon reinforces the core themes, and helps to identify the world as an alternate take on our reality.
I typically focused on the primary buildings as isolated structures (serving both a fictional purpose and a function as an interesting stealth space), then built out the rest of the environments later. But in most levels, everything was meant to be Brutalist. So the primary buildings don’t stand out as a distinct style, but fit naturally into their environments.
There’s both a level editor and an expansion coming for Neon Struct. Did you have any specific aims with regards to the new content? Does this build on ideas you were unable to implement for the original release? Did player reaction have an impact on these? Were there certain aspects of the game’s design that you wanted to explore further?
I’ve just wrapped up the expansion (NEON STRUCT: The Dulce Archives) and it will be out sometime next month, along with the level editor and mod support. (Sorry, I don’t have a release date for that yet.)
Dulce is a short side story, set almost two decades prior to the main campaign. It’s a little more fun and campy, sort of in the spirit of The X-Files. For years, I’ve wanted to make a game inspired by the supposed Dulce Base, and I thought it would be fun to scratch that itch within the world of Neon.
So I have to ask, the footsteps: was the decision to make them sound so close to Garrett’s intentional or just a fortunate coincidence?
I usually start with sounds from Freesound.org, but I purchased a sound library for footfalls so I would have a good, consistent set for such an important part of the game. It was an older library, from 1996 or 1997, I think, and it’s entirely possible that Thief actually used the same sounds. (I have no idea if Brosius and Co. used libraries or did their own foley work, but I also noticed the distinct similarity to Thief’s footfalls.)
You stated publicly several months ago that there were still secrets in Neon Struct that nobody had yet found. I won’t ask you to reveal them, but do you know if that’s still the case? Are there still secrets waiting to be discovered?
Let me see if I can keep this vague enough: as far as I know, everything has been found, but no one has yet understood the meaning.
Jillian Cleary, JC, is it fair to assume that’s a tip of the hat to Deus Ex and JC Denton?
Thanks for taking the time to talk to us about Neon Struct.
Thanks for the questions!