This is an updated version of the t-rex-runner game, originally extracted by wayou/t-rex-runner
source from chromium
You can find a online version at https://litetex.github.io/t-rex-runner/
Unfortunately it's only possible to run the code on a webserver.
You can find the exact reason here
A simple predefined image exists at DockerHub
However here is a quick setup if you wan't to build it yourself using docker
- Get Docker
- Build it with
docker build -t my-trex-runner-demo .
- Start it with
docker run --rm -it --name trex-runner-demo -p 8080:80 my-trex-runner-demo
- Open http://localhost:8080
- Shutdown the server/container with
Ctrl + C
or by running
docker rm -f trex-runner-demo
All in one:
docker build -t my-trex-runner-demo . && docker run --rm -it --name trex-runner-demo -p 8080:80 my-trex-runner-demo
- Clone the chromium repo
- Chromium is a really large repo (as of now it has nearly 1 million Commits and the default branch with only the latest commits alone consumes 4GB of disk memory) so you should clone it only optimized:
git clone --depth 1 --branch master https://chromium.googlesource.com/chromium/src
- Check the dependencies of the neterror component html page
- More details can also be found in this build file
- Currently the components
components/neterror
andcomponents/security_interstitials
are required, so let's extract them - Extract those dependencies (copy the directories) into a new directory
- Clean not required stuff from the html file, e.g. i18n or not used parts of the div
- The sounds have to be served encoded in Base64, so encode them and add them directly
- Remove the complicated
neterror.js
and replace it at the end of the body with a simple<script>new Runner('.interstitial-wrapper');</script>
- Clean up
offline.js
by removing external dependencies or merging them into the file
e.g.loadTimeData
is only used to determine if the game should be disabled, which we totally don't need - The JS-Constant
<script>const HIDDEN_CLASS = 'hidden';</script>
is required - Simplify the stylesheets into a single one and clean up not required stuff
- Remove unnecessary images