https://github.com/webgl/2048-cubed
https://github.com/webgl/2048-cubed
Last synced: 6 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/webgl/2048-cubed
- Owner: webgl
- Created: 2023-10-02T08:23:01.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2024-05-05T04:45:44.000Z (over 1 year ago)
- Last Synced: 2025-03-24T16:05:34.700Z (9 months ago)
- Language: JavaScript
- Size: 2.61 MB
- Stars: 3
- Watchers: 2
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 2048^3
> An interactive 3D cube version of 2048 in 3D
---
## Why 2048^3?
Because it’s 2048, but:
- Rendered in 3D
- Built to handle a 3D grid
- Developed with Three.js
... hence, 2048^3 cubed :)
## Installation
You can simply fork or clone (download); then follow the given commands.
```bash
$ npm i
$ npm start
```
## Usage
Once you've installed all of the dependencies and issued the command `npm start`, parcel will automatically fire up `localhost` and present you with the game.
The controls are as follows (refer to TODOs with upcoming features):
- WASD: Flips the cube around
- Arrows: Move the cubes to either left, right, up, or down
- <: Moves the cubes back (towards the back of the cube)
- ?: Moves the cubes forward (towards the front of the cube)
Additionally, `npm start` provides you with live reloading and compiling of the assets from the `src` directory to `dist`.
Some concepts that you may see through the code:
- Index refers to the position index of a flat array
- Position refers to the position of a cell/cube in a grid
- Coordinates refers to the coordinates of the cube in actual 3D space
## TODOs
I'll be adding more meshing features; that said, if you'd like a feature, let me know so that I'll try and implement it into future updates.
- Responsive: Ensure the application is responsive and adapts
- Gesture Support: Add touch and intuitive gesture support.
- Mobile Support: Make the game responsiveness to various resolutions.
- Optimizations: There are optimizations in the pipeline for faster traversals, data structures, and precomputing.
- Game Mechanics: Add scoring, leaderboards, and other game mechanics.
- Build support: Fix assets directory, compress output, etc.
- Different controllers: Different controllers (e.g. touchpad, VR, etc.).
- Different renderers: Add support for Babylon, CSS3D, SCG, etc.
- Unit tests for the different modules
- Automatated e2e perhaps with three-musketeers
- TypeScript
- Documentation