• Stars
    star
    156
  • Rank 239,589 (Top 5 %)
  • Language
    JavaScript
  • Created over 2 years ago
  • Updated about 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

The Octo voxel game engine

Octo Project

Try the online demo now.

Download the native demo.

See YouTube for gameplay and technical videos.

This is the repository for releases of the Octo voxel game engine. The engine is designed to support the processing, modification, and rendering of large-scale voxel volumes consisting of various materials. Ultimately, the goal of Octo is to become an online multiplayer platform in which users can create, interact, and extend with mods or plugins. Using a rasterization/ray marching hybrid technique, the engine seeks to support a wide range of hardware, including integrated GPUs. Specifically, the Octo engine seeks to:

  • Run at playable speeds on integrated hardware
  • Run at playable speeds in a web browser
  • Run at high-quality speeds on desktop with a discrete GPU

The engine is written in Rust, and runs on native platforms and the web using WASM and WebGL 2.0.

Controls

  • Mouse: look around
  • T: lock/unlock cursor
  • Left click: destroy
  • Right click: build

Features

The follow features are included in the demo:

  • Large-scale voxel rendering using greedy meshing and LODs
  • Realtime diffuse/specular lighting with directional shadows
  • Fully editable voxel terrain
  • Transparent voxel objects
  • Octree-accelerated rigidbody collision detection
  • Octree-accelerated terrain generation with Perlin noise
  • Peer-to-peer networked multiplayer
  • Importing voxel models at various scales

Future plans

In the future, development is planned for the following parts of the engine:

  • Immersive character and camera controls
  • 3D spatial audio
  • A material system that allows assigning properties to voxel types, such as textures, sound effects, and physics data
  • Point lighting with shadows for multiple light sources
  • An easy-to-use and secure modding system build on WASM plugins

Changelog

  • 0.1.1: Fixed a chunk meshing bug that was causing slower cached meshing times. World editing should now feel faster and smoother. In addition, improved left-click/right-click controls.
  • 0.1.2: Fixed a chunk generation priority bug that could lead to chunks being slow to load around the player. In addition, increased voxel placement/destruction radius.
  • 0.2.0: Rewrote the engine on top of the new Geese event system. Switched to greedy meshing with LODs for voxel rendering. Added snow and the ability to import voxel models.
  • 0.3.0: Created a rigidbody physics system with connected component detection, collision detection, and collision response. Enabled multiplayer for the live demo. Fixed various bugs.
  • 0.3.1: Added task-level and data-level multithreading, alongside other optimizations for the physics engine. Fixed various bugs.
  • 0.3.2: Overhauled the networking systems related to chunk/entity synchronization. Drastically reduced network bandwidth consumption, improving multiplayer performance.
  • 0.3.3: Fixed a critical issue with network chunk synchronization.

More Repositories

1

wasm_component_layer

WebAssembly component model implementation for any backend.
Rust
48
star
2

Imp.NET

Imp.NET is a fast, high-level, object-oriented C# networking library that supports the invocation of remote methods through proxy interface objects.
C#
39
star
3

geese

Dead-simple game event system for Rust.
Rust
39
star
4

wasm_sync

Synchronization primitives for both web and native.
Rust
11
star
5

IntegratedMinecraftServer

The IntegratedMinecraftServer project seeks to provide a reliable, stable interface for managing dedicated Windows Minecraft servers. IMS runs in the background as a Windows service, manages servers, restarts them upon crashing, provides tools for optimization and management, and includes a remote web interface.
C#
10
star
6

wasm_runtime_layer

Compatibility interface for WASM runtimes.
Rust
10
star
7

BlockEscape2D

Block Escape 2D was a mobile game I created in 2018. Written in C# using Unity3D, the game consisted of guiding a cube through a maze filled with obstacles and lava.
C#
4
star
8

real_interval

Continuous interval arithmetic library.
Rust
4
star
9

modularity

WASM component loader, linker, and manager.
Rust
4
star
10

roach

Rust object archive: strongly-typed persistent key value storage.
Rust
3
star
11

preach

Platform independent data channels for WebRTC/Rust.
Rust
3
star
12

ExtensibleFtp

ExtensibleFtp provides a customizable, scalable FTP server implementation in .NET.
C#
3
star
13

wasm_main_executor

Run futures from web workers on the main browser thread.
Rust
3
star
14

geese_pool

Message-passing system for networking with Geese.
Rust
2
star
15

geese_executor

Asynchronous executor with Geese event system integration.
Rust
2
star
16

sync_rw_cell

Thread-safe version of RefCell.
Rust
2
star
17

mutability_marker

Marker types describing mutability.
Rust
2
star
18

task_pool

Flexible abstraction for task-based composable multithreading.
Rust
2
star
19

pinch

Platform independent data channels for WebRTC/Rust
Rust
1
star
20

PowerSerializer

PowerSerializer is a fast, efficient, customizable C# binary serializer that can serialize absolutely anything.
C#
1
star
21

datafrost

Data format and acceleration structure management.
Rust
1
star
22

type_enum

Create tagged unions consisting of different types.
Rust
1
star