From 45dac473fd6c28d321cd4edc5e4ef963f1414a9f Mon Sep 17 00:00:00 2001 From: Zsolt Tasnadi Date: Sat, 29 Aug 2026 19:16:40 +0200 Subject: [PATCH] game skeleton --- .gitignore | 8 +- .woodpecker.yaml | 2 + LICENSE.md | 8 ++ Makefile | 91 +++++++++++++++++++ README.md | 36 +++++++- go.mod | 18 ++-- go.sum | 22 +++-- internal/boot/boot.go | 10 +- internal/boot/boot_test.go | 6 +- internal/content/asset/alley_background.go | 2 +- internal/content/asset/asset.go | 2 +- internal/content/character/character.go | 2 +- internal/content/character/dex.go | 4 +- internal/content/character/mystery_tape.go | 4 +- internal/content/character/paul.go | 4 +- internal/content/character/support_tape.go | 4 +- internal/content/content.go | 14 +-- internal/content/dialog/dex_talk.go | 2 +- internal/content/dialog/dialog.go | 2 +- .../content/dialog/mystery_tape_silent.go | 2 +- internal/content/item/black_market_armilla.go | 4 +- internal/content/item/item.go | 2 +- internal/content/item/mystery_tape.go | 4 +- internal/content/item/noodle_letter.go | 4 +- internal/content/scene/alley.go | 4 +- internal/content/scene/scene.go | 2 +- internal/content/script/awakening_finale.go | 6 +- internal/content/script/script.go | 2 +- internal/content/script/tape_insert.go | 4 +- internal/ui/letterbox.go | 6 +- internal/ui/tape_channel.go | 4 +- internal/ui/tape_slots.go | 4 +- internal/ui/ui.go | 4 +- internal/ui/usewith_guard.go | 4 +- internal/world/world.go | 2 +- internal/world/world_test.go | 4 +- main.go | 2 +- metadata.json | 9 ++ 38 files changed, 227 insertions(+), 87 deletions(-) create mode 100644 .woodpecker.yaml create mode 100644 LICENSE.md create mode 100644 Makefile create mode 100644 metadata.json diff --git a/.gitignore b/.gitignore index d42b550..75eca51 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,6 @@ -/realworld -/saves/ -*.png.tmp +bin +dist +*.zip +.version +saves screenshot*.png diff --git a/.woodpecker.yaml b/.woodpecker.yaml new file mode 100644 index 0000000..7fe0be6 --- /dev/null +++ b/.woodpecker.yaml @@ -0,0 +1,2 @@ +# The CI pipeline is served by the update server: GET /build/config?platform=ebitengine +platform: ebitengine diff --git a/LICENSE.md b/LICENSE.md new file mode 100644 index 0000000..5afdf5f --- /dev/null +++ b/LICENSE.md @@ -0,0 +1,8 @@ +The MIT License (MIT) +Copyright © 2026 Teletype Games + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..ca6876f --- /dev/null +++ b/Makefile @@ -0,0 +1,91 @@ +# ----------------------------------------- +# Makefile – Ebitengine project builder +# ----------------------------------------- + +PROJECT = realworld + +# Our own modules live on the forge, not on proxy.golang.org: fetch them +# directly and skip the public checksum database. +export GOPRIVATE = git.teletypegames.org + +BIN_DIR = bin +DIST_DIR = dist +WASM_NAME = game.wasm +OUTPUT_BIN = $(BIN_DIR)/$(PROJECT) +OUTPUT_WASM = $(DIST_DIR)/$(WASM_NAME) +OUTPUT_JS = $(DIST_DIR)/wasm_exec.js +OUTPUT_ZIP = $(PROJECT)-$(VERSION).html.zip + +INDEX_HTML_URL = https://git.teletypegames.org/tools/ebitengine-tools/raw/branch/master/web/index.html + +all: build + +build: + @mkdir -p $(BIN_DIR) + go build -o $(OUTPUT_BIN) . + +# Headless: composes the game, validates every cross-manager name reference +# and checks the HUD layout. No window opens. +test: + go test ./... + +wasm: + @mkdir -p $(DIST_DIR) + GOOS=js GOARCH=wasm go build -o $(OUTPUT_WASM) . + cp "$$(go env GOROOT)/lib/wasm/wasm_exec.js" $(OUTPUT_JS) + +export: wasm + @if [ -z "$(VERSION)" ]; then \ + echo "ERROR: VERSION not set!"; exit 1; \ + fi + @echo "==> Downloading index.html" + curl -sSL $(INDEX_HTML_URL) -o $(DIST_DIR)/index.html + @echo "==> Packaging HTML/WASM for $(VERSION)" + zip -r $(OUTPUT_ZIP) -j $(DIST_DIR)/$(WASM_NAME) $(DIST_DIR)/wasm_exec.js $(DIST_DIR)/index.html + @echo "==> Cleaning temporary files" + rm -f $(DIST_DIR)/$(WASM_NAME) $(DIST_DIR)/wasm_exec.js $(DIST_DIR)/index.html + +# --- native binaries (lásd: teletypegames/NOTES_BINARY_PLAN.md) ------------- +# win-x86 / win-x64: pure Go cross-compile (Windowson nem kell cgo) +# linux-x64: cgo build, linux/amd64 hoston fut (builder image, X11/GL dev libekkel) +BINARY_TARGETS = win-x86 win-x64 linux-x64 + +binaries: + @if [ -z "$(VERSION)" ]; then \ + echo "ERROR: VERSION not set!"; exit 1; \ + fi + @for target in $(BINARY_TARGETS); do \ + $(MAKE) binary-$$target VERSION=$(VERSION) || exit 1; \ + done + +binary-win-x86: + @$(MAKE) binary-build VERSION=$(VERSION) B_GOOS=windows B_GOARCH=386 B_CGO=0 B_EXT=.exe B_TARGET=win-x86 + +binary-win-x64: + @$(MAKE) binary-build VERSION=$(VERSION) B_GOOS=windows B_GOARCH=amd64 B_CGO=0 B_EXT=.exe B_TARGET=win-x64 + +binary-linux-x64: + @$(MAKE) binary-build VERSION=$(VERSION) B_GOOS=linux B_GOARCH=amd64 B_CGO=1 B_EXT= B_TARGET=linux-x64 + +# belső helper: egy target buildje + zip egyetlen gyökérmappával +# (a zipet unixos zip készíti, így a végrehajtási bit megmarad) +binary-build: + @set -e; \ + PKG_DIR="$(PROJECT)-$(VERSION)-$(B_TARGET)"; \ + echo "==> Building $$PKG_DIR"; \ + rm -rf "$$PKG_DIR" "$$PKG_DIR.zip"; \ + mkdir -p "$$PKG_DIR"; \ + CGO_ENABLED=$(B_CGO) GOOS=$(B_GOOS) GOARCH=$(B_GOARCH) go build -o "$$PKG_DIR/$(PROJECT)$(B_EXT)" .; \ + if [ -f LICENSE.md ]; then cp LICENSE.md "$$PKG_DIR/"; fi; \ + if [ -f README.md ]; then cp README.md "$$PKG_DIR/"; fi; \ + zip -r "$$PKG_DIR.zip" "$$PKG_DIR" >/dev/null; \ + rm -rf "$$PKG_DIR"; \ + echo "==> $$PKG_DIR.zip kesz" + +watch: + fswatch -o . | while read; do make build; done + +clean: + rm -rf $(BIN_DIR) $(DIST_DIR) + +.PHONY: all build test wasm export watch clean binaries binary-win-x86 binary-win-x64 binary-linux-x64 binary-build diff --git a/README.md b/README.md index 87ea219..1bff2c8 100644 --- a/README.md +++ b/README.md @@ -11,15 +11,45 @@ the wiki (`services/wiki-pages/pages/projects/realworld` and ## Running +inkwell is consumed as an ordinary Go module from the forge. Prerequisites: +Go 1.26+ and SSH access to `git.teletypegames.org`. + +```bash +git clone ssh://git@git.teletypegames.org:2222/games/realworld +cd realworld +export GOPRIVATE=git.teletypegames.org # the Makefile sets this for its own targets +go mod tidy +go run . +``` + ```bash go run . # the alley scene (beat 3) go run . -finale # the finale — try the Nokia-punk theme switch go run . -scene alley # pick a starting scene -go test ./... # content and layout checks, no window needed ``` -`go.mod` carries a `replace` pointing at the neighbouring inkwell checkout so -the engine and the game move together. Drop that line for a release build. +To work against a local inkwell checkout, add a `replace` line temporarily — +and take it out before committing: + +```bash +go mod edit -replace git.teletypegames.org/engines/inkwell=../../engines/inkwell +go mod edit -dropreplace git.teletypegames.org/engines/inkwell +``` + +## Building + +```bash +make build # native binary into bin/ +make test # headless: validates content and HUD layout +make wasm # dist/game.wasm + wasm_exec.js +make export VERSION=0.1 # zipped HTML/WASM bundle +make binaries VERSION=0.1 # win-x86, win-x64, linux-x64 zips +make clean +``` + +CI is Woodpecker; `.woodpecker.yaml` only names the platform, and the update +server serves the actual pipeline (`GET /build/config?platform=ebitengine`). +Release metadata lives in `metadata.json`. | Control | | |---|---| diff --git a/go.mod b/go.mod index c1a105e..fdd1fa4 100644 --- a/go.mod +++ b/go.mod @@ -1,25 +1,21 @@ -module realworld +module git.teletypegames.org/games/realworld -go 1.26.5 - -// Fejlesztés közben a szomszédos checkout-ra mutatunk, hogy a motor és a -// játék együtt mozogjon. Kiadáskor ezt a sort kell törölni. -replace git.teletypegames.org/engines/inkwell => ../../engines/inkwell +go 1.26.3 require ( - git.teletypegames.org/engines/inkwell v0.0.0-00010101000000-000000000000 - github.com/hajimehoshi/ebiten/v2 v2.9.10 + git.teletypegames.org/engines/inkwell v0.1.0 + github.com/hajimehoshi/ebiten/v2 v2.9.9 ) require ( github.com/ebitengine/gomobile v0.0.0-20250923094054-ea854a63cce1 // indirect github.com/ebitengine/hideconsole v1.0.0 // indirect - github.com/ebitengine/oto/v3 v3.4.1 // indirect + github.com/ebitengine/oto/v3 v3.4.0 // indirect github.com/ebitengine/purego v0.9.0 // indirect github.com/hajimehoshi/go-mp3 v0.3.4 // indirect github.com/jezek/xgb v1.1.1 // indirect github.com/jfreymuth/oggvorbis v1.0.5 // indirect github.com/jfreymuth/vorbis v1.0.2 // indirect - golang.org/x/sync v0.21.0 // indirect - golang.org/x/sys v0.44.0 // indirect + golang.org/x/sync v0.17.0 // indirect + golang.org/x/sys v0.36.0 // indirect ) diff --git a/go.sum b/go.sum index 84f13ee..0012ab9 100644 --- a/go.sum +++ b/go.sum @@ -1,13 +1,15 @@ +git.teletypegames.org/engines/inkwell v0.1.0 h1:NJgT924aR3e0uLVRiTEhzLrXJY+Vnj+FArkKqMJJlVI= +git.teletypegames.org/engines/inkwell v0.1.0/go.mod h1:/v6QtismTE8+e7kobbVR5B/CpTSrd4j2DYwJ8DvINhs= github.com/ebitengine/gomobile v0.0.0-20250923094054-ea854a63cce1 h1:+kz5iTT3L7uU+VhlMfTb8hHcxLO3TlaELlX8wa4XjA0= github.com/ebitengine/gomobile v0.0.0-20250923094054-ea854a63cce1/go.mod h1:lKJoeixeJwnFmYsBny4vvCJGVFc3aYDalhuDsfZzWHI= github.com/ebitengine/hideconsole v1.0.0 h1:5J4U0kXF+pv/DhiXt5/lTz0eO5ogJ1iXb8Yj1yReDqE= github.com/ebitengine/hideconsole v1.0.0/go.mod h1:hTTBTvVYWKBuxPr7peweneWdkUwEuHuB3C1R/ielR1A= -github.com/ebitengine/oto/v3 v3.4.1 h1:uX7B03/P2P8oWiSI5HXjyjSP4besYn3V9nDk3cR+eIY= -github.com/ebitengine/oto/v3 v3.4.1/go.mod h1:IOleLVD0m+CMak3mRVwsYY8vTctQgOM0iiL6S7Ar7eI= +github.com/ebitengine/oto/v3 v3.4.0 h1:br0PgASsEWaoWn38b2Goe7m1GKFYfNgnsjSd5Gg+/bQ= +github.com/ebitengine/oto/v3 v3.4.0/go.mod h1:IOleLVD0m+CMak3mRVwsYY8vTctQgOM0iiL6S7Ar7eI= github.com/ebitengine/purego v0.9.0 h1:mh0zpKBIXDceC63hpvPuGLiJ8ZAa3DfrFTudmfi8A4k= github.com/ebitengine/purego v0.9.0/go.mod h1:iIjxzd6CiRiOG0UyXP+V1+jWqUXVjPKLAI0mRfJZTmQ= -github.com/hajimehoshi/ebiten/v2 v2.9.10 h1:Z2z8hq8/RVS4tfUcjKGdwzhBhNTbxSkxv867MPiGCLM= -github.com/hajimehoshi/ebiten/v2 v2.9.10/go.mod h1:UqZjna6ppO9dTZtO97LySdB5ustokqOcQKrAfWPrVro= +github.com/hajimehoshi/ebiten/v2 v2.9.9 h1:JdDag6Ndj12iD4lxQGG8kbsrh7ssj4Sbzth6r929H/M= +github.com/hajimehoshi/ebiten/v2 v2.9.9/go.mod h1:DAt4tnkYYpCvu3x9i1X/nK/vOruNXIlYq/tBXxnhrXM= github.com/hajimehoshi/go-mp3 v0.3.4 h1:NUP7pBYH8OguP4diaTZ9wJbUbk3tC0KlfzsEpWmYj68= github.com/hajimehoshi/go-mp3 v0.3.4/go.mod h1:fRtZraRFcWb0pu7ok0LqyFhCUrPeMsGRSVop0eemFmo= github.com/hajimehoshi/oto/v2 v2.3.1/go.mod h1:seWLbgHH7AyUMYKfKYT9pg7PhUu9/SisyJvNTT+ASQo= @@ -17,10 +19,10 @@ github.com/jfreymuth/oggvorbis v1.0.5 h1:u+Ck+R0eLSRhgq8WTmffYnrVtSztJcYrl588DM4 github.com/jfreymuth/oggvorbis v1.0.5/go.mod h1:1U4pqWmghcoVsCJJ4fRBKv9peUJMBHixthRlBeD6uII= github.com/jfreymuth/vorbis v1.0.2 h1:m1xH6+ZI4thH927pgKD8JOH4eaGRm18rEE9/0WKjvNE= github.com/jfreymuth/vorbis v1.0.2/go.mod h1:DoftRo4AznKnShRl1GxiTFCseHr4zR9BN3TWXyuzrqQ= -golang.org/x/image v0.43.0 h1:FLxcP4ec2350nTfOC8ysKtqYSIFbk/QGjw1ZHNP4tsY= -golang.org/x/image v0.43.0/go.mod h1:rrpelvGFt+kLPAjPM4HeWPgrl0FtafueU//e5N0qk/Q= -golang.org/x/sync v0.21.0 h1:HLII4xRRTtCRkxYp4HNFF0Js/Og6q2i++KXbg0gHCwM= -golang.org/x/sync v0.21.0/go.mod h1:9xrNwdLfx4jkKbNva9FpL6vEN7evnE43NNNJQ2LF3+0= +golang.org/x/image v0.31.0 h1:mLChjE2MV6g1S7oqbXC0/UcKijjm5fnJLUYKIYrLESA= +golang.org/x/image v0.31.0/go.mod h1:R9ec5Lcp96v9FTF+ajwaH3uGxPH4fKfHHAVbUILxghA= +golang.org/x/sync v0.17.0 h1:l60nONMj9l5drqw6jlhIELNv9I0A4OFgRsG9k2oT9Ug= +golang.org/x/sync v0.17.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI= golang.org/x/sys v0.0.0-20220712014510-0a85c31ab51e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.44.0 h1:ildZl3J4uzeKP07r2F++Op7E9B29JRUy+a27EibtBTQ= -golang.org/x/sys v0.44.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= +golang.org/x/sys v0.36.0 h1:KVRy2GtZBrk1cBYA7MKu5bEZFxQk4NIDV6RLVcC8o0k= +golang.org/x/sys v0.36.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= diff --git a/internal/boot/boot.go b/internal/boot/boot.go index 68e042e..cb4c90b 100644 --- a/internal/boot/boot.go +++ b/internal/boot/boot.go @@ -5,11 +5,11 @@ package boot import ( inkwell "git.teletypegames.org/engines/inkwell" - "realworld/internal/content" - "realworld/internal/names" - "realworld/internal/theme" - "realworld/internal/ui" - "realworld/internal/world" + "git.teletypegames.org/games/realworld/internal/content" + "git.teletypegames.org/games/realworld/internal/names" + "git.teletypegames.org/games/realworld/internal/theme" + "git.teletypegames.org/games/realworld/internal/ui" + "git.teletypegames.org/games/realworld/internal/world" ) // Opts are the run parameters. diff --git a/internal/boot/boot_test.go b/internal/boot/boot_test.go index 8bc4569..1377ba6 100644 --- a/internal/boot/boot_test.go +++ b/internal/boot/boot_test.go @@ -5,9 +5,9 @@ import ( inkwell "git.teletypegames.org/engines/inkwell" - "realworld/internal/boot" - "realworld/internal/names" - "realworld/internal/ui" + "git.teletypegames.org/games/realworld/internal/boot" + "git.teletypegames.org/games/realworld/internal/names" + "git.teletypegames.org/games/realworld/internal/ui" ) func build(t *testing.T) *inkwell.Game { diff --git a/internal/content/asset/alley_background.go b/internal/content/asset/alley_background.go index 7cc3202..88624ba 100644 --- a/internal/content/asset/alley_background.go +++ b/internal/content/asset/alley_background.go @@ -3,7 +3,7 @@ package asset import ( inkwell "git.teletypegames.org/engines/inkwell" - "realworld/internal/names" + "git.teletypegames.org/games/realworld/internal/names" ) // alleyBackground is the alley behind Noodle's house (beat 3). diff --git a/internal/content/asset/asset.go b/internal/content/asset/asset.go index 9631794..64481f4 100644 --- a/internal/content/asset/asset.go +++ b/internal/content/asset/asset.go @@ -9,7 +9,7 @@ package asset import ( inkwell "git.teletypegames.org/engines/inkwell" - "realworld/internal/world" + "git.teletypegames.org/games/realworld/internal/world" ) // Register adds every asset to the game. diff --git a/internal/content/character/character.go b/internal/content/character/character.go index 45e6177..ec3ebf1 100644 --- a/internal/content/character/character.go +++ b/internal/content/character/character.go @@ -8,7 +8,7 @@ package character import ( inkwell "git.teletypegames.org/engines/inkwell" - "realworld/internal/world" + "git.teletypegames.org/games/realworld/internal/world" ) // Register adds every character to the game. diff --git a/internal/content/character/dex.go b/internal/content/character/dex.go index 4906fd0..ed29ffd 100644 --- a/internal/content/character/dex.go +++ b/internal/content/character/dex.go @@ -3,8 +3,8 @@ package character import ( inkwell "git.teletypegames.org/engines/inkwell" - "realworld/internal/names" - "realworld/internal/theme" + "git.teletypegames.org/games/realworld/internal/names" + "git.teletypegames.org/games/realworld/internal/theme" ) // dex is the personality imprint of a dead friend, permanently in slot 1 of diff --git a/internal/content/character/mystery_tape.go b/internal/content/character/mystery_tape.go index 5f91c4c..cdcf1b5 100644 --- a/internal/content/character/mystery_tape.go +++ b/internal/content/character/mystery_tape.go @@ -3,8 +3,8 @@ package character import ( inkwell "git.teletypegames.org/engines/inkwell" - "realworld/internal/names" - "realworld/internal/theme" + "git.teletypegames.org/games/realworld/internal/names" + "git.teletypegames.org/games/realworld/internal/theme" ) // mysteryTape is the tape found in the alley — in truth Norman's Personal diff --git a/internal/content/character/paul.go b/internal/content/character/paul.go index cc5f23e..cb06b75 100644 --- a/internal/content/character/paul.go +++ b/internal/content/character/paul.go @@ -3,8 +3,8 @@ package character import ( inkwell "git.teletypegames.org/engines/inkwell" - "realworld/internal/names" - "realworld/internal/theme" + "git.teletypegames.org/games/realworld/internal/names" + "git.teletypegames.org/games/realworld/internal/theme" ) // paul is the player character: a junk dealer and street survivor, technically diff --git a/internal/content/character/support_tape.go b/internal/content/character/support_tape.go index a575eb6..56ec722 100644 --- a/internal/content/character/support_tape.go +++ b/internal/content/character/support_tape.go @@ -3,8 +3,8 @@ package character import ( inkwell "git.teletypegames.org/engines/inkwell" - "realworld/internal/names" - "realworld/internal/theme" + "git.teletypegames.org/games/realworld/internal/names" + "git.teletypegames.org/games/realworld/internal/theme" ) // supportTape answers everything with basic information, insufferably. Dex diff --git a/internal/content/content.go b/internal/content/content.go index 21eeab1..52917f4 100644 --- a/internal/content/content.go +++ b/internal/content/content.go @@ -7,13 +7,13 @@ package content import ( - "realworld/internal/content/asset" - "realworld/internal/content/character" - "realworld/internal/content/dialog" - "realworld/internal/content/item" - "realworld/internal/content/scene" - "realworld/internal/content/script" - "realworld/internal/world" + "git.teletypegames.org/games/realworld/internal/content/asset" + "git.teletypegames.org/games/realworld/internal/content/character" + "git.teletypegames.org/games/realworld/internal/content/dialog" + "git.teletypegames.org/games/realworld/internal/content/item" + "git.teletypegames.org/games/realworld/internal/content/scene" + "git.teletypegames.org/games/realworld/internal/content/script" + "git.teletypegames.org/games/realworld/internal/world" ) // Register adds every entity to the game. Order matters only in that scenes diff --git a/internal/content/dialog/dex_talk.go b/internal/content/dialog/dex_talk.go index c214d9c..d6d9f9f 100644 --- a/internal/content/dialog/dex_talk.go +++ b/internal/content/dialog/dex_talk.go @@ -3,7 +3,7 @@ package dialog import ( inkwell "git.teletypegames.org/engines/inkwell" - "realworld/internal/names" + "git.teletypegames.org/games/realworld/internal/names" ) // dexTalk is the standing conversation with Dex. Its branches are gated on diff --git a/internal/content/dialog/dialog.go b/internal/content/dialog/dialog.go index 5f14779..3c6a7e7 100644 --- a/internal/content/dialog/dialog.go +++ b/internal/content/dialog/dialog.go @@ -12,7 +12,7 @@ package dialog import ( inkwell "git.teletypegames.org/engines/inkwell" - "realworld/internal/world" + "git.teletypegames.org/games/realworld/internal/world" ) // Register adds every dialogue to the game. diff --git a/internal/content/dialog/mystery_tape_silent.go b/internal/content/dialog/mystery_tape_silent.go index 9714a79..02de135 100644 --- a/internal/content/dialog/mystery_tape_silent.go +++ b/internal/content/dialog/mystery_tape_silent.go @@ -3,7 +3,7 @@ package dialog import ( inkwell "git.teletypegames.org/engines/inkwell" - "realworld/internal/names" + "git.teletypegames.org/games/realworld/internal/names" ) // mysteryTapeSilent covers the stretch before the club trigger (beat 6), while diff --git a/internal/content/item/black_market_armilla.go b/internal/content/item/black_market_armilla.go index 3155526..e1721c8 100644 --- a/internal/content/item/black_market_armilla.go +++ b/internal/content/item/black_market_armilla.go @@ -3,8 +3,8 @@ package item import ( inkwell "git.teletypegames.org/engines/inkwell" - "realworld/internal/names" - "realworld/internal/world" + "git.teletypegames.org/games/realworld/internal/names" + "git.teletypegames.org/games/realworld/internal/world" ) // blackMarketArmilla is flavour, not a quest trigger: the gap between diff --git a/internal/content/item/item.go b/internal/content/item/item.go index 99c54ae..f45c792 100644 --- a/internal/content/item/item.go +++ b/internal/content/item/item.go @@ -7,7 +7,7 @@ package item import ( inkwell "git.teletypegames.org/engines/inkwell" - "realworld/internal/world" + "git.teletypegames.org/games/realworld/internal/world" ) // Register adds every item to the game. diff --git a/internal/content/item/mystery_tape.go b/internal/content/item/mystery_tape.go index 18d5791..a86b87d 100644 --- a/internal/content/item/mystery_tape.go +++ b/internal/content/item/mystery_tape.go @@ -3,8 +3,8 @@ package item import ( inkwell "git.teletypegames.org/engines/inkwell" - "realworld/internal/names" - "realworld/internal/world" + "git.teletypegames.org/games/realworld/internal/names" + "git.teletypegames.org/games/realworld/internal/world" ) // mysteryTape is the engine of the investigation. Password-locked; it only diff --git a/internal/content/item/noodle_letter.go b/internal/content/item/noodle_letter.go index d6865c5..dfbe99e 100644 --- a/internal/content/item/noodle_letter.go +++ b/internal/content/item/noodle_letter.go @@ -3,8 +3,8 @@ package item import ( inkwell "git.teletypegames.org/engines/inkwell" - "realworld/internal/names" - "realworld/internal/world" + "git.teletypegames.org/games/realworld/internal/names" + "git.teletypegames.org/games/realworld/internal/world" ) // noodleLetter starts the story: it is what brings Paul to the city. diff --git a/internal/content/scene/alley.go b/internal/content/scene/alley.go index a1aa143..bd16acb 100644 --- a/internal/content/scene/alley.go +++ b/internal/content/scene/alley.go @@ -3,8 +3,8 @@ package scene import ( inkwell "git.teletypegames.org/engines/inkwell" - "realworld/internal/names" - "realworld/internal/world" + "git.teletypegames.org/games/realworld/internal/names" + "git.teletypegames.org/games/realworld/internal/world" ) // alley is the alley behind Noodle's house — beat 3, and the vertical slice diff --git a/internal/content/scene/scene.go b/internal/content/scene/scene.go index f287f38..553c9f1 100644 --- a/internal/content/scene/scene.go +++ b/internal/content/scene/scene.go @@ -4,7 +4,7 @@ package scene import ( inkwell "git.teletypegames.org/engines/inkwell" - "realworld/internal/world" + "git.teletypegames.org/games/realworld/internal/world" ) // Register adds every scene to the game. diff --git a/internal/content/script/awakening_finale.go b/internal/content/script/awakening_finale.go index 1c7cd42..fe423e5 100644 --- a/internal/content/script/awakening_finale.go +++ b/internal/content/script/awakening_finale.go @@ -3,9 +3,9 @@ package script import ( inkwell "git.teletypegames.org/engines/inkwell" - "realworld/internal/names" - "realworld/internal/theme" - "realworld/internal/world" + "git.teletypegames.org/games/realworld/internal/names" + "git.teletypegames.org/games/realworld/internal/theme" + "git.teletypegames.org/games/realworld/internal/world" ) // awakeningFinale is the end of game two. The point of it, mechanically, is diff --git a/internal/content/script/script.go b/internal/content/script/script.go index 5a499dc..fc12950 100644 --- a/internal/content/script/script.go +++ b/internal/content/script/script.go @@ -5,7 +5,7 @@ package script import ( inkwell "git.teletypegames.org/engines/inkwell" - "realworld/internal/world" + "git.teletypegames.org/games/realworld/internal/world" ) // Register adds every script to the game. diff --git a/internal/content/script/tape_insert.go b/internal/content/script/tape_insert.go index 2c732bc..eaba0ed 100644 --- a/internal/content/script/tape_insert.go +++ b/internal/content/script/tape_insert.go @@ -3,8 +3,8 @@ package script import ( inkwell "git.teletypegames.org/engines/inkwell" - "realworld/internal/names" - "realworld/internal/world" + "git.teletypegames.org/games/realworld/internal/names" + "git.teletypegames.org/games/realworld/internal/world" ) // tapeInsert runs whenever a tape goes into slot 2: it activates the tape and diff --git a/internal/ui/letterbox.go b/internal/ui/letterbox.go index 2e5f60d..9cfb118 100644 --- a/internal/ui/letterbox.go +++ b/internal/ui/letterbox.go @@ -13,9 +13,9 @@ import ( "github.com/hajimehoshi/ebiten/v2/inpututil" "github.com/hajimehoshi/ebiten/v2/vector" - "realworld/internal/names" - "realworld/internal/theme" - "realworld/internal/world" + "git.teletypegames.org/games/realworld/internal/names" + "git.teletypegames.org/games/realworld/internal/theme" + "git.teletypegames.org/games/realworld/internal/world" ) type Letterbox struct { diff --git a/internal/ui/tape_channel.go b/internal/ui/tape_channel.go index d1e1524..f76fff2 100644 --- a/internal/ui/tape_channel.go +++ b/internal/ui/tape_channel.go @@ -20,8 +20,8 @@ import ( "github.com/hajimehoshi/ebiten/v2" "github.com/hajimehoshi/ebiten/v2/vector" - "realworld/internal/names" - "realworld/internal/world" + "git.teletypegames.org/games/realworld/internal/names" + "git.teletypegames.org/games/realworld/internal/world" ) type TapeChannel struct { diff --git a/internal/ui/tape_slots.go b/internal/ui/tape_slots.go index e65de10..09e822f 100644 --- a/internal/ui/tape_slots.go +++ b/internal/ui/tape_slots.go @@ -20,8 +20,8 @@ import ( "github.com/hajimehoshi/ebiten/v2" "github.com/hajimehoshi/ebiten/v2/vector" - "realworld/internal/names" - "realworld/internal/world" + "git.teletypegames.org/games/realworld/internal/names" + "git.teletypegames.org/games/realworld/internal/world" ) type TapeSlots struct { diff --git a/internal/ui/ui.go b/internal/ui/ui.go index 701bf87..7a728c8 100644 --- a/internal/ui/ui.go +++ b/internal/ui/ui.go @@ -33,8 +33,8 @@ import ( "github.com/hajimehoshi/ebiten/v2" "github.com/hajimehoshi/ebiten/v2/vector" - "realworld/internal/names" - "realworld/internal/world" + "git.teletypegames.org/games/realworld/internal/names" + "git.teletypegames.org/games/realworld/internal/world" ) // Screen and layout, in internal (unscaled) pixels. diff --git a/internal/ui/usewith_guard.go b/internal/ui/usewith_guard.go index fa6f254..e5510ff 100644 --- a/internal/ui/usewith_guard.go +++ b/internal/ui/usewith_guard.go @@ -23,8 +23,8 @@ import ( inkwell "git.teletypegames.org/engines/inkwell" "github.com/hajimehoshi/ebiten/v2" - "realworld/internal/names" - "realworld/internal/world" + "git.teletypegames.org/games/realworld/internal/names" + "git.teletypegames.org/games/realworld/internal/world" ) type UseWithGuard struct { diff --git a/internal/world/world.go b/internal/world/world.go index db6a12a..249eea9 100644 --- a/internal/world/world.go +++ b/internal/world/world.go @@ -9,7 +9,7 @@ package world import ( inkwell "git.teletypegames.org/engines/inkwell" - "realworld/internal/names" + "git.teletypegames.org/games/realworld/internal/names" ) // Mode is the HUD mode. diff --git a/internal/world/world_test.go b/internal/world/world_test.go index eec1aa7..c8d4180 100644 --- a/internal/world/world_test.go +++ b/internal/world/world_test.go @@ -5,8 +5,8 @@ import ( inkwell "git.teletypegames.org/engines/inkwell" - "realworld/internal/names" - "realworld/internal/world" + "git.teletypegames.org/games/realworld/internal/names" + "git.teletypegames.org/games/realworld/internal/world" ) // The mode must not leak into saved state: inkwell saves State.Vars but drops diff --git a/main.go b/main.go index 47b7cfe..bb22ecb 100644 --- a/main.go +++ b/main.go @@ -6,7 +6,7 @@ import ( inkwell "git.teletypegames.org/engines/inkwell" - "realworld/internal/boot" + "git.teletypegames.org/games/realworld/internal/boot" ) func main() { diff --git a/metadata.json b/metadata.json new file mode 100644 index 0000000..ec9cccc --- /dev/null +++ b/metadata.json @@ -0,0 +1,9 @@ +{ + "name": "realworld", + "title": "Project Real World", + "author": "Teletype Games", + "desc": "A story-heavy point-and-click adventure: Paul investigates what happened to Norman, with a dead friend riding along on tape", + "site": "https://git.teletypegames.org/games/realworld", + "license": "MIT License", + "version": "0.1" +}