Only you say so. Everyone else wants to know that their learning curve isn’t going to be a pointless waste of time. Clicking on a prebuilt binary sets a goal: this is what you’re aiming to complete.
Yeah, I guess you’re right. I mean, I’m obviously a fool for spending all that time writing over three hundred pages of text, spending hours making charts and diagrams to explain points. Editing passages to make sure they’re clear to a new user. Rearranging text so that each topic flows properly into the next, so that each tutorial builds on and properly reinforces its predecessors. That was a complete waste of time for a project intended for someone to learn from.
I mean, who needs detailed explanations for things when you can just ship binaries? I mean screw that whole teaching people how to use shader-based OpenGL; we’ve got to get some friggin’ binaries out to people!
Oh, and if you’re saying that you were talking about my SDK and not the tutorial, don’t bother. You clearly said, “As for making a tutorial, I don’t think the point is lost, however. Are you trying to teach OpenGL? Or are you trying to teach build systems? If the former and not the latter, it would be better to ship binaries and generated project files.” And my point was that building the code is not the most important thing for learning with my tutorials.
No, that’s not the whole point. The point is you can make one build description that’s cross-platform, cross-IDE, written in a sane language, and produces standalone build files. Actually, “the point” doesn’t have to include all of that. I’m mainly interested in the sane language, I’m not going to learn MSBuild. If you don’t want to ship binaries that’s your point, not “the whole” point.
Similarly, your interest in “the sane language” is also not “the whole point”. It’s a good point, but only using Premake4 because it’s a nice build language misses a lot of its utility.
I use Premake4 as a way to support build systems that I have neither the time nor inclination to use. That’s the whole point for my projects. It’s a clean way to allow the user to pick their favorite build tool.
We have different needs. That’s fine. What makes your needs so much better than mine?
then maybe they should be in a nursing home. smile Ok ok, maybe part of the Space Shuttle runs on VC6. Wait, they retired those. Ok! Some part of someone’s ancient OpenGL infrastructure somewhere actually runs on VC6, and it’s crucial to national security. I’m sure someone does it but it’s not what I’d call an important case use.
And that’s the whole point. You believe that VC6 users are not “an important case use”.
I don’t agree. The thing I hate the absolute most when working with Open Source projects is being told what build system to use. I hate projects that don’t come with Visual Studio builds (or something that can generate them, like CMake/Premake). I hate the arrogance of OSD people who think that Make is all everyone should use, and screw those Windows developers for their fancy IDEs; just use VI like everyone else.
I don’t use VC6. And I don’t think that people should. But I do not believe it is my right to tell them that they shouldn’t. I will make no special effort to ensure my code compiles on VC6; it is not officially supported. But I will also make no special effort to stop them.
If someone hates VC7+, who am I to say that they’re wrong? Who am I to say that they shouldn’t have a build system where they use VC6 as their IDE (and therefore need VC6 project files), but they actually hook into VC2010’s compiler via various means? I may not use VC6, but I will not deliberately hurt them if I can avoid it.
Yes, I don’t support every possible IDE. But I do use Premake4, which supports a hefty number of builds. That is, as far as I’m concerned, doing diligence as far as supporting builds.
I will make my projects available according to the values to which I hold. I believe that a project should be self-contained, affecting as little as possible on a user’s system. I believe that a project should have a build system that accommodates the user’s preferred tool path as much as possible, not tell them how to build their stuff. And yes, I believe that the build system should be reasonable straightforward and centralized as much as possible. Premake4 offers that.
I think one verdict on that was had at the beginning of this thread. You “solved” the problem by insisting that someone RTFM. He got angry. Regardless of the ethics or morality of it, it says to me your approach is not as simple as you claim.
That is not a reasonable conclusion given the available evidence. This thread contains exactly three people who ran into a problem. Two of them were easily and quickly helped. One of them could not be helped because he refused to actually say what the problem was in a reasonable way.
The only way to know whether the process is “as simple as (I) claim” is to match the number of build failures to the number of successes. Since neither of us has any particular knowledge of how many build successes I’ve had (I can give you download stats of around a thousand or so for the SDK, and half that for any given version of the tutorials. But a download does not necessarily mean a success), any attempt at a factual statement one way or another is false.
Trust me: people like tyro1
exist. And they will have problems with the simplest install procedure. No matter how foolproof you make a system, someone will be a bigger fool. You can only look to how many people successfully use the system vs. failures.
And people for whom the system works don’t need to make posts or file bug reports.
If you want maximal adoption, you can adopt the practices that the largest, most popular cross-platform open source projects use.
Which:
1: is no guarantee of “maximal adoption”.
2: requires more time than I care to invest.
3: requires doing things that are against my personal beliefs.
Thank you for the advice. But I’ll keep going with what I have, if it’s all the same to you.
Of course, there’s nothing stopping you (or anyone else) from using the existing distro to make and distribute binaries if that’s what you really think would help. Many, many projects work this way, where the primary developers make the real code and others create various binary distros and such for those who want simpler installations (though most of the time, it is for much more complicated build systems).
In fact, if you took the time you spent writing messages and spent it on “build engineering” for my current SDK distro, I bet you’d have a couple of binary packages available by now
I’m not going to do it. The only reason the SDK even exists is because it’s derived from my tutorial framework. I felt that I could wrap it up in a nicer package and let people use it directly. If it helps someone, great. If it doesn’t, that’s fine. But I’ve invested about as much attention on having a reasonable build system as I’m going to.