HackerOS Games

The native game launcher bundled with every edition of HackerOS. One interface for launching, configuring and tracking all HackerOS-native games.

🎮
5 Games
Curated library of HackerOS-native titles across multiple genres.
Playtime Tracking
Steam-style session tracking persisted to disk via Rust backend.
Per-Game Settings
Fullscreen, resolution and volume flags passed on launch.
🧩
Addons
Expansion content store — coming in a future update.

Built With

Tauri 2
React 18
Rust
TypeScript
Note: HackerOS Games is pre-installed on all HackerOS editions. No separate installation is required.

Launcher Interface

The launcher is divided into four sections accessible from the top navigation bar.

Navigation

TabDescription
LibraryBrowse and launch your game library. Shows playtime stats per game.
AddonsExpansion content for installed games (coming soon).
SettingsPer-game launch configuration: fullscreen, resolution, volume.
AboutLauncher version info and technology stack.

Window Controls

The custom title bar provides three window controls:

  • Minimize to taskbar
  • Toggle maximize / restore
  • Close the launcher

The title bar area can be dragged to move the window. Navigation tabs and window controls are excluded from the drag region.

Library View

The Library tab shows a sidebar list of all games on the left, and a detail panel on the right. Click any game in the sidebar to view its details, playtime stats and launch button.

Games marked NOT INSTALLED could not be found at their expected path in /usr/share/HackerOS/Scripts/HackerOS-Games/. Reinstall the relevant HackerOS game package to resolve this.

Playtime Tracking

HackerOS Games records how long you have played each game, similar to Steam's playtime feature.

How It Works

  1. When you click Launch Game, a session timer starts in the launcher frontend.
  2. Every 15 seconds, elapsed time is flushed to the Rust backend via a Tauri IPC call (record_playtime).
  3. The backend appends the delta to a persistent JSON file at ~/.hackeros-games/playtime.json.
  4. An additional flush occurs when the launcher window loses focus or is closed.

Data Stored

FieldTypeDescription
game_idstringInternal game identifier
total_secondsu64Cumulative play time in seconds
last_playedu64Unix timestamp of last session
sessionsu32Number of times launched

Resetting Playtime

To reset playtime data for all games, delete the file:

rm ~/.hackeros-games/playtime.json

Settings

The Settings tab allows per-game launch configuration. Select a game from the left sidebar, adjust options and click Save.

Available Options

OptionValuesDescription
Fullscreen Off / On Passes --fullscreen flag when launching the game.
Resolution 1280×720 to 3840×2160 Target resolution. Support depends on each game's own implementation.
Volume 0% – 100% Master volume level. Passed as metadata; game must support it.
Settings are saved to ~/.hackeros-games/settings.json and applied on the next game launch. Not all games honour every flag.

Reset to Defaults

Click the Reset button on any game's settings panel, or delete the settings file:

rm ~/.hackeros-games/settings.json

Addons

The Addons section is reserved for expansion content that extends HackerOS games with new levels, features or assets.

Coming Soon. The Addons store and download infrastructure are under development and will be available in a future HackerOS Games update.

Planned Addons

AddonTarget GameStatus
Extended WavesStarblasterIn Dev
Campaign ModeBark SquadronIn Dev
World 2Bit JumpIn Dev
2027 Season PackThe RacerIn Dev

The Racer

Genre Management / Simulation
Engine Rust + macroquad
Version 1.0.0

A motorsport management simulator where you build a racing team from the ground up and compete across five major racing series.

Racing Series

SeriesRoundsHighlights
Formula 1 202624Full 2026 calendar, hybrid power units, pit stops
IndyCar17Oval + road courses, high speed, Indy 500
Formula E16Electric, no pit stops, attack mode strategy
WEC8Endurance racing, Le Mans, multi-hour stints
GT312Production-based cars, pro-am grid

Game Mechanics

Drivers

Hire and manage two drivers with individual stats: Pace, Consistency, Wet Skill, Tire Management, Experience and Morale.

Car Development

Invest in R&D projects across five areas: Chassis, Engine, Reliability, Tire Degradation and Pit Speed. Each takes several races to complete.

Pit Strategy

Choose tire compound (Soft/Medium/Hard/Inter/Wet) and pit lap for each driver. Wet conditions make compound choice critical.

Track Map

Visual map of every circuit with accurate outlines. Shows S/F line, pit entry, and post-race results per round.

Navigation

