Resource centre for ZX Spectrum games
using Manic Miner and Jet Set Willy game engines
Archive of the
Manic Miner & Jet Set Willy Yahoo! Group
messages
|
|
||
|
|
Message: 6156
Author: andrewbroad
Date: 23/05/2007
Subject: Re: Generating maps for JSW games / SPECSAISIE 1.4
Daniel wrote:
>This has just given me a new idea for a SPECSAISIE function MapJSW to
> I understand well the point about the tediousness of the process.
> It was (kind of still is) my ambition to create name-based maps in
> PDF for every single gamma-released JSW game (like the one I made
> for "where's woody" - it's in my folder in the Files section of the
> Group - and for my games); I have created several of them which I
> haven't posted anywhere yet, but quite honestly mapping old games
> is a very tedious process, and I am not sure I will be able to
> carry it out to the end.
automatically generate maps as text-files!
What makes this a tricky problem, of course, is that most JSW games
(including the original) don't have completely logical geography
(e.g. just because "The Off Licence" is above "Watch Tower", doesn't
mean that "Watch Tower" is below "The Off Licence", and while there
are only two exits between "The Wine Cellar" and "The Security
Guard", there are 8 exits between "Back Stairway" and "The Front
Door"!).
So MapJSW would need heuristics in order to place such rooms in the
most sensible positions. Roughly speaking, a room should appear in
the map in the cluster of rooms that it best fits.
I've been thinking a lot about SPECSAISIE since I've been learning
C#. I think the best way forward will be to bring SPECSAISIE 1.3 to a
quiescent state without adding much more functionality to the latest
alpha-version, so that it can be gamma-released, and I will then be
able to forge ahead with my more ambitious ideas for SPECSAISIE 1.4.
My vision for SPECSAISIE 1.4 is of a much more object-oriented
library, because 1.3 is largely written in a very procedural style.
So MM/JSW games, for example, would be represented by an abstract
class Game, which would have subclasses such as GameMM, GameJSW and
GameJSW64, all of which would have external interfaces compatible
with the end-user functions (e.g. RoomJSW, ItemsJSW, MapJSW), even
though their internal representations may differ radically.
SPECSAISIE 1.4 will support 128K memory just as easily as 1.3
supports 48K memory, though I'm still meditating on whether Memory128
will be a subclass of the current Memory used to represent 48K
memory, or whether Memory48 and Memory128 will both be subclasses of
an abstract class Memory.
SPECSAISIE started as a simple project to support my typing of MM/JSW
games into my real Spectrum. A Lisp program (Lisp being the most
powerful language freely available for my old Mac at the time, though
it ran like molasses) would generate the bytes (and an address-
dependent checksum every 8 bytes) to type in, while on the Spectrum I
would add DATA statements to a BASIC program to READ and POKE them
in. And I had a BASIC program to print the bytes on the Spectrum so
that I could type them in as a Lisp program to generate an SNA file.
Then I rewrote SPECSAISIE in Java so that I could generate type-in
listings much more quickly, and of course it all mushroomed from
there.
But will I embrace the power of the dark side, and convert SPECSAISIE
to C#? As evil as the Microsoft empire is, I must admit that they
have developed the best programming-language I've seen to date, with
several advantages over Java. But it would be rather tedious to
translate SPECSAISIE to C# (unless I wrote a program to do so
automatically), and I'd then have to develop two variants of
SPECSAISIE in parallel to keep the Java-loyalists (including myself)
happy.
--
Dr. Andrew Broad
http://geocities.com/andrewbroad/
http://geocities.com/andrewbroad/spectrum/
http://geocities.com/andrewbroad/spectrum/download/
http://geocities.com/andrewbroad/spectrum/download/specsaisie.html
P.S. I'm now down to 42 unread MM/JSW emails as I strive to bring my
List of MM/JSW Games up to date by 27th May.
