This repository provides the build tools for MOROway App. The code here is used to build the ready-to-use versions of MOROway App.
- The "web"-platform is the main platform and can be used with any modern web browser. The ready-to-use code for the "web"-platform can be found here.1
- The "windows"-platform provides the PWA available at Microsoft Store (packaged by PWABuilder).
- The "android"-platform is used within the Android wrapper app available at Google Play Store. The wrapper app can be found here. This wrapper app contains a already built version of the "android"-platform.
- The "oc"-platform is used within the Apache Cordova Android wrapper app available at F-Droid. The wrapper app can be found here. This wrapper app contains a already built version of the "oc"-platform.
- The "snap"-platform is used within the Electron wrapper app available at Ubuntu's Snap Store. The wrapper app can be found here. This wrapper app contains a already built version of the "snap"-platform.
[1] Auto updated by a Github Action. This action uses code derived from the action github-action-push-to-another-repository (License: MIT, by Carles Pina Estany). Furthermore the actions action-create-tag (License: MIT, by rickstaa) and setup-ffmpeg (License: MIT, by Federico Carboni) are used.
MOROway App uses Weblate for translations.
Contributors (chronological order)
- J. Lavoie (Edanas)
- Allan Nordhøy (kingu)
- David D. (Dadu042)
- தமிழ்நேரம் (TamilNeram)
app= core files for all platformsrc/lib: included open source components.
app_platforms= platform specific files- All directories containing files end with
_platform(if they are not nested beneath a directory suffixed_platform). [PLATFORM]/core_excludes: core files not used by platform.[PLATFORM]/sw_excludes: files not used by service worker.
- All directories containing files end with
build= build tools- Script files:
- Linux-based x86_64 OS, Bash, Typescript (tsc), FFmpeg (if
convert_audio-configuration option is used), fonttools and common CLI-tools required - Main script usage:
bash build.sh [ -p PLATFORM ] [ -d DEBUG ]- -p (platform):
- One of the platforms listed above.
- Omitting builds all.
- -d (debug):
- Activate debug mode (-d 1).
- Prefer conf options prefixed "debug:"
- Use unencrypted connections (as this mode is designed for a local test setup)
- -p (platform):
- Logs at
.logs build-tasks:- Scripts executed by main script.
- Cache at
.cache
build-libs:- Used in build scripts
- See here
- Linux-based x86_64 OS, Bash, Typescript (tsc), FFmpeg (if
- Configuration files:
confandconf_local(for local override)version: MAJOR.MINOR.PATCHbeta: 0 for release / beta off; 1,2,3,… for beta numbersharelink: Share link displayed to users when creating a multiplayer gameserverlink: Link to server backend without protocolapp_self_link: Link to app (currently used for Open Graph metadata)app_banner_link: Link to app promotion image (currently used for Open Graph metadata)convert_audio: Convert ogg audios to specified file format (unset, value ogg or value 0 = do not convert)- prefixes:
debug: Configuration only used for debug mode[platform]: Configuration only used for specific platform- Hierachy (if both prefixes apply): prefixed both, prefixed
debug, prefixed[platform], not prefixed
tsconfig.json: Typescript conf
changelogs,metadata,strings- Localization files (see above: Weblate)
- Exception:
changelogs/meta.yml: Changelog metadata
- Script files:
out= ready-to-use MOROway App output- generated by build script
out/[PLATFORM]/latest= last build (release or beta)out/[PLATFORM]/current= last release build
wrapper= platform wrapper appsandroid: hereoc: Extra repositorysnap: here
See file: ./ABOUT.
The following query parameters can be used with MOROway App (foremost web platform).
mode: singleplayer, multiplayer, demo (app mode)- all modes
gui-3d: 0, 1 (3D view)gui-3d-night: 0, 1 (3D night view)gui-3d-cam-mode: birds-eye, follow-train, follow-car (3D camera mode)
- all modes except demo mode
gui-3d-follow-object: 0, 1, 2, … (3D object to follow in camera modes follow-train and follow-car)
- only multiplayer mode
key: game keyid: game id
- only demo mode
gui-demo-3d-rotation-speed-percent: 0-100 (3D demo mode canvas rotation speed in percent)gui-demo-random: 0, 1 (Overrides all other GUI-related query parameters by random values)exit-timeout: 1, 2, 3, … (Leave app after specified amount of minutes. Only works on supported platforms.)demo-standalone: 0, 1 (Demo mode cant't be left for normal mode)
