Preston Choate
← All projects

Space Shmup (Go + Raylib)

A shoot-em-up built in Go and Raylib to learn the language, with a live leaderboard API and site at leaderboards.prestonchoate.dev.

Go Raylib Game dev REST API

Overview

A shoot-em-up side project in Go using Raylib, part learning exercise and part nostalgia. Game development is what got me into programming; I never did it professionally, but I still like tinkering with gameplay and systems problems. This one also has a small leaderboard service so scores are not trapped on one machine.

Goals

  • Learn Go in a context more fun than tutorial exercises
  • Ship something playable end-to-end, not just a tech demo
  • Practice game loop, input, collision, and simple enemy patterns
  • Add a thin online layer (leaderboards) without over-engineering

Gameplay

Outline: describe the actual game.

  • Core loop (move, shoot, waves, lives, score)
  • Enemies / patterns implemented so far
  • Power-ups or mechanics if any
  • What “done enough to share” means for this project

Architecture

Outline:

  • Game binary: Raylib loop, rendering, physics/collision approach
  • Leaderboard API: endpoints, validation, how scores are submitted
  • leaderboards.prestonchoate.dev: how the site talks to the API
  • Deployment for API + static leaderboard UI

Tech stack

PieceChoice
GameGo + Raylib
LeaderboardGo API (shared module or separate service; TODO clarify)
HostingTODO: where game builds vs where API runs

Challenges and decisions

  • Go idioms coming from other languages
  • Raylib ergonomics vs other engines you have used
  • Preventing junk scores on the public leaderboard
  • Build/release story for a desktop game (platforms you target)

What’s next

  • Gameplay features you want next (bosses, levels, audio, etc.)
  • Leaderboard improvements (auth, anti-cheat, seasons)
  • Distribution: itch.io, binaries in GitHub releases, etc.

More Projects