Allegro.cc - Online Community

Allegro.cc Forums » Off-Topic Ordeals » Allegro needs your help!

This thread is locked; no one can reply to it. rss feed Print
Allegro needs your help!
beoran
Member #12,636
March 2011

In the last two years activity on developing Allegro5 has slowed down considerably. There are various reasons for this but the main factor in my opinion is that we need more people to help out. Hence this call for help.

So who do I think we need? Here's the short list:

Maintainers & Developers per platform.

  • One or more Android maintainers and developers.

  • One or more iOS maintainers and developers.

  • One or more OSX maintainers and developers.

  • One or more Windows maintainers and developers.

  • Linux developers are welcome but less urgently needed.

The job of these Maintainer/Developers is to develop ports of new features on their platform, and to make sure that everything stays working for them on their platform. You need to have some experience of programming in C on your platform for this job. No need to know about Allegro's internals, you'll learn that progressively as you help out.

Documentation Writers

  • We need one or more people to improve the documentation where needed. No programming skills needed, just read the documentation and suggest improvements.

  • One or more wiki wranglers. The wiki needs to be cleaned up and kept up to date better. No programming skills needed, just read the wiki and suggest improvements on the talk page or edit it outright if you know how to improve an article.

There is a road map with features that we still may want to implement:
https://wiki.allegro.cc/index.php?title=Allegro_roadmap

And here are some details on how development proceeds:
https://wiki.allegro.cc/index.php?title=Allegro_development

If you feel you'd like to help out, please reply here, or on the mailing list, or visit the Freenode #allegro channel for a friendly chat.

Polybios
Member #12,293
October 2010

Sad there were names appearing on the AD mailing list I haven't seen here for a long time as soon as there was talk about A4 and not A5. Evert even proposed doing an A5 driver for A4...

On topic:
I'd volunteer if I had the time to actually get something done regularly, which is not the case now unfortunately. Maybe I can try to contribute to documentation (and finally try to improve the website texts).

Chris Katko
Member #1,881
January 2002
avatar

beoran said:

Linux developers are welcome but less urgently needed.

Well, I'm out. ;)

-----sig:
“Programs should be written for people to read, and only incidentally for machines to execute.” - Structure and Interpretation of Computer Programs

Thomas Fjellstrom
Member #476
June 2000
avatar

Quote:

Well, I'm out. ;)

Help is always welcome :)

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

Dennis
Member #1,090
July 2003
avatar

A port of the library to HTML5/Javascript would make some sense now(or maybe not a port but a rewrite/reinvention, keeping in mind all the stuff that HTML5/Javascript already does for us for free without the need for extra dependencies).

By the time that rewrite/reinvention is finished, browsers will be sufficiently advanced to compete with the performance of platform native compiled code.

That rewrite could be called AllegroWeb or similar to avoid confusion with the older libs. Usage would be simpler than ever before, the only dependency for both developers and users would be an up-to-date browser.

bamccaig
Member #7,536
July 2006
avatar

I do not have the time to spend or I would probably attempt to help out. I sort of wish more attention was paid to A4 because despite its limitations it did what it did well enough and was quite popular. I think that A4 still has advantages over A5. A5 can do more things, but it steps outside of "beginner" territory doing it. And honestly, there are just much more popular alternatives in that field for Allegro to really compete. Certainly in the state that its in now.

Implementing the Allegro API in HTML5/JavaScript would be silly because the API was designed around the features and limitations of the C language. JavaScript is a wildly different world. It would not translate. And if your HTML5/JavaScript project is unrelated to the Allegro library then sharing the same name would be confusing and silly. By all means, create yet another HTML5 game programming wrapper, but don't bother calling it Allegro.

Allegro has returned to its roots as a hobby project for the developers at this point. I'm sorry to see the community it had splitting up too because I really enjoyed the discussions and group dynamics we used to have. I intend to stick around, but I'm not expecting things to suddenly pick up steam again. We'd probably be better off just organizing a social group around this community instead of basing it on a dying programming library. 8-)

Chris Katko
Member #1,881
January 2002
avatar

Dennis said:

