Commit Graph
9 Commits
Author SHA1 Message Date
branderson 762a8aede1 Merge pull request 'Per-player stream sessions with browser saves' (#2) from stream-sessions into java-streamer
Reviewed-on: branderson/flashpoint-ultimate-server#2
Reviewed-by: branderson <brad@branderson.io>
2026-10-11 02:42:25 -07:00
branderson 52e90ba164 Read the Flashpoint database with node:sqlite
better-sqlite3 has no prebuilt binary for the image's Node version and
node:24-slim can't compile it. The built-in module needs no native build.
2026-10-11 02:07:00 -07:00
branderson aadd6fe776 Let flashpoint-web ask whether a game can be streamed 2026-10-11 00:39:05 -07:00
branderson f5e9452191 Add session manager for per-player streams
Creates a streamer container per player on flashpoint-web's request, sized
to the game's applet, proxies its Selkies stream under /stream/<id>/, and
removes it when the player disconnects. Saves under /config/saves are
seeded from the browser at start and pushed back over server-sent events.
2026-10-11 00:37:44 -07:00
branderson 59d9ec5b4a Persist applet cookies to /config/saves
The JSObject stand-in kept cookies in memory, so saves were lost when the
game restarted. Write them to a file the session manager can sync, with the
policy granting only the agent jar access to that directory.
2026-10-11 00:33:10 -07:00
branderson 46ff37e7fb Strip appletviewer's menu bar and status line
A Java agent removes them when the viewer window opens, so the stream
shows only the applet. JSObject moves into the agent jar, which puts it on
the class path applets load from.
2026-10-11 00:22:16 -07:00
branderson ffd24cb667 Lock the stream to the game window's size
Following the browser's resolution left a small applet in the corner of a
large display and made the CPU encoder fall seconds behind.
2026-10-11 00:14:34 -07:00
branderson dca48bce51 Run applets that use LiveConnect or load images through the proxy
appletviewer has no netscape.javascript.JSObject, so applets that touch
JavaScript fail to load, and Java 8 denies applets the URLPermission they
need to fetch through an HTTP proxy. Add a JSObject stand-in with a working
document.cookie and a policy granting HTTP URL access.
2026-10-11 00:07:06 -07:00
branderson b0751fdbb1 Add Selkies streamer prototype for Java games
Runs a Flashpoint game natively in a container and streams it to the
browser. fp-launch follows the Linux launcher's sequence: start the game
server, mount the game's zip, and run startJava.sh through the proxy.
2026-10-10 23:36:13 -07:00