Skip to content

Commit b8a53b9

Browse files
committed
add readme to wasm port
1 parent ca123ec commit b8a53b9

File tree

1 file changed

+53
-0
lines changed

1 file changed

+53
-0
lines changed

wasm/README.md

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
# SuperTuxKart WASM Port
2+
3+
Currently this port is still incomplete.
4+
5+
Working features:
6+
- The game launches
7+
- OpenGL ES 2 graphics (GLES 3 doesn't work)
8+
- Audio
9+
- Persistent user data
10+
- Caching data and asset files in IndexedDB
11+
12+
TODO:
13+
- Fix GLES 3 (maybe someone with more experience in webgl could help here)
14+
- Webpage theming
15+
- Better compression for assets
16+
- Lazy load assets during gameplay
17+
- Networking
18+
19+
Caveats:
20+
- The RAM usage is rather high because the assets are always loaded in memory
21+
- The performance isn't great, probably because the legacy renderer is still being used
22+
- There is a large ~700MB download required immediately
23+
- Some options, like anything related to online multiplayer, may hang the game
24+
25+
## Building
26+
1. First, get a copy of the emsdk (it might help to have emscripten already installed with `sudo apt install emscripten`):
27+
```
28+
wasm/get_emsdk.sh
29+
```
30+
2. Compile all the dependencies:
31+
```
32+
wasm/build_deps.sh
33+
```
34+
3. Compile STK:
35+
```
36+
wasm/build.sh
37+
```
38+
4. Bundle the game data and assets:
39+
```
40+
wasm/pack_assets.sh ../stk-assets
41+
```
42+
5. Host a web server:
43+
```
44+
cd wasm/web
45+
python3 ../run_server.py
46+
```
47+
48+
## Project Structure:
49+
- /wasm/build - Files for building the dependencies
50+
- /wasm/prefix - Headers and library files
51+
- /wasm/web - Web server root directory
52+
- /wasm/emsdk - Emscripten SDK
53+
- /wasm/fragments - Patches for emscripten's generated JS

0 commit comments

Comments
 (0)