Code Monkey home page Code Monkey logo

noa's Introduction

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.

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.

noa's People

Contributors

fenomas avatar dependabot[bot] avatar nesh108 avatar heath123 avatar rasmuserik avatar terrac avatar n4o847 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.