Skip to content
Corey Powell edited this page May 10, 2015 · 1 revision

Project Structure

There is no hard or fast rule for Moon project structure, however if you use the default bootstrap.rb script, it will require that you have a core/load.rb and scripts/load.rb files.

tl;dr It should look something like this

my_project/
  core/
    load.rb
  resources/
    shaders/
      120/
        quad.vert
        quad.frag
        text.vert
        text.frag
      330/
        quad.vert
        quad.frag
        text.vert
        text.frag
  scripts/
    load.rb

Reasoning behind core and scripts

This is actually a convention that came from the very beginning of the project.

Originally core contained the Moon standard library, however that was later moved, but the structure remained. On the other hand, scripts were all the user scripts for the project.

Each directory contained a load.rb, you can think of it as a main.rb, that file was responsible for loading other scripts.

Shaders

Moon does not embed its shaders, reason?, we don't have one actually, I guess debugging? Anyway, you are required to copy the shaders from assets/shaders, copy the 120 and 330 directories into your projects resources/shaders. These shaders are used by Moon's Graphics classes, so if you aren't using the graphics module, you could just skip them.

Clone this wiki locally