I wanted to learn how to do frontend development, to compliment what I already know in the backend.
Therefore I wrote two projects: The game LunarLander (which has a lot of javascript going on) and the landing-page you are currently reading (to practice css).
I built everything for this project from scratch, so I could be sure I understand everything that is going on. That means that I wrote every line of html, css and javascript. I think that's cool.
The game is designed to be played by using barcode scanners. Print out barcodes, distribute them in your room and scan them to steer the spaceship.
This means that you have to physically move around, which hopefully will improve the sense of urgency when your ship is about to crash.
In case you don't have a barcode scanner at hand you can also enter the command sequences by keyboard Did you know that a computer doesn't distinguish between a barcode scanner and a keyboard?
This was inspired by this video where Jonas Tyroller and Blackthornprod build a coop game on this premise.
The code and it's documentation both live in the same document. They are deeply interwoven, much more so then what comments and docstrings would allow. This makes it easier to keep them both in sync and make the writing more specific.
On release the code is extracted and pushed to the server while the documentation is published separatly. Both of them are linked above. This plays great with modern concepts of software development like CI/CD.
This technique was pioneered in 1984 by Donald Knuth and named literate programming.
All the project's files are linked above. It is licensed under GPLv3 and I hope you will find them a usefull resource.
At every point in time (especially when playing) everything that happens in your browser will stay on the client side. There are no cookies and no cookie banners, no phoning home, no sideloading, no third parties involved and no userdata is collected at all.