Roole Game Engine - Printable Version +- Save-Point (https://www.save-point.org) +-- Forum: Material Development (https://www.save-point.org/forum-8.html) +--- Forum: Tools (https://www.save-point.org/forum-42.html) +--- Thread: Roole Game Engine (/thread-8162.html) |
Roole Game Engine - kyonides - 09-06-2020 Roole Game Engine
You are free to visit its GitHub Repository
Introduction Well, you know me, I love dealing with a couple of game engines. This is especially true if talking about Linux or Cross Platform applications. There are a few based on Ruby either completely or partially and Roole is no exception here. Roole's source code is based on Ruby Gosu. This other engine depends on SWIG to make it work on any computer. Roole does not care about it for it has been implemented on custom Ruby and CRuby and C++ code instead of using any large glue code like SWIG's. It is called Roole because it is based on Ruby... In the future it can be used to make your custom Role Play Games And perhaps because it rules to make a open source engine? Warning!
You will need to compile it yourself on your OS in order to be able to actually play with it.
Don't worry!
You can clone my repository on your PC or download it as a ZIP file.
So far I can guarantee it should work on several Linux distros because Gosu already does that. I am unsure if I will be able to compile it for Windows but you still can do it yourself. Kicking SWIG's Ass for Good! Usually experienced programmers would prefer to implement a library like SWIG to make it cross platform but it really gets in your way when trying to compile any project using recent versions of Ruby. Plus it adds LOTS of unoptimized code that makes it run functions that expect you to pass several parameters only to later tell you it only accepted 0 or 1 or 2 arguments at most. Seriously, SWIG? Since I have already met with programmers that deeply hate SWIG if we are talking about medium sized and large projects, well, I am trashing it here. What exactly are you able to do with Roole? Good question! I guess it's pretty much the same you can do with any Ruby Gosu project.
Default Scripts
In Roole Game Engine's case it'd be... Code: Code: Scene.init Actually it's a hidden script by default. You just need to define the contents of Scene.init method like this Code: Code: module Scene How do you close the game without resorting to a hard reset? Code: Scene.close Loading and Caching Pictures If you wish you can load and keep a copy of your backdrop or character spriteset or face or simple picture via the Load Module's convenient functions. Code: Load.backdrop('my_backdrop.jpg') What it does is to call the Sprite class to make a new sprite you can play with and store it in a specific Hash. Then it returns a duplicate so you will not end up saving a modified version of that sprite by mistake. Thus you will be able to reduce the number of times you actually make the engine search any given file and seek its actual contents. Linux Shell Commands For those unafraid of using your XTerm related console on Linux, here is a short list of available commands:
Happy Game Making!
RE: Roole Game Engine - kyonides - 09-07-2020 Audio Module
Well, I also added Roole's own Audio module to let you handle certain audible aspects of your game. Audio module has several module functions like:
Song is like the BGM while Sample is like the SE. You can create a new instance of Song following this example: Code: @song = Audio::Song.new("my song.mp3", true) Or skip true and it will not loop at all. That is highly convenient for playlists by the way. Of course, both Song and Sample do have their own methods like:
Code: @song = Load.bgm('this song.ogg', true) Happy Game Breaking!
|