Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
20e9846
refactor(graphics-2d): remove custom rendering core and replace with …
Exeloo Oct 1, 2025
99c40a8
feat(example): update `pong` game mechanics and graphics integration
Exeloo Oct 1, 2025
afecd5f
chore: update Jest configs and refine tsconfig paths across packages
Exeloo Oct 1, 2025
f97521b
feat(systems): start adding context to systems
MartinFillon Oct 3, 2025
4553209
feat(ecs): add ecs context to the systems
MartinFillon Oct 6, 2025
2814e4b
chore(example/pong): update dependencies, and migrate to shared ESLin…
Exeloo Oct 10, 2025
bf78b4b
chore(example/template): update dependency locking to workspace resol…
Exeloo Oct 10, 2025
1a2b769
docs(ecs): add information on building the ecs
MartinFillon Sep 2, 2025
27569c9
docs: add building and dependency docs to every readme
MartinFillon Oct 6, 2025
cebc82e
docs: add a basic introduction readme
MartinFillon Oct 9, 2025
1ea174b
refactor(ecs): extract `ECSRegistry` into a dedicated module and repl…
Exeloo Oct 10, 2025
f74340d
refactor(example/pong): update systems to use `ECSRegistry` and `ECSC…
Exeloo Oct 10, 2025
5421339
test(ecs): update `ecs-library` tests to use `ECSRegistry` for entity…
Exeloo Oct 10, 2025
13fc548
feat(core): add Context that admit a ClientLibraryManager
Exeloo Oct 10, 2025
68efe77
refactor(libs): remove `ECSContext` type in favor of `Context`
Exeloo Oct 10, 2025
3314cf9
refactor(example/pong): replace `ECSContext` with `Context` and simpl…
Exeloo Oct 10, 2025
99710ad
chore(core): remove unused `Config` class
Exeloo Oct 10, 2025
4717c5a
refactor(asset-manager): simplify the usage of asset manager
Exeloo Nov 10, 2025
7e8987d
refactor(ecs): remove `AssetManagerLibrary` and update imports for si…
Exeloo Nov 10, 2025
c2a7785
test: refactor context initialization and asset handling in library t…
Exeloo Nov 10, 2025
77f808a
refactor(asset-manager): replace generic error with `NfNotFound` for …
Exeloo Nov 10, 2025
7609915
feat(common): introduce `NfFetchException` for improved fetch error h…
Exeloo Nov 10, 2025
9e3c2c0
feat(core): introduce `EditableApplicationContext` for managing sound…
Exeloo Nov 11, 2025
a2ebe62
chore(ecs): update emscripten binding to last version
MartinFillon Nov 5, 2025
806428e
fix(ecs/zipper): zipper typing was not conform to how array are writt…
MartinFillon Nov 8, 2025
1d7b5a6
chore(example): update example with the new registry name
MartinFillon Nov 9, 2025
cd7ac6b
fix(ecs/registry): put zipper result type as a any array in order for…
MartinFillon Nov 10, 2025
cd1972a
feat(ecs): add prepending of import to lib ecs
MartinFillon Nov 18, 2025
5a49422
refactor(libraries): implement initialization validation and standard…
Exeloo Nov 10, 2025
caca8f4
chore(deps): update dependencies and migrate to Node.js 24.11.0
Exeloo Nov 11, 2025
2d48de1
refactor: migrate namespaces to `@nanoforge-dev` and update related i…
Exeloo Nov 20, 2025
b21eb45
chore: downgrade package versions to pre-release state
Exeloo Nov 20, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ jobs:
- name: "Setup node"
uses: actions/setup-node@v4
with:
node-version: 23.6.0
node-version: 24.11.0
cache: "pnpm"

- name: "Install dependencies"
Expand Down
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -227,3 +227,5 @@ dist
.nx/
.cursor/rules/nx-rules.mdc
.github/instructions/nx.instructions.md

compile_commands.json
2 changes: 1 addition & 1 deletion .nvmrc
Original file line number Diff line number Diff line change
@@ -1 +1 @@
v23.6.0
v24.11.0
46 changes: 46 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1 +1,47 @@
# Engine

This repository contains the full engine for NanoForge.
It can be used by itself.

The engine is made of multiple components:

- [ecs](packages/ecs)
- [input](packages/input)
- [core](packages/core)
- [common](packages/common)
- [graphics-2d](packages/graphics-2d)
- [asset-manager](packages/asset-manager)
- [sound](packages/sound)
- [music](packages/music)

This is the full nanoforge engine including all the default libraries.

In order to manage this project we use (pnpm)[https://pnpm.io/]

## Installing dependencies

To install dependencies run:

```sh
pnpm i
```

## Building

To build the project run:

```sh
pnpm build
```

## Tests

To run tests use:

```sh
pnpm test
```

## Setting up a test project

In order to setup a test project see (this)[https://github.com/NanoForge-dev/Engine/docs/Introduction.md]
14 changes: 14 additions & 0 deletions docs/Introduction.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# Introduction to using the Engine

Whether you work on this engine as a devlopper or you wanna use this engine you gonna want to have a test project.
This is a walkthrough on how to setup a basic project

## As a devlopper on the engine

As a devlopper you want to be able to use your changes in your project.
Therefore it is recommended to use the provided template in the [example](https://github.com/NanoForge-dev/Engine/tree/main/example/template)

## As a user

As a user you can either use the template and change the dependencies location.
Or you can create a project and add the nanoforge dependencies. Note that it is recommended to use bun as a package manager.
2 changes: 1 addition & 1 deletion eslint.config.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
import config from "@nanoforge/utils-eslint-config";
import config from "@nanoforge-dev/utils-eslint-config";

export default config;
2 changes: 1 addition & 1 deletion example/pong/.nvmrc
Original file line number Diff line number Diff line change
@@ -1 +1 @@
v23.6.0
v24.11.0
Loading
Loading