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.
members.xoom.com/19day
Back to Top
This tutorial originally appeared in QBasic: The Magazine Issue 2.