Alberto Torres
cea7df6947
* Incomplete port of myou-engine-js to nimskull, after many months of work, and a few extra features that weren't exactly necessary for a "first commit" to work. Excuse the lack of commit history up to this point. * Bare bones structure of the documentation and the process to update it. * Restructure of the whole project to have a more sensible organization. * Making submodules of forks of larger libraries. * README, licenses, AUTHORS.md.
76 lines
2.8 KiB
Markdown
76 lines
2.8 KiB
Markdown
# 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.
|