Ryan Fleury
2 months, 3 weeks ago
Hi everyone!

I apologize for the extended period of silence. I hope everyone is staying safe and healthy. I've gathered a number of very exciting announcements!

HMN Lisp Jam

Recently, on the Handmade Network Discord, we've been having some discussions about metaprogramming and using code as data. It should come to no surprise to those familiar with the topic that Lisp has come up. Lisp offers tools for this idea to a much stronger degree than, say, C. Treating code like ordinary data is an immensely powerful technique that is helpful even when doing C programming, and allows one ... Read More →


16 hours, 15 minutes ago
Since submitting the project to the network, I've updated the library from version 1.0 to 1.2, which includes the following improvements:
- I simplified the API by removing the `upsideDown` boolean parameter. Now, to flip the image, you just pass in a negative pitch.
- You can now implement custom memory and file output by defining some macros.
- The library got ~40% faster on my test corpus, bringing it to around 500 MB/s average, 300 MB/s worst-case on my laptop.
- The maximum bit depth was increased from 15 to 16.
- The code now compiles (in C++ mode) ... Read More →


Riccardo Caprari
3 days ago
welcome to the second in a series of articles where I talk about some noteworthy technical problems I encountered during the development of my video game Syzygy. In this part, we are going to address how sprites are rendered and some interesting consequences that arise from the method used.

Remember that our initial goal was to have every element in the game reflect the change in shape and we put quite some effort into animating the game map. A really simple idea comes to mind: maps are made by square tiles and sprites are made by square pixels; therefore, ... Read More →


6 days, 15 hours ago
An important part of testing the usability and showing that it's not just a toy project is to actually create a game using the library. One will also find more bugs when starting on a new project because most of the code in big projects end up working with abstractions that rarely touch the library directly.

By not having to store this in the git repository, I can add things that would take way too much space for someone just wanting the library for basic 2D applications. The version control system can be kept locally and expand with old history ... Read More →