TabFunction
DashboardSeason overview, next race info, recent results
RosterDriver stats, contracts, morale
Car DevR&D project management, car stats
StandingsFull constructor standings with points bar
Track MapCircuit selector with SVG track outlines
Next RaceOpens race weekend: practice, qualifying, strategy, race

Save / Load

Progress is auto-saved after each race to the-racer-save.json in the working directory. Use Continue from the main menu to resume.

Cosmonaut

Genre Strategy / Exploration
Engine Odin + Raylib
Version 0.1.0 Alpha
Coming Soon

Manage a space agency from the dawn of the Space Race to interplanetary exploration. Inspired by the golden age of NASA.

Starting Eras

EraYearBudgetDescription
Space Race1957$300MHumble beginnings with Vanguard and Atlas rockets
Apollo Era1960$500MLunar ambition, improved technology
Shuttle Era1975$800MReusability focus, larger budgets
Modern Era1995$1200MAdvanced technology, commercial partnerships

Mission Types

Orbital Test
Satellite Network
Crewed Orbit
Lunar Flyby
Lunar Orbit
Lunar Landing
Mars Probe
Mars Orbiter
Mars Surface
Asteroid Probe
Space Station
Deep Space

Screens

ScreenDescription
ControlMission Control dashboard with active missions and event log
RocketsFleet overview and design lab for new vehicles
CrewAstronaut corps — stats, status, recruitment
MissionsMission manifest with filters and flight log per mission
ResearchR&D projects across 7 technology areas
Star MapInteractive Solar System map with exploration status
BaseFacility upgrades: Launch Pads, VAB, Tracking, Lab, Habitat

Controls

KeyAction
SpaceAdvance one month (when on Dashboard)
EscReturn to previous screen / Dashboard
MouseAll navigation and interaction

Starblaster

Genre Bullet Hell / Shooter
Engine Rust + macroquad
Version 0.6.0

A top-down bullet hell shooter with dynamic difficulty, graze mechanics, combo multipliers and a full save/load system.

Mechanics

  • Graze System — flying close to enemy bullets without being hit awards score and charges your Ultimate.
  • Combo Multiplier — consecutive kills increase your score multiplier. Missing or taking a hit resets it.
  • Heat System — sustained fire overheats your weapons, requiring a cooldown period.
  • Ultimate Ability — screen-clearing attack charged by combat actions.
  • Dynamic Difficulty — the Director AI adjusts enemy spawn rates based on your accuracy and health.

Enemy Types

TypeBehaviour
BasicSlow linear movement, easy to dodge
FastHigh speed, erratic movement
TankHigh HP, absorbs many hits
ShooterHovers and fires aimed bursts at the player
KamikazeCharges directly at the player on proximity
AsteroidFast-falling debris, nearly indestructible

Controls

KeyAction
↑↓←→Move ship
SpaceFire weapons
L-ShiftActivate Ultimate (when charged)
PPause game
S (paused)Save and exit to menu
L (menu)Load saved game

Bark Squadron

Genre Action / Flight
Engine TypeScript + React + Tauri
Version 0.6.0

Physics-based 2D dogfighting game with realistic aerodynamics — gravity, drag, stall speed, afterburners and water interactions.

Physics Model

  • Gravity & Drag — the aircraft is subject to gravity and air resistance at all times.
  • Stall Speed — flying too slowly causes the nose to drop and the aircraft to lose control.
  • Afterburner — thrust boost with visible flame and particle exhaust.
  • Water Skimming — low-altitude passes create wake mist and spray effects.
  • Camera Look-ahead — the camera smoothly leads the aircraft based on velocity direction.

Enemy Types

TypeColourDescription
GruntGreyStandard enemy, moderate speed, tracks player directly
AceBlackHigh speed, predictive AI — leads the player position
BomberGreenVery high HP, slow but heavily armed

Controls

KeyAction
↑ / WAfterburner thrust
← / ARotate left
→ / DRotate right
SpaceFire cannons
EscPause / unpause

Settings

  • Difficulty — Easy, Normal, Hard (adjusts enemy count and damage)
  • Sensitivity — Rotation speed multiplier (0.5 to 2.0)
  • Particles — Toggle visual effects for performance
  • High Quality — Water reflections and heat distortion effects

Bit Jump

Genre Platformer
Engine Lua + LÖVE2D
Version 0.6.0

A Geometry Dash-inspired precision platformer across 8 hand-crafted levels featuring moving platforms, hazards, power-ups and a final boss.

Bit Jump requires LÖVE2D to be installed. On HackerOS it is launched automatically via love /path/to/bit-jump.love.

Game Modes

