Do you know about the"config/SMBX
" directory which contains the total game configurations? Now it's almost a full copy of the original SMBX engine's internal settings and fully compatible with them.
For implementing the main idea of project - flexible for any game configs, I am going to create the config manager part which will allow to select the game config from the configs folder.
For correctly working with SMBX's levels and episodes (especially if they contain the user graphics), you must have "Classic SMBX" configs (configs/SMBX is a "Classic SMBX" config, which is fully compatible with the original SMBX).
For expanding the list of functions of SMBX, and implementing new objects while improving the existing functions (for example, SMW-koopas, Big Boo has the turn animation in the game SMW), I am going to define a new second config, called "SMBX Extended
), which will contain the improved old SMBX's objects, and will have new objects, and the possibility to further add new objects. But, if you use the new config, all custom graphics must be converted to PNG without the use of masks (with included transparency and semi-transparency), else for using levels and episodes with (gif,jpg,bmp, etc) graphics, you must define a custom image file name for npc (I will make it possible to set it via npc.txt). (for example, using instead of the classic "npc-44.gif" the custom name and format could be "MyMegaBigBoo_muhaha.png").Note: New file formats are going to be created for new features and configs, SMBX's LVL/WLD/SAV/npc.txt are not going to be the default formats for them (although it will be still possible to open/save in SMBX's formats).
And, for engine part: irrespective of configs, I think that in the game play it is needed to implement non-existing SMBX features (compatibles can be saved), such as:in SMW:
- Mario on Yoshi can slide on a slope (Physics)
- if the inclination >=45 degrees, Mario moves down (Physics) (I think really slippery slopes will not be comfortable, and this must be configurable)
- Yoshi swallows koopa's shell after 30 seconds (Yoshi's algorithm)
- Blue Yoshi can fly only if he ate any koopa or it's shell (Yoshi's algorithm)
- If a enemy falls on Mario's head, when he is riding on Yoshi, Mario takes the hurt without losing Yoshi (in SMBX Yoshi is realized as a part of the player, but in SMW Mario and Yoshi are always independent from each other)
- Yoshi eats everything when even Mario is not on him (in SMBX if Mario gets down from Yoshi, he will spit out the caught item from his mouth)
- Without Mario, Yoshi sometimes can eat enemies (on run after he was be hurt). (In SMBX Yoshi, simply running)In SMB3 (Super Mario Bros. All Stars):
- Boom-boom have differences in algorithm (in SMBX boom-boom simply moving, in SM3 he chasing the player, example in SMB3
)in all Mario games:
- If koopa is not kicked out from his shell (on stomp to SMW-koopas), he will stand up with the shell after 30 seconds (NPC's algorithm)
- If koopa is kicked from the bottom via a block that hits him, he transforms into a "tuned shell", which is not implemented in SMBX. (This can be implemented only in SMBX Extended, because of the need for appending koopa's shell sprites with new frames or creating new NPCs like "turned koopa's shells")