QuickBASIC/QBASIC newsletter

Editorial Article

The Price of Utilities
By 19day (19day@geocities.com)
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 done 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)  You have 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 slowly.
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.