Moondust Project

Moondust Project (somewhat informally known as PGE, Platform Game Engine project, Platformer Game Engine by Wohlstand, in the past also PGW, PlatGenWohl) is a Free Open Source Software project that most prominently consists of a game engine and toolkit. A significant goal of the project is to make it easy for developers and game makers to create their own platform-genre games.

The project originally began after a lead developer's research and interest in the fan game engine, Super Mario Bros. X, and is fully compatible with it. A significant concept that can be traced to be originating from this past, is the way the SMBX fan game allowed users to use their own existing media to create platform levels and episodes (however also containing both technical and gameplay restrictions as a Mario fan game). The current logo of the project is a Gyro cat drawn by Wohlstand.

Name of project
The Project initially had the "PlatGenWohl" codename ("Platform Game engine by Wohlstand"), later the Project was renamed into "PGE Project" codename (a short of "Platform Game Engine"). However, a time later the discussion about the final name for the project was started as the "PGE" name is too generic and has a lot of name-sake cases around the world. The discussion has taken a long time until another poll was started where the "Moondust" name was chosen by community votes closer to the 2018'th year. However, the major rebranding process wasn't started until 2021 year. The final "Moondust" name was been used at minor places until the 2020'th year where it got started to be used wider (including the official Discord server name).

The Birth of the Editor
Moondust Project was inspired by Super Mario Bros. X fan game found by Wohlstand approximately in September of 2013. The actual project was founded in March 2014 after research work of SMBX game, started in the middle of February 2014 year. Until that, the first introduction of Wohlstand wasn't met well by the SMBX community, as they first thought he was another scammer advertising a fake SMBX 1.4.

On April 28th, 2014, Kevsoft joined the PGE Project, and shortly afterward, Editor version 0.0.7-Alpha was released. The first fully-featured version with the ability to read/write files, a history manager, and full support of NPC rendering was 0.0.8-Alpha, which was released on July 13th, 2014. On October 20th of 2014, after a long time of development, the first stable and fully-featured build of the editor was released with the ability to read/write the level-, world- and interactive NPC editor files, etc. This version had a multi-configuration system which allowed the use of different content packages without needing to overwrite existing content files.

Founding the Engine
In October 2014, Wohlstand started the first sketch for the Engine. It was a simple SDL2 application with the use of Box2D physics and OpenGL rendering. After some time, he made it able to play levels with simple graphics. The playable character was just a blue rectangle. Gradually, Wohlstand implemented the support for the rest of the graphics, sound, world maps, menus, screens, etc. He made it so playable characters would be rendered correctly. The initial Lua scripting system was added to start making NPCs act as intended. Later, Wohlstand had found that Box2D doesn't give him what is needed. Therefore, he desired to code his own physics from scratch. The last version of Engine with Box2D physics was 0.0.11-pre-alpha. Since the 0.1-Alpha, the brand-new own-coded physical engine was used. Then, the world map got more functionality and introduced the working path-opener. Since that moment, the world map engine is completed and working.

The emergence of SMBX2 and Wohlstand's procrastination
Since Super Mario Bros. X2 was created at the end of 2015, Wohlstand joined the team to support several of its components on invitation by Horikawa Otane. Everything was fine. However, a year later, he got a lot of tasks at the Editor that took a lot of time. Wohlstand had no desire to work so much on the Editor as he already announced that it's already fine as-is for the current usage. Wohlstand wanted to develop the Engine as he sees it's one most important part of the Moondust Project. The team wanted more and more features in the Editor. He was worked on that a lot. The SMBX2 team didn't saw any perspectives for Moondust Engine, and instead, they were focused on the LunaLua development. In 2016, Wohlstand has described the nature of SMBX2 as the "Biggest workaround in the Universe". Horikawa Otane agreed with him. She supported Wohlstand's development of the Engine. However, a while later, the SMBX2 team majorly changed when Horikawa Otane left the project because of personal reasons. After 2016, Wohlstand started to procrastinate and switch to other projects. His biggest mistake was to care a lot about the SMBX2 development. At the end of 2019, he finally decided to reduce his attention to SMBX2 and focus on his own development process.

SMBX source code was published, founding TheXTech
Through great luck, the source code for the original SMBX game was finally opened on February 2, 2020. With it comes the huge potential to help the engine development. One month later, Wohlstand built a new project called TheXTech by porting the original source code into C++, turning the old Windows-only game into a cross-platform and functional project.

Wohlstand desired to keep two different engines for two purposes:
 * TheXTech for playing old episodes and providing full compatibility to the original SMBX game including bugs and specifics of its physics.
 * New Moondust Engine for new projects focused on modern functionality, without consideration for bugs of the old SMBX Engine.

Epilogue
The Project is still Currently Under Construction, as of now, the Editor and Development kit is currently available as a standalone application. The source code is published on the GitHub repository.

Components
The project has its separated parts: the runtime engine, and the development kit.


 * The Runtime Engine providing games playback, testing, and debug of levels with interprocess communications with the editor.

Development kit

 * Editor is the main development kit that providing the creation of levels and world maps for games.
 * Playable character calibration tool providing flexible configuring and editing of playable character sprites.
 * Maintainer providing a set of processing tools to convert music, episode files, and fix up some of the game data.
 * Music Player is a simple music player for music testing. Can play looping music and help verify them without starting the game.

Additional console tools

 * LazyFix tool is a tool that fixes "lazily-made masks" for the SMBX64 standard.
 * GIFs2PNG Converter providing conversion of SMBX64 sprites into transparent PNG images which easier to edit and use.
 * PNG2GIFs Converter providing opposite conversion of transparent PNG into SMBX64 masked GIF sprites which possible to use in old SMBX game engines.

The Team

 * Lead Developers: Wohlstand
 * Retired Developer: Kevsoft (Lead), cramps-man (Support), Axiom (Support)

Contributors

 * GFX Developers: GluigiX, Valtteri, Mikepjr, Squishy Rex

Translation to other languages
The full list of translation contributors can be found on the Translating Moondust into other languages page.