Is A4 abandoned?
Paul whoknows

I don't frequent these forums very often(I mean the Allegro Development forum), but after reading A4 development/support related threads, the lack of answers (or the answers itself) makes me think that A4 is going to be abandoned(or it already was?), so is this official then? I mean is A4 abandoned?

I'm asking this because A4 became part of my 'engine' and before continuing with the development of this 'engine' perhaps I should work in the process of removing A4 and replace it whit something else.

Thanks.

Matthew Leverton

It is not officially abandoned as anybody can write bug fixes for Allegro 4.4 and submit them. But all of the core developers have moved on to Allegro 5.

You could replace your A4 code with Allegro 5.

kazzmir

I still support A4 in my engine but honestly SDL + various sdl libraries is generally a better choice than A4. The only advantage of A4 over SDL is that A4's stretch blit is much faster than anything in SDL (although you could port the A4 stretcher to SDL I guess).

And of course if your graphical effects can be done by opengl/directx then A5 is a good choice too.

Paul whoknows

You could replace your A4 code with Allegro 5.

That would make not sense, I mean, my 'engine' uses A4 'only' for sound, input, and special file format loading routines, I'm writting the graphic core myself for OGL and D3D, so this is why A4 was useful for me.

I think replacing A4 with A5 only for the afformentioned tasks would be overkill.

Matthew Leverton

How is it overkill? Allegro 4 has more unneeded functionality than Allegro 5 has.

23yrold3yrold

Isn't A5 more modular than A4? It would technically make it less overkill ...

Paul whoknows

How is it overkill? Allegro 4 has more unneeded functionality than Allegro 5 has.

Yes? so you say using A5 and by-passing the graphic core with my own OGL/D3D code wouldn't be a bad idea? then, perhaps I should give it a try.

Matthew Leverton

You can set the flags ALLEGRO_DIRECT3D or ALLEGRO_OPENGL to require that Allegro give you a valid context/device to work with.

Thomas Fjellstrom

Basically Allegro 5 is a super-charged glut. You get window setup, input, threads, unicode support, file system stuff, and you can use GL/D3D directly, bypassing Allegro's graphical stuff.

It's really a win/win. Especially if you pick OpenGL. You get platform independence for free.

Paul whoknows

Thomas, your marketing skills are awesome!, as much as I hate to admit it, I knew since the beginning that sooner or later I would end switching to A5 :P

Thomas Fjellstrom

Thomas, your marketing skills are awesome!

I just really like Allegro 5. Allegro 3/4 was great in its day. It helped me learn C. I just can't stand to work on the A4 codebase anymore. I think Elias, Evert and Peter would agree.

We'll still apply patches and fixes, and occasionally new features/ports if people submit them, but for the most part its in maintenance mode.

AMCerasoli

You can't see it, but right now Edgar is crying... Don't worry my friend A4 it's going to live forever.......................... Inside a Museum of course... hohohohoh...

Edgar Reynaldo

Don't worry your pretty little head AMCerasoli, I don't cry just because someone stops using Allegro 4. Also, Allegro 4 doesn't stop being useful just because Allegro 5 is useful now.

Furthermore, after I'm done using Allegro 4, I may decide to use the SimpleFastMultimediaLibrary instead of Allegro 5. It looks like it supports everything that Allegro 5 supports except for Direct3D, and also supports capturing audio and basic networking with FTP and HTTP. Furthermore, it's in C++ and you don't have to dick around with create and destroy functions anymore because the objects manage their own memory. So don't cry over me AMCerasoli.

Mark Oates

it's in C++ and you don't have to dick around with create and destroy functions anymore because the objects manage their own memory

so that's what it is I'm doing!

Paul whoknows

Edgar, I was also thinking in SFML as a replacement for A4, I'm really open to suggestions now, why you (like me ;D) refuse to use A5? why do you think SFML would be a better alternative than A5?

By the way, SDL is not an option for license related stuffs.

Trent Gamblin

I think he doesn't like A5 because you have to link more than 1 library. Using sfml will save dozens of man seconds per millenia.

Arthur Kalliokoski

I think he doesn't like A5 because you have to link more than 1 library. Using sfml will save dozens of man seconds per millenia.

Instead of being one big API, SFML rather contains a lot of small packages, that can be chosen and combined according to the intended usage. You can use only the base package to get input and windowing, as well as the full graphics package with sprites and post-effects. [1]

Matthew Leverton

SFML is modular too. The biggest difference is that it's C++. If you like C++ and like SFML's design, then that's probably sufficient reason to use it.

Trent Gamblin

Ok, then I have no idea. I thought Edgar was fiercly opposed to the modular design of A5.

Edgar Reynaldo

Thanks for putting words in my mouth Trent. No, I don't like having to link ten different libraries at a time when it should be a single library. SFML is the same way though, they're modular as well.

@Paul
I never said I refuse to use Allegro 5, in fact I've been learning it along with everyone else here, and helping other people learn to use it too. But SFML has been looking like a good alternative to Allegro 5 since I started looking at it. It's something to consider after all.

@Trent
"Fiercely opposed", no. Moderately annoyed, yes. Modularity has it's benefits, but there's also no reason allegro's build system can't support a monolith build for those who appreciate it's convenience. Yes, do it yourself if you want it, blah blah. If I ever get serious about using A5 in a project, I will probably build a static monolith for personal use using ar. The main reason multiple modules bother me is because it makes it harder to work with an SVN version when there are features I want to add / bugs I want to help fix.

Edit
One thing it looks like SFML lacks though is the ability to draw onto an Image object. You can only draw on a RenderWindow and Copy from the Screen onto an Image.

Trent Gamblin

Thanks for putting words in my mouth Trent.

Well, everything you said confirms, so you're welcome I guess.

I've been using "A5" svn since 4.9.0 in commercial games so I'm not sure what the problems are you're referring to.

Quote:

One thing it looks like SFML lacks though is the ability to draw onto an Image object. You can only draw on a RenderWindow and Copy from the Screen onto an Image.

That's a pretty huge limitation if you ask me. :o

Edgar Reynaldo

