Proposal: OS interface library (Os.*) — args, env, known dirs, exit, platform (Go-inspired, game-scoped) #21
Labels
No labels
area:ci
area:docs
area:input
area:net
area:rendering
area:repo
area:stdlib
area:tooling
area:types
cleanup
dx
priority:high
priority:low
priority:medium
proposal
status:in-progress
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: workshopsoft/ludic#21
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
An OS interface library, Go-flavored, for the environment around the game:
command-line args, environment variables, standard streams, process exit codes,
working/known directories, and a few process/host facts. Rounds out the bare
Sys.*/arg/getenv/exitbuiltins into one coherent namespace.Why it matters for game devs (modestly)
Mostly relevant to tools, launchers, and dev workflows rather than the game
itself — hence low priority:
bin/xrunner style).--fullscreen,--level 3,--seed 42.LUDIC_ASSETS=/path, debug toggles.Proposed API (illustrative)
args,env/set_env,exit,platform/arch, standard streams,known directories (
save_dir,config_dir,cache_dir,temp_dir),maybe
now-adjacent host facts.Considerations
macOS/Windows/Linux. On wasm, most of this is stubbed/virtual — document the
reduced surface per target.
os— no process spawning, signals, or user/permission APIs in v1 unless a concrete
game/tool need appears.
simulation.
Scope / acceptance
Osnamespace: args, env, exit, platform/arch, std streams, known dirs.Related: Filesystem & IO (paths/ops), Time, Logging, existing Sys.* builtins.