A port of the library to HTML5/Javascript would make some sense now(or maybe not a port but a rewrite/reinvention, keeping in mind all the stuff that HTML5/Javascript already does for us for free without the need for extra dependencies).

So... it's manually doing what Emscripten and asm.js already do automatically?

I already played Dune 2 recompiled for Javascript last week, let alone a fully network aware Linux VM.

-----sig:
“Programs should be written for people to read, and only incidentally for machines to execute.” - Structure and Interpretation of Computer Programs

Paul whoknows
Member #5,081
September 2004
avatar

bamccaig said:

I think that A4 still has advantages over A5. A5 can do more things, but it steps outside of "beginner" territory doing it. And honestly, there are just much more popular alternatives in that field for Allegro to really compete. Certainly in the state that its in now.

Let's create a game engine based on A5, let's call it Allegro Maker :)

____

"The unlimited potential has been replaced by the concrete reality of what I programmed today." - Jordan Mechner.

Phrasz
Member #10,091
August 2008

TL;DR: We are old, the library is old, we are from C (which is rarely taught); We need to make it easier to "unzip and ready to code like kit" and a bitchin' set of demos...

The Problem
===========
Bamcaig has it right: Allegro is TOO complex for beginner, and we frankly don't have a way/method/solution to mitigate this fact. Why use allegro when Unreal, Unity, and all the other ones are out there: http://en.wikipedia.org/wiki/List_of_game_engines

C is no longer a primary language at school either... (thanks to Java/Python/etc).

A solution
==========
I feel that "kits" need to be made before features need to be added. We have the power to make standalone scripts to build/configure/setup a development environment. Better yet a Virtual Machine could be made to allow cross compiling of EVERYTHING except Mac ports (put mingw(-w64) with all the android stuff on Linux).
(Closest thing to a "kit": https://github.com/phrasz/A5_Installer & https://github.com/phrasz/A5_1_Apt_Installer)

Also: we have no "WOW" demos... We are pitching/showcasing/promoting "very simple" demos, but this pales in comparison to a ready to rock full platformer that Unity has: http://unity3d.com/learn/resources/downloads.

IMO
===
We need less new features and less of ones that don't promote core gaming (FMV << Network/Multiplayer - Unless you are Nintendo - But I've always whined about this ... but I'm getting there for known what to do), more stable/predictable Binary releases (look at the last 2 years and lack thereof), and a SICK demo that is deployed on all supported OS's (and something with Alex and I wish we'd be able to co-op).

Self-Devil's Advocate: Unless I'm submitting to the dev branches I cannot complain, and won't (at least often :P). Also, we are a LIBRARY not an ENGINE, but people want engines nowadays (see Paul's statement ^)

Neil Roy
Member #2,229
April 2002
avatar

bamccaig said:

I think that A4 still has advantages over A5. A5 can do more things, but it steps outside of "beginner" territory doing it. And honestly, there are just much more popular alternatives in that field for Allegro to really compete. Certainly in the state that its in now.

Agreed.

I like Allegro 5, it's a nice engine, but it has strayed pretty far from it's original which was quite a bit easier, though much of it isn't too difficult to learn.

Some of the items that bother me is:

1) The sound system. For me personally, I used to adjust the pitch of my sound samples on the fly, as they played on A4 with no problems. I can no longer do that, at least not as easily. Not too big of a deal, I can live with it, but, to me it gets away from what the library was originally intended for, and that was to make things like that easier. And it may be easier than coding for windows or whatever (though I have played sounds with straight windows code, no problems), I think it should be more like A4. Add more layers to simplify things (at least so you have similarities in functionality to A4).

2) Lack of a GUI system. As ugly as it was in A4, you still have a basic GUI you could use for different tasks. One main problem I have is with the file selection dialog (al_create_native_file_dialog()) which doesn't respond to the default filename supplied, it doesn't use it at all, a royal pain for people who use my game editor when they go to resave a level of mine they loaded and they have to remember the filename because the Allegro code doesn't remember it, even though I supply it as an argument. al_create_native_file_dialog(), when supplied something like *.map should show all files with that extension or a specific filename if one is supplied the way A4 did, and most Windows programs do at the very least. I can handle my own GUI otherwise.