You enjoy linking 10 different libraries, good for you. Have fun. It's bothersome to have to set the same giant set of dependencies up just for simple test projects, whether it's a Code Blocks project, or a makefile, or compiling on the command line. There's no reason a monolith build can't be provided for those who wish to use it. But the Allegro developers don't care about their users, they only care about how they will use it, which is fine, it's their project, whatever.

That's a pretty huge limitation if you ask me.

Maybe, but all it really means is you have to draw everything over again each frame, and with hwaccel that doesn't mean much. With complex games you pretty much have to do a full redraw anyway. And it may be an easy enough change anyway. All you would have to do is derive Image from RenderTarget and overload the necessary functions.

Thomas Fjellstrom

Does SFML also have a monolith build? If not, it may be worse than A5.

But seriously, worrying about a couple extra libs to link is weird. What does it matter?

Edgar Reynaldo

Because it makes compiling from the command line a major pain in the ass. With A4 all I have to remember is one library, and with A5 I have to remember 10.

Arthur Kalliokoski

If windows history worked right it wouldn't be a problem.

Trent Gamblin

I make simple test programs and compile them on the command line all the time. Here, I'll type one out now and time myself.

gcc test.cpp -o test -lallegro_primitives -lallegro_image -lallegro -lallegro_main

56 seconds on an ipad. That includes fumbling between apps so more like 50 seconds. If you've never used an ipad, then I'll tell you that's more like 10 seconds on a keyboard will all the keys visible at the same time. But whatever, you're too lazy to type out a short command and would rather use Allegro 4. It's your choice.

Mark Oates

ROBOT FIGHT!!!! :o

I just copy/paste the complete list. I have no real-world reason not to.

But the Allegro developers don't care about their users, they only care about how they will use it, which is fine, it's their project, whatever.

I've spent the majority of my allegro time assembling the pieces into a different API - one that is designed to be as maximally easy to use as possible. I definitely understand that Allegro is not built to be easy to use.

Edgar Reynaldo

But whatever, you're too lazy to type out a short command and would rather use Allegro 4. It's your choice.

Don't call me lazy when you're the one who's unwilling to provide a useful convenient feature for the users of your library. You are one of the main developers after all.

Yes, for the time being I'm happy with Allegro 4. I've built a large library of code around it, and abandoning it all to use Allegro 5 now seems like it would have been a giant waste of time. When the library is finished, I may consider porting it to A5, or SFML, or whatever else works the best for me.

Trent Gamblin

Don't call me lazy when you're the one who's unwilling to provide a useful convenient feature for the users of your library. You are one of the main developers after all.

You're calling me lazy for not writing a feature I have no use of for you in my spare time for free ???. Fair enough, I am lazy, but not for that reason.

Arthur Kalliokoski

"Either help out or stop whining" - Evert

23yrold3yrold

Don't call me lazy when you're the one who's unwilling to provide a useful convenient feature for the users of your library.

Don't pluralize unless you find someone other than yourself. Or did I misread the thread?

"Either help out or stop whining" - Evert

Pretty much.

Also, doesn't Allegro have a monolith build? I'm pretty sure I'm linking to it ...

Edgar Reynaldo

I'll whine as much as I like thanks, especially when some hypocrite calls me lazy for not appreciating the subtle pleasure of doing extra unnecessary work when you shouldn't have to.

Don't pluralize unless you find someone other than yourself. Or did I misread the thread?

Like I'm the only person who would appreciate a simpler way to build allegro projects. ::)

23yrold3yrold said:

Also, doesn't Allegro have a monolith build? I'm pretty sure I'm linking to it ...

The binaries have one yes, and they are named differently than the libraries you get when you build them yourself. Even more library names to keep straight.

Whatever. You guys like things to be complicated, good for you.

"Keep it simple stupid."

Trent Gamblin

The world doesn't owe you anything man. The only zen you'll find at the top of a mountain is the zen you bring along yourself. Substitute zen as necessary.

23yrold3yrold

Like I'm the only person who would appreciate a simpler way to build allegro projects. ::)

Firstly, I do, that's why I use the monolith. Secondly, there are also people who don't want their programs bloated by unnecessary crap ... which WAS a fairly common complaint IIRC. They're giving the community what the community asked for. Problem? /trollface

Personally, after all the issues I get making different libraries cooperate when making iPad games and watching other programmers spend days trading emails with tech support departments trying to get different technologies syncing up, remembering the name of a library (or really, just looking it up online in ten seconds, which I'm honestly likely to do regardless) is the least of my concerns. Sure, it's less work, technically speaking. And maybe I'll nerdrage the next time I see a i++ used where an ++i should have been. Oh, wait. Any decent programmer will have bigger concerns.

{"name":"604483","src":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/a\/c\/ac729eb7e283b4fd6bc64e1dbe96ec54.gif","w":360,"h":390,"tn":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/a\/c\/ac729eb7e283b4fd6bc64e1dbe96ec54"}604483

Edgar Reynaldo

The world doesn't owe you anything man. The only zen you'll find at the top of a mountain is the zen you bring along yourself. Substitute zen as necessary.

When did I say the world owed me anything? It probably does though, since I've helped out more than my fair share of inexperienced programmers here, without any consideration of what I would get in return. I've helped fix bugs in Allegro and the build system as well.

What do I get when I say I wouldn't mind something simpler? I get called a whiner, and lazy. I don't have enough experience with cmake to fix it myself, and their documentation sucks, so I don't really feel like spending time learning something I may never use again.

Firstly, I do, that's why I use the monolith. Secondly, there are also people who don't want their programs bloated by unnecessary crap ... which WAS a fairly common complaint IIRC. They're giving the community what the community asked for. Problem? /trollface

And if someone didn't have the bright idea to make their own build scripts to build that binary for you, then you might be arguing for a monolith build to be added to the regular build system as well. That doesn't bloat anyone's executable, no one is forced to use the monolith if they don't want to. I am part of the community right? I deserve credit for that much at least given all the people I have helped here. So if they're so concerned about the community, then why am I being singled out as a whiner when all I said was that I would appreciate a simpler way to build allegro programs? You have a problem with that? /slays troll

kazzmir

I hacked up an allegro_all.pc.in file that just links in all the addons, regardless of whether they exist or not. In fact I don't have physfs installed so it fails for me, but Edgar might like it.

$ pkg-config allegro_all-5.1 --cflags --libs
-I/usr/local/include  -L/usr/local/lib -lallegro -lallegro_acodec -lallegro_audio -lallegro_color -lallegro_dialog -lallegro_font -lallegro_image -lallegro_main -lallegro_memfile -lallegro_physfs -lallegro_primitives -lallegro_ttf  
$ g++ x.cpp `pkg-config allegro_all-5.1 --cflags --libs`
/usr/bin/ld: cannot find -lallegro_physfs
collect2: ld returned 1 exit status

Anyway here is the patch:

Index: CMakeLists.txt
===================================================================
--- CMakeLists.txt      (revision 14847)
+++ CMakeLists.txt      (working copy)
@@ -875,6 +875,7 @@
     allegro_physfs
     allegro_primitives
     allegro_ttf
+    allegro_all
     )

