myou-engine/README.md

77 lines
2.8 KiB
Markdown
Raw Normal View History

# Myou Engine
Myou Engine is a 3D game engine designed to (eventually) be very efficient, very
portable, small, and the most compatible with Blender. The main goal is to be
used for the Myou project, with the highest performance possible in standalone
VR headsets as lowest common denominator.
# Features
* It runs on Windows, Linux, MacOS, iOS, Android, and web.
* It can load many file formats, but it's particularly well suited to load
`.blend` files from Blender 3.x and 4.x.
* It supports Blender material nodes as-is. The vast majority of nodes are
supported with the exception of procedural textures at the moment. Shader
nodes are implemented with replaceable sets of GLSL libraries.
* Rendering of cubemap probes with parallax correction.
* Shadows updated in real time or at fixed points for performance.
* We will expand this list while we finish the port.
# Development
So far, most of this engine is a port of the engine of the same name for
JavaScript, but written in a very fast statically typed language. Some parts of
it have been completely rewritten.
# Programming language
Myou Engine is written in [Nimskull](https://github.com/nim-works/nimskull)
(temporary name), a fork of Nim that aims to be a programming language that is
safe, easy to learn (for a systems language), very expressive and fast to
develop for. Memory management is automatic but it doesn't use garbage
collection, which makes it very well suited for videogame development.
This Myou Engine port was started in Nim but we switched mid way to Nimskull
because we feel it has a more solid foundation with a much smaller surface for
unexpected behaviour. We also feel that the values of the Nimskull developers
align much better with ours than those of the original developers.
# Getting started
* Install [Nimskull](https://github.com/nim-works/nimskull)
* Clone this repository with all submodules
`git clone --recursive https://git.myou.dev/MyouProject/myou-engine`
* Add this to your `nim.cfg` file in your project:
`path:"../myou-engine/libs/packages"`
* Change `..` by the actual location of `myou-engine` if necessary.
* Read the [documentation](https://myou.dev/engine/documentation/) to see
examples of how to start using the engine.
# Contributing
TODO
# License
© 2024 [The Myou Engine developers](AUTHORS.md).
This project is licensed under either of
- [Common Public Attribution License, Version
1.0](https://opensource.org/license/cpal_1-0) ([`LICENSE-CPAL`](LICENSE-CPAL))
- [GNU Affero General Public License, Version
3](https://www.gnu.org/licenses/agpl-3.0.html)
([`LICENSE-AGPL`](LICENSE-AGPL))
at your option.
If you choose the CPAL license you are not required to publish your source code,
but you're required to show attribution to the user, e.g. by preserving the
splash screen of the engine.