Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jackkimmins/3d-cube-game
https://github.com/jackkimmins/3d-cube-game
cpp minecraft-clone sdl2 voxel-engine wasm
Last synced: about 2 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/jackkimmins/3d-cube-game
- Owner: jackkimmins
- Created: 2024-11-02T08:05:50.000Z (about 2 months ago)
- Default Branch: main
- Last Pushed: 2024-11-02T11:17:25.000Z (about 2 months ago)
- Last Synced: 2024-11-02T11:26:08.953Z (about 2 months ago)
- Topics: cpp, minecraft-clone, sdl2, voxel-engine, wasm
- Language: C++
- Homepage: https://3d-cube-game.appserver.uk
- Size: 370 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
![Game Example Sceenshot](https://raw.githubusercontent.com/jackkimmins/3D-Cube-Game/refs/heads/main/screenshots/GameScreenshot.jpg)
# C++ WASM 3D-Cube-Game
3D-Cube-Game is a browser-based 3D block game developed using C++ and WebAssembly, compiled through Emscripten. This project was an exploration into SDL2 as the primary graphics library, which provided both unique challenges and learning opportunities into low-level graphics rendering.## Features
Features of this project include:
- Random World Generation (Perlin Noise for procedural terrain creation)
- Supports multiple block types sourced from a texture atlas.
- The player can break and place blocks within the game world.
- Navigate using WASD keys and pan the view with the mouse.
- Fully functional in the web browser, utilising WebAssembly for cross-platform compatibility.## Limitations
- **MAJOR:** There are substantial issues with block texture alignment.
- Performance and scalability is limited due to non-GPU-based rendering.
- Slight inconsistencies in block placement.## Update: New Version
While SDL2 provided an interesting framework for this project, it brought significant limitations, particularly in performance and texture management.I have since developed a newer version of this project using OpenGL and WebAssembly for improved scalability and GPU utilisation with WebGL2. [Check out the new version here.](#)