And allegro_all.pc.in

prefix=@prefix@
exec_prefix=${prefix}
libdir=@libdir@
includedir=@includedir@
version=@ALLEGRO_VERSION@
soversion=@ALLEGRO_SOVERSION@
suffix=@lib_type@@lib_linkage@

Name: allegro
Description: Allegro game programming library with all addons
Version: ${version}
Libs: -L${libdir} -lallegro${suffix} -lallegro_acodec${suffix} -lallegro_audio${suffix} -lallegro_color${suffix} -lallegro_dialog${suffix} -lallegro_font${suffix} -lallegro_image${suffix} -lallegro_main${suffix} -lallegro_memfile${suffix} -lallegro_physfs${suffix} -lallegro_primitives${suffix} -lallegro_ttf${suffix}
Libs.private: @link_with@
Cflags: -I${includedir}

Trent Gamblin

It probably does though, since I've helped out more than my fair share of inexperienced programmers here, without any consideration of what I would get in return.

It doesn't. You do what you want to do. Nobody agreed to owe you anything for your help. Many others here help also and don't expect anything in return. That's the best gift: one given with no expectation of anything in return. If you're only here helping because you want something in return (like people to write code for you), then you've got a misconstrued view of how the world works.

Now I could give you a great gift and write this cmake to build a monolith, but 1) I'm busy 2) I'm spread thin on charity and 3) I don't like the idea in the first place. #3 is more about sanctity of the library than personal problems with the idea.

23yrold3yrold

When did I say the world owed me anything? It probably does though

Aaaaand wham.

Quote:

So if they're so concerned about the community, then why am I being singled out as a whiner when all I said was that I would appreciate a simpler way to build allegro programs?

Because you've singled yourself out. If there was demand, they'd do it. You're part of the community, but you're also only one person, and they can't make everyone happy. If nothing else, you're outvoted in this thread. And yes, saying "you deserve credit" sounds whiny. Nobody likes an attitude of entitlement. If you want it, you do it. Or maybe try to drum up support or something. I've helped tons of people on this board; I don't recall ever pounding my foot and demanding someone put in a feature I want. :P

Anyway, did what kazzmir post help you out? We can stop hearing about this? :)

Mark Oates

I think it's wrong to discourage Edgar for his suggestion. It's perfectly valid, and I'm of the mind that a single library is preferable to smaller component libraries. That was the case with A4, and in my opinion that simplicity is missed.

The biggest concern I have with Allegro is the complexity. And I think that as a community we should begin to take that seriously, like a web designer considers the usability of a website.

Edgar Reynaldo

It doesn't. You do what you want to do. Nobody agreed to owe you anything for your help. Many others here help also and don't expect anything in return. That's the best gift: one given with no expectation of anything in return. If you're only here helping because you want something in return (like people to write code for you), then you've got a misconstrued view of how the world works.

The least I could get in return is at least consideration of my opinion. But apparently that's too much to ask. You disagree with me, fine, but I'm not the only person that would benefit from an allegro monolith build and you know it.

Trent Gamblin said:

Now I could give you a great gift and write this cmake to build a monolith, but 1) I'm busy 2) I'm spread thin on charity and 3) I don't like the idea in the first place. #3 is more about sanctity of the library than personal problems with the idea.

Okay, fine you can't do it, that doesn't bother me. What you can do is stop treating me like an imbecile just because you don't agree with me. As far as 3) goes, it wouldn't affect the integrity of the library one bit. People could still link individual libraries if they wanted to, and they could also use the added convenience of a monolith build when they wanted one.

Because you've singled yourself out. If there was demand, they'd do it.

I didn't single myself out, I didn't even bring this up, Trent did, and then you jumped on his bandwagon. The majority of people who use the binaries just because it has a monolith build is a clear indication that there is demand for a monolith build. If it wasn't for Michal Cichon, they'd all be complaining about it too.

23yrold3yrold said:

And yes, saying "you deserve credit" sounds whiny. Nobody likes an attitude of entitlement. If you want it, you do it. Or maybe try to drum up support or something. I've helped tons of people on this board; I don't recall ever pounding my foot and demanding someone put in a feature I want.

I never made any demands. Maybe you think suggestions for useful features are somehow demanding, and if you do, you're full of crap. I do deserve acknowledment of my contributions to this community, and that's not whining. All I ask for is a little respect when I have suggestions. I never pounded my foot and I'm not having a tantrum about this either. I wasn't even the one who brought it up!

Somehow, you must be of the opinion that no one should make any suggestions, because everybody should automatically be satisfied with what is being done. I don't agree.

It now appears that I'm not the only one here who finds increasing the simplicity of using the allegro library is a good thing, so thanks for your support.

Matthew Leverton

Repeat Nerd fight!

kazzmir said:

but Edgar might like it.

I don't think he likes Linux.

I think it's wrong to discourage Edgar for his suggestion.

How is "do it yourself" discouraging him? That is encouraging him to do something about it.

I don't think anybody is against a static, monolithic library being supported by the build system. There is, however, some reservation against building DLLs that are not compatible.

Regarding the binaries on a.cc... They are guaranteed to be compatible by virtue of a single person making them with everything enabled. So that avoids the core problem that some people have.

And their existence also lessens the need for it being officially supported. The same people who hate multiple libraries are almost entirely the same people who would never compile Allegro anyway.

Quote:

