https://github.com/1337programming/lise-webassembly
The LISE Game Engine for WebAssembly -- this is just a fun OpenGL project for WebAssembly development.
https://github.com/1337programming/lise-webassembly
embind emscripten opengl wasm webassembly
Last synced: 3 months ago
JSON representation
The LISE Game Engine for WebAssembly -- this is just a fun OpenGL project for WebAssembly development.
- Host: GitHub
- URL: https://github.com/1337programming/lise-webassembly
- Owner: 1337programming
- Created: 2017-10-23T18:14:07.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2017-11-27T19:51:35.000Z (over 7 years ago)
- Last Synced: 2025-01-08T07:42:48.665Z (5 months ago)
- Topics: embind, emscripten, opengl, wasm, webassembly
- Language: C++
- Size: 38.7 MB
- Stars: 2
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# LISE WebAssembly (Work In Progress)
The purpose of this project is to create a very basic minimal CMake project able to compile C++ program using emscripten with the following features enabled:
* Linking to external C++ library crosscompiled to JS file
* Using bindings created via Embind
* Preloading assets files
* Sample OpenGL stack to get going## Requirements
See the WebAssembly [setup](http://webassembly.org/getting-started/developers-guide/) to get all the requirements.
What you will need
* Python 2.7
* C++ Compiler
* CMake
* Emscripten## Install
Start by cloning this repository, making sure to pass the `--recursive` flag to grab all the dependencies. If you forgot, then you can git `submodule update --init` instead.
### How to use
1. Setup project `./setup.sh` - this will build and compile the libraries
2. Build project `./build.sh` - this will build the project
3. See output in `dist/index.html`**Note: there is no wasm loader at this time, see example output or modify output from `client.js` to `client.html`**
You can also view the example by unzipping `example.zip`.
## Tech Stack
Functionality | Library
----------------------- | ------------------------------------------
Mesh Loading | [assimp](https://github.com/assimp/assimp)
Physics | [bullet](https://github.com/bulletphysics/bullet3)
OpenGL Function Loader | [glad](https://github.com/Dav1dde/glad)
Windowing and Input | [glfw](https://github.com/glfw/glfw)
OpenGL Mathematics | [glm](https://github.com/g-truc/glm)
Texture Loading | [stb](https://github.com/nothings/stb)## TODO
- [x] CMake Conversion
- [x] Embind
- [x] Passing Emscripten Arguments
- [ ] Support uploading files
- [x] Provide example WASM output
- [x] WASM Output (requires loader file)
- [x] Sample Vendor Compiling
- [x] Sample Vendor Runtime
- [x] Select OpenGL libraries
- [x] Script to build LLVM libraries
- [ ] Sample JavaScript Application
- [ ] Convert bash scripts in CMake (I suck at CMake)
- [ ] JavaScript Loader
- [ ] Select Architecture
- [ ] Document Architecture
- [ ] C++ Unit Testing Setup with Google Test
- [ ] Platform to support Web & Native