mirror of
https://github.com/AntonioND/nitro-engine.git
synced 2025-06-18 08:35:44 -04:00
3D engine for the Nintendo DS
documentation | ||
examples | ||
include | ||
licenses | ||
screenshots | ||
source | ||
tools | ||
.gitignore | ||
Makefile | ||
readme.rst |
Nitro Engine v0.7.0 =================== Introduction ------------ This is a 3D game engine, a lot of functions designed to simplify the process of making a 3D game. It isn't standalone, it needs libnds to work. However, if you are developing for the NDS it is likely that you already have it installed. If not, you need to install devkitARM and libnds. Features: - Support for static models, converted from OBJ files. - Support for animated models, thanks to the `DSMA library <https://github.com/AntonioND/dsma-library>`_, which converts MD5 models (with skeletal animation) into a format that can be rendered with hardware acceleration. - Support for all format of textures (except compressed textures). - Dual 3D (render 3D to both screens, but at 30 FPS instead of 60 FPS). - Functions to render 2D images accelerated by 3D hardware. - Basic text system. - Basic GUI elements like buttons and scrollbars. - Basic physic system: Axis-aligned bounding boxes (AABB) only. Setup ----- 1. Copy this folder (or create a symbolic link) to ``<path/to/devkitpro>/nitro-engine`` so that the Makefiles can find the library. 2. Go to that folder and run ``make``. This should build the library. If everything goes right, you're ready to go. 3. If you want to check that everything is working as expected, open one of the folders of the examples and type ``make``. That should build an ``.nds`` file that you can run on an emulator or real hardware. Note that some features of the 3D hardware aren't emulated by most emulators, so you may need to use an actual NDS to test some things. 4. By default, Nitro Engine is compiled with debug options enabled. Go to ``NEMain.h`` and comment the line ``#define NE_DEBUG`` to disable them and save CPU usage and memory. You'll need to recompile the library for the new value to take effect. Screenshots ----------- Screenshots of some of the examples included with Nitro Engine: .. |a_lot_of_balls| image:: screenshots/a_lot_of_balls.png .. |box_tower| image:: screenshots/box_tower.png .. |fog| image:: screenshots/fog.png .. |multiple_models| image:: screenshots/multiple_models.png .. |screen_effects| image:: screenshots/screen_effects.png .. |sprites| image:: screenshots/sprites.png +------------------+-------------------+ | A lot of balls | Box tower physics | +------------------+-------------------+ | |a_lot_of_balls| | |box_tower| | +------------------+-------------------+ +------------------+-------------------+ | Hardware fog | Multiple models | +------------------+-------------------+ | |fog| | |multiple_models| | +------------------+-------------------+ +------------------+-------------------+ | Screen effects | 2D sprites | +------------------+-------------------+ | |screen_effects| | |sprites| | +------------------+-------------------+ Contact ------- This project is currently hosted on GitHub at: https://github.com/AntonioND/nitro-engine If you want to contact me (Antonio Niño Díaz) directly you can email me at: antonio underscore nd at outlook dot com License ------- The code of this repository is under the MIT license. The full text of the licenses can be found under the ``licenses`` folder. Future work ----------- - Asynchronous loading of assets. - Support for compressed textures. Credits ------- - Michael Noland (joat), Jason Rogers (dovoto) and Dave Murphy (WinterMute) for libnds. - The maintainers of devkitPro. - Chishm for libfat and DLDI - The guys of gbadev for their help - Martin Korth for no$gba and gbatek - Kasikiare for NDS Model Exporter - PadrinatoR for NDS Mesh Converter - Ti-Ra-Nog for his help testing the engine