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.
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