Allegro.cc - Online Community

Allegro.cc Forums » Allegro Development » Is A4 abandoned?

This thread is locked; no one can reply to it. rss feed Print
 1   2   3   4 
Is A4 abandoned?
Trent Gamblin
Member #261
April 2000
avatar

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
Member #1,146
March 2001
avatar

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
Major Reynaldo
May 2007
avatar

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
Member #261
April 2000
avatar

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
Second in Command
February 2005
avatar

"Either help out or stop whining" - Evert

“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

23yrold3yrold
Member #1,134
March 2001
avatar

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

--
Software Development == Church Development
Step 1. Build it.
Step 2. Pray.

Edgar Reynaldo
Major Reynaldo
May 2007
avatar

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
Member #261
April 2000
avatar

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
Member #1,134
March 2001
avatar

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

--
Software Development == Church Development
Step 1. Build it.
Step 2. Pray.

Edgar Reynaldo
Major Reynaldo
May 2007
avatar

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
Member #1,786
December 2001
avatar

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
Member #261
April 2000
avatar

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
Member #1,134
March 2001
avatar

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? :)

--
Software Development == Church Development
Step 1. Build it.
Step 2. Pray.

Mark Oates
Member #1,146
March 2001
avatar

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
Major Reynaldo
May 2007
avatar

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
Supreme Loser
January 1999
avatar

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
Member #1,134
March 2001
avatar

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.

--
Software Development == Church Development
Step 1. Build it.
Step 2. Pray.

Edgar Reynaldo
Major Reynaldo
May 2007
avatar

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
Member #261
April 2000
avatar

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
Supreme Loser
January 1999
avatar

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
Member #1,146
March 2001
avatar

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
Member #8,726
June 2007

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.

www.justanotherturn.com

Matthew Leverton
Supreme Loser
January 1999
avatar

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
Member #1,146
March 2001
avatar

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
Supreme Loser
January 1999
avatar

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.

 1   2   3   4 


Go to: