Allegro.cc - Online Community

Allegro.cc Forums » The Depot » RAGE a 2d game engine made using allegro 5

This thread is locked; no one can reply to it. rss feed Print
RAGE a 2d game engine made using allegro 5
ArekXV
Member #15,158
May 2013

Hi guys, I'm not sure if this topic should go here or not, sorry if I missed the forum.

This is a game engine I've been working on past few months. It's a game engine made using C++ and Allegro Game Library. Games are made using scripting language Ruby.

It currently has loads of features like loading, showing and manipualting images; playing audio, grabbing input from keyboard, mouse and joysticks, Fragment and Vertex shaders, events, fonts, PhysFS support, UTF-8, drawing primitives, color operations, and more.

I am currently using Allegro 5.0 branch and have ported almost all features of it into the engine.

Ruby is a good choice for me (afar from being the awesome language that I love) because it's portable, object-oriented with easy and powerful syntax and a garbage collector (which became really awesome as of version 2.0.0).

Allegro was the first game library I've worked with when I started with C++ and it was so easy to figure out, just awesome.

I've even extended a bit of PhysFS support so that you can zip everything into one package and append it at the end of executable file of the engine and you will have a all-in-one game.

Currently I know that it can work both on Linux and Windows. I'm planing on extending support to OS X, iOS and Android (if possible).

It's still in beta but I plan on finishing stable version somewhere around December. Features planned for stable version are:
- Network Sockets
- Box2D API for physics
- Particle engine (which is finished already :))

It's open-source (and it will be with a zlib license when stable version comes out), so you can check it out here: https://github.com/ArekX/RAGE

Latest preview build is available here (missing network support and Box2D): https://github.com/ArekX/RAGE/releases/tag/100rc

GullRaDriel
Member #3,861
September 2003
avatar

Sounds nice. A pity I would not use allegro with ruby.

I wish you good luck .

"Code is like shit - it only smells if it is not yours"
Allegro Wiki, full of examples and articles !!

ArekXV
Member #15,158
May 2013

Would you care to elaborate why you would not use it?

GullRaDriel
Member #3,861
September 2003
avatar

I'm not a ruby user, my bad ^^

"Code is like shit - it only smells if it is not yours"
Allegro Wiki, full of examples and articles !!

jmasterx
Member #11,410
October 2009

Thanks for making this. Ruby is a really nice scripting language. Though, you may want to eventually add LUA support for more widespread use. But your boot script for example is very clear and clean.

Excellent work :)

Dizzy Egg
Member #10,824
March 2009
avatar

Pardon my ignorance, but I don't get it....how is this any less complicated than just using allegro and your favourite libraries...?

----------------------------------------------------
Please check out my songs:
https://soundcloud.com/dont-rob-the-machina

Thomas Fjellstrom
Member #476
June 2000
avatar

Because its more of a "game maker" or Unity style thing. You feed it Ruby scripts, and the engine does the rest.

--
Thomas Fjellstrom - [website] - [email] - [Allegro Wiki] - [Allegro TODO]
"If you can't think of a better solution, don't try to make a better solution." -- weapon_S
"The less evidence we have for what we believe is certain, the more violently we defend beliefs against those who don't agree" -- https://twitter.com/neiltyson/status/592870205409353730

ArekXV
Member #15,158
May 2013

It's easier because of many features that Ruby offers, such as garbage collector and it's language centric features (lazy enumerators, easier threads, way more simple string handling than C), regular expressions, etc. Not to mention that compared to Lua Ruby is actually object oriented (Lua just emulates object orientation). Combine all that with awesomeness of Allegro power and you've got yourself RAGE 2D game engine :)

And the way the source code was made it is really easy to extend it with some more custom features. I've also included native support for Ruby extension libraries DL (DL module and Win32API class via DL module) and Zlib so those can be used from get go.

Go to: