A voxel game based on OpenVoxelProject
assets | ||
data | ||
lib | ||
modules | ||
plugins | ||
.gitignore | ||
core.js | ||
game.js | ||
index.html | ||
LICENSE | ||
main.js | ||
menu.js | ||
olm.wasm | ||
package.json | ||
preload.js | ||
README.md |
XVoxel-ASync
A voxel game based on OpenVoxelProject, it is able to run fully in a web browser.
Philosophy
My goal for this game is for it to be light, extendable, pluggable and easy to mod without too much nonsense.
- Light, unlike heavy as other games
- Extendable, even its core
- Pluggable, so you can add your own additions
- Easy to mod, with an upcoming modding interface made to be easy and efficient
Roadmap
- Basic menu
- 3D rendering
- Resources
- Textures (partially done)
- Sounds
- Models (as JSON)
- Physics (have to decide which engine to use)
- Settings
- Video
- Field of View
- Lighting
- Audio
- Sources
- Channels (Mono, Stereo or Surround if supported)
- Input (keyboard/mouse, touchscreen and gamepad)
- Sensitivity
- Keys
- Video
- Networking
- Loading worlds
- Saving worlds (implemented but unavailable in the menu)
- Multiplayer
Acknowledgements
The libraries cited below are included in the "lib" folder for convenience, if you want your library's files removed from my project's, please kindly tell me via e-mail or using any other contact information that can be found on my main website.
- Three.JS under the MIT license, used for rendering worlds (and its GLTF loader for future work)
- Cannon ES also under the MIT license, not used yet, will consider switching to it in order to use less WebAssembly and more vanilla JavaScript
- Ammo.JS under the ZLib license, used to simulate physics in worlds
- FFlate under the MIT license too, used to compress and decompress ZIP files (saving and loading worlds)
- Matrix JS SDK under the Apache 2.0 license, used for networking (multiplayer, uploading, downloading worlds from the Matrix network)
- PeerJS under the MIT license, will be used for alternative networking
- Olm under the Apache 2.0 license too, used for encryption support in networking
- Improved Perlin noise (I forgot where I found it and what its license was)