All Projects → andyhall → Noa

andyhall / Noa

Licence: mit
Experimental voxel game engine.

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Noa

Sucle
Common Lisp Voxel Game Engine
Stars: ✭ 239 (-35.58%)
Mutual labels:  game-engine, voxel
Expo Voxel
🎮🌳 Voxel Terrain made in React Native. ∛
Stars: ✭ 169 (-54.45%)
Mutual labels:  game-engine, voxel
Voxelman
Plugin-based client-server voxel game engine written in D language
Stars: ✭ 105 (-71.7%)
Mutual labels:  game-engine, voxel
Terasology
Terasology - open source voxel world
Stars: ✭ 3,247 (+775.2%)
Mutual labels:  game-engine, voxel
Obengine
2D Game Engine with Lua Scripting made on top of SFML !
Stars: ✭ 335 (-9.7%)
Mutual labels:  game-engine
Melonjs
a fresh & lightweight javascript game engine
Stars: ✭ 3,721 (+902.96%)
Mutual labels:  game-engine
Flying Squid
Create Minecraft servers with a powerful, stable, and high level JavaScript API.
Stars: ✭ 311 (-16.17%)
Mutual labels:  voxel
Rabbittoolbox
🤸🏾‍♀️👗开源的动画渲染软件,提倡以简单、易用,高质量的物理演算以及渲染质量和性能,为喜爱二次元动画的用户降低视频制作门槛
Stars: ✭ 309 (-16.71%)
Mutual labels:  game-engine
Monogatari
Monogatari is a simple web visual novel engine, created to bring Visual Novels to the web.
Stars: ✭ 357 (-3.77%)
Mutual labels:  game-engine
Urho3d
Cross-platform 2D and 3D game engine
Stars: ✭ 3,767 (+915.36%)
Mutual labels:  game-engine
Pixel
A hand-crafted 2D game library in Go
Stars: ✭ 3,756 (+912.4%)
Mutual labels:  game-engine
Games
🎮 A list of popular/awesome video games, add-ons, maps, etc. hosted on GitHub. Any genre. Any platform. Any engine.
Stars: ✭ 18,676 (+4933.96%)
Mutual labels:  game-engine
Blueshiftengine
Blueshift is a cross-platform 3D game engine implemented in C++. it's free, open-source, and works on Windows, macOS, iOS, and Android. The project is currently in an early stage of development.
Stars: ✭ 347 (-6.47%)
Mutual labels:  game-engine
Godex
Godex is a Godot Engine ECS library.
Stars: ✭ 307 (-17.25%)
Mutual labels:  game-engine
Egret Core
Egret is a brand new open mobile game and application engine which allows you to quickly build mobile games and apps on Android,iOS and Windows.
Stars: ✭ 3,631 (+878.71%)
Mutual labels:  game-engine
Butano
Modern C++ high level GBA engine
Stars: ✭ 304 (-18.06%)
Mutual labels:  game-engine
Overload
3D Game engine with editor
Stars: ✭ 335 (-9.7%)
Mutual labels:  game-engine
Lumos
Cross-Platform C++ 2D/3D game engine
Stars: ✭ 343 (-7.55%)
Mutual labels:  game-engine
Magnum
Lightweight and modular C++11 graphics middleware for games and data visualization
Stars: ✭ 3,728 (+904.85%)
Mutual labels:  game-engine
Limonengine
3D FPS game engine with full dynamic lighting and shadows
Stars: ✭ 331 (-10.78%)
Mutual labels:  game-engine

noa-engine

An experimental voxel engine.

Example games:

  • Minecraft Classic - official minecraft game built on this engine
  • noa-lt - game world containing "slides" for a talk I gave on voxels in JS
  • noa-examples - repo with minimal hello-world and testbed game worlds
  • old testbed - outdated, but colorful

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.

To hack on the noa engine itself, you'll want to clone this repo alongside your game content, and make the latter depend on the former with a local file dependency (i.e. file:../noa in package.json). Note however that webpack is picky about this - see the examples readme for details.

Docs

See the API reference for an overview of engine classes and methods. Docs are evolving though, some details are only documented in source comments. Documentation PRs are welcome!

Status, contributing, etc.

This library is under active development and contributions are welcome! If you have a nontrivial feature in mind, probably best to open a discussion issue first though. The goal of this module is minimally only do voxel-specific things, and otherwise to stay out of your way.

Please note that all feature work is in the develop branch; please send any PRs against that branch!

For code style/formatting, the repo includes config files for eslint and js-beautify, which are both dev dependencies. If you use VSCode for editing, here are the extensions I use to run them automatically: beautify, eslint.

Change logs

See history.md for changes and migration info from each version.

Migration notes:

  • v0.28: improves swapping between world data sets (see noa.worldName).
    Removes duplicated voxel padding in each chunk (this means world generation no longer needs to be deterministic!)
  • v0.27: adds world origin rebasing. If you encounter new bugs related to entity positions, see positions.md
  • v0.26: game clients should declare a dependency on @babylon/core, rather than manually loading babylon.js and leaving it in global scope. This allows tree-shaking to happen, greatly reducing (production) bundle sizes for typical games. For sample code and configs see noa-examples.

Credits

Made with 🍺 by Andy Hall, license is MIT.

Uses Babylon.js for 3D rendering.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].