Skip to main content
GameDev.net gamedev.net
🔒 Locked

Allegro Lives! Try it today!

Started by Edgar Reynaldo Jun 20, 2018 at 7:43 PM 18 replies 8.9k views
Original Post
Edgar Reynaldo
Edgar Reynaldo

Hello all!

I don't post much here, but I am an active user on the allegro.cc forums. I go by the same name there. I'm an 11 year veteran programmer in C and C++ and for almost all of that time I have been using Allegro in its various forms. I have to say, it's a great little library, and lets you do so much with little to no effort. For the past few years I have been compiling unoffical Allegro binaries for both legacy Allegro 4.4.3+ and modern day Allegro 5.2.4+. My binaries include dynamic debugging executables of all the example, test, demo, and tool programs that come with Allegro, unlike the official binaries, which only come with libs and headers. I provide a CHM manual for both versions of Allegro that makes it super easy to read the fine manual like every good programmer does.

I'm writing this post because I want everyone to know that allegro development has NOT stopped, and that modern day Allegro 5 gets you up and running with HWAccel graphics, event driven input, multimedia and more.

You can see the latest release of Allegro 5.2.4 here : https://www.allegro.cc/forums/thread/617292

You can get my binaries for Allegro 4.4.3 and Allegro 5.2.4 in this thread : https://www.allegro.cc/forums/thread/617424

They were built with the MinGW-W64 compiler using GCC 8.1 . You can find a link to the compiler on my thread, as well as links to the binaries, and the chm manuals.

Download the binaries and try the example and demo programs today! You'll be amazed at what Allegro can do for you.

The official website for Allegro is https://liballeg.org/ .

You can catch me over at the allegro.cc forums almost anytime, and if you have comments or questions, please ask away, whether it's here or there makes no difference.

Edgar Reynaldo




Chris Katko
Chris Katko

I love Allegro. I've been using it for over a decade! Helpful forums too.


Anri
Anri

I've heard of this library over the years...how would it fare on a Raspberry Pi? I've tried SDL 2 in the past and the hardware performance was too slow, even on a Pi3.

Languages; C, Java.        Platforms:  Android,  Oculus Go,  ZX Spectrum,  Megadrive.       Website: Mega-Gen Garage  
Chris Katko
Chris Katko

I'd say a BIG... maybe?

It's not Allegro or SDL's fault, AFAIK. We had a guy recently try his Pi (and I tried mine). The Rasbian Foundation people were... very... unsupportive. Basically, it boils down to they don't actually support OpenGL (only OpenGL ES? IIRC), so it runs in software emulation (which also has bugs like colors being wrong). You can turn on the "experimental" OpenGL driver but it still doesn't help. The colors get corrected but its still slow.

I asked the Raspian guys about it and they just said "unsupported."

So whatever issue you had with SDL is most likely the same one we had with Allegro. If there was a real need, we could write a driver for Allegro that uses some other Linux/Rasbian supported graphics API. Possibly all it needs is porting the OpenGL code to OpenGL ES. But as it stands, AFAIK, the issue is Rasperry Pi doesn't actually support OpenGL.

swiftcoder
swiftcoder
1 minute ago, Chris Katko said:

Possibly all it needs is porting the OpenGL code to OpenGL ES

Don't the Android and iOS ports both already use OpenGL ES? Desktop OpenGL isn't available on either of those platforms.

