IMPORTANT NOTICE: I decited to leave the SMBX forums and I will no longer give any support for my projects here on the SMBX forums. All the support is given at official GitHub repositories or at the WohlSoft Forums (https://wohlsoft.ru/forum/), or at the official Discord Server of the team: (https://wohlsoft.ru/chat/.
Giving apologies for any inconveniences. So what exactly is this? This is a free and open-source game engine and toolkit, that allows the creation of games of the platform genre. The basic idea of this project is to make it possible for every user to create platformers with existing or self-drawn sprites. The first work on the project began in December 2013, and the project was founded in March of 2014. The project is formerly known as PGE Project (a.k.a. Platform Game Engine Project).
This Project is currently under development, but as of now, everything is available for review and testing. There Devkit packages were available. The separated Runtime Engine isn't available yet. However, it is already within the Devkit. Official page of the project: https://wohlsoft.ru/projects/Moondust/
Here you will find screenshots, videos, and stable releases downloads.
Moondust Laboratory: https://wohlsoft.ru/projects/Moondust/_laboratory/ Currently, most actual downloads are available here at laboratory. Please don't download the current stable version as it got been very outdated. If you need compatible config packs, please download them from HERE, not from the project's page which contains config packs for the stable version only.
Official Discord Server: https://discord.gg/qPBsvMy
Here you can get direct support for the Moondust Project's components (Editor, Maintainer, Engine, MusPlayer, Calibrator, etc.), for TheXTech project, my other projects, and just general talk about everything.
Note: I desired to simplify this post to simplify its maintenance and keep all detailed information in the centralized place (such as Moondust Wiki, Official Page, and GitHub) rather than copying and synchronizing it between multiple forums.
Contents
- Introduction
- Technical details
- Development plan
- Researching the original SMBX fangame
- Download Editor and experimental Engine! Introduction
Hi there!
This is a major revision to this topic's main post to announce my project called "Moondust Project" (formerly PGE Project).
So what exactly is this? this is a free and open-source alternative, advanced and exchanged implementation of SMBX's game engine which is 100% compatible with them. The main parts of it contain would be a game engine and a toolkit for creating games.
One of the purposes of the project is a giving to SMBX game a new technical platform that should continue SMBX life after abandonment by giving able to add new stuff: new playable characters, new NPCs, new blocks, new BGO, more progressive backgrounds, and more freedom with customization. The second purpose is giving able to use this SMBX-like game engine more useful for creating other non-Mario games.
I've been working on this project since at least December 2013, and after lots of hours spent researching SMBX 1.3 mechanics, I've figured out a way to retain compatibility with SMBX. This, in my opinion, is very significant as there are a lot of episodes and levels made for SMBX out there. And having a better implementation of that we can open/play/save in the original SMBX64 format is very much in need.
Currently only the devkit is available. And you can actually already use this as an alternative (and much better) development toolkit for creating/editing levels for SMBX 1.3/1.3.0.1 Technical details
I'm quite aware of the fact that VisualBasic (in which SMBX is written) is too slow for the type of purpose SMBX is created for. That's one of the reasons I'm creating my engine in C++ along with OpenGL, which means it should have much more productivity. And with the Qt library, the new engine should be able to have itself compiled on different platforms (such as Windows, macOS, Linux, etc.).
While it would have been ideal if the source code for SMBX was available, we're working on adding support for SMBX via reverse engineering instead.
Have any suggestions for this new engine? Feel free to suggest them in the (Moondust forum) thread linked here: https://wohlsoft.ru/forum/viewforum.php?f=5 Development plan
1) [completed] The reverse engineering phase, which is researching the original SMBX engine, is almost complete.
2) [released] Developing the level/world editor - Periodically I upload updated alpha versions for everyone to test new features and give feedback or report bugs.
3) [In process] Developing the engine part for play games and allow test levels in the editor.
"SMBX64" Standard: research works of the original SMBX fangame
All the documents on what I've researched, are available on this page Download Toolkit!
The toolkit has a new, more advanced, and featured editor which you can use for SMBX. This editor gives a more flexible interface, a more smart system with bug protections, with Multi-File support, customizable tilesets and counters, the multi-selecting, copy-pasting, context menu, exporting of huge screenshots of whole sections or world maps, etc...
Devkit
Get current version: Note: If you looking up for engine controlling, read this text file. In the next builds of the engine, I will add the ability to set up custom control keys.
Online installer Get Online Installer for Windows. Online installer will download and install all necessary stuff automatically!
Portable packages
Standalone archives are including Editor, Engine, Playable Character Sprite Calibrator, GIFs2PNG, PNG2GIFs, PaletteFilter, and LazyFix Tool. To get Moondust working you must download one of the configuration packages here
==============================================
Defautl controlls: <can be cusetomized in the controllers menu>
==============================================
Arrows:
--------------------
left-right - walk
Up/Down - enter into door/pipe
--------------------
Z - (jump) / enter to level from world map [on German keyboard will work Y key instead of by unknown for me reasons ]
X - (run)
A - (alt-jump) (Temporary, fly up, use it to get inaccessible heights without vines!)
S - (alt-run) (Temporary, tail-whipping to destroy any blocks over face,
S+UP - destroy blocks overhead,
S+Down - destroy blocks under self)
"~" - opens the text input box in the levels where you can type special commands:
------------------
==Level specific commands:==
donthurtme - enable/disable god mode (the player will don't get from dangerous surfaces and will don't burn in lava)
iamsuperman - the player has the ability to fly up via an alt-jump key
chucknorris - player via alt-run key will be able to destroy any nearest object except BGOs, warps, and other playable characters
iwishexitas X - exit from level with code X (replace X with unsigned integer
(usually from 1 to 8. Exit code hints you can take from a world map editor))
takesecretkeychain - enable/disable debug keys
==World specific commands:==
illparkwhereiwant - allows walking anywhere on the world map
==Common commands==
redigitiscool - spawns a dummy message box, doing nothing. Try to type the same command in the SMBX engine!
wohlstandiscool, kevsoftiscool, raocowiscool, joeyiscool - same as redigitiscool, but with other messages.
----------------------------------------------------------------------------------------------------------
Enter, Esc - pause/resume game, show pause menu
F2 - enable/disable drawing debug rectangles of the physical engine (render all hitboxes)
F3 - enable/disable printing of debugging information
F12 - take a screenshot (will be saved in the 'screenshots' folder which will be in the Moondust folder or in the %UserProfile%\.PGE_Project).
Screenshots will be written into PNG format and will have a timedate-based filename.
=======Debug keys=(disabled by default, to enable them, press "~" key and type 'takesecretkeychain')=======
F5 - pause/resume physical loop steps. Used while collisions are debugged
F6 - enable slow mode of physical loop steps. Everything will go slow. Used while collisions are debugged.
1, 2, 3, 4, 5 degits keys - spawn something effect (made temporary while effects system are debugged)
7, 8, 9, 0 - Toggle playable character and it's state:
- 7 decrease character ID
- 8 increase character ID
- 9 decrease character state ID
- 0 increase character state ID
PGE - is a codename of the project, Project will be named Moondust Project.
Notes:
If you have problems with graphics render, please, see this topic first: https://wohlsoft.ru/forum/viewtopic.php?f=40&t=142
...or write (post here, on our forum, or PM to me) to me about found bugs, this is most important Watch current Source: https://github.com/WohlSoft/Moondust-Project
(Using Qt 5, min >=Qt 5.4.0), Can by compile under Windows (MinGW), Linux (GNU Compiler, Clang) and MacOS
andialifbatara wrote:you still update this? i'll download this. I hope more language in PGE added.
Yes, I'm updating it sometimes, even I forgot to notify about PGE Engine 0.2.2.1 and PGE Editor 0.3.1.2 with some hotfixes and small improvements.
You even can watch me and my friends via GitHub on the commits page https://github.com/Wohlhabend-Networks/ ... its/master
Reserved my comment so I can keep up with development
<3
oh yes, yes I guess i should post about this.
Wohlstand has "hired" me to create the PGE Manager. I will be coding it in C# but I will be compiling it against Mono similar to the module manager for hopefully compatibility with all OS'es.
Axiom wrote:Reserved my comment so I can keep up with development
<3
oh yes, yes I guess i should post about this.
Wohlstand has "hired" me to create the PGE Manager. I will be coding it in C# but I will be compiling it against Mono similar to the module manager for hopefully compatibility with all OS'es.
You anyway can push sources to PGE repo (you have a write access ), but put your version of PGE Manager into "Manager.mono" folder ("Manager" is my C++ version which I develops slowly because spending more time to editor and to engine). Don't forget to add .gitignore into your folder or expand global .gitignore.
Hey Wohlstand, I meant to ask a while ago, but would it be possible to change the default setting of the Para-Troopas to Jump instead of Chase like in SMBX since Jumping Para-Troopas are generally used more often anyway. It just saves having to change each one if you forget about the default PGE setting. Minor issue, I know, bu thanks anyway if you could alter it.
Squishy Rex wrote:Hey Wohlstand, I meant to ask a while ago, but would it be possible to change the default setting of the Para-Troopas to Jump instead of Chase like in SMBX since Jumping Para-Troopas are generally used more often anyway. It just saves having to change each one if you forget about the default PGE setting. Minor issue, I know, bu thanks anyway if you could alter it.
Yea, lvl_npc.ini has a "default-special-value" per-NPC (and yea, lvl_npc.ini specification is biggest by quantity of various parameters http://engine.wohlnet.ru/pgewiki/Game_C ... vl_npc.ini) value which you must set to 1 (associated with jump per para-koopa), but I already fixed that, and you should download completed update of PGE include config packs (also I was added notification if you have newer PGE but older config pack, because I can add/fix a lot of config pack properties which will be much useful in a new version or even there are required for a new version of PGE)
mariofan 64 wrote:I feel like I need to say this...
Before update: Engine was slightly laggy, turning debug on/off a few times made it smooth, eventually smooth permanently.
After update: Engine said screw you, let's go 500+ fps and break speed of light. Oh, and pushed coins by koopa. Loving the fixed editor.
About engine: yea, cramps-man (my second co-developer) got same crap with 500+ fps, and we are did a lot of work to fix it, next update of engine should work fine for you? but now it is not ready, because a missing with collisions on TPS<65
PGE Editor 0.3.1.3 and PGE Engine 0.2.2.2 are available!
Download links are in the main post and you can use online installer to automatically update all config packs which you already have.
This is a bugfix update with adding of detectors API of NPC-AI which gave ability to have NPC's like thwomps, venus firetrap, boos, etc.
With updated fork of SDL2_mixer we now have support of loop points with OGG files (later tutorial will be outed). With this update of modified SDL2_mixer Same update LunaLUA got too!
- Fix of a crash on closing of musicbox while fetching in process
- Fix of desynced frames on exported images
- With updated SDL2_mixer_ext, is possible to have looped OGG files (vorbis tags LOOPSTART and LOOPEND with PCM-sample position are reqired (you can put them via Audacity))
- Basic Detectors API for NPC-AI which giving able to catch objects came to specific area
- Fixed bug with super-fast game loop
- Stompable NPC's are can be stomped!
- Work with a speed-summing part of physical engine gives ability to stay and ride on the moving objects