|
1 | | -# Engine |
| 1 | +<div align="center"> |
| 2 | + <br /> |
| 3 | + <p> |
| 4 | + <a href="https://github.com/NanoForge-dev"><img src="https://github.com/NanoForge-dev/blob/main/.github/logo.png" width="546" alt="NanoForge" /></a> |
| 5 | + </p> |
| 6 | + <br /> |
| 7 | + <p> |
| 8 | + <a href="https://github.com/NanoForge-dev/Engine/actions"><img src="https://github.com/NanoForge-dev/Engine/actions/workflows/tests.yml/badge.svg" alt="Tests status" /></a> |
| 9 | + <a href="https://github.com/NanoForge-dev/Engine/commits/main"><img src="https://img.shields.io/github/last-commit/NanoForge-dev/Engine.svg?logo=github&logoColor=ffffff" alt="Last commit." /></a> |
| 10 | + <a href="https://github.com/NanoForge-dev/Engine/graphs/contributors"><img src="https://img.shields.io/github/contributors/NanoForge-dev/Engine.svg?maxAge=3600&logo=github&logoColor=fff&color=00c7be" alt="contributors" /></a> |
| 11 | + </p> |
| 12 | +</div> |
2 | 13 |
|
3 | | -This repository contains the full engine for NanoForge. |
4 | | -It can be used by itself. |
| 14 | +## About |
5 | 15 |
|
6 | | -The engine is made of multiple components: |
| 16 | +This repository contains multiple packages with separate [releases][github-releases]. Nanoforge is a powerful game engine for web browser. |
7 | 17 |
|
8 | | -- [ecs-client](packages/ecs-client) |
9 | | -- [ecs-server](packages/ecs-server) |
10 | | -- [ecs-lib](packages/ecs-lib) |
11 | | -- [input](packages/input) |
12 | | -- [core](packages/core) |
13 | | -- [common](packages/common) |
14 | | -- [graphics-2d](packages/graphics-2d) |
15 | | -- [asset-manager](packages/asset-manager) |
16 | | -- [sound](packages/sound) |
17 | | -- [music](packages/music) |
| 18 | +## Usage |
18 | 19 |
|
19 | | -This is the full nanoforge engine including all the default libraries. |
| 20 | +To use Nanoforge Engine, please refer to the [CLI documentation][cli-source] ! |
20 | 21 |
|
21 | | -In order to manage this project we use (pnpm)[https://pnpm.io/] |
| 22 | +First, install the CLI : |
22 | 23 |
|
23 | | -## Installing dependencies |
24 | | - |
25 | | -To install dependencies run: |
26 | | - |
27 | | -```sh |
28 | | -pnpm i |
29 | | -``` |
30 | | - |
31 | | -## Building |
32 | | - |
33 | | -To build the project run: |
34 | | - |
35 | | -```sh |
36 | | -pnpm build |
| 24 | +```bash |
| 25 | +npm install -g @nanoforge-dev/cli |
37 | 26 | ``` |
38 | 27 |
|
39 | | -## Tests |
| 28 | +And then create a new project : |
40 | 29 |
|
41 | | -To run tests use: |
42 | | - |
43 | | -```sh |
44 | | -pnpm test |
| 30 | +```bash |
| 31 | +nf new |
45 | 32 | ``` |
46 | 33 |
|
47 | | -## Setting up a test project |
48 | | - |
49 | | -In order to setup a test project see (this)[https://github.com/NanoForge-dev/Engine/docs/Introduction.md] |
| 34 | +## Packages |
| 35 | + |
| 36 | +- `@nanoforge-dev/common` ([source][common-source]) - Common interfaces and utilities used by Nanoforge Engine |
| 37 | +- `@nanoforge-dev/core` ([source][core-source]) - A core package that contains game main loop |
| 38 | +- `@nanoforge-dev/ecs-lib` ([source][ecs-lib-source]) - A powerful data structure for managing game entities (_do not use this in your projects_) |
| 39 | +- `@nanoforge-dev/ecs-client` ([source][ecs-client-source]) - A wrapper of `@nanoforge-dev/ecs-lib` for client-side usage |
| 40 | +- `@nanoforge-dev/ecs-server` ([source][ecs-server-source]) - A wrapper of `@nanoforge-dev/ecs-lib` for server-side usage |
| 41 | +- `@nanoforge-dev/config` ([source][config-source]) - A wrapper of `class-validator` and `class-transformer` to imports validation and transformation decorators |
| 42 | +- `@nanoforge-dev/graphics-2d` ([source][graphics-2d-source]) - A base 2D graphics library |
| 43 | +- `@nanoforge-dev/asset-manager` ([source][asset-manager-source]) - A manager for loading assets to uniform workwith between client and server |
| 44 | +- `@nanoforge-dev/network-client` ([source][network-client-source]) - A network lib with tcp and udp support for client-side usage |
| 45 | +- `@nanoforge-dev/network-server` ([source][network-server-source]) - A network lib with tcp and udp support for server-side usage |
| 46 | +- `@nanoforge-dev/input` ([source][input-source]) - An input manager for handling keyboard and mouse events |
| 47 | +- `@nanoforge-dev/music` ([source][music-source]) - A music player for your game |
| 48 | +- `@nanoforge-dev/sound` ([source][sound-source]) - A sound manager for your game |
| 49 | + |
| 50 | +## Contributing |
| 51 | + |
| 52 | +Please read through our [contribution guidelines][contributing] before starting a pull request. We welcome contributions of all kinds, not just code! If you're stuck for ideas, look for the [good first issue][good-first-issue] label on issues in the repository. If you have any questions about the project, feel free to ask them on [Discussions][discussions]. Before creating your own issue or pull request, always check to see if one already exists! Don't rush contributions, take your time and ensure you're doing it correctly. |
| 53 | + |
| 54 | +## Help |
| 55 | + |
| 56 | +If you don't understand something in the documentation, you are experiencing problems, or you just need a gentle nudge in the right direction, please ask on [Discussions][discussions]. |
| 57 | + |
| 58 | +[contributing]: https://github.com/NanoForge-dev/Engine/blob/main/.github/CONTRIBUTING.md |
| 59 | +[discussions]: https://github.com/NanoForge-dev/Engine/discussions |
| 60 | +[cli-source]: https://github.com/NanoForge-dev/CLI |
| 61 | +[github-releases]: https://github.com/NanoForge-dev/Engine/releases |
| 62 | +[asset-manager-source]: https://github.com/NanoForge-dev/Engine/tree/main/packages/asset-manager |
| 63 | +[common-source]: https://github.com/NanoForge-dev/Engine/tree/main/packages/common |
| 64 | +[config-source]: https://github.com/NanoForge-dev/Engine/tree/main/packages/config |
| 65 | +[core-source]: https://github.com/NanoForge-dev/Engine/tree/main/packages/core |
| 66 | +[ecs-client-source]: https://github.com/NanoForge-dev/Engine/tree/main/packages/ecs-client |
| 67 | +[ecs-lib-source]: https://github.com/NanoForge-dev/Engine/tree/main/packages/ecs-lib |
| 68 | +[ecs-server-source]: https://github.com/NanoForge-dev/Engine/tree/main/packages/ecs-server |
| 69 | +[graphics-2d-source]: https://github.com/NanoForge-dev/Engine/tree/main/packages/graphics-2d |
| 70 | +[input-source]: https://github.com/NanoForge-dev/Engine/tree/main/packages/input |
| 71 | +[music-source]: https://github.com/NanoForge-dev/Engine/tree/main/packages/music |
| 72 | +[network-client-source]: https://github.com/NanoForge-dev/Engine/tree/main/packages/network-client |
| 73 | +[network-server-source]: https://github.com/NanoForge-dev/Engine/tree/main/packages/network-server |
| 74 | +[sound-source]: https://github.com/NanoForge-dev/Engine/tree/main/packages/sound |
| 75 | +[good-first-issue]: https://github.com/NanoForge-dev/Engine/contribute |
0 commit comments