Final Platform Layer 1.0.0
Finally after almost 10 years, FPL gots its first stable release v1.0.0 - including a full re-design of the official website.
This is a huge milestone for me and i am very proud of this project!
It started as a simple libGLUT replacement as single-header-file library, converged into a GLFW replacement and then exploded into a full-blown platform abstraction layer - inspired by Hand-Made-Hero and the handmade.network Community.
Version one has an insane amount of changes, improvements, cleanup's and tons of bugfixes.
In addition, i added more audio backends: WASAPI, PulseAudio, PipeWire, OSS. Also i refactored the entire input handling into its own input system that supports multiple backends, such as XLib XInput, DirectInput, Linux-Joystick etc.
But the most love got the Linux and Unix implementation, as i fully switched to Linux/CachyOS since Feb. 2026 (due to the madness of a company that i now really hate from the bottom of my heart). However, that particular OS will not be removed from FPL and i will continue to support it.
Additionally Unix-Support is not a stub anymore and everything in e.g. FreeBSD compiles and runs just fine.
FPL_NO_PLATFORM_INCLUDES and FPL_NO_RUNTIME_LINKING now properly works and does what the macro says: Either never including any platform/backend headers or require static-linked libraries. The default is still runtime linking and is the most preferable way to use FPL.
However, there are still stuff that is not implemented yet, like ARMv32 and ARMv64 support is very limited and Unix/BSD has no gamepad support yet.
Demos
There are tons of improvements and bugfixes in the FPL demos as well, but to keep this post shorter i only write about the major ones.
Game-Boy Emulator
We now have a new full blown game boy emulator as a demo, in which you can run drop your DMG or CGB game roms and play it, including sound. It even has sort of visual debugger to see the internals of the emulator.
FFMPEG
The FFMPEG demo does not suck anymore, as seeking now properly works and audio is not broken anymore.
Audio Player
FPL_Audio and my custom audio system got a ton of fixed and can now resample using SinC properly and do channel up/down mixing. In the previous version this sort of worked for a couple of configurations only. Now it works in every configuration ;-)
Vulkan / OpenGL
The Vulkan Rendering Demo now renders the same rotating triangle as the OpenGL demo, instead of render a blue window. In addition both demos renders its respective logo in the corner, just to see if texture mapping works :P
CMake / premake
I really hate build-systems, but CLion basically forced me to use CMake.
Therefore all demos uses CMake now and have a premake script to generate visual studio projects other makefiles on demand.
This makes building and running the demos very easy and is now consistent across the board.
Future Plans
FPL can now be treated as a finished library, but there are still a ton of stuff left to do:
- Unix/BSD gamepad support
- ARMv32/ARMv64 support (CPU name and feature detection)
- Finish the Presentation Demo
- Create video tutorials for FPL
- Finish up the demo games
- Add a platformer game demo
AI Usage
Lastly i need to talk about AI and to be fair, some stuff would not be possible without additional help - due to my lack of time or even lack of knowledge for particular fields.
Therefore, since 2026 i use premium and local LLM's to improve my programming workflow by:
- Find, explain and fix bugs
- Generate overviews
- Create security audits
- Find differences in a non-stupid way
- Fix my english in documentations
- Refactor code
- Define and implement features
For example, the pulse-audio and pipewire audio backend are good examples that AI can produce reasonable and efficient code that actually works.
But i use AI very carefully and introduced special workflows to not break code or let AI write bad code. Every line is validated by hand by me and i always let AI explain everything it has done.
Up to 2026 i was very skeptical about AI, but using premium models showed me that it can actually help a lot by finding hard bugs and even implement features in small/medium size code-bases.
FPL is now 1.5 MB in size and it is not a small code-base anymore.
As a matter of fact, any local LLM fails horribly doing anything useful in the FPL code base :-(
Out for now
Thats it, thanks for reading that huge post and i look forward to see more people use FPL and help making it better.
Bye,
Torsten (alias Finalspace)