• Register
Post news Report RSS Dev Log: How NULLPTR shakes up the stealth genre

Enemies that can sense the player in different ways, deterministic behaviors and short levels

Posted by on

NULLPTR is a game that mixes elements from stealth, action and puzzle genres. Until some time ago I always described the game as an action puzzle game but I felt it was difficult to communicate how the game worked and then I realized that the main genre of the game was stealth. This was a shock to me since I dislike stealth games, specially those that have long stealth sections. I think this is mainly because I always feel like I don't have enough information to prepare myself before I start to execute a plan. In my opinion, most games don't communicate well enough how the enemies can sense your actions. Some examples of things I start to question when a game puts me in a stealth section:

  • Do I make noise if I walk? How far can enemies hear me?
  • What is the field of view of these enemies? How far can they see me? Can I use shadows to hide? Can I hide behind this crate?
  • What is the patrol route of this enemy? What is the waiting time for each point in the patrol route?
  • What happens if I'm detected? Can I revert to an undetected state? If i die, how much time do I lose?

Most of those are related to things we experience in real life and as players we expect they work similarly inside the game. The problem happens when they don't. This leads to frustration because you are trying to solve a problem where you don't have all the necessary information. This would be ok if it was easy to test those things until you can have an exact understanding of how the mechanics work in the game but long stealth sections and the lack of checkpoints makes this approach difficult.

So how NULLPTR does things differently? Since this is a game about hacking, I tried to make the player feel as if he is control even if he is constantly being traced, facing multiple security systems and sentinel programs. It is important that the player has all the information needed to plan his approach to reaching the databases undetected and also it should be possible to observe, test and experiment without friction so that all information needed to solve a level can be obtained.

Let's take a look at some of the main points that I think make it possible.

Enemies have different senses

In most stealth games, players are facing enemies that react to things like being seen or heard. In NULLPTR, players are in the cyberspace inside servers populated by sentinel programs that have different ways of detecting the presence of intruders. Some of them can detect the player by touching them. Others can feel the data flow in the connection trail that players leave behind when they move inside the server. There are also sentinels that can detect and react to movement, number and color of nodes in the connection route or stack memory, data read and writes, and so on. Whenever a player faces a new sentinel, it is necessary to experiment and observe in order to find out how they move and react. Let’s take a look at some of the many sentinels present in the game:

NULLPTR - Red Sentinel

This sentinel moves over red nodes and detects the player by touching the player cursor or its connection trail. If the player tries to reach the database after the sentinel goes to the right, it will detect the player when it comes back. The player can avoid detection by removing a red node so that the sentinel cannot go back.


NULLPTR - Green sentinel

Here we have FLYTRAP, it moves a step forward for each green node on the player route. With 2 green nodes in its route, the player cannot reach the database so it is necessary to remove at least 1 green node from the route.


NULLPTR - Blue sentinel

In this case we have a sentinel that reacts to the player writing a blue node inside its detection range. When this happens, the sentinel moves to check the position where the data write happened and the player can exploit this to open the way to the database.


NULLPTR - Yellow sentinel

Finally we have this sentinel that remains stationary until the player gets a yellow node from the server. For each yellow node in memory, the orbit radius of the sentinel is increased by 1. Here it is necessary to get a yellow node first to unblock the path but then the sentinel trajectory passes through the database impeding access. By getting one more yellow node, it is possible to reach the database safely.


From those examples it is possible to see that all enemies can be manipulated in order to create safe routes inside the server. All levels are designed so that they can completed without being detected by any sentinel program.

NULLPTR - Sentinel route


Everything is deterministic

All sentinel programs follow a strict set of rules and once you understand them, it is always possible to 100% predict how they will act based on player movement and actions. For example, different from other stealth games where you have to observe and memorize patrol routes, if we take the red sentinel from the sample above, it is possible to look at the server layout and immediately “see” the route it will take if you know its movement pattern. We know it moves over red nodes and by experimentation and observation in earlier levels its possible to infer that it has the following behavior for movement:

  1. Try to move forward
  2. If 1 is not possible, try to make a counter-clockwise turn and move forward
  3. If 2 is not possible, try to make a clockwise turn and move forward
  4. If 3 is not possible, try to move backwards
  5. If 4 is not possible, do not move

Or in simple terms, if the sentinel is moving up, it will try to move in the following directions: up, left, right, down. Since this behavior is static, it is possible to predict the sentinel route and also what happens if you change its route by moving red nodes in the server. In a way, it allows the player to plan a solution without needing to rely on trial and error.

Can you predict its route by following these rules? (you can see the actual route in the end of the article)

NULLPTR - Orbit


Most levels can be completed in less than 30 seconds

When you first connect to a server port, you can see the server layout and you have the choice to start your run from that point or you can disconnect and try other entry points if they are available. As soon as you commit to an entry point and start to move inside the server you start being traced. This procedure always take 20 seconds and if your run takes longer than that you are eliminated. In order to avoid that, you can always return to the entry point and disconnect to reset the tracing procedure. So you can choose to take your time and do things carefully, or you can try to risk it all and finish the run in under 20 seconds. Not all levels can be finished in 20 seconds but most of them have solutions under 30 seconds. This is a rule I'm following when I create new levels. Failing to execute a plan should be only a minor setback and trying again should not be something painful. Of course there are a few levels that are a bit longer and that will require a bit more time but by then I expect the player to be prepared to tackle them.

NULLPTR - Solution patrol route


Closing up

Looking from a different perspective on the stealth genre, I hope that NULLPTR provides a somewhat new experience for those who like stealth games and also for those that feel as frustrated as me with some others game in the same genre. I'm not saying NULLPTR will be objectively more fun than those games but I think it expands the range of possibilities, reduces some of the frustrating aspects and by doing so I hope it finds its audience. With 20 types of sentinels with different behaviors and several possibilites of exploiting them, I'm certainly having a lot of fun creating interesting scenarios.

If you wanna try the game and see if it lives up to everything I wrote here, there is a lengthy demo available on Steam.

Post a comment

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