Platforms

Six official targets, one game assembly. Each cell says how a capability was checked, so “runs on iOS” is never read as “runs on your iPhone”.

Played
A person played the games on real hardware of this kind.
Real hardware
Automated runs on a real machine of this kind (GPU, sound device).
CI / virtual
Automated runs on a hosted CI runner or in a container: no real GPU, a virtual display and sound server.
Emulator
Automated runs on the Android emulator (x86_64).
Simulator
Automated runs in Apple’s iOS simulator on a Mac. Not an iPhone.
Not checked
No evidence yet.

Windows x64

Runs on hardware

SDL 3 (default) · raylib · SDL software

Build
CI / virtualHosted Windows runner on engine changes; local builds
Headless tests
CI / virtualEngine and four games, every engine change
Rendering
Real hardware138 scripted captures; Direct3D 11, OpenGL and Vulkan identical; the four ZIP packages reproduce them
Input
PlayedKeyboard and one gamepad played with raylib; SDL driven by scripted input only
Audio
PlayedHeard with raylib; SDL’s device opens and plays (packages included)
Lifecycle
—Desktop windows are not suspended
Real device
PlayedWindows 11 PC with a GPU; hand play on SDL pending

Download: 64-bit (x64) package in release v0.2.0, checked by playing the downloaded file (install steps).

Linux x64

Checked, not yet played

SDL 3 (default) · raylib · SDL software

Build
CI / virtualUbuntu runner on every engine change
Headless tests
CI / virtualEngine and four games, every engine change
Rendering
CI / virtual138 captures on Mesa (software) under Xvfb; the package reproduces them on Ubuntu 22.04, Debian 12 and Fedora 41
Input
CI / virtualSystem keyboard through the X server (raylib); scripted input on SDL
Audio
CI / virtualVirtual PulseAudio: a played tone recorded and recognised (raylib); SDL’s device opens
Lifecycle
—Desktop windows are not suspended
Real device
Not checkedNo real GPU, Wayland session or person yet

Download: 64-bit (x86_64), glibc package in release v0.2.0, checked by playing the downloaded file (install steps).

macOS (Apple silicon)

Checked, not yet played

SDL 3 with Metal (default); raylib needs an OpenGL GPU

Build
CI / virtualHosted macOS 26 arm64 runner
Headless tests
CI / virtualHeadless tests on the hosted runner
Rendering
CI / virtual138 captures on SDL against a macOS reference (paravirtual GPU)
Input
Not checkedScripted input only; no system keyboard check
Audio
CI / virtualSDL’s device opens on the runner
Lifecycle
—Desktop windows are not suspended
Real device
Not checkedNo Mac with a person or a real GPU yet

Download: Apple silicon (arm64) package in release v0.2.0, checked by playing the downloaded file (install steps).

Android

Emulator only

SDL 3 (the Android host)

Build
CI / virtualAPKs for arm64-v8a and x86_64
Headless tests
—Game rules are tested on the desktop
Rendering
EmulatorAll four games, 138 captures (x86_64 emulator)
Input
EmulatorSystem keys and taps on the on-screen controls
Audio
EmulatorSDL’s device opens; not listened to
Lifecycle
EmulatorHome suspends the game, returning resumes it
Real device
Not checkedNo phone or tablet yet (arm64 not run)

Download: APK for arm64-v8a and x86_64 package in release v0.2.0, checked by playing the downloaded file (install steps).

iOS

Simulator only

SDL 3 with Metal (the iOS host)

Build
CI / virtualSimulator app on a hosted Mac
Headless tests
—Game rules are tested on the desktop
Rendering
SimulatorTwo games, 25 captures within the SDL reference
Input
Not checkedThe simulator cannot be sent touches by script
Audio
SimulatorSDL’s device opens
Lifecycle
SimulatorAnother app suspends the game; returning resumes it
Real device
Not checkedNo iPhone or iPad has run it

Installing on an iPhone needs Apple signing; a simulator build cannot run on a device

Browsers (WebAssembly)

Played in Chrome and Firefox

raylib compiled to WebAssembly

Build
CI / virtualPinned toolchain on a hosted runner
Headless tests
—Same game code as the desktop
Rendering
CI / virtual138 captures byte-identical to desktop raylib, Chrome and Firefox
Input
PlayedKeyboard (automated and by hand); one gamepad by hand in a Chromium browser
Audio
PlayedAfter the first click or key; stops in a hidden tab
Lifecycle
—Saves persist; no suspend
Real device
PlayedDesktop Chrome and Firefox; Safari and phones not validated

Plays on the demo pages; nothing to install

Evidence: PLATFORM-3 and PRODUCT-1 evaluations. Developer guide: Platforms.