I only wish I knew more about programming that sort of thing or I would try my hand at it. The thing is, if I want to have the sort of features like the one mentioned with a file dialog, than I'll have to code my own windows specific code which defeats the entire purpose of using Allegro in the first place.

I like Allegro 5 and have done some nice things with it but...

Chris Katko
Member #1,881
January 2002
avatar

Phrasz said:

Why use allegro when Unreal, Unity, and all the other ones are out there: http://en.wikipedia.org/wiki/List_of_game_engines

Allegro isn't an engine. That's like saying why use a gasoline when you can use a car?

-----sig:
“Programs should be written for people to read, and only incidentally for machines to execute.” - Structure and Interpretation of Computer Programs

Thomas Fjellstrom
Member #476
June 2000
avatar

For the kit thing, at the very least I'm working on getting pre-made binaries automatically made for as many platforms as possible. Building a simple installer with nsi would be doable as well.

I have no fixed timeline on when the service will be set up, but I'm half-ish way there.

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

Polybios
Member #12,293
October 2010

I think people need more confidence in Allegro5. AFAIK is has advantages over SDL.
But, of course, when everyone is whining about that Allegro 4 was better and that A5 is not a framework or an engine, we will get nowhere. >:(

The thing which made me switch to A5 was events. Honestly, input in A4 was a mess. I remember implementing "events" myself by polling the key array for changes which was just absurd (because it must have been filled by events anyway on non-DOS platforms). The mess of A4's input system kept permeating my own code constantly.

No, Allegro5 isn't an engine or a framework, but it's a very nice C API in the spirit of A4 which does a lot of things better and has a lot more features. There are even some commercial games done with it.
I see there are better alternatives for absolute beginners now, but SDL, which does roughly a similar thing (with a much uglier API ;D ), isn't dying out either AFAIK.

A5 isn't particularly hard to learn, I admit you need some more lines for initializing things, though. But you get more flexibility in return.

/rant

but I'm half-ish way there.

That's good news! Please keep it up! :D

Maybe the "real" problem might be that you need a different way to approach things when you deal essentially with a 3D API in the background, ie. you don't optimise by using "dirty rectangles" but by using a spritesheet / texture atlas etc.

Another problem is of course that A5's development and release was somehow going on in the background, not even the official website changed much. Ie. you can't tell by looking at the facade that there is still life in the cellar where engineers have developed a whole new exciting thing. ;D
But we've discussed that already. ;)

edit:
You do remember that in the thread I started with using the bad m-word there were some old guys appearing who didn't even know about A5? IIRC, they were using SDL now. :-/

beoran
Member #12,636
March 2011

@Polybios: Actually I am hoping that some people will take Allegro 4 off our hands and become maintainers of it. Personally I think Allegro 4 is obsolete, but some people have used it in their old programs and they still need support we don't have time to give them.

@Dennis: Max Savenkov started a port of Allegro 5 to Emscripten which I think is a nice idea in the long run. It's not for JavaScript programmers though, but for C programmers. But JavaScript based game library would be a completely different project.

@bamccaig: I used Allegro from the DOS days and personally I don't think the Allegro 5 API is that much harder to use than the previous incarnations. OK, we now have some very powerful stuff that is slightly harder to use, and for that we could use some convenience functions to make things even easier. Also, there are many ways to write games these days, either game libs for Java or Javascript, or whole game engines like Unity but they are not our competitors. Our main competitors are SDL 2 and SFML 2 and I find Allegro 5 much easier to use that both those libraries.

@Paul whoknows:
An Allegro based game engine could be nice, like Pygame is to SDL. It's a separate project from Allegro 5 though, but I'd encourage anyone who'd like to start on this idea.

@Phrasz: Allegro is not an engine but a library. The bad part of this is that you have to write your own (simple) engine to use it, the good part is that you avoid the "engine problem" where all games made with the same engine play exactly alike. I never had C at school, I taught it myself because it's the best language for game programming. Performance still matters a lot.

I do agree Allegro 5 could be made easier to install, maybe bundled with an IDE and a compiler. So the "kit" idea is a good one. Perhaps MSYS2 will prove useful in that aspect. As for more demos: I'd encourage everyone to write great demos or even games that use Allegro5! A kit does not preclude us adding features to Allegro though. And we're wroking hard to try and make a new stable release, Allegro 5.2. So your help would be most welcome.

@NiteHackr: The sound API now is very powerful, but we could indeed use some help to etend the easy to use API on top of it. Same for other functionality I guess. I personally agree that we should have a simple non-native GUI addon, but the problem is that we can't agree on how it would look like. The old A4 GUI & GUI API was too ugly. As for the native dialogs addon, your contributions would be most welcome! It's not that hard, if you know C already.

@Polybios (again): Yes, that's the spirit! As I said before, SDL is our main competitor and it has a very mediocre API. Even when I started programming there were engines around like Verge or OHCRPGE but I never used those as I felt the "engine problem" already back then. Allegro 5 is for the discerning person who doesn't want to be bound to an engine but in stead wants to have full control of all details of their game development. Your help in updating the wiki would be great, and yes, we need to update the web site too.

Gideon Weems
Member #3,925
October 2003

For the kit thing, at the very least I'm working on getting pre-made binaries automatically made for as many platforms as possible.

This lifted my spirits. :) Keep it up! We're rooting for you.

