• Stars
    star
    610
  • Rank 73,497 (Top 2 %)
  • Language
    JavaScript
  • License
    MIT License
  • Created almost 10 years ago
  • Updated over 1 year ago

Reviews

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

Repository Details

Experimental voxel game engine.

noa-engine

An experimental voxel game engine.

Some projects using noa:


Usage

The easiest way to start building a game with noa is to clone the examples repo and start hacking on the code there. The comments in the hello-world example source walk through how to instantiate the engine, define world geometry, and so forth. The example repo also shows the intended way to import noa's peer dependencies, test a world, build for production, etc.

Docs

See the API reference for engine classes and methods.

Documentation PRs are welcome! See the source for details, API docs are generated automatically via npm run docs.

Status, contributing, etc.

This engine is under active development and contributions are welcome. Please open a discussion issue before submitting large changes. PRs should be sent against the develop branch!

Code style/formatting are set up with config files and dev dependencies, if you use VSCode most of it should work automatically. If you send PRs, please try to be sorta-kinda consistent with what's already there.

Change logs

See history.md for full changes and migration for each version.

Recent changes:

  • v0.33:

    • Much improved API docs
    • Terrain now supports texture atlases! See registry.registerMaterial.
    • Added a fast way to specify that a worldgen chunk is entirely air/dirt/etc.
    • Modernized keybinds to use KeyboardEvent.code strings, and changed several binding state properties
    • Bunch of internal improvements to support shadows - see examples
  • v0.32: Fixes npm versioning issue - no code changes.

  • v0.31:

    • Change the speed of the world! See noa.timeScale
    • Now possible to control chunk processing order: noa.world.chunkSortingDistFn
    • Much improved type exports and API docs
  • v0.30:

    • Engine now a named export, use import {Engine} from 'noa-engine'
    • many performance and size optimizations
    • now generates proper type declarations and API references!
    • can now configure separate vert/horiz values for chunk load distance
    • core option tickRate is now in ticks per second, not ms per tick
    • adds several init options, e.g. maxRenderRate, stickyFullscreen
  • v0.29:

    • maximum voxel ID is now 65535
    • adds option worldGenWhilePaused
    • adds option manuallyControlChunkLoading and related APIs
    • performance and bug fixes

Credits

Made with 🍺 by @fenomas, license is MIT.

Uses Babylon.js for 3D rendering.

More Repositories

1

glsl-projectron

WebGL demo to evolve data that projects into a given target image
JavaScript
321
star
2

wasgen

Web Audio sound generator
JavaScript
70
star
3

voxel-physics-engine

Simple but physical engine for voxels. Demo:
JavaScript
70
star
4

fast-voxel-raycast

Fast raycasting through voxels.
JavaScript
66
star
5

wafxr

sound effects for the web
JavaScript
59
star
6

generator-awesome

Experimental plugin for Photoshop's "Generator" plugin layer based on node.js.
JavaScript
35
star
7

noa-examples

Example worlds built on the `noa` voxel engine
JavaScript
34
star
8

ent-comp

A light, fast Entity Component System in JS
JavaScript
31
star
9

cep-sample-extension

アドビツールのHTML+Node.jsエクステンションの参考例
CSS
21
star
10

game-inputs

A simple module for abstracting key/mouse input for games. Demo:
JavaScript
20
star
11

voxel-aabb-sweep

Sweep an AABB through voxels and find collisions
JavaScript
13
star
12

babylon-atlas

A texture atlas manager for Babylon.js
JavaScript
12
star
13

noa-testbed

Test world for voxel game engine.
JavaScript
11
star
14

edge-parallax

Parallax with Edge Animate demo --
JavaScript
11
star
15

webaudio-instruments

Play tones from MIDI-like instruments, without sound fonts or audio files
JavaScript
10
star
16

wp2harp

Convert a wordpress XML dump to barebones harp.js
JavaScript
9
star
17

edge-animate-video-sync

Demo of making page animations sync to embedded video with Edge Animate
JavaScript
8
star
18

webaudio-viz

Minimally draws web-audio data to a canvas
JavaScript
7
star
19

noa-hello-world

Minimal implementation of a voxel game built on noa. Demo:
JavaScript
5
star
20

mesh-particle-system

Particle system for Babylon.js that composites like a standard mesh
JavaScript
5
star
21

micro-game-shell

Minimal game shell: provides tick/render events, and manages pointerLock/fullscreen/resize
JavaScript
5
star
22

webaudio-music

Example project for dynamic webaudio music with hot-reloaded modules
JavaScript
5
star
23

param-enveloper

A sane way to do complex envelopes in WebAudio
JavaScript
4
star
24

ExtensionExplorer

Early experiment into extension development
JavaScript
4
star
25

advent-2022

Solutions for advent-of-code 2022
JavaScript
4
star
26

ractive-drag-events

HTML5 drag/drop proxy events for a Ractive element
HTML
4
star
27

noa-lt

'Slides' for an LT at Chrome Tech Talk #08
JavaScript
4
star
28

generator-awesome-ja

testing
JavaScript
3
star
29

CEP-test

Testing out CEP
JavaScript
3
star
30

cannon-bjs-test

Experimenting with a voxel shape for cannon-js
JavaScript
3
star
31

abstract-pathfinder

Completely agnostic A* pathfinding
JavaScript
3
star
32

noa-talk

"Slides" for a talk on voxels, WebGL, and noa
JavaScript
2
star
33

fen-bench

A small, sane JS micro-benchmark library
JavaScript
2
star
34

Flash-HTML-demos

Several demos for taking Flash animations to HTML5 that I presented at CEDEC 2013. | CEDECでプレゼンしたいくつかのFlash→HTML5のデモ。
JavaScript
2
star
35

ShowMyScreen

A minimal AIR app that grabs video from an installed webcam and displays it in a resizable window.
ActionScript
2
star
36

MaxGameLab

ActionScript
1
star
37

ndhash

Fast, simple library to hash integer inputs into random-looking output.
JavaScript
1
star
38

abstract-genetic-solver

A simple asynchronous genetic solver that's agnostic about genome types, etc.
JavaScript
1
star
39

js-perf-talk

Talk on deep magic of JS/v8 performance
JavaScript
1
star
40

babylon-atlas-sprite

A texture atlas enabled Babylon.js sprite.
JavaScript
1
star
41

voxel-fps-controller

FPS-style player/camera controller for experimental branch of voxeljs#ndarray. Demo:
JavaScript
1
star
42

worker-buffer-example

Sample app to test timing of offloading buffer operations to a worker
JavaScript
1
star
43

voxel-testbed

Experimental branch of voxeljs#ndarray
JavaScript
1
star
44

advent-2023

JS/node solutions for Advent of Code 2023
JavaScript
1
star