By 19day

Don't you just hate it, you start a new programming project with high hopes and great ideas, but it seems that everything you want to have in the program, is difficult to program from scratch. You wanted SB sound, and midi and to be able to scale your images and move them around easily like you've in other programs.

But how, can you program all that stuff, and still live long enough to program the actual project you set out to do in the first place. You use a library. A library seems to have a few definitions around the Net, it could be a group of subs and functions that do certain tasks for you, like Blast!, or it could be an actual QuickLibrary like Dash, or even a external EXE you have to run with it, or alone, like SBMIDI and PLAY.

So you group these things together to make your great program, and there are a few results from this:

a) All the work collecting and merging all the stuff bogs you down and you quit.
b) You can't seem to get any of it to work together.
c) You have a really bad program, with great sound.
d) You achieve your goal.
e) Many other problems.

I personally hang between B and D, and I'll tell you why. When you use these outside programs like Blast and QMIDI and DMAplay, you start down a road of conflict, that is, between the programs. I had endless problems with Qmidi and DMAplay together. Blast! and Dash have crashed my computer on several occasions and sometimes it's enough to make you want to quit.

When you go get another program to do the work for you, you don't learn what you need to know to use it effectively. If you want to compile a bunch of demo's then fine, but if you try to make a program, and some of the third party programs conflict, you probably won't know how to fix it. I, personally, don't know what WriteDSP does, or how the StopMidi ASM works, and if I have a problem with them, then I'm up the creek without a paddle.

But of course, you can also see the other side of the coin. People who always say "Oh, I don't know what's wrong with it, I don't use those things, I just write my own." That's great for people with the knowledge and the time, but in fact, most of those people never actually finish what they start. I believe most of them write a program to allow their game to play music, and then never finish the game, so they release the music playing library for people to use, going against everything they defended. You can sometimes spot these programs, where the programmer tried to make a quick Blast!, and it runs really slow.

But the third side of the coin (?) is that they, at least, could fit it all together. They created it, so they know exactly how it will behave, and they fit it into their programs, and that's where it was ment to be.

What does this all boil down to?

Well, this is how I see it:

1) If you are wanting a sub to draw lines for you or something like that, write it yourself, you can customize it all you want.

2) If you are using utilities like Qmidi, find out how they work, as much of it as you can understand, you will have fewer problems in the future.

Some really great games have been created out of Utilities like DMAplay and Qmidi, WetSpot2 by Enhanced Creations, Space-a-Roo by SonicBlue and, hopefully once I get it finished, MazeRPG by 19day Productions.

So going back to the title of this article, The Price of Utilities, well, it's pretty much the understanding and the customization of them that you have to throw away, to an extent.

Remember, those utilities are out there for you to use, and remember to give credit to those how made them, but also remember to give credit to yourself, because without you, those utilities would just be unused, stagnant code.

Back to Top

This tutorial originally appeared in QBasic: The Magazine Issue 2.