Roole Game Engine
#1
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 Ruby...
In the future it can be used to make your custom Role Play Games Grinning
And perhaps because it rules to make a open source engine? Happy with a sweat

Warning!
You will need to compile it yourself on your OS in order to be able to actually play with it. Laughing + Tongue sticking out
Don't worry! Grinning 
You can clone my repository on your PC or download it as a ZIP file. Two Thumbs Up!

So far I can guarantee it should work on several Linux distros because Gosu already does that. Grinning 
Thinking I am unsure if I will be able to compile it for Windows but you still can do it yourself. Laughing


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. Serious 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. Laughing


What exactly are you able to do with Roole?

[Image: think.gif] 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 Happy with a sweat
  • No predefined Game Window Size! [Image: shocked.gif]
    You can change it via scripts and the engine will read it BEFORE it launches the game window! Grinning  
  • Execute as many custom Ruby scripts as you wish! Winking
    Just create a load.txt Text File and add the paths to all of your scripts.
    No file extension is needed there.
    Blame Do not forget to leave an empty line at the bottom of this file.

Because it features a TrueType binding as the library in charge of all string characters to be rendered on screen, it's not possible to offer you some Outline style by default. [Image: sad.gif]

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
Pretty easy don't you think? Tongue sticking out


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. Winking

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
You can keep track of previous development stages here.
Grinning 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.

[Image: SP1-Scripter.png]
[Image: SP1-Writer.png]
[Image: SP1-Poet.png]
[Image: SP1-PixelArtist.png]
[Image: SP1-Reporter.png]

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! Laughing + Tongue sticking out

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
Reply }
#2
Audio Module

Well, I also added Roole's own Audio module to let you handle certain audible aspects of your game. Grinning 

Audio module has several module functions like:
  • Audio.state - Returns the current state, true stands for ON, etc.
  • Audio.on! and Audio.off! - Turn on or off the Audio.
  • Audio.on? or Audio.off? - Is it on or not?
  • Audio.current_song - Returns the song currently being played by the engine.
  • Audio.bgm_volume and Audio.bgm_volume=
  • Audio.se_volume and Audio.se_volume=
Audio also have two embedded classes, namely Song and Sample.
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. Winking That is highly convenient for playlists by the way. Grinning

Of course, both Song and Sample do have their own methods like:
  • volume and volume=
  • filename
  • play
Song also include:
  • playing?
  • resume
  • pause and paused?
  • stop and stop?
Sample features this calls instead:
  • speed and speed= and their pitch variants
  • pan and pan=
Obviously, you can rely on Roole's Load module to keep them at hand. Winking 

Code:
@song = Load.bgm('this song.ogg', true)
Happy Game Breaking! Laughing
"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.

[Image: SP1-Scripter.png]
[Image: SP1-Writer.png]
[Image: SP1-Poet.png]
[Image: SP1-PixelArtist.png]
[Image: SP1-Reporter.png]

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! Laughing + Tongue sticking out

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
Reply }


Possibly Related Threads…
Thread Author Replies Views Last Post
   Smile Game Builder JayRay 0 2,402 04-22-2022, 02:26 AM
Last Post: JayRay
   LIST of GAME MAKERS kenpachi zaraki 0 5,022 12-16-2018, 08:15 PM
Last Post: kenpachi zaraki
   Game-changing spriting tool hanetzer 3 7,802 03-25-2013, 02:24 PM
Last Post: hanetzer
   Video Game Name Generator amp 3 9,058 05-17-2010, 06:24 PM
Last Post: Boot



Users browsing this thread: 1 Guest(s)