3D game engine designed to be very efficient, very portable, small, and the most compatible with Blender.
Go to file
2024-09-10 00:52:39 +02:00
doc Add some documentation and fix fixdocs.nim. 2024-09-06 01:16:06 +02:00
libs SliceMem: change newSliceMem(ptr, len...) to match an example, add another. 2024-09-10 00:52:39 +02:00
src Use quality settings for BCn formats in texture_optimize. 2024-09-10 00:50:33 +02:00
.gitignore First commit. 2024-08-20 13:08:19 +02:00
.gitmodules Add support for BCn texture compression formats (except BC2, BC6) with BC7enc. 2024-09-05 00:22:05 +02:00
AUTHORS.md First commit. 2024-08-20 13:08:19 +02:00
LICENSE-AGPL First commit. 2024-08-20 13:08:19 +02:00
LICENSE-CPAL First commit. 2024-08-20 13:08:19 +02:00
myou_engine.nim First commit. 2024-08-20 13:08:19 +02:00
nim.cfg Add some documentation and fix fixdocs.nim. 2024-09-06 01:16:06 +02:00
nimdoc.cfg First commit. 2024-08-20 13:08:19 +02:00
README.md First commit. 2024-08-20 13:08:19 +02:00

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 (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

  • 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 to see examples of how to start using the engine.

Contributing

TODO

License

© 2024 The Myou Engine developers.

This project is licensed under either of

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.