Skip to content

Steam: Electron spike on its own branch #158

Open

Description

@ChefControl

Part of #142 · Milestone 3: Playable desktop build (Windows) · plan item 3.0

Size: M · Owner-only step: no

What

A throwaway test before building for real (Q13): the web build inside Electron 45 (Chromium 156, past the Chromium 152 audio-loop bug), on Windows and the Steam Deck under Proton.

Decision / recommendation

Measure High and Low frame rates, check audio, saves and the Steam overlay with steamworks.js. No changes to the game itself; its own branch.

Done when

  • Numbers for High/Low on a weak Windows laptop and the Deck
  • Overlay tried
  • A short write-up on the epic

Sources

Plan page (owner only): https://claude.ai/artifact/Cf5SWQHzAKTy2uHCC1UQgw

Activity

  1. ChefControl commented on Oct 26, 2026

    @ChefControl
    OwnerAuthor

    Spike started on branch claude/steam-electron-spike (7338d5f), folder spike/electron/ (see its README). The game itself is unchanged.

    Works so far (Mac, M4, 1280x800): the demo build runs in Electron 45.0.0 / Chromium 156, served from an app:// origin so module scripts, fetch and localStorage behave as on the web. No page errors. Low and High hold 60 fps in stage 1, stage 2 and a fully built stage 3 cellar. The M4 is far above the targets, so this only proves the wrapper works.

    Packaged for Windows: npm run package-win makes a 160 MB zip with run-bench.bat (all scenes, results on the Desktop) and run-steam.bat (Steamworks as test app 480, Shift+Tab for the overlay). steamworks-ffi-node needs the Windows build of koffi installed alongside (@koromix/koffi-win32-x64) when packaging from a Mac.

    Still to do:

    • Bench on a weak Windows laptop
    • Bench on the Steam Deck under Proton
    • Steamworks init and the overlay on Windows (needs Valve's SDK from the owner's account, never committed)
    • Listen for audio and check offline behaviour (fonts still come from Google Fonts, Steam: bundle the fonts and an emoji set with the game #148)
  2. ChefControl commented on Oct 27, 2026

    @ChefControl
    OwnerAuthor

    Steam Deck results (Windows build through Proton, 1280x800, Electron 45 / Chromium 156, AMD Van Gogh via ANGLE D3D11):

    Scene Low High
    stage1 60 (lowest 55) 60 (59)
    stage2 60 (53) 60 (60)
    cellar 60 (60) 60 (60)
    cellar-full 60 (55) 50 (42)

    Median fps over 30 s after 10 s to settle. The only miss is stage 3 with every boss beaten and everything bought on High (1413 draw calls, 585k triangles), about 50 fps. Low holds 60 there, so the Deck should default to Low (or get a lighter High for the late cellar).

    Still to test: Windows PC numbers, sound, the Steam overlay (run-steam.bat), offline start.

    Raw report
    Floe Market Electron spike: Electron 45.0.0, Chromium 156.0.8078.48, 1280x800, win32
    GPU: ANGLE (AMD, AMD VANGOGH (0x0000163F) Direct3D11 vs_5_0 ps_5_0, D3D11)
    stage1 low: median 60 fps, 5th percentile 57, min 55, max 60 | 60 fps · 593 draw calls · 126k triangles · low
    stage1 high: median 60 fps, 5th percentile 60, min 59, max 60 | 60 fps · 702 draw calls · 284k triangles · high
    GPU: ANGLE (AMD, AMD VANGOGH (0x0000163F) Direct3D11 vs_5_0 ps_5_0, D3D11)
    stage2 low: median 60 fps, 5th percentile 58, min 53, max 60 | 60 fps · 1556 draw calls · 285k triangles · low
    stage2 high: median 60 fps, 5th percentile 60, min 60, max 60 | 60 fps · 1499 draw calls · 726k triangles · high
    GPU: ANGLE (AMD, AMD VANGOGH (0x0000163F) Direct3D11 vs_5_0 ps_5_0, D3D11)
    cellar low: median 60 fps, 5th percentile 60, min 60, max 60 | 60 fps · 407 draw calls · 191k triangles · low
    cellar high: median 60 fps, 5th percentile 60, min 60, max 60 | 60 fps · 430 draw calls · 197k triangles · high
    GPU: ANGLE (AMD, AMD VANGOGH (0x0000163F) Direct3D11 vs_5_0 ps_5_0, D3D11)
    cellar-full low: median 60 fps, 5th percentile 57, min 55, max 60 | 55 fps · 928 draw calls · 514k triangles · low
    cellar-full high: median 50 fps, 5th percentile 47, min 42, max 53 | 51 fps · 1413 draw calls · 585k triangles · high
    
  3. ChefControl commented on Oct 27, 2026

    @ChefControl
    OwnerAuthor

    Steam Deck: native Linux build vs Proton (same Deck, Game Mode, 1280x800, Electron 45 / Chromium 156). Native renders through ANGLE on OpenGL 4.6 (radeonsi); Proton goes Direct3D 11 → DXVK → Vulkan.

    Scene Proton Low Native Low Proton High Native High
    stage1 60 (55) 60 (44, one hitch) 60 (59) 60 (60)
    stage2 60 (53) 60 (56) 60 (60) 60 (60)
    cellar 60 (60) 60 (57) 60 (60) 60 (60)
    cellar-full 60 (55) 60 (58) 50 (42) 60 (58)

    Median fps, lowest second in brackets. Native holds 60 everywhere, High included: about +10 fps in the heaviest scene.

    Cost of shipping native Linux too: a second build to package and test, and Electron's Chrome sandbox (the spike runs with --no-sandbox; the real wrapper #159 has to settle it, e.g. under Steam's Linux runtime). Open for the owner: keep plan 11a (Windows build on the Deck through Proton) or add a native Linux depot for the Deck.

    Raw report (native)
    Floe Market Electron spike: Electron 45.0.0, Chromium 156.0.8078.48, 1280x800, linux
    GPU: ANGLE (AMD, AMD Custom GPU 0405 (radeonsi vangogh LLVM 18.1.8), OpenGL 4.6)
    stage1 low: median 60 fps, 5th percentile 60, min 44, max 60 | 60 fps · 553 draw calls · 129k triangles · low
    stage1 high: median 60 fps, 5th percentile 60, min 60, max 60 | 60 fps · 523 draw calls · 224k triangles · high
    GPU: ANGLE (AMD, AMD Custom GPU 0405 (radeonsi vangogh LLVM 18.1.8), OpenGL 4.6)
    stage2 low: median 60 fps, 5th percentile 59, min 56, max 60 | 60 fps · 1535 draw calls · 286k triangles · low
    stage2 high: median 60 fps, 5th percentile 60, min 60, max 60 | 60 fps · 1469 draw calls · 699k triangles · high
    GPU: ANGLE (AMD, AMD Custom GPU 0405 (radeonsi vangogh LLVM 18.1.8), OpenGL 4.6)
    cellar low: median 60 fps, 5th percentile 60, min 57, max 60 | 60 fps · 402 draw calls · 190k triangles · low
    cellar high: median 60 fps, 5th percentile 60, min 60, max 60 | 60 fps · 426 draw calls · 196k triangles · high
    GPU: ANGLE (AMD, AMD Custom GPU 0405 (radeonsi vangogh LLVM 18.1.8), OpenGL 4.6)
    cellar-full low: median 60 fps, 5th percentile 59, min 58, max 61 | 59 fps · 865 draw calls · 496k triangles · low
    cellar-full high: median 60 fps, 5th percentile 59, min 58, max 60 | 60 fps · 1359 draw calls · 565k triangles · high
    
  4. ChefControl commented on Oct 27, 2026

    @ChefControl
    OwnerAuthor

    Owner decision (2026-10-27): ship a native Linux build for the Deck as well as the Windows one. Follow-up work is in #202; the epic (#142) and #153, #159, #164, #166, #168, #173, #181 are updated.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    needs-triageMaintainer needs to evaluate this issuesteam-readinessGetting Floe Market onto Steam

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions