finalgametech

May 17, 2026 · View on GitHub

Final Game Tech

Description

This repository contains several game/multimedia related libraries mostly written in C99/C17 or C++/11.

Core library is the Final Platform Layer (FPL) library that contains various demo applications showcasing its capabilities.

Libraries

NameDescriptionPlatformsLanguageLatest VersionStateSize ~
final_platform_layer.hSingle file platform abstraction libraryWin32/Linux/UnixC991.0.0Finished1500 KB
final_dynamic_opengl.hSingle file opengl loader libraryWin32/Linux/UnixC991.0.0Finished512 KB
final_game_box.hSingle file gameboy DMG/CGB emulatorIndependentC991.3.0Finished600 KB
final_memory.hSingle file heap memory handling libraryIndependentC991.0.1Finished24 KB
final_xml.hSingle file xml parser libraryIndependentC990.3.1-alphaFinished28 KB
final_tiletrace.hppSingle file tilemap contour tracing libraryIndependentC++/111.02Finished36 KB
  • All libraries written in C99/C17 are fully C++ compatible.
  • Few libraries are still in beta/alpha, even though they are finished.
  • Only fully implemented, documented and well tested libraries will leave the alpha/beta phase.

Folder Structure

.
├── README.md                       # This file
├── final_platform_layer.h          # Single-header-file platform abstraction library (C99)
├── final_dynamic_opengl.h          # Single-header-file OpenGL function loader (C99)
├── final_game_box.h                # Single-header-file DMG game boy emulator library (C99)
├── final_xml.h                     # Single-header-file simple XML parser library (C99)
├── final_memory.h                  # Single-header-file custom memory allocator (C99)
├── final_tiletrace.hpp             # Single-header-file contour tile tracing library (C++/11)
├── LICENSE.md                      # MIT License-file
├── CLAUDE.md                       # General overview of the repository for AI agents such as claude
├── assets/                         # Assets for the repo itself, like the logo
├── apps/                           # Converters and utility applications (mostly used internally)
├── demos/                          # Demo applications for all libraries (C99 or C++/11)
├── screenshots/                    # Screenshots of the demo applications 

Contributing

How to contribute

If you want to support any of this library in this repository, you can do this in the following way:

  • Compile and test the demos/libraries in several configurations and share your feedback (Platform / Architecture / Compiler / IDE)
  • Provide feedback by tickets (features, bugs, improvements, etc).
  • Provide new demos to the demos/ folder
  • Improve existing demos by pull requests
  • Be active in the community, ask questions, help others
  • Spread the word / Star the project

Code Contribution

You are invited to provide pull quests at any time - helping to improve the libraries and/or demos for me or for others.

However, untested, sloppy generated or poorly designed or broken code will not be accepted!

Code Quality Requirements

Code that you provide you must have a certain level of quality:

  • Compiles without any errors
  • Does not break existing libraries or demos
  • Follows the same code style and namings of types, functions, defines, etc.
  • Prevents collision of existing functions and types by using prefix and long names
  • Good readable documentations of all defines, types and functions
  • External library loading and handling supports runtime, static and dynamic linking
  • Uses as less memory as possible and focus on data-oriented structures
  • Uses existing libraries from root or demos/additions, whenever possible

Also respect the following rules:

  • Prefer fplMemory*Allocate() / fplMemory*Free() over malloc/free
  • Use final_memory.h, when you do lots of memory allocations
  • Use final_dynamic_opengl.h, when you need OpenGL functions
  • Use platform preprocessor guards for platform specific code
  • Prefer single translation units over multiple translation units
  • Prefer C99/C17 over C++/11

AI Usage

Since 2026, libraries and demos are extensively improved using local and premium AI tools. Every line of code that is/was generated or modified by AI is/was properly reviewed and tested by humans.

Positive examples are:

  • PulseAudio backend for final_platform_layer.h
  • PipeWire backend for final_platform_layer.h
  • Critical audio bugfixes in demos/additions/final_audio*.h
  • Fixing seek in demos/FPL_FFMpeg
  • Fixing major audio issues in final_game_box.h
  • Improving emulation processing in final_game_box.h
  • Game Boy Color support in final_game_box.h

It is allowed to provide AI generated code by pull requests, but those must have a certain level of quality (See section Code Contribution).

Details

You can find more details in the Final Game Tech.

License

All libraries in the root folder of this repository are open-source and use the MIT-License. Read LICENSE for more details.

Screenshots

FPL_AudioPlayer

Fluid Sandbox

FPL_Emulator

FPL_FFMpeg

FPL_Crackout

FPL_ImageViewer

FPL_ImGui

FPL_NBodySimulation

FPL_OpenGL

FPL_Vulkan

FPL_Raytracer

FPL_Software

FPL_Towadev

FTT_TileTracingDemo