[MUD-Dev] MMORPG/MMOG Server design

Sean Kelly sean at ffwd.cx
Fri Mar 7 11:38:19 New Zealand Daylight Time 2003

On Wed, 5 Mar 2003, Caliban Tiresias Darklock wrote:

> Total agreement over here... I've been doing a lot of work with
> audio synthesis lately, and while I *can* deconstruct everything
> down to the three dimensions of amplitude, phase, and frequency --
> it is not always a good idea. I may need to bound my phase to
> between 0 and 1, my amplitude to between -1 and 1, and my
> frequency to a nonzero positive value < Nyquist, but if I verify
> or enforce these conditions at *every* stage of generating *every*
> sample the performance of the algorithms rapidly degrades to an
> unusable level. So while it disturbs me to leave the dependency
> checking out of the processing, it is simply more practical to
> expect the developer to apply these checks at an earlier choke
> point... even though a developer oversight may then allow the
> engine to suffer catastrophic failure at runtime.

This sounds like a design issue.  I imagine there has to be an
efficient way of clamping values that use your library.  But even
so... see below.

> The single biggest obstacle I face when writing code is my own
> prejudices. I commonly view the next guy -- whether it's the end
> user or another developer -- as a sadistic bastard who will not
> only completely misinterpret the purpose of the system, but
> actively attempt to break it in some misguided attempt to prove
> his superiority. In cases where the operations are not
> time-critical, this approach tends to result in well-documented,
> robust code that simply doesn't break. In time-critical
> operations, however, it just bumps up the hardware requirements. A
> lot. In cases where your goal is to provide as many parallel
> operations as possible, you also reduce the capabilities of the
> software.

If you ask about library robustness in a C++ forum, the popular
answer from STL developers is "document the requirements and
limitations and woe unto those who don't follow them."  Because of
the potentially diverse application of the STL, the designers cannot
make any guesses about or optimize for any specific uses.  The
result is that the STL contains little or no error checking and all
requirements are documented.  IMO this is a perfectly reasonable
approach, though it can lead to disaster if your library is being
used by inexperienced programmers.


MUD-Dev mailing list
MUD-Dev at kanga.nu

More information about the MUD-Dev mailing list