Skip to content

syelan34/quicklime

Repository files navigation

quicklime quicklime logo


What is it?

quicklime is a 3D game engine for Nintendo 3DS written in C++, with the intention of providing many of the utilities needed to create nearly any game. It uses an entity-component system provided by the entt library in order to allow flexibility of usage, and provides several custom file types including a scene descriptor, binary model format (including material definitions an natived skeletal animation support), and metadata format.

Currently, it is a work in progress, with only the backend being mostly complete, and the front-end in a much lesser state of development. The intention is to provide an easy-to-use graphical interface for development similar to that of other game engines such as Unity and Godot.

How to build

  1. Install devkitpro 3ds-dev package according to devkitpro getting started instructions.
  2. Clone repository
  3. Run make in repository directory

How to use the engine

Scripts

To create a new script, make a new class extending the Script class (defined in script.h) which is where all the code will go, and place it in your asset folder. It is very similar in utilisation to Unity scripts, look at the example scripts to see how to write it. (once those are added)

Materials

Material source code

To create a material, copy one of the examples and edit the code as you need. You can store the data to be passed to the constructor in a .qlmtl file, which needs to be placed in the same location as the .qlmdl model and said model needs to reference it by name. Eventually I might make an app for this (currently in the works but not done). Then, you can get back those parameters however you choose, since the model loader will just give you a file pointer to whatever file is specified in the model. Again, see the example materials to see how to read a file.

Material files

These contain the data to be input to the shader code. This will vary depending on the shader chosen, which is specified by name via a null-terminated string at the beginning of the file.

Models

Models can be imported by adding the collada model to the asset folder, then when building, a script will generate a .qlmdl model and .qlmtl material. You can then optionally move those models back to the original folder and remove the collada model (so that the models aren't regenerated every build), and you can edit the material file to select what shader is being used, what data etc

Objects

Objects can be added to the scene by adding them to a scene file. Check the docs to see the syntax of that. Once the desktop editor is developed it should handle creating and editing scene files for you.

About

3DS Homebrew 3D Game Engine

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •