Managed .NET application written in C# using XNA 4.0 and IronRuby 1.1.3 to play native RPG Maker XP games with much higher performance and extensibility.
RPG Maker XP was a revolutionary application in the world of home-brew RPG creation software, and garnered a large community of fans. The inclusion using Ruby as an embedded scripting language set it apart from its predecessors, and exponentially expanded the possibilities of what could be done.
The largest drawback was many of the core classes that Ruby acted as a wrapper for were closed off and incapable of being modified in any optimal way, and caused forward progress to come to a plateau.
The aim of this application is to open the possibilities again, and remove the barriers that held back progress. The application targets the .NET Framework, using IronRuby 1.1.3 as replacement to the native version of Ruby found in RPG Maker XP. As for performance, this already drastically improves speed and potential, as well as introducing a newer equivalent version of the language. Although IronRuby was abandoned by Microsoft, it is more than enough complete and stable for this platform.
Graphics, audio, and input will be handled via XNA 4.0, using open-source C# code to wrap the XNA library to the RGSS library. Eventually, there are plans to translate all the C# code to Ruby scripts, therefore making the entire engine being written in the Ruby language and open without need for compiling any changes.
One of the most exciting features is the amount of extensibility this can add to the application. IronRuby has the ability to load .NET assemblies and directly use them without the need for complicated interop, therefore the possibilities are endless on what can be included with a game.
As an example, let's say we do not like the integrated use of XNA for audio. We would like to use NAudio, a popular managed audio library. Simply download the libraries, use
load_assembly 'NAudio'
within a script, and you can now use the NAudio library directly via writing Ruby scripts.
The possibilities are endless, and there already exists an extensive collection of free and open-source projects online that target .NET Framework, and therefore can be used directly by the program.ย