> R. N. Dominick (cinnamon@one.net) wrote:
> : Gareth Rees (gdr11@cl.cam.ac.uk) wrote:
> : : Interactive fiction
>
> : : * needs to be portable if it is to reach a large audience;
> : : * does not make heavy processing demands;
> : : * can't be released in source format (because most authors feel that
> : : letting players read the code would spoil the game for them).
>
> : : Thus interpretation is an ideal solution.
I have been fiddling around with writing an IF-like object oriented
library in the programming language Scheme. This solution is just about
perfect in my view:
(1) Great quality 'free' native machine language scheme compilers
exit for all major machines. For example look at MacGambit for the Mac,
and MIT scheme for the PC/Windows, Alpha/OSF and so on.
MacGambit is a great development environment (debugger, editor, complete
on-line language manual) with an excellent optimizing compiler. I have
looked at generated code from both MacGambit and THINK C (with global
optimizing turned on.) MacGambit is sometimes better quality!
(2) Easy to learn clean programming language that supports an
interactive development style.
(3) Most of what one wants to do in an IF program is already built
into object oriented scheme. The remainder (such as English parsing, and
so on..) can be built into a library.
What all of this comes to is that (byte code) interpretation, while not
really much of a problem in IF applications, is no longer a necessity.
In my case I am interested in combining actual object oriented
simulations with a textual virtual reality (IF style) interface, and in
building realistic socially competent simulated agents. The expressive
power and speed of native compiled scheme certainly is an advantage..
On the other hand, TADS, for example is not a bad all around programming
language. I have a version of COOLMUD that I ported to the Mac, also not
a bad OOP language, but because it uses copy semantics (it copies whole
lists when you even look at it funny!) it is slow for serious programming.