The biggest concern I have with Allegro is the complexity.

Complexity of what? If you mean the documentation is unclear, then clear it up. There's a big advantage to a third person writing documentation: no prior-knowledge assumptions are made. Updating documentation is as simple as using Notepad and "svn diff" or "svn commit".

If you mean Allegro's design itself is too complex, then, well, the only solution now would be to use a different library or write a high level wrapper.

There's advantages to different styles of APIs and there's no point in trying to be everything to everybody, when people can choose other libraries that fit their personalities.

So Edgar, who should improve the build system? Name the person. You say "developers," but surely you have somebody in mind. Otherwise, "developers" might as well mean you or Steve Jobs. I don't know how CMake works, so cross me off the list.

The problem that people have is perpetual complaining about the same topic. Nobody has forgotten that you dislike modular designs. Also, personal attacks against these "developers" are in poor taste. And if somebody trolls you over disliking modular systems, then learn to have thicker skin and just hold your tongue...

23yrold3yrold

I didn't single myself out, I didn't even bring this up, Trent did, and then you jumped on his bandwagon.

If that's how you see it, fine. You still sound whiny, and your first post in the thread sounds downright condescending (how was ANY of it relevant? Just sounds like a hatefest). Yeah, you can make suggestions. Everyone makes suggestions. Some do it with more maturity than others, I suppose.

How is "do it yourself" discouraging him? That is encouraging him to do something about it.

My thoughts exactly.

It now appears that I'm not the only one here who finds increasing the simplicity of using the allegro library is a good thing, so thanks for your support.

Go ahead and increase it. As I said above, it's such a trivial increase in simplicity that efforts by others would be better spend improving the simplicity in areas that will affect work far more often. I link the library once a project. I find it hilarious that this is considered some sort of complex workflow bottleneck. For all the libraries I use at work and at home, Allegro is already one of the simplest to get working.

Edgar Reynaldo

Who should improve the build system? Someone who has experience with cmake and likely the person who created the cmake build system in the first place, whoever that was. They would be the person best suited to integrating a monolith build.

I don't see what you are saying about compatiblity issues with dlls. How are any of the dlls made in the binary distribution compatible with a program linked using a different compiler and version? If they are compatible, why wouldn't the ones built from scratch be compatible as well? And how is this an issue when no one recommends installing dlls to system folders anymore?

I'm hardly perpetually complaining about this. It has been discussed once before, and this time it wasn't even brought up by me, but as a crude off hand insult by Trent meant to portray me as lazy. I'm not lazy, and I don't mind putting work into useful projects, but I'm far from the ideal person for this job. You don't ask a roofer to do your plumbing do you?

The only personal attack I made was in direct response to one made on me. Don't think I'll shy away from a fight, because I won't and I don't. And it's been long standing knowledge that if you want anything done here you have to do it yourself, so I don't think that really qualifies as a personal attack.

Also, as I said before, I don't mind modular designs. They have their benefits. But there are also benefits to monolithic designs, and they are not mutually exclusive.

Trent Gamblin

Ok, here's my attempt at explaining what I think Allegro should strive to be.

I see as the best solution to the "problem" of game programming a set of independant modules that all serve a fairly narrow purpose. Right now this isn't entirely the case. I'd like to see even more modularization, with input, graphics, file io etc all as separate modules. That may never happen.

In my vision each module would be like what I consider a clean and elegant design. The closest thing to this I think is opengl. And not opengl as in the desktop monstrosity with mixed pipelines and all of that, but something like Opengl es 2 (or opengl 3?). Very few functions in the library but a ton of power in the ones that you have.

This is why I often argue fro. the standpoint of "does it allow for maximum 'output to input ratio'" instead of "does it make things easier to use. But this I mean, if one low level function can be added that works with some of the other low level functions to provide many possible use cases, that's better than adding 5 high lvel functions that don't work together and just do something that could be done with a few calls to the lower level functions.

I realize there is a line somewhere that must be drawn or we have an assembly language versus visual basic war going on. I like the unix philospophy of do one thing and do it well as a guideline of where to draw the line. Which brings us to the monolith vs modules debate.

My gut tells me that Allegro's job is to enable users to do anything and everything possible with their games. It doesn't tell me to "sugar coat" it if you will and the reason is because then where do we stop? Thinking in terms of enabling things to be done, it's easy to see where we should draw the line. Thinking in terms of ease of use doesn't. Everyone and their games and coding styles are different. This will just lead us down the path toward having a twisted hybrid of game enabling library and half baked game engine.

Well this is a pretty big rant for such a small debate but IMO our job is done if we've enabled you (one point I forgot to mention is that one of the main purposes of this enabling technology is to make things cross platform) to make the game exactly how you've envisioned it in your head. And I think it's the game engine designers job to take the enabling technology and make it into something beatiful and easy to use.

Just my 2 cents though.

Matthew Leverton

You don't ask a roofer to do your plumbing do you?

I don't ask my plumber to fix my leaky pipes for free because I gave my neighbor some free advice about how to build a tree house.

No single person created the cmake system. It was a group effort over time. It's likely at the place now that nobody knows exactly how it works. The best way to get something like this done is to take command, gather a group of volunteers to update the system, and go for it.

For example:

Quote:

I want to add monolithic support to the cmake build system. Can somebody point me in the right direction in how I would accomplish that? Does anybody want to help me out?

You may find that people are quite "eager" to offer suggestions and insight, but that they don't really want to spend their Saturday afternoons working on crap they don't care about.

Mark Oates

Complexity of what?

I'm referring to the complexity in general. Docs, Libs, API, etc. Allegro is the low-level library, the docs are low-level, etc. There's nothing wrong with this, but it makes Allegro itself very unapproachable. Trent's response is ideal as explaining Allegro as a "does it allow for maximum 'output to input ratio'" library.

I don't encourage that we go so far as to expand Allegro in the direction as if it were to become a game engine (like trent said). That's the wrong direction. I'm arguing that there are things we can consider that make Allegro more usable.

Quote:

If you mean Allegro's design itself is too complex, then, well, the only solution now would be to use a different library or write a high level wrapper.

Yes. As far as I gather, I'm not suggesting a change in the existing structure. A great example is cURL. Allegro 5 is thorough in the same way cURL is thorough, but cURL also has The Easy interface with functions like curl_easy_init(), curl_easy_cleanup(), curl_easy_perform(). Features like this should be considered.

Simplification of the documentation (like the third-party example you gave) is another good example. Cichon's builds and the builds on a.cc are also immensely helpful. An "OpenLayer for Allegro 5" would be nice ;):P. I can't say much for the build system itself (I have no idea how it works, I just download the binaries), but it's also an area that seems to be reducible in complexity.

In all, I'm not suggesting that we restructure anything. I'm recommending that 1) usability should become a stronger part of the Allegro mythos and 2) a more dominant perspective we take when addressing problems - now that Allegro 5 has reached the mature state that it has.

[edit]

Quote:

How is "do it yourself" discouraging him?

"Do it yourself" is not conducive to a discussion about improving usability.

Yodhe23

I haven't even bothered with trying to install A5, apart from a brief half an hour attempt many moons ago.
When someone who has been using computers for more the 25years finds it a "pain in the butt" to install and set-up (without the hindsight of "knowing how it is done"), then to be honest from my perspective "you have a design and implementation problem".
Of course I suspect in the intervening time things have probably improved, but that first experience left me with a bad impression of A5 as a package. Though I am suspect as a programming library, it probably meets most of its expectations.
In my experience, developers seem to find it hard to "empathise" with the users experience.

"What do you mean you can't use emacs. Fucking moron!"

Anyway this thread doesn't encourage me to try and install and learn A5 anytime in the immediate future, as I would rather be programming and making games, than wasting time installing a package.

Matthew Leverton

Disclaimer: None of the "yous" in this post are directed to any particular person.

usability should become a stronger part of the Allegro mythos

Again, nobody would seriously disagree with that. What people don't agree with is being told what to do with the time they volunteer. Same response I gave to Edgar: head up a usability project. Things don't get done because you have a good idea.

Regarding documentation, good programmers are not necessarily good technical writers. And does somebody with good technical writing skills really want to do the boring task of writing documentation. For what gain? So somebody else can use the library with a little more ease? No thank you, I'd rather sleep in.

That's the fundamental problem here. We need a bunch of communists who believe in laboring for the good of somebody else with nothing in return. Or else we need to turn Allegro into a commercial product with commercial support.

Sample case: I wrote the documentation for the menu system I built. Since I'm the one who took the time to add that functionality, I'm the person who gets to design the interface. So naturally it works like I want it to.

Then I have the chore of writing the minimal amount of documentation needed so that the patch will be accepted. Now, I tried to do a decent job of explaining how to use it, but I'm not going to bust my butt over it just because you want a nice document.

And the OS X implementation is left undone because I don't have a system to work on and I don't have any experience with OS X. However, I don't expect that somebody else should just drop what they are doing and write it just because somebody should, and after all, I put in the time, so somebody else needs to put in equal time.

And am I somehow lazy or selfish because I took the time to implement something but didn't provide an OS X port or documentation to your satisfaction? If so, isn't the laziest and most selfish person the person who does nothing at all?

In terms of the "your time for my time" concept ... well, the core developers are so far ahead of the score, you'd have to really have to spend a lot of time (or money) to catch up...

And if you agree with the idea that whoever can do it the quickest should be the one to do it... well, why don't you just start writing all the newbies' code for them? It would be quicker, for any particular instance, for you to just do what they want, instead of them learning how to do what they want to do.

But it seems silly that I should have to explain any of this to anybody. Surely everybody here grasps the concept that nobody owes anybody anything, and if you want something that nobody else wants to implement, either do it yourself or pay somebody to do it.

Mark Oates

If so, isn't the laziest and most selfish person the person who does nothing at all?

However, people frequently jump to the assumption that a suggestion for a change is a selfish request to "fit my needs or waahhhh." More often than not it's just voicing a concern that may not have been addressed or needs support.

Sometimes it's not. In that case the person should be smacked, but even then it doesn't mean their concerns should be dismissed, just their method. Participating in the discussion is doing something, and sometimes it's the most a person can do. But yes, it's the doers who ultimately get to decide what to do.

Matthew Leverton

In short, talk is cheap. When it comes to an open source library, one person doing is more valuable than ten people talking. Most talk is simply conflicting opinions over things that have no "right" answer. i.e., Noise.

In reality, unless you are pointing out a specific bug/typo/mistake or suggesting some novel concept, you are probably not being helpful.

"Allegro needs a network addon."
"Allegro needs a GUI addon."
"Allegro needs audio / video recording functions."
"Allegro needs better documentation."

Thanks for pointing that out! You are a super genius! I'm so glad you thought of that! We totally forgot about that. I'll get right on it!

Often such requests are innocent, but when the person gets all bent out of shape when he's told that nobody wants to do it, then that's when it becomes a problem.

AMCerasoli

What the Fuck!, I should have never made that "joke".

Damn Trent, you don't think it twice when you have to make a bad reply, I have see with Thomas and now with Edgar... What's your problem, even if you don't want it to do it, you could be more political, and say something like "I'm taking note" or I don't know "We will discuses it in the future". When I also put the problem with fonts you just get mad too, "that is not going to happen" I won't forget that phrase.

If you don't have the time, if you aren't motivated or anything just say it, but not pretend that everybody opinions or suggestions are bad.

It seems like you own this library, and if others want to use it, it's fine, but don't make suggestion because until I need the features for my own projects nothing is going to happen.

I know we could do thing for ourself for that reason this is a free library but damn, take it easy, I bet if someone see ones of the Allegro developers agree with a monolith version, you'll see candidates to make it. But you can't say I don't like that shit, but if you want to do it go ahead this is a free library I don't have the time... That would unmotivate anybody...

Things don't get done because you have a good idea.Regarding documentation, good programmers are not necessarily good technical writers.

Things don't get done because you have a good idea, that's true, but it may with a good answer from the main developers don't you think?.

Why to be so rude with people we're talking almost all days?.

Elias

Damn Trent, you don't think it twice when you have to make a bad reply, I have see with Thomas and now with Edgar...

Well, anyone who mentions C++ or SFML in the Allegro Development forum deserves to be called a troll :)

Anyway, didn't read all of the thread, just had to post here so my signature appears :)

Polybios

@Trent and other developers:
Thank you very much for creating a great library in your spare time! :)

By the way, I do think the documentation is quite good, as are the examples. Plus, you can always refer to the sources if something might still be unclear. :)

While I think that considering reasonable, polite feedback from users is not a bad thing, I do think that the "totally unendurable labour" of linking some more files is no reason to redesign. ::)

axilmar

Personally, I find A5 extremely well designed. In the scale 0 to 100, A5 gets a 95. The documentation is excellent, the API is excellent...so, thank you A5 developers for giving us such a great API.

I don't see how the build system is a problem, since monolithic libraries are available anyway.

Thomas Fjellstrom

Because it makes compiling from the command line a major pain in the ass. With A4 all I have to remember is one library, and with A5 I have to remember 10.

SFML is modular too. So I don't think that'll be an option for you.

Also Allegro 4 is NOT a single library. The png, ogg, OpenAL and OpenGL support are all in separate libraries, the same as Allegro 5. And Allegro 4 doesn't even have D3D support.

Trezker

"Keep it simple"?
Allegro 5 is keeping it simple, it is still a low level library right?

Using a shovel, axe and wheelbarrow is keeping it simple. Making a big machine would make the end users experience of digging holes easier, but it's not keeping it simple.

Evert

I just can't stand to work on the A4 codebase anymore. I think Elias, Evert and Peter would agree.

Hell yes.
I'll go a step further: I prefer upgrading my projects to A5 to continuing to use A4. Not saying I didn't have a great deal of fun with A4 back in the day, and likewise not saying that I'm so at home with A5's API that I don't have the documentation and examples open in the background when I'm writing my game, but when I look at the end result the organisation of the code and the flow of the program is just much cleaner.
I think a large part of that is the event system.

And the OS X implementation is left undone because I don't have a system to work on and I don't have any experience with OS X. However, I don't expect that somebody else should just drop what they are doing and write it just because somebody should, and after all, I put in the time, so somebody else needs to put in equal time.

And am I somehow lazy or selfish because I took the time to implement something but didn't provide an OS X port or documentation to your satisfaction?

To add on to that, we did discuss on the mailing list what would be required for the OS X implementation and how it could be done. That should be enough for me (or anyone else, really) to get it to work, if and when I/someone gets round to doing it.

axilmar said:

The documentation is excellent

Thanks for saying so, I don't personally know that I really agree. I think the documentation is passable but could be a lot better.
Of course, I don't actually have time to do much about it so I don't complain too much.

MiquelFire

One thing I wish was a feature is a way to load a sample, and wait until it is done playing, or at least wait for an event. I had the same issue with A4 as well. Something to put on 5.1's back burner for now.

Thomas Fjellstrom

I could swear there was supposed to be an event to tell when a sample/stream was finished. Looks like no though.

MiquelFire

Yea, only thing I found was a stream needed it's buffer to be filled so it can play smoothly.

Paul whoknows
SiegeLord

I could swear there was supposed to be an event to tell when a sample/stream was finished. Looks like no though.

For streams created with al_load_audio_stream there is ALLEGRO_EVENT_AUDIO_STREAM_FINISHED.

MiquelFire

Thing is, does the event get triggered when the buffer needs to be filled (meaning for a long enough file, it can be triggered almost 100 times, if not more) or is it just once?

Edgar Reynaldo
Elias said:

Well, anyone who mentions C++ or SFML in the Allegro Development forum deserves to be called a troll

Maybe the developers should take that as a hint that there is more than one way to do the same thing and if people get tired of developers who don't give a shit about their users then maybe they'll start looking somewhere else. For quite some time now, the Allegro Development forum has been a place where most concerns are ignored or brushed off. If you all feel offended by people considering using a different library due to the major lack of consideration for user issues then I feel sorry for you.

Mark Oates

I don't think he meant it seriously, Edgar.

I took it more as a light-hearted "sacrilege!! :o" joke.

23yrold3yrold

Maybe the developers should take that as a hint that there is more than one way to do the same thing and if people get tired of developers who don't give a shit about their users then maybe they'll start looking somewhere else. For quite some time now, the Allegro Development forum has been a place where most concerns are ignored or brushed off. If you all feel offended by people considering using a different library due to the major lack of consideration for user issues then I feel sorry for you.

Wait, wait, you're pluralizing again ...

Quote:

Maybe the developers should take that as a hint that there is more than one way to do the same thing and if I get tired of developers who don't give a shit about me then maybe I'll start looking somewhere else. For quite some time now, the Allegro Development forum has been a place where my concerns are ignored or brushed off. If you all feel offended by me considering using a different library due to the major lack of consideration for my issues then I feel sorry for you.

Edited for accuracy. Not to sound like a broken record, but features flow from demand. If there's no feature, chances are there's not much demand. To pretend otherwise is highly dishonest.

Edgar Reynaldo

Wait, wait, you're pluralizing again ...

Really?
http://www.allegro.cc/forums/thread/607851 0 replies
http://www.allegro.cc/forums/thread/607728 0 replies
http://www.allegro.cc/forums/thread/607518 0 replies
http://www.allegro.cc/forums/thread/607523 0 replies

That's just in the last two months. It really takes that much effort to say "we don't have time for this", or "that's not a priority", or "if you want it fixed do it yourself"?

Thomas Harte gave up on Allegro and switched to SDL for pretty much the same reasons I'm considering using something else, and losing him was a bad loss to the Allegro community. Now consider all the people who have left Allegro silently because their issues weren't addressed or even considered, and you have 'plural' amounts of people with the same considerations.

23yrold3yrold said:

Edited for accuracy. Not to sound like a broken record, but features flow from demand. If there's no feature, chances are there's not much demand. To pretend otherwise is highly dishonest.

The more accurate statement there is if there's no feature it's because the devs didn't want it themselves, not necessarily because there's no demand for it. Get your head out of the sand.

Trent Gamblin

I vote for changing the license to zlib with no Edgar Reynaldo exception. He obviously doesn't appreciate the hard work some people put into Allegro. And he hurt my feelings :(.

23yrold3yrold

