[MUD-Dev] newbie
Matt Chatterley
root at mpc.dyn.ml.org
Sun Nov 9 13:38:08 CET 1997
On Sat, 8 Nov 1997 coder at ibm.net wrote:
> On 04/11/97 at 09:21 PM, Sauron <dlove at kusd.kusd.edu> said:
>
> >Generally hardcode is what you use to write the server and has to be
> >compiled and restarted each time you make changes (note that i said
> >generally, i know this isn't ALWAYS true). Softcode tends to be the
> >internal programming language on your server. It has no need to be
> >compiled, generally adds to lag, but is also on the average easier to use
> >and uses the games internal functions to the best of their abilities.
>
> There are some notable exceptions here. LP's LPC is easily recognisable
> as "sfotcode", yet it is "compiled" into an internal form (bytecoding? I
> haven't checked), and in some versions can be compiled directly into
> machine binaries. ColC comparitively compiles into bytecode which is
> then run by the Cold VM.
Yeah. LPC is more like Java in the sense that it does run from a form of
VM (perhaps not strictly speaking, but in a theoretical sense). Using the
binary options you can also compile LPC to C at runtime, and keep it
stored as C for efficiency purposes.
The best example of softcode that I know of would be that found on the
Tiny/PennMUSH servers, and another example I could cite is the interpreted
scripting language being built into my mud (the interpretor/executor
written in LPC) to run magical spells.
> >The
> >real tradeoff is w/ hardcode you increase your cpu usage, and softcode it
> >chews up your ram. Most good mu*s tend to have a balance of both types of
> >programmed systems.
>
> Softcoded systems which compile to byte code lose many of their CPU
> intensive aspects. On a related note, disk based systems (don't keep
> everything in RAM), can be much more effective at reducing CPU and RAM
> consumption than the soft or hard code routes, as well as significantly
> improving page fault rates and thus performance. Marcus Ranum
> demonstrated this very clearly.
Yes - basically there are pros and cons to each approach. Putting aside
the hardware usage side (which is perhaps not as important to many people,
at least not until you have a *large* server), the main differences are:
Softcode tends to be easier to learn (citing Tiny/Penn as an example).
Softcode also tends to be harder to do major things in (if it is possible
at all).
Hardcode generally requires a server reboot, and is inaccessible to
players.
And so forth, and so on.
Regards,
-Matt Chatterley
http://user.itl.net/~neddy/index.html
"All extremists should be taken out and shot."
More information about the mud-dev-archive
mailing list