A javascript experiment to simulate minecraft and its game behaviors such as redstone logic in the browser.
Click here to run the current version
Left click to break blocks, middle click to select block type, and right click to place blocks. WASD to move horizontally and Space/Shift to move vertically.
Note that during development the above link will not always bring you to a working release, if you want you can download the most recent release and run it yourself. This project doesn't need building or installing dependencies but the multiplayer functionality only works on the link.
- v 0.1 - Performance Viability Release
- v 0.2 - Primitive Block Distinction
- v 0.3 - Collision Detection and Block Selection
- v 0.4 - Inventory, Hotbar and Procedural Terrain Generation [Removed]
- v 0.5 - ES6 Rewrite and Voxel AO Implementation
- v 0.6 - Block selection and block placement
- v 0.7 - Multiplayer and World persistance
This is an experiment to simulate the game in the browser and eventually to make developing redstone contraptions easier by allowing fast prototyping. It also serves as my project to experiment with project organization, design philosophy, test zone and whatever idea I came up with.
Download this repository and either run npm run start
at the root of it or just run a static http server to serve files for frontend
folder.
There are no dependencies, so you don't need to call npm install
.
However, the backend is not included, so it will not work and your world and the changes you make in it will not be saved.
- Menu (done)
- 3D Controls similar to minecraft (done)
- Correct Block Rendering (done)
- Crosshair and Block Selection (done)
- Collision Detection (removed)
- Procedural Terrain Generation (release v0.4 only)
- Major update - rewrote everything with modern technology (done)
- Inventory and Hotbar system (in progress)
- Mobile and Gamepad compatibility (in progress)
- Block placement (done)
- Area select and selection tools
- Multiplayer system (done)
- Redstone Simulation
- Piston Simulation
- Water and Lava Simulation
You can relive the entire world block history (play it back) in some obscure undocumented way.
- three.js - Javascript 3D Library - Used to render the world
- Minecraft - by Mojang - Inspiration and original game
- Digital Circuit Logic, or Boolean Algebra - Definition of how complex redstone systems behave