TLDR: Noble is a language implementation and VM platform for game-development on low-end hardware.
Noble is a general-purpose programming language (GPL) and stack-based virtual-machine (VM) implementation written in C++ for game development on a wide range of hardware. It aims to provide a Object-Oriented (OO) and Garbage-Collected (GC) VM and accompanying GPL for 2D graphics-based game-development on a wide range of hardware devices, and aims to be lightweight enough to run on very low-end embedded devices such as Atmel ATMega megaAVR series chips as well as conventional desktop envrionments.
Noble GPL ("Noble") is designed to be largely hardware-agnostic. The Noble GPL compiler is designed to be run on a conventional desktop envrionment, and produces Noble Assembly Language (NAL) sequences which can be run by any conforming VM implementation.
Noble is a weakly-typed, late-bound language based heavily on the Lox language by Robert Nystrom. It aims to provide a simple Object-Oriented language with an emphasis on game-development.
Noble Assembly Language (NAL) is the output language produced by the Noble compiler and interpreted by Noble VM implementations. It has the following properties:
8-Bit Instruction Set
NAL uses an 8-bit instruction set. This is designed to have the lowest memory footprint possible per instruction and be as compatible as possible with a wide range of hardware, including platforms using 8-bit general-purpose registers such as in the ATMega megaAVR microcontroller series.
16-Bit Address Space
By default Noble has a 16-bit address space and is capable of addressing up to 64KB of memory, but can be configured to target 32 or 64-bit address spaces using the SET_ADDRESS_32 or SET_ADDRESS_64 compiler flags.
Documentation is automatically deployed from the main branch and is found here.