09-06-2020, 07:30 AM
(This post was last modified: 09-06-2020, 07:37 AM by kyonides.
Edit Reason: Link to its Discussion Thread
)
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.
- Load any kind of Pictures stores in JPG or PNG or TGA formats AFAIK
- Load and play any MP3 or OGG soundtrack
- Display text on screen using Normal, Bold, Italic and Underline styles
- No predefined Game Window Size!
You can change it via scripts and the engine will read it BEFORE it launches the game window!
- Execute as many custom Ruby scripts as you wish!
Just create a load.txt Text File and add the paths to all of your scripts.
No file extension is needed there.
Do not forget to leave an empty line at the bottom of this file.
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
def self.init
#add your code here if deemed necessary
self.scene = NewScene.new
end
end
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')
Load.picture('my_picture.png')
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:
- -v : Prints Roole's current version
- -h : Prints the engine's help information
Happy Game Making!
"For God has not destined us for wrath, but for obtaining salvation through our Lord Jesus Christ," 1 Thessalonians 5:9
Maranatha!
The Internet might be either your friend or enemy. It just depends on whether or not she has a bad hair day.
My Original Stories (available in English and Spanish)
List of Compiled Binary Executables I have published...
HiddenChest & Roole
Give me a free copy of your completed game if you include at least 3 of my scripts!
Just some scripts I've already published on the board...
KyoGemBoost XP VX & ACE, RandomEnkounters XP, KSkillShop XP, Kolloseum States XP, KEvents XP, KScenario XP & Gosu, KyoPrizeShop XP Mangostan, Kuests XP, KyoDiscounts XP VX, ACE & MV, KChest XP VX & ACE 2016, KTelePort XP, KSkillMax XP & VX & ACE, Gem Roulette XP VX & VX Ace, KRespawnPoint XP, VX & VX Ace, GiveAway XP VX & ACE, Klearance XP VX & ACE, KUnits XP VX, ACE & Gosu 2017, KLevel XP, KRumors XP & ACE, KMonsterPals XP VX & ACE, KStatsRefill XP VX & ACE, KLotto XP VX & ACE, KItemDesc XP & VX, KPocket XP & VX, OpenChest XP VX & ACE
Maranatha!
The Internet might be either your friend or enemy. It just depends on whether or not she has a bad hair day.
My Original Stories (available in English and Spanish)
List of Compiled Binary Executables I have published...
HiddenChest & Roole
Give me a free copy of your completed game if you include at least 3 of my scripts!
Just some scripts I've already published on the board...
KyoGemBoost XP VX & ACE, RandomEnkounters XP, KSkillShop XP, Kolloseum States XP, KEvents XP, KScenario XP & Gosu, KyoPrizeShop XP Mangostan, Kuests XP, KyoDiscounts XP VX, ACE & MV, KChest XP VX & ACE 2016, KTelePort XP, KSkillMax XP & VX & ACE, Gem Roulette XP VX & VX Ace, KRespawnPoint XP, VX & VX Ace, GiveAway XP VX & ACE, Klearance XP VX & ACE, KUnits XP VX, ACE & Gosu 2017, KLevel XP, KRumors XP & ACE, KMonsterPals XP VX & ACE, KStatsRefill XP VX & ACE, KLotto XP VX & ACE, KItemDesc XP & VX, KPocket XP & VX, OpenChest XP VX & ACE