awkravchuk, So, yesterday my buddy and I spent the whole day being creative and, lo and behold, I released a game for the #LispGameJam in the dead of night. Introducing Thoughtbound: https://awkravchuk.itch.io/thoughtbound
Now I've caught up on some sleep and ready to provide a preliminary postmortem.
- The Entity-Component-System architecture is awesome! 🔥 You can easily add new functionality to the game without breaking what already exists.
- The stock map rendering using CLOS in the
cl-tiled
library is painfully slow for any practical purposes.- Although it's not recommended on various internet forums, it turns out that storing each tile of the map as a separate entity is a perfectly viable approach. By comparison, rendering with
cl-tiled
consumes around 70% of the CPU (mind you, on a 12-core Ryzen), whereas rendering the same map using ECS with entity per tile only takes 5-6%.- Although my implementation of ECS is currently naïve and memory-intensive, it's not a big deal in a real project. The running game creates about a thousand game objects with 14 different components, but it only consumes around 200MB of memory, which is insignificant by modern standards.
- The game has a fairly serious narrative aspect, and it even features a storyline with post-modernist undertones, which is atypical for my previous projects 😅
- Implementing character collisions with obstacles is tough; I still haven't perfected them completely 🥲
- Dealing with the
Nuklear
UI library is quite challenging. Just one wrong move, and you end up in the LDB, and in #Emacs, it's not immediately obvious because the game window just stops updating.- Generative artificial neural networks are a fantastic asset in projects like this, especially if English is not your native language and you can't draw 🤣 A little inside info: my imagination is so lacking that I even used ChatGPT to suggest the project name, haha!
- According to
cloc
, the entire game code consists of 715 lines, which once again confirms that #CommonLisp is one of the most powerful languages in the world 🤗- I don't mean to brag, but it seems that our entry boasts the greatest amount of content among the other jam submissions 😊 However, there are undoubtedly some extremely interesting projects from a technical point of view.
- I solemnly say to you, coffee is the devil's drink. At some point over the weekend, it felt like I had permanently lost the ability to fall asleep 😳
- It's much more fun to game jam as a duo :)