summaryrefslogtreecommitdiff
path: root/old_stuff/src/content/blogs/making-a-game-in-3-days.mdx
diff options
context:
space:
mode:
authorKyren223 <contact@kyren.codes>2026-10-06 20:46:31 +0300
committerKyren223 <contact@kyren.codes>2026-10-06 20:46:31 +0300
commitba1be9573ef20d6424ae987257a1c727c47d4b53 (patch)
treee59ef56f19142215070d0516a9b3a110d15557b6 /old_stuff/src/content/blogs/making-a-game-in-3-days.mdx
parentea056b6e080669ba4b6f16c2757b4e2e88ea0553 (diff)
Initial setup for website rewrite
Diffstat (limited to 'old_stuff/src/content/blogs/making-a-game-in-3-days.mdx')
-rw-r--r--old_stuff/src/content/blogs/making-a-game-in-3-days.mdx78
1 files changed, 78 insertions, 0 deletions
diff --git a/old_stuff/src/content/blogs/making-a-game-in-3-days.mdx b/old_stuff/src/content/blogs/making-a-game-in-3-days.mdx
new file mode 100644
index 0000000..47b0949
--- /dev/null
+++ b/old_stuff/src/content/blogs/making-a-game-in-3-days.mdx
@@ -0,0 +1,78 @@
+---
+title: "Making a game in 3 days"
+description: How we built a game in zig for the boot.dev hackathon
+date: 2025-07-28
+---
+
+This blog post is about my experience participating in the boot.dev 2025 hackathon.
+
+## The team
+
+- Kyren223 (me) - discord kyren223
+- GottZ - website https://contact.gottz.de/
+- Nuclear Pasta - discord jacob_v_thaumiel
+
+## The idea
+
+Initially we wanted to make a programming language REPL, but a REPL is not very
+visual, and we also realized that maybe making an entire language in 3 days
+isn't very realistic, so instead we decided to go for an even more difficult
+idea, making an entire game, in 3 days...
+
+## CPU vs AI
+
+We knew we wanted to make something coding-related, we thought about including
+a programming language in the game, and that led us to an idea about CPU instructions.
+This idea evolved into a tower defense game, where the CPUs are towers defending
+against pesky bugs like null pointer dereferences and infinite loops.
+
+For the language, we chose Zig, for the following reasons:
+
+- Me and nuc are already familiar with it (and really like it)
+- Total control over memory (manual memory management)
+- Blazingly fast
+- Great interopability with C (for GottZ)
+- Simple and C-like
+- Modern (optionals, tagged unions, functions on structs, etc)
+
+For the game library, we decided to go with [raylib-zig](https://github.com/Not-Nik/raylib-zig),
+the [raylib](https://github.com/raysan5/raylib) bindings for Zig.
+
+We did so because raylib is an extremely simple to use bare bones library
+to handle things usch as player input and graphics.
+
+## Difficulties
+
+To avoid git conflicts on a fresh project, we decided to use [Zed](https://zed.dev/)'s collaborative features
+to write code as if it was a google doc.
+
+This worked for a while but the Zig LSP didn't work well and it was really hard
+to test when only 1 person can build the project.
+
+Because of this on the 2nd day once we had more "surface area" we decided to
+go back into commit-push and pull workflow so each of us can use our favorite
+editor and run the project locally.
+
+By the end of the 2nd day the project was mostly complete, we spent the rest of
+the day adding polish like fancy game over and victory screens, statistics,
+making the readme, fixing bugs etc.
+
+## Finally
+
+After 3 days of hard non-stop coding, we actually got a working game.
+It consists of 3 levels and even with very basic mechanics it's already fun!
+
+> Nuclear Pasta
+> I feel like I'm playing Bloons
+
+So what are you waiting for? go give the game a try!
+
+[https://github.com/The-Memory-Managers/cpu-vs-ai](https://github.com/The-Memory-Managers/cpu-vs-ai)
+
+Don't forget to star the repo!
+
+Not in the mood to play? watch a demo playthrough [here](https://youtu.be/_clLDGNlef0).
+
+This is just a prototype, we plan on (eventually TM) making a full game out of it, so stay tuned!
+
+As always if you have questions or want to chat, feel free to contact me on discord at Kyren223 or email me at `contact at kyren.codes`.