That's just in the last two months. It really takes that much effort to say "we don't have time for this", or "that's not a priority", or "if you want it fixed do it yourself"?

What does this have to do with you be alone in your request for this thing? Besides, the devs are not tech support. Some questions go unanswered. This is still one of the liveliest forums for a given programming library that I know of, with the exception of Microsoft's stuff. Don't see your point here.

REVISION: All of those people also appear to be singular in their requests, if that's what they are. If 90% of the user base saw value in a feature, it would be in there. Either because a current developer did it, or someone who wanted it enough to man up did it.

Quote:

The more accurate statement there is if there's no feature it's because the devs didn't want it themselves, not necessarily because there's no demand for it.

If the devs wanted a feature for themselves, I imagine they'd code it ... for themselves. I have a whole ton of classes and code for features and helper functions to extend Allegro or make it more to my liking. I don't submit it for use in the main library. Why would they? Maybe they just feel this is the best design given the options? Did that ever occur to you, especially when some of those reasons seem to have already been given?

Quote:

Get your head out of the sand.

Your head is in something too; might want to get it out before it smells ...

Matthew Leverton

Edgar, you never cease to make me chuckle. And I'm suffering from acute tonsillitis at the moment, so that's much appreciated. 8-)

Edgar, you mentioned somewhere in this thread that you've contributed to the Allegro library. Guess what? That makes you an Allegro developer! There's no membership. There's no club card. There's just people submitting code.

So I am very ashamed and disappointed that you, as one of the developers, did not take the time to respond to any of those posts you linked. You are letting your users down.

Edgar Reynaldo

I vote for changing the license to zlib with no Edgar Reynaldo exception. He obviously doesn't appreciate the hard work some people put into Allegro. And he hurt my feelings

I hurt your feelings? You're the one who singled me out as a lazy whiner when I never even brought up a monolith build in the first place. And is it really that untrue that many peoples concerns in the Allegro Development forum go unnoticed?

What does this have to do with you be alone in your request for this thing?

I didn't even request it here! All it ever was was a suggestion to make things easier anyway. It's amazing how much people will have a hissy fit over something as small and innocent as a suggestion.

23yrold3yrold said:

If the devs wanted a feature for themselves, I imagine they'd code it ... for themselves.

Thank you Captain Obvious! That's what I said anyway.

Does it really make sense to completely ignore and alienate your users? If no one uses your library, then all the time you put into writing it was for nothing.

23yrold3yrold said:

I have a whole ton of classes and code for features and helper functions to extend Allegro or make it more to my liking. I don't submit it for use in the main library.

Why not submit it if it really is that useful?

23yrold3yrold said:

Your head is in something too; might want to get it out before it smells ...

Check again. You were looking in a mirror and confused me for yourself. I didn't even bring this shit up! I never made any demands, all I ever did was defend my opinion, but you have to go and have a hissy sissy fit over it.

@Matthew
I'd hardly consider myself an Allegro developer. I'm a contributor sure, but I don't have write access to the repo and everything I submit has to be accepted first. If it was to do with A5, no I didn't reply to it, because I don't have time to work on my projects, tweak A4, and familiarize myself with the A5 codebase at the same time. My understanding of the A4 system is basic at best so I can't help everyone who needs it, but I usually do if I can.

Paul whoknows

Peter Wang was right! :-*

{"name":"604486","src":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/6\/a\/6a563431284eb8365a5a835e8158b1d7.gif","w":313,"h":274,"tn":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/6\/a\/6a563431284eb8365a5a835e8158b1d7"}604486

23yrold3yrold

I didn't even request it here!

Who said you did?

Quote:

Does it really make sense to completely ignore and alienate your users? If no one uses your library, then all the time you put into writing it was for nothing.

Stop pluralizing; it's dishonest. And some users will always go unsatisfied, partly because you can't please everyone, partly because some ideas are either dumb or not worth the effort/tradeoff and partly because some things are higher priority. The nature of software development.

Quote:

Why not submit it if it really is that useful?

Because it goes against the spirit of the library, or is only useful to me because I designed it for myself.

Quote:

I never made any demands, all I ever did was defend my opinion, but you have to go and have a hissy sissy fit over it.

I honestly don't even have a dog in this fight; the time it's taken me to participate in this discussion is several time how long I will spent typing out the library to link to when I make a new project over the course of my entire life. I said this was hilarious, and I meant it. ;D And yes, you sound demanding, even if you can't say you explicitly demanded it in exactly those words. Honestly, if you want to use the SFML, go nuts. No one will care that you switched to it any more than anyone there would care if someone switched to Allegro. ::)

Edgar Reynaldo

Who said you did?

You did. You're the one going on about how I'm making demands when I never made any. Take your delusions somewhere else. :P

23yrold3yrold said:

Stop pluralizing; it's dishonest.

If I'm not the only one affected by it, then it's not dishonest to speak plurally. ::)

23yrold3yrold said:

And yes, you sound demanding, even if you can't say you explicitly demanded it in exactly those words.

Okay, so I'm not demanding, but I am. That makes a lot of sense buddy. ;)

23yrold3yrold said:

I honestly don't even have a dog in this fight; the time it's taken me to participate in this discussion is several time how long I will spent typing out the library to link to when I make a new project over the course of my entire life.

The more projects you make, the more time and effort it takes to set up each one. I tend to make frequent test projects and so it takes more effort for me. I can do without it, and all I ever said was that it would be a nice thing to have. So when you're done having your period, let me know, and then maybe this could be a real discussion again. :-X

Thomas Fjellstrom

Okay, so I'm not demanding, but I am. That makes a lot of sense buddy.

You don't have to use the word "demand" to be demanding.

23yrold3yrold

You did. You're the one going on about how I'm making demands when I never made any.

Dude, I'm not going to copy and paste everywhere in this thread alone where you sound like a entitled child, or we'll be here all day.

Quote:

If I'm not the only one affected by it, then it's not dishonest to speak plurally. ::)

And since you are, then it is. Not one of those threads was about your particular request. And not all requests can be granted (which should be obvious).

Quote:

Okay, so I'm not demanding, but I am. That makes a lot of sense buddy. ;)

Comments like "When did I say the world owed me anything? It probably does though". Make sense yourself; you ain't owed squat. No one here is.

