3D game engine designed to be very efficient, very portable, small, and the most compatible with Blender.
Go to file
Alberto Torres c77187fa9f Revamp shadow map system into a working state. Fix related bugs.
* `light.configure_shadow` has been added. It can either use a camera frustum or
  calculate the bounds for a static shadow that doesn't need to be updated every
  frame.
* `Light` and `newLight` have `use_shadow`, however it's not used automatically
  at the moment. Instead you should call `configure_shadow`.
* Added `updateShadowStorage` which at the moment has to be called manually
  after using `configure_shadow`.
* All shadows now share a single texture array per scene, so they can be
  accessed by index in the shader and take less shader locations and draw calls.
* Shadow map resolution is also global per scene.
* Add `set_texture_shadow` and `unset_texture_shadow` to configure a texture as
  shadow sampler.
* Bias has been removed as an option, it's calculated automatically instead.
* Bias now moves along the normal of the mesh instead of towards the light,
  allowing very small biases.
2024-09-11 20:49:00 +02:00
doc Add some documentation and fix fixdocs.nim. 2024-09-06 01:16:06 +02:00
libs Add all missing files in the packages directory. 2024-09-11 12:10:54 +02:00
src Revamp shadow map system into a working state. Fix related bugs. 2024-09-11 20:49:00 +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.