Tristam MacDonald. Ex-BigTech Software Engineer. Future farmer. [https://trist.am]
Chris Katko
Chris Katko

I haven't personally used the Android/iOS ports but that's very likely. But straight Linux uses OpenGL proper (AFAIK--I'm not a dev, just a long-time user). So that may be an easier-than-expected port. Take the rendering code from iOS/Android, and keep everything else in the Linux port.


Also, sidenote: Allegro5 has GREAT D-language bindings by one of the developers.

https://github.com/SiegeLord/DAllegro5

Definitely, use those over the "Derelict" ones, as they're maintained on a daily / current-to-mainline-patches basis. The Derelict ones are way behind.

lawnjelly
lawnjelly
4 hours ago, Chris Katko said:

I haven't personally used the Android/iOS ports but that's very likely. But straight Linux uses OpenGL proper (AFAIK--I'm not a dev, just a long-time user). So that may be an easier-than-expected port. Take the rendering code from iOS/Android, and keep everything else in the Linux port.

It is pretty much this, and shouldn't be a massive deal. Expect desktop OpenGL to be available on .. mostly desktops, and OpenGL ES to be available on .. embedded systems, phones, tablets, tv boxes, raspberry pis, low power things and stuff that isn't a desktop. That is pretty much the modern landscape.

OpenGL ES may also be available on desktop (it is on my linux via the MESA drivers). And SDL2 works with OpenGL ES, I'm using it for my linux build, it was very easy to get working (caveat I am only using SDL2 for stuff like input etc, I've never used SDL2 for drawing stuff, you'd have to check that in the docs).

Edgar Reynaldo
Edgar Reynaldo

Historically (I'm speaking of a few years ago) the Raspberry PI port worked. I don't know what happened, but newer models versions of the PI totally broke the graphics drivers. It was building on the PI since Trent G ported it to PI in 2013 ( https://www.allegro.cc/forums/thread/611802/975070#target ) .

As of the beginning of the last year it was actually working, and working pretty well on the PI 2 and 3 for martinohanlon : ( https://www.allegro.cc/forums/thread/616673/1027519#target ) .

He made a complete game called Mayhem 2 ( https://github.com/martinohanlon/mayhem-pi ) .

@Chris Katko

Weren't you involved in a thread about issues with the PI 2 and 3 being totally slow? Do you remember what the issue was or the thread where we discussed that?

Here it is : https://www.allegro.cc/forums/thread/617378

and the issue on the rpi forums https://www.raspberrypi.org/forums/viewtopic.php?t=191791

Here's what he came up with for possible solutions : https://www.allegro.cc/forums/thread/617378/1037321#target



Valach
Valach

I really like allegro, I think it is very good library to start when you already know basics of programming language and you want to improve your skills.


I have choosen allegro because I liked the fact that I can use C, which basics I know and I dont necessarily need to learn C++ to use it. Another plus is that allegro is cross-platform. There is sufficient number of examples on liballeg site. You can use forum to get help which is still quite active.


All I want to change is forum, design looks old (someone can say retro) but this is not the biggest problem. The biggest problem is, in my opinion, that all the answers are automatically locked up quickly and older topics are automatically hidden and can not be easily viewed. Also some manuals on liballeg site are outdated.

I would like to thank for this library and for all the help and willingness of the developers or other contributors who help in the forum or in some other way. Keep going guys :)


Edgar Reynaldo
Edgar Reynaldo
18 minutes ago, Valach said:

All I want to change is forum, design looks old (someone can say retro) but this is not the biggest problem. The biggest problem is, in my opinion, that all the answers are automatically locked up quickly and older topics are automatically hidden and can not be easily viewed.

Also some manuals on liballeg site are outdated.

I would like to thank for this library and for all the help and willingness of the developers or other contributors who help in the forum or in some other way. Keep going guys :)

The forum is maintained by Matthew Leverton. Suffice it to say, he's been quite busy with RL. You can reach him by PM on allegro.cc.

Which manuals are you referring to? I have two up to date manuals for Allegro 4.4.3 and Allegro 5.2.4 in CHM format.

https://bitbucket.org/bugsquasher/unofficial-allegro-5-binaries/downloads/Allegro443.chm

https://bitbucket.org/bugsquasher/unofficial-allegro-5-binaries/downloads/Allegro524.chm

You're very welcome. Stop by the forums and say hello!

Anri
Anri

I might do a pi-test for Allegro when I have the chance. Mayhem-2 is rather impressive! ^_^

Languages; C, Java.        Platforms:  Android,  Oculus Go,  ZX Spectrum,  Megadrive.       Website: Mega-Gen Garage  
Valach
Valach
On 6/25/2018 at 2:42 PM, Edgar Reynaldo said:

Which manuals are you referring to?

Sorry, I thought tutorials not manuals they are fine, I mean this tutorial https://wiki.allegro.cc/index.php?title=Windows,_Code::Blocks_and_Allegro_5

Probably some library name changed over time because last time when I was trying to use allegro with codeblocks I didnt find any library with name libzlibstatic, and I had problem to match compiler version with allegro build, I didnt find any info exactly which compiler was used to built allegro.

I think that there were other errors in this documentation but I didnt remember which. I will install allegro soon, so If I bump into something I will let you guys know.

Edgar Reynaldo
Edgar Reynaldo

@Valach

Sorry I didn't see your reply it was hidden underneath ads.

Tomasu's spam assassin nuked some pages I had made and I haven't recreated them yet, I've had other problems with the wiki too, but I should be able to edit again. I re-made most of that page a while ago. But the links at the top lead to empty wiki pages.

If your zlib is named differently, by all means pass a different name to the linker. Same goes for other libraries.

You can see my full compile guide for Allegro 5 on my website here :

http://members.allegro.cc/EdgarReynaldo/BuildA5.html

Then follow the setup for CB with the appropriate libraries and directories specified.

Aldacron
Aldacron
On 6/25/2018 at 11:18 AM, Chris Katko said:

Also, sidenote: Allegro5 has GREAT D-language bindings by one of the developers.

https://github.com/SiegeLord/DAllegro5

Definitely, use those over the "Derelict" ones, as they're maintained on a daily / current-to-mainline-patches basis. The Derelict ones are way behind.

As the maintainer of the Derelict packages, I second this! DerelictAllegro was never finalized as I had difficulty getting it to behave properly on OS X and didn't have the bandwidth to solve the problem. SiegeLord's binding just works. And although it has a link-time dependency (which the Derelict binding does not), the fact that it's actively maintained and up to date is a big win. I have enough on my hands with all the other Derelict packages and don't keep up with Allegro as much as I used to.

gaxio
gaxio

Wow, I haven't used Allegro since the 90's or so. That's where I got my start in gamedev, DJGPP (which is also still around, yes, you can use C++17 on MSDOS) with Allegro. I can just remember the utter frustration though. I had no resources, no access to the internet, a 486 66MHz with a painfully, painfully slow 120meg hard drive and a quick reference guide for C that I was trying to use to learn the language. Every day at school I'd go on the Allegro forums (or.. where was that? This was before allegro.cc, I remember that site launching) and print off stuff to read at home. I didn't make much progress, I think I got a basic tilemap going and Bowie from Shining Force walking around.

Then I got Linux and a bunch of books about that and there was much more stuff to learn there, and eventually I was using SDL on Linux. I don't think I've ever looked at Allegro seriously since then, maybe I'll give it a go for a laugh. Or hell, boot up DJGPP, Rhide and Allegro on MSDOS. At least this time I'll know what I'm doing.

Edgar Reynaldo
Edgar Reynaldo
25 minutes ago, gaxio said:

Then I got Linux and a bunch of books about that and there was much more stuff to learn there, and eventually I was using SDL on Linux. I don't think I've ever looked at Allegro seriously since then, maybe I'll give it a go for a laugh. Or hell, boot up DJGPP, Rhide and Allegro on MSDOS. At least this time I'll know what I'm doing.

Allegro 5 has changed significantly from Allegro 4. They are totally different libraries. They both do the same thing, but go about it in seriously different ways. Allegro 4 is no longer under development, so you'd be on your own if you wanted to do the DOS / Rhide / DJGPP thing. But AllegroGL is one of the only ways to get hardware accelerated graphics under DOS.

gaxio
gaxio
4 minutes ago, Edgar Reynaldo said:

Allegro 5 has changed significantly from Allegro 4. They are totally different libraries. They both do the same thing, but go about it in seriously different ways. Allegro 4 is no longer under development, so you'd be on your own if you wanted to do the DOS / Rhide / DJGPP thing. But AllegroGL is one of the only ways to get hardware accelerated graphics under DOS.

Allegro 4? What's this new fancy-pants stuff you're talking about? I think the last version of Allegro I used was Allegro 3.x in like... 1998.

Edgar Reynaldo
Edgar Reynaldo
22 hours ago, gaxio said:

Allegro 4? What's this new fancy-pants stuff you're talking about? I think the last version of Allegro I used was Allegro 3.x in like... 1998.

Blink and you miss a decade or two anymore these days....

Here is Allegro 4 described on the allegro wiki : https://wiki.allegro.cc/index.php?title=Allegro_4

Here is the website for modern day Allegro 5 (and 4 as well) - https://liballeg.org/index.html

Allegro 3.X as you knew it developed into Allegro 4. Allegro 4.2 was the last version to support DOS. After that all the assembly was removed (or at least difficult to re-enable) and Allegro 4.4.2 was the last stable version of Allegro 4 that was released. Allegro 4.4 saw the integration of the separate AllegroGL library into a supported addon along with logg, loadpng, and jpegalleg. After that Allegro development moved to the unstable 4.9 branch, which was the precursor to Allegro 5 proper. It completely integrated OpenGL and DirectX into its library.

Modern day Allegro 5 supports DX and GL directly alongside allegro code. It provides hardware acclerated bitmap drawing, transformations, blenders, shaders, primitives, and support for vertex buffers and FBO. On the other side of allegro you get event driven input from keyboard, joystick, mouse, and touch API support. There is support for true type and bitmap font drawing, as well as multimedia support for bmp, jpg, png, tga, and support for more image formats. Supported video formats at this time are .ogv and audio supports .ogg and .wav.

Allegro's build system is cmake, and cmake-gui makes it super easy to configure and build allegro these days if you don't want to use pre-made binaries.

Welcome to 2018. Give allegro a try, it's fun! It's a cool breeze on a summer day... My binaries come with pre-built examples, demos, tests, and more. They're dynamically linked and the dlls are in a different directory, so run the script that comes with them to setup the proper environment to run the examples. Or just move the examples or dlls. I did this to save space in the archive.

Unoffical Allegro 5 binaries for Windows



Edgar Reynaldo
Edgar Reynaldo

Has anyone tried the example programs? There are 127 different example programs that come with my binary distribution. Some need the command line, but many are stand alone. Just download the binaries and run the RunA524Examples.bat file to setup the runtime environment. You'll be placed in the examples directory by default.

If I could get at least 3 different people to try allegro, that would be awesome.

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.