Open Ruby Game Scripting System (or ORGSS) is a specification I am currently working on in my spare time that intends to be 100% compatible with RGSS 1.02e, with the exception of Win32API, with several API modifications to extend the system's capabilities.
Any suggestions, recommendations, or corrections are very welcome.
Current progress (parity with RGSS 1.02e has not yet been achieved; however, I intend to synchrnosize this with work on RGame, a Mac implementation of RGSS 1.02e I am also working on in my spare time):
Terms
- "Library:" "Library," when used in an ORGSS context, refers to the underlying implementation of ORGSS. For example, RGSS102E.dll forms the "library" for RGSS 1.02e.
Graphics ModuleThe Graphics module is used to control framerate and display settings.
- Graphics.fullscreen?: Returns true if the library currently displays in fullscreen mode, false otherwise.
- Graphics.fullscreen=(argument): Sets the current fullscreen state to the single argument. If the argument evaluates to true, the library will begin displaying in fullscreen mode, if possible. Returns the current fullscreen state in a fashion equivalent to Graphics.fullscreen?.
- Graphics.update: Commands the library to update the display, rendering all sprites and viewports. A call to this method will also block Ruby-side execution in an effort to throttle the frame rate.
Input ModuleThe Input module is used to gather keyboard input data.
- Input.update: Updates the current Input state, replacing the Input data with new information gathered since the last call.
- Input.trigger?(...): Takes one or more arguments, all of which should be strings. If at least one character from any of the strings corresponds to a key has been pressed down between the last call to Input.update and the one preceding it, returns true; otherwise, false.
- Input.release?(...): Similar to Input.trigger?; takes one or more arguments, all of which should be strings. If at least one character from any of the strings corresponds to a key that has been released between the last call to Input.update and the one preceding it, returns true; otherwise, false.
- Input.press?(...): Similar to Input.trigger? and Input.press?; takes one or more arguments, all of which should be strings. If at least one character from any of the strings corresponds to a key that is currently pressed, returns true; otherwise, false.
Audio ModuleThe Audio module is used to play audio files.
- Audio.play_bgm(name, volume, pitch): Attempts to load and play the BGM file corresponding with name at a volume volume and pitch pitch.
- Audio.stop_bgm: Stops playing the current BGM, if any.
- Audio.play_bgs(name, volume, pitch): Attempts to load and play the BGS file corresponding with name at a volume volume and pitch pitch.
- Audio.play_me(name, volume, pitch): Attempts to load and play the ME file corresponding with name at a volume volume and pitch pitch.
- Audio.play_se(name, volume, pitch): Attempts to load and play the SE file corresponding with name at a volume volume and pitch pitch.
- Audio.stop_se: Stops playing the current SE, if any.