![]() |
|
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.
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
There is a road map with features that we still may want to implement: And here are some details on how development proceeds: 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: |
Chris Katko
Member #1,881
January 2002
![]() |
beoran said: Linux developers are welcome but less urgently needed.
Well, I'm out. -----sig: |
Thomas Fjellstrom
Member #476
June 2000
![]() |
Quote: Well, I'm out. Help is always welcome -- |
Dennis
Member #1,090
July 2003
![]() |
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. --- 0xDB | @dennisbusch_de --- |
bamccaig
Member #7,536
July 2006
![]() |
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. -- acc.js | al4anim - Allegro 4 Animation library | Allegro 5 VS/NuGet Guide | Allegro.cc Mockup | Allegro.cc <code> Tag | Allegro 4 Timer Example (w/ Semaphores) | Allegro 5 "Winpkg" (MSVC readme) | Bambot | Blog | C++ STL Container Flowchart | Castopulence Software | Check Return Values | Derail? | Is This A Discussion? Flow Chart | Filesystem Hierarchy Standard | Clean Code Talks - Global State and Singletons | How To Use Header Files | GNU/Linux (Debian, Fedora, Gentoo) | rot (rot13, rot47, rotN) | Streaming |
Chris Katko
Member #1,881
January 2002
![]() |
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: |
Paul whoknows
Member #5,081
September 2004
![]() |
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 C is no longer a primary language at school either... (thanks to Java/Python/etc). A solution 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 Self-Devil's Advocate: Unless I'm submitting to the dev branches I cannot complain, and won't (at least often
|
Neil Roy
Member #2,229
April 2002
![]() |
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
![]() |
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: |
Thomas Fjellstrom
Member #476
June 2000
![]() |
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. -- |
Polybios
Member #12,293
October 2010
|
I think people need more confidence in Allegro5. AFAIK is has advantages over SDL. 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. 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 Thomas Fjellstrom said: but I'm half-ish way there.
That's good news! Please keep it up! 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. edit: |
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: @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
|
Thomas Fjellstrom said: 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. I will fund a full-time developer for a year, when I make my first million. |
furinkan
Member #10,271
October 2008
![]() |
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
Major Reynaldo
May 2007
![]() |
Polybios said:
I think people need more confidence in Allegro5. AFAIK is has advantages over SDL. 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. My Website! | EAGLE GUI Library Demos | My Deviant Art Gallery | Spiraloid Preview | A4 FontMaker | Skyline! (Missile Defense) Eagle and Allegro 5 binaries | Older Allegro 4 and 5 binaries | Allegro 5 compile guide |
bamccaig
Member #7,536
July 2006
![]() |
{"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"} We're starting an international awareness tour... All aboard... -- acc.js | al4anim - Allegro 4 Animation library | Allegro 5 VS/NuGet Guide | Allegro.cc Mockup | Allegro.cc <code> Tag | Allegro 4 Timer Example (w/ Semaphores) | Allegro 5 "Winpkg" (MSVC readme) | Bambot | Blog | C++ STL Container Flowchart | Castopulence Software | Check Return Values | Derail? | Is This A Discussion? Flow Chart | Filesystem Hierarchy Standard | Clean Code Talks - Global State and Singletons | How To Use Header Files | GNU/Linux (Debian, Fedora, Gentoo) | rot (rot13, rot47, rotN) | Streaming |
Neil Roy
Member #2,229
April 2002
![]() |
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... Level Editor... Would love to see what others have done as well. --- |
Arthur Kalliokoski
Second in Command
February 2005
![]() |
Gideon Weems said: I will fund a full-time developer for a year, when I make my first million. I'm working on my second million!
I gave up on trying to make the first million...
They all watch too much MSNBC... they get ideas. |
Matthew Leverton
Supreme Loser
January 1999
![]() |
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
Major Reynaldo
May 2007
![]() |
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. My Website! | EAGLE GUI Library Demos | My Deviant Art Gallery | Spiraloid Preview | A4 FontMaker | Skyline! (Missile Defense) Eagle and Allegro 5 binaries | Older Allegro 4 and 5 binaries | Allegro 5 compile guide |
Thomas Fjellstrom
Member #476
June 2000
![]() |
That stuff is only required if you want more control. Which most people don't. But it is considerably more flexible. -- |
Neil Roy
Member #2,229
April 2002
![]() |
Matthew Leverton said: 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
![]() |
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. -- |
|
|