Quote:

So when you're done having your period, let me know, and then maybe this could be a real discussion again. :-X

Discussion's over. Devs prefer the current setup, everyone else either agrees or doesn't care. Can't be that important.

Edgar Reynaldo

I'm making demands

Okay, so let's see, a suggestion I made in an entirely different thread was brought up here as a point to mock me, and somehow I'm making demands. I see how that logic is clear now. ::)

Dude, I'm not going to copy and paste everywhere in this thread alone where you sound like a entitled child, or we'll be here all day.

You're the one who sounds like a spoiled brat. Putting so much effort into shooting down an innocent suggestion to make things easier that was made in an entirely different thread.

23yrold3yrold said:

Discussion's over. Devs prefer the current setup, everyone else either agrees or doesn't care. Can't be that important.

One developer is against a monolith build, none of the others stated their opinion here one way or the other. Stop pluralizing, it's dishonest. :P

kazzmir

Edgar, why don't you take the time to add the feature yourself? Cmake really isn't that hard. I agree with you that its a useful thing to have which is why I made the patch for linux.

If I get some time I can attempt something in windows but I rarely ever use it so I don't know how likely that is. But really this discussion is sort of pointless, either accept that no one will do it or do it yourself.

23yrold3yrold

Putting so much effort into shooting down an innocent suggestion to make things easier that was made in an entirely different thread.

I don't care about the suggestion; it's a non-issue for me. I'm here for the lulz. Gotta be the fourth time I've said it now.

Quote:

One developer is against a monolith build, none of the others stated their opinion here one way or the other. Stop pluralizing, it's dishonest. :P

As a software developer who works on a team, I'm going to presume that suggestions are discussed and approved/rejected as a team. If the library doesn't have the feature, and isn't getting it, then I can reasonably guess the majority vote. Maybe I'm wrong, maybe someone's working on it right now. We'll see? Another thing I'll repeat; if the demand was there, the feature would be in. kazzmir did it for Linux, and now it's done. There. See how easy that is? Much more mature.

Edgar Reynaldo

@Kazzmir
To actually get it done, you would need a consolidated list of all the source files in the build, and a way to make sure that all of the addons are (going to be) built first. I'm not sure how to aggregate the different lists of source files together when they are probably separated into different modules. Also, I have pretty much zero experience with cmake, and their documentation is pretty sketchy as well, so I'm not very enthusiastic about learning it.

@23yrold3yrold
I was fine with the fact that there was no monolith build. Someone else brought it up, and all I did was defend my opinion that it would be useful. If you don't have anything useful to add, go crawl back under your bridge, troll.

Matthew Leverton

To actually get it done, you would need a consolidated list of all the source files in the build, and a way to make sure that all of the addons are (going to be) built first. I'm not sure how to aggregate the different lists of source files together when they are probably separated into different modules. Also, I have pretty much zero experience with cmake, and their documentation is pretty sketchy as well, so I'm not very enthusiastic about learning it.

That is a very nice summary of why nobody wants to do it.

23yrold3yrold

You trolled by bringing up SFML and Trent called you on your bullshit. Cue you sounding butthurt for the rest of the thread. I get the sense there's a history there, and I'm tempted to go find out about it, but I'm not that desperate for entertainment. ;D

Don't start nuthin', won't be nuthin. Troll. 8-)

Matthew Leverton

I get the sense there's a history there

It's just that both Trent and Edgar can get upset very easily when there's any hint of disagreement. And they tend to infer things that were never implied. So they make quite the pair.

Sorry dudes, just Dr. Leverton making his rounds.

23yrold3yrold

It's just that both Trent and Edgar can get upset very easily when there's any hint of disagreement.

{"name":"popcorn_yes.gif","src":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/f\/d\/fda44bdf61fd9fdb37246b1f0e47a260.gif","w":301,"h":250,"tn":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/f\/d\/fda44bdf61fd9fdb37246b1f0e47a260"}popcorn_yes.gif

Edgar Reynaldo

@23yrold3yrold
So simply mentioning that I'm considering another library is trolling then? In the very same paragraph, I did mention that I considered both A4 and A5 useful, but no one mentions that. If none of you care about what library I use, then why did you all have such a giant hissy fit about it? Furthermore, the only one trolling in this thread was you 23yrold3yrold. Making claims I was making demands when I didn't even bring up the subject in the first place. Desperately arguing that no one else thought it was a good idea, even though Mark Oates said he would like it if it got implemented, even though Kazzmir liked the idea enough to modify the package config script to link all the libraries together on Linux / OSX. So who's the one wasting peoples time here? You are. So take your ass fetish somewhere else gaywad.

23yrold3yrold

So simply mentioning that I'm considering another library is trolling then?

Depending on how it's mentioned ... yes.

Quote:

I did mention that I considered both A4 and A5 useful, but no one mentions that.

Because the thread isn't about if A4 or A5 are useful. Of course they're useful; why would you get any credit for pointing out the obvious? It's about whether A4 or A5 would be suitable for Paul whoknows, given his personal requirements.

Quote:

why did you all have such a giant hissy fit about it?

Actually, I gotta admit something; I didn't even notice AMCerasoli prompted you to post until just now. And it was apparently about you crying. So I was right; there is a history and it is amusing! ;D Otherwise, who would bring you up out of the blue, and why would you bite so fast after Trent's post?

Quote:

So who's the one wasting peoples time here? You are.

Yeah, turns out I trolled you and I wasn't even trying. Does this mean I trolled myself? Damn I'm good. And I even got you to call me a gaywad. 8-)

Thomas Fjellstrom

Yow. Double post. You da man 23.

23yrold3yrold

FUCKIN EH

REVISION: Nuts it corrected. :( Oh well ... going to bed, post more lulz.

Thomas Fjellstrom

Bah, it got BALLEETED.

Matthew Leverton

To summarize:

  • Allegro 4 is not abandoned and never will be in the sense that anybody, at any time, can volunteer to work on it, and nobody will get in his way.


  • Allegro 4 is abandoned in the sense that very few people will do that.

If you want to continue discussing monolothic builds, alternative libraries, and any other nonsense, then take it to the off-topic board.

Thread #607869. Printed from Allegro.cc