chunklands / chunklands

3D Game in NodeJS/OpenGL

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Chunklands

This page is designed for developers.

If you want to read more of the project, goals, etc. please have a look at chunklands.de.

Notice: Breaking change

Former Chunklands architecture (single-threaded) had performance issues. POC of executor-architecture was merged into master to see daily process on master.

Still the set of features is not fully implemented, but we decided to merge it now.

It will take some time to support all old features. Please also consider the documentation to be out-dated.

Technologies

C++ NodeJS N-API boost OpenGL clang

Installation

Requirements:

  • node.js 14+
  • clang-10+
  • cmake 3.0+ (for glfw)

Linux

make setup

MacOS

make setup

MacOS ships apple clang. It's likely to be incompatible, so another vendor-free clang version is needed.

brew install llvm

# add this to your .env file
cat .env
# CLANG_BIN=/usr/local/opt/llvm/bin/clang
# CLANG_TIDY_BIN=/usr/local/opt/llvm/bin/clang-tidy

Windows:

not supported, sorry

Development

Build / Run

Variant 1 - dev build, watch and run

  1. watch files and build dev
npm run dev
  1. start game
npm start

Variant 2 - dev build and run

build dev and run

npm run build:dev && npm start

Variant 3 - prod build and run

build prod and run

npm run build:prod && npm start

or simply:

npm run play

Other commands

Clean

remove /build directory

make clean

Links

Progress

Current status:

Current Result

About

3D Game in NodeJS/OpenGL


Languages

Language:C++ 62.9%Language:JavaScript 16.1%Language:TypeScript 12.6%Language:HTML 7.0%Language:GLSL 1.5%Language:Makefile 0.1%