Welcome back to another development update for the nCine, covering what has been accomplished in the last quarter of 2025 and the first half of 2026.
Compilation speed directly affects iteration time when developing an engine. Since nCine continues to grow, I thought it would be interesting to measure how long a full build takes today compared to 2018, when I wrote the first article, and 2022, when I wrote the second one.
Welcome back to another development update for the nCine, covering what has been accomplished in the first part of this year.
In this article, we’ll go over the progress of the nCine throughout 2024.
OpenAL EFX The biggest change this year has been support for the OpenAL EFX extension. You can now apply effects to any audio player, like reverb, echo, flanger, and more, and use low and high-pass filters.
Lately, the development rate of the nCine slowed down a bit. I think it is normal for a project that spans so many years, and developed by a single person, to see some oscillations. This is why this article covers such a long period, a period in which there have been maybe a few new features, but important ones.
I just got a new laptop, an Asus ROG Zephyrus G15 GA503RM (2022), and of course, I’m timing the nCine compilation to see how much time it will make me save. 😉 Should you be interested in the first compilation benchmark article, it is available here.
Yet another update coming after a very long time since the previous, apologies for that. Well, at least it comes packed with a lot of enhancements from the last months. 💪
After a very long time without an update, here comes a new one. It is filled with all the work done in the last six months. 💪
Quite some time has passed since the previous development update but I’m here again to talk about the latest nCine progress. By the way, in case you missed the latest article, the project has recently reached its tenth anniversary. 😉
A bit more than ten years have passed since that first commit.
The presence of a .hgignore file reveals that I was using Mercurial at the time, an easier transition to DCVS for someone like me used to Subversion.
If you follow the project on GitHub you might have noticed a big development slowdown during the summer. I blame it on a combination of excessive heat and fatigue that led to a general lack of motivation and perseverance. ☀️
I have spent nearly two months on a big task this spring: custom memory allocators. They can be useful in different scenarios to alleviate the performance cost of allocating and deallocating memory.
Today I upgraded my Arch Linux workstation with pacman as I usually do every day and a little surprise was waiting for me. After a long time in [testing], Mesa 20 came out of the [extra] repository, ready to be installed.
Welcome to another nCine development update! As usual, there are a lot of new things to cover.
ANGLE To extend the support to more devices and platforms I have ported the nCine to ANGLE. It was an easy task as I just needed to tell GLFW and SDL2 to use EGL and open an OpenGL ES 3.0 context on Windows.
A lot of work has been put into the project as usual during those last months of the year.
Plenty of new and important features have been added to the engine, many of them are related to extending the capabilities of sprite rendering.
The last two months of work on the nCine were mostly dedicated to the quality of life improvements for users.
Exciting news for this development update: a new supported platform! 🍾
Emscripten I remember playing with the idea of porting the nCine to Emscripten years ago. After all I had every requirement in place: I used OpenGL ES for Android, GLFW and SDL2 as input backends, OpenAL and Vorbis for audio, libpng for images and already supported a POSIX API.
I’m sure many of you have heard it already: the nCine source code has been released on GitHub!
This means that lately most of the time was dedicated to publication related tasks, for example updates to the site like the addition of a “why nCine?” page and a gallery.
It has been a month and a half of small but useful updates for the nCine.
LibPNG The PNG image loader has been modified to support more color types, by copying some code from the libpng example. It means that any nCine game is now able to properly load PNG images with palette or with gray-alpha channels and to expand or strip bit depths that are different than the standard 8 bits.
I have spent some very intense weeks this March to completely overhaul and refactor my CMake scripts. We are talking about more than two thousand lines of code! 😱