I will fund a full-time developer for a year, when I make my first million.

furinkan
Member #10,271
October 2008
avatar

We have a lot of multilingual people here; maybe we could make our docs multilingual and that would give us an edge?

I'm swamped with contracts and school, but as I have time, I will edit the docs and wiki.

Who all has GUI systems? Maybe we can sit down on IRC and agree on a set of core functionality for a core GUI addon?

Edgar Reynaldo
Member #8,592
May 2007
avatar

Polybios said:

I think people need more confidence in Allegro5. AFAIK is has advantages over SDL.
But, of course, when everyone is whining about that Allegro 4 was better and that A5 is not a framework or an engine, we will get nowhere. >:(

The thing which made me switch to A5 was events. Honestly, input in A4 was a mess. I remember implementing "events" myself by polling the key array for changes which was just absurd

I think part of the confusion is that people think allegro 5 is just a continuation of allegro 4 when it has actually completely diverged from it. This myth needs to be dispelled. Basically, Allegro 5 needs to be advertised more, so people figure out that it's not a dead library.

And yes, the input system for A4 was kind of a pain. I wrapped it in an input library so I would have actual events and not polling too.

beoran said:

I do agree Allegro 5 could be made easier to install, maybe bundled with an IDE and a compiler. So the "kit" idea is a good one. Perhaps MSYS2 will prove useful in that aspect.

Actually building allegro 5 is not that hard. At least on Windows and perhaps Linux. I don't see much support for iOS or Android though. Even OSX seems to have difficulties with frameworks and xcode.

beoran said:

@NiteHackr: The sound API now is very powerful, but we could indeed use some help to etend the easy to use API on top of it.

The sound API for allegro 5 is confusing. And/or the docs just aren't good enough to explain it properly at this point. When you have to make a forum thread just to get a sound to play something is lacking.

bamccaig
Member #7,536
July 2006
avatar

{"name":"608872","src":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/4\/3\/4306ccc9e15ea5217223ce864ec0f116.png","w":1080,"h":608,"tn":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/4\/3\/4306ccc9e15ea5217223ce864ec0f116"}608872

We're starting an international awareness tour... All aboard...

Neil Roy
Member #2,229
April 2002
avatar

Well, it's not much, but my own game "Deluxe Pacman 2", not 100% finished yet, but playable (only a few menu options left to do) is available on my page at the link in the signature of this message. It was done 100% with Allegro 5 and I think it looks quite nice (just got a $1250 donation from someone to complete it), comes with level editor, free of course. My original Deluxe Pacman 1 was created 100% using Allegro 4 (actually started using Allegro 2 on it for DOS!).

I think it shows off Allegro 5 nicely, for 2D stuff anyhow. Also 100% written in pure C (compiled with C, not a C++ compiler, using the 2011 C standard setting).

I have an older video of it I have showed before and the level editor...

Gameplay...

video

Level Editor...

video

Would love to see what others have done as well.

Arthur Kalliokoski
Second in Command
February 2005
avatar

I will fund a full-time developer for a year, when I make my first million.

I'm working on my second million! ;D

I gave up on trying to make the first million... :'(

“Throughout history, poverty is the normal condition of man. Advances which permit this norm to be exceeded — here and there, now and then — are the work of an extremely small minority, frequently despised, often condemned, and almost always opposed by all right-thinking people. Whenever this tiny minority is kept from creating, or (as sometimes happens) is driven out of a society, the people then slip back into abject poverty. This is known as "bad luck.”

― Robert A. Heinlein

Matthew Leverton
Supreme Loser
January 1999
avatar

al_init();
al_init_acodec_addon();
al_install_audio();
al_reserve_samples(16);
sample = al_load_sample(filename);
al_play_sample(sample, 1.0, 0.5, 1.0, ALLEGRO_PLAYMODE_LOOP, NULL);

allegro_init();
install_sound(DIGI_AUTODETECT, MIDI_NONE, NULL);
sample = load_sample(filename);
play_sample(sample, 255, 0, 1000, 1);

If you find one or the other significantly more complicated, I feel for you. :'(

Ever try to get Allegro 4 built for Android? Now that was difficult.

Edgar Reynaldo
Member #8,592
May 2007
avatar

I'm referring to stuff like this :

      ALLEGRO_SAMPLE_INSTANCE* instance = al_create_sample_instance(sound);
      al_attach_sample_instance_to_mixer(instance , al_get_default_mixer());
      al_set_sample_instance_playing(instance , true);
      al_play_sample_instance(instance);
      al_rest(.016);
      printf("playing sample instance of %s\n" , file.c_str());
      while (al_get_sample_instance_playing(instance)) {al_rest(.016);}

That is confusing and ugly. That is what is necessary to see if a sample is currently playing. al_play_sample should return an ALLEGRO_SAMPLE_INSTANCE, not bool like it currently does.

Also, having to know that you have to call al_reserve_samples to set up a default voice and mixer otherwise nothing will play is annoying as well. That is more of a doc issue than an api issue though.

Thomas Fjellstrom
Member #476
June 2000
avatar

That stuff is only required if you want more control. Which most people don't. But it is considerably more flexible.

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

Neil Roy
Member #2,229
April 2002
avatar

f you find one or the other significantly more complicated, I feel for you. :'(

Fine, not a problem. The main difference between your allegro 5 example and your allegro 4 example is I can change the pitch of an allegro 4 sample while it is playing, I can't do that with the allegro 5 sample without a significant amount more code. The difference grows quite a bit in the amount of extra code I need to implement in order to do something that used to be fairly straight forward under Allegro 4.

Now this isn't a major problem for me, I managed to work around it. If you play my Deluxe Pacman 2 game (link below) you will hear the pitch change as the pills get eaten, but it is in jumps. If you play the Deluxe Pacman 1 game (link below) programmed with Allegro 4, you will hear the pitch smoothly change as you eat the pills. Not a big deal as I said, I can live with that. When I was shown the code I would need to mess around with just to smooth that out, well, the effort was not worth the headache.

My MAIN headache is the file dialog, specifically saving a level with my game's level editor, I supply a default filename and it doesn't appear in the dialog, which is a pain when someone has been editing a level, goes to save it and forgets the name of the level they were editing and it doesn't appear in the save dialog. If THAT was fixed I would have no real complaints I can think of with Allegro 5. I DO have a working game with it now, so I think I have proven I can stick it out and make the effort to learn to use it.

Edit: Oh, and it is precisely this sort of sarcastic reply to people that will help drive them away.

Thomas Fjellstrom
Member #476
June 2000
avatar

There are some ideas that may make the "simple" audio api more useful, but it means adding a crap load more functions to the api, pretty much duplicating a bunch of the sample instance api. soooo its kinda a bit of a clusterfsck.

Really, the original api probably should have returned a sample instance, but then it tries to do clever things like reusing its own sample instances internally and they can be freed... so thats why it has the crazy sample id thing. ugh.

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



Go to: