• Register
Post news Report RSS nullptr - From idea to game

In this article I talk about the story of how my childhood dreams of being a hacker made me create a hacking game and how difficult it was to bring this idea to life.

Posted by on

As someone born in 1981 I was heavily influenced by movies like Tron and War Games that as a child made me dream of participating in cool adventures by using computers. I found out soon enough that I could play or create videogames with them but I wasn't going to enter the grid and it would be better not try to save the world with real-life hacking. Life happened and every now and then when I played a hacking game or just a hacking minigame I would remember these dreams from my childhood. Even so, my opinion was that those games were all too simple or too complex and then I thought: "What if I tried to create my own hacking game that would make my past self feel like he was a super hacker?"

"Core Capture" prototype

My first try to bring this idea to life happened in Jan/2017. I created a prototype for a game where players would use their smartphones to code programs that would be uploaded to a grid where they would fight to capture nodes. Everything happened in real time and players had to adapt their programs to react to what was happening in the grid. This idea was inspired by Core Wars and I was trying to make it more accessible and more entertaining to watch too. I don't remember exactly what happened but I stopped working on this right after having a working prototype. Unfortunately I don't have any gifs or screenshots for this prototype but I still have the code for the Android client that players used and the Unity client used to display the grid where the programs battled. I still think it can become a cool game and I'll probably revisit this idea in the future.

"Flatline" prototype

At the end of that same year I was playing a lot with the Pico-8 Fantasy Console and decided to try my hand at the hacking game one more time. This time it would not be a multiplayer game but something more like the hacking minigame from the more recent Deus Ex games. One of the ideas that were in my head at the time was that the player would have to enter the server by connecting to a port and then find a route to a target database. Inspired by the Tron motorcycles scene I thought it would be cool for the player to leave behind a trail representing the connection inside the server. Since this was a real time game, programs defending the server could find this trail and start to trace it back to the entry port to eliminate the player.

Those ideas were interesting but they were not mature enough to be brought together into a game. The gif below shows what I managed to implement in the prototype before abandoning it.

Hacking game prototype in action


"Hacker" prototype

Three years later, the ideas from the two hacking game prototypes began to meld and this time I felt that I had a better idea of how they would work together. The plan was to take the grid and the node capture ideas from the first prototype, the connection trail, the goal of finding a route to the database and the programs defending the server from the second prototype and try to create a playable level using those elements. This time I used the TIC-80 Fantasy Console and in a few days I built this:

Hacker prototype


In this prototype I could validate the idea of a connection trail and also the defensive programs. Since these programs are trying to trace the player, I needed to provide a mechanic for the player to protect its connection. Since those programs are moving by following the red nodes, I thought it would be cool if the player could manipulate those nodes to create a safe route to the database. This worked exactly how the programs captured nodes in the "Core Hacker" prototype, they could just go over a node and change its color. That worked well and brought the feeling of hacking and exploiting the weaknesses of those programs in the server.

This time I felt I had a good starting point but I still needed to bring more of a hacker feeling to the game. One of the things I'd like to have in the game was something like those scenes in the movies where someone is downloading a file, watching that percentage go up while someone tries to trace the hacker. In order to bring this I needed to add some kind of time pressure to the player. I chose to give the player a fixed 30 seconds time limit once connected to the server. This would represent the time it would take for the player to be traced by the defensive systems. Sentinel programs defending a server could speed up this trace time by colliding with the player or with its connection route, so it became extremely important to find or create safe routes. One more element to increase tension was the variable download time. The longer the connection route, the longer a download takes to finish. Here is what it looked like in the TIC-80 prototype:

nullptr TIC-80 prototype

There were other elements introduced in this version like the stack memory and the connection profile. The stack memory limits the changes that the player can make on the server nodes. Players could collect up to three data nodes (colored squares) and deposit these data on any grey node. This can be used to manipulate sentinel programs or the connection profile. The connection profile is used to open gates present in some servers. All data nodes included in the route are counted towards the connection profile. A gate opens any time it matches number and color with the connection profile. Let's see this in action:

Connection route and gates

Since the connection route is one of the core elements of this game, it made sense to me to use it as a mechanic controlled by the player to manipulate server elements and sentinel programs. As a bonus, this synergizes well with the ability to move data nodes.

After a lot of playtesting and experimenting with those core elements, I really liked the game I had built. I am totally biased but I found it to be fun, clever and exciting. Certainly my past self would feel like a hacker with this game! So I decided to drop the prototype and start implementation from scratch using the Defold game engine. A fantasy console is great for prototyping and it helped a lot in bringing this idea to life but I needed to move away from its restrictions in order to release it as a commercial product.

This is what the game looks like right now:

nullptr Defold

The porting process of everything I had in the prototype took 5 weeks and I am excited for what comes next for this game. If you want to know more about it, follow me on twitter (@jefrsilva) and on the nullptr Steam page.

Post comment Comments
Sergej_Actalogic
Sergej_Actalogic - - 4 comments

A cool article about what look to be a promising game!

Reply Good karma Bad karma+1 vote
Post a comment

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