Bitburner

January 07, 2022

Hacker

The simulator genre

For the past half decade or so, one video-game genre that came out and gained huge amounts following is the simulator. From PC Building Simulator, to Euro Truck Simulator, to Goat Simulator (?!), many of these games are quite addictive and while they show the object quite well visually, the tasks are usually quite dull and do not resemble the actual thing in any way, Keep left-click pressed to remove side pannel. While this genre has seen great popularity, there hasn’t been any popular programming/hacking simulator. Maybe that is in large because it is not easy to reduce programming to some simple tasks without making it boring.

Here comes Bitburner

Bitburner is an open-source hacking simulator, or as its creators call it, a cyberpunk-themed incremental game. It has been developed by hundreds of developers for the past 5 years, and it is now available on steam (for free). I accidentally came across this game a week ago while browsing the steam store, and to be honest, it has taken over my life. The game has an interesting story that seems very much inspired by multiple sci-fi franchises, but I will mostly focus on the technical aspects, so you can rest assured there are no story spoilers.

While it is a hacking simulator, it is not exactly a simulator. Its greatest distinction from the genre is that the code you write is not simulated, at all. It gives you a text editor where you write real code that runs on your machine and that you can edit to your liking. The game provides a mock terminal and a pseudo-code language that can be used, but also gives the player the option to write full-fledged javascript while using the provided js library. I think the fact that both these options are available is great, as both programming novices and experts alike can enjoy the game while not making it plain or hard.

The game has multiple components that you can explore pretty early on and each one brings money and experience. Initially you will run these tasks manually, to get an understanding of them, but eventually you will start developing scripts that automate everything, from performing hacks, to buying new servers, to expanding your decentralized network and so on.

Hacker

Hacking

Hacking is in my opinion the most interesting part. It does not involve any actual hacking, but it lets you choose a ficticious server and steal (hack()) an amount of money from it. When a server has too little money left or its security level is too high, you can also choose to grow() or weaken() it. This concept is pretty simple, but the task of automating it is wonderful as it introduces very interesting concepts from computer science in the most organic way possible.

In your journey to automate this task, you can complicate it as much as you like, and after you unlock Formulas.exe, which is a new set of functions you can use in your code, optimizing your programs can be a very challenging and fun task where you can plan actions to the millisecond to maximise revenue. Doing this will have you faced with many challenges that can broaden your understanding of computers. You will have to deal with task scheduling, memory management, coming up with your own solution to knapsacking your hacks on your servers, and automating everything.

Since it uses a prestige mechanic (which means that when applying augmentations to your character, you will basically lose all the progress besides your home server and the scripts you wrote) this also encourages you to write a kick-starting script that you can run to bring you back to speed after augmentations.

Idle

It is an idle game, after starting an automated task, it will take a while until it yields enough money and experience for you to progress in the story. This might put people off, but it suits the task of programming in a great manner. After you finish writing a script, you run it, you monitor it for a bit to see how it works, you fix it, as it is obviously broken, you run again, and then you sit there for a bit with a smug smile on your face, happy about your accomplishment. Then you move on with your life until coming back to it a few hours later or the next day.

Try it out regardless if you never wrote a line of code or if you are an expert.

As a non-programmer, this can help you learn a bit of coding and practice problem-solving in a very much gamified way. As a programmer, it can give you the opportunity to write code in a very fast and dirty way, and to deal with problems that you normally don’t think about too much.

You can find it for free on Steam

Bitburner


Written by Alex, student of things.
You can follow me on twitter.