ModeDescription
NormalComplete 8 levels in sequence. 3 lives.
Time AttackRace through levels within a time limit that grows per level.
EndlessLoop through all levels with increasing auto-speed. Score attack.
PracticeUnlimited lives. Learn level layouts without pressure.

Power-Ups

Power-UpEffect
Invincibility5 seconds of immunity to all hazards and enemies
Double JumpGrants one additional mid-air jump
ShieldAbsorbs one hit from any hazard
Speed Boost5 seconds of increased auto-run speed

Hacking Ability

Press H to activate a hack that disables all nearby enemies for 10 seconds. 10-second cooldown. Unlocks the Hacker achievement on first use.

Achievements

AchievementCondition
HackerUse the hack ability for the first time
Data CollectorCollect all data orbs in a single level
Endless RunnerComplete a loop in Endless mode
Game WinnerComplete all 8 levels
Perfect RunReach the maximum score multiplier (x5)
Speed DemonCollect a Speed Boost power-up

Architecture

Launcher Stack

HackerOS Games Launcher ├── Frontend (React 18 + TypeScript) │ ├── App.tsx — root, window controls, nav, playtime tracker │ ├── components/ │ │ ├── GamesSection.tsx — library sidebar + detail panel │ │ ├── SettingsSection.tsx │ │ ├── AddonsSection.tsx │ │ └── ParticlesBackground.tsx │ ├── constants.ts — game configs │ └── types.ts — shared TypeScript types │ └── Backend (Rust + Tauri 2) └── src/main.rs ├── check_game_exists — verify binary at expected path ├── launch_game — spawn process + record session ├── record_playtime — append elapsed seconds ├── get_all_playtime — read current stats ├── save_game_settings — persist per-game config └── get_all_game_settings

IPC Commands

CommandArgumentsReturns
check_game_existsgame_id: Stringbool
launch_gamegame_id: StringResult<bool>
record_playtimegame_id, secondsResult<()>
get_all_playtimeHashMap<String, GamePlaytime>
save_game_settingsgame_id, settingsResult<()>
get_all_game_settingsHashMap<String, GameSettings>

File Paths

Game Binaries

GamePath
Starblaster/usr/share/HackerOS/Scripts/HackerOS-Games/starblaster
Bit Jump/usr/share/HackerOS/Scripts/HackerOS-Games/bit-jump.love
The Racer/usr/share/HackerOS/Scripts/HackerOS-Games/the-racer
Bark Squadron/usr/share/HackerOS/Scripts/HackerOS-Games/bark-squadron.AppImage
Cosmonaut/usr/share/HackerOS/Scripts/HackerOS-Games/cosmonaut

Data Files

FileContents
~/.hackeros-games/playtime.jsonPlaytime data for all games
~/.hackeros-games/settings.jsonPer-game launch settings
./the-racer-save.jsonThe Racer season save (working dir)
./cosmonaut_save.jsonCosmonaut agency save (working dir)

Launcher Assets

~/HackerOS-Games/app/ ├── images/ │ ├── starblaster.png │ ├── bit-jump.png │ ├── the-racer.png │ ├── bark-squadron.png │ └── cosmonaut.png └── src-tauri/ └── capabilities/ └── default.json — Tauri 2 permission grants

Troubleshooting

Game shows "NOT INSTALLED"

The launcher cannot find the game binary at its expected path. Verify the file exists:

ls /usr/share/HackerOS/Scripts/HackerOS-Games/

If missing, reinstall the relevant HackerOS game package.

Window controls don't work (minimize / maximize / close)

Ensure the Tauri capabilities file grants window permissions:

cat ~/HackerOS-Games/app/src-tauri/capabilities/default.json

It must include core:window:allow-minimize, core:window:allow-toggle-maximize and core:window:allow-close.

Playtime not updating

Playtime syncs to disk every 15 seconds and on window blur/close. If you force-kill the launcher, the last 15s may not be saved. Check:

cat ~/.hackeros-games/playtime.json
Bit Jump won't launch

Bit Jump requires LÖVE2D. Install it:

sudo apt install love
Bark Squadron AppImage won't launch

The launcher auto-sets executable permissions on AppImages. If it still fails:

chmod +x /usr/share/HackerOS/Scripts/HackerOS-Games/bark-squadron.AppImage
Build errors on npm run tauri build

Ensure all Tauri 2 dependencies are installed:

npm install @tauri-apps/api@^2 @tauri-apps/plugin-shell@^2 npm install -D @tauri-apps/cli@^2