Skip to content

Releases: DanielMuellerIR/exploids

Exploids v0.14.5

Choose a tag to compare

@DanielMuellerIR DanielMuellerIR released this 16 Jul 07:51

Exploids v0.14.5

Exploids v0.14.4

Choose a tag to compare

@DanielMuellerIR DanielMuellerIR released this 12 Jul 01:54

First signed & notarized release since v0.13.0 — this DMG bundles everything from v0.14.0 through
v0.14.4.

For players:

  • Fix: watching the title-screen demo no longer leaves a movement key "stuck" when you then start a
    game (the ship could keep rotating on its own).
  • Asteroid rendering is a little smoother, especially on lower-end hardware.

Everything else in this range is internal — a large refactor, a new automated test workflow (CI),
and build-portability fixes — with no effect on gameplay. Details below and in the entries for
v0.14.0–v0.14.3.

Under the hood (v0.14.4):

  • Build/CI: fixed Swift 6 concurrency errors that only surfaced on the stable toolchain
    (Swift 6.1 on the CI runner) and were hidden by newer local toolchains (6.3+, which infer the
    isolation by default). ReplayPlayer.advanceStep calls the MainActor-isolated
    GameScene.injectReplayInput, and the entire ExploidsMac CLI layer (Main, ReplayRenderer)
    drives a MainActor GameScene/SpriteKit — all three are now explicitly @MainActor, which builds
    on both toolchains. Caught by the freshly added CI on its very first run.

Exploids v0.13.0

Choose a tag to compare

@DanielMuellerIR DanielMuellerIR released this 07 Jul 19:12
  • Demo / attract mode on the title screen: after 30 s of no input (or on pressing D), an
    autopilot plays a full game on its own. When it dies it does not enter the high-score list,
    but the high-score screen is shown for 10 s, then the title screen for 15 s, then the next demo —
    looping. Any key hands control back to a human.
  • Four autopilot personas that play with distinct styles (cautious ↔ reckless, skilled ↔ sloppy)
    and each start at a fitting level: Ace (L4, the expert — reaches level 10 and can survive the
    full ~10 minutes), Cowboy (L6, offensive but clean), Rookie (L5, cautious but sloppy) and
    Kamikaze (L7, reckless — dies youngest but spectacularly). The autopilot uses a potential-field
    navigator (threats repel, shooters/power-ups weakly attract, look-ahead dodging) that keeps the
    ship weaving through the gaps and firing along its path; it also collects shields/extra-lives.

Exploids v0.12.0

Choose a tag to compare

@DanielMuellerIR DanielMuellerIR released this 25 Jun 13:37
  • Fixed-timestep simulation: the game loop now advances in fixed steps (1/120 s) driven by a
    time accumulator, decoupled from the display refresh rate, instead of integrating one variable
    step per frame. On 120 Hz this is effectively one step per frame as before; on other refresh
    rates the simulation stays consistent.
  • Because every step is the same length, a replay no longer needs the recorded per-frame dt
    sequence — it depends only on (seed + inputs). Replay format bumped to v3; older replays
    (v2, variable timestep) are rejected as incompatible.
  • The headless GIF renderer drives the simulation one fixed step at a time and picks a capture
    stride automatically so the GIF plays in real time (--stride still overrides).
  • Replays are now auto-saved to disk on every game over (not only high-score runs), under
    ~/Library/Application Support/Exploids/replays, so a good run can be turned into a GIF even if
    it didn't make the board. New CLI --render-last-replay --out <gif> renders the most recent one.
  • New CLI --reset-highscores clears the saved high-score list (when the board fills with
    unbeatable scores).
  • No gameplay-balance changes intended; this is an engine/feel change to be confirmed by playtest.

Exploids v0.11.1

Choose a tag to compare

@DanielMuellerIR DanielMuellerIR released this 25 Jun 11:45
  • Replay fix: the auto-fire setting is now recorded in a replay and restored on playback. Before
    this, a run played with auto-fire on would not reproduce (the replayed ship barely fired and died
    early). Replay format bumped to v2; pre-fix replays are rejected as incompatible.
  • Replay GIF renderer gained --from <frame>, --max-frames <n> and --auto-fire options, plus a
    --replay-verify diagnostic.
  • Note: faithful replay requires the exact binary that recorded the run — a rebuilt binary can drift
    (floating-point reproducibility is binary-specific). In-app replays and GIFs from the same
    installed build are reliable.

Exploids v0.6.1

Choose a tag to compare

@DanielMuellerIR DanielMuellerIR released this 19 Jun 23:00
  • Pixel font (Press Start 2P) for the EXPLOIDS / GAME OVER headings.
  • High-score name entry fix (first responder).
  • Reworked object glossary: every power-up listed individually, with a title strip.
  • Fixes: extra life with gravity wells, entzerrtes start-screen layout, "#" extra-life cheat (for testing).