Skip to content


Folders and files

Last commit message
Last commit date

Latest commit


Repository files navigation

Sky Checkers

alt text


Sky Checkers is a multiplayer action based game. Knock off your enemies and be the last one standing!

Sky Checkers supports macOS, Windows, Linux, iOS, and tvOS. Stable downloads can be found on the releases page. For compiling the latest changes from source, please see INSTALL.

This game is based on an old N64 Kirby mini-game and was originally written during my high school years, but still keeps my interest ❤️.


Sky Checkers was one of my first programming projects when I was learning C and has been first released over a decade ago, longer than popular game engines (Unity, Unreal) have been mainstream. In recent years, it has received updates due to still tackling interesting problems.

This is a real-time 3-D video game written to push matrix transformations and buffers to multiple rendering backends -- Metal, Direct3D 11, OpenGL. It uses the preferred backend for the appropriate platform, which is aligned with how professional game engines operate today.

This game is now mostly written from "scratch" on most platforms, opting to use native system libraries for functionality such as relating to textures, audio, fonts, gamepads, touch, UI, and more. This gives full control of what code the game leverages; it can use present and future platform-specific features where available, and avoid any issues a major 3rd party library may abstract incorrectly. SDL libraries are used only on Linux.

Sky Checkers additionally supports playing online with friends over UDP in a client-server model. This posed many interesting challenges for smooth gameplay such as tagging packets, channeling real-time and important messages, minimizing data transferred, lag compensation of firing, client-side interpolation, and client-side prediction.

Other aspects expected in a game are present such as a tutorial, AI, and multiplayer mayhem 😁.


The source code (including OpenGL shaders) is licensed under the GPL version 3. In the unanticipated event contributions are made, I may need to extend the license. I plan to put some parts of the code under a more permissive license eventually.

The assets are licensed differently. I acquired an embedded app license for the goodfish font that only I can use. Sound assets except for main_menu.wav and dieing_stone.wav are freely distributed from Freesound and PacDV. The cracked texture tile effect is acquired from Pixabay. I acquired game controller mappings from SDL_GameControllerDB with some of my own alterations.

The main menu music is royalty free because it's mostly derived from a Garageband loop. The dieing_stone.wav effect I recorded and the whoosh.wav effect are under CC0 1.0.

The app icon images, this ReadMe, INSTALL, Changelog are licensed under CC BY-SA 3.0.

Metadata files for Linux (desktop entry, com.zgcoder.skycheckers.json, snapcraft.yaml, AppData file) are freely licensed under FSFAP.

The Texture assets (Data/Textures) were developed by a friend and I solely for this project, and are not freely licensed.