[comp.sys.atari.st.tech] Many Player Games

elev35@castle.ed.ac.uk (R C Smith) (02/18/91)

I would like to write a many ST game programme which links together n
STs where n>=2. Could anyone give me a pointer as to how this could be
done?

1. Would it need one ST used as a server to the rest?
2. Should I use the MIDI port as there should be a through connection?
3. I wouldn't mind making a simple bypass circuit for the serial port,
this would require a simple interrupt programme that checked the serial
port to see whether the computer should take the message on the serial
port or should let it through to the next ST (This is beginning to sound
like a LAN!!!)

Anyhow you get the idea 
advaTHANKSnce
Robin

aikc@castle.ed.ac.uk (Kenneth Cameron) (02/19/91)

In article <8553@castle.ed.ac.uk> elev35@castle.ed.ac.uk (R C Smith) writes:
>I would like to write a many ST game programme which links together n
>STs where n>=2. Could anyone give me a pointer as to how this could be
>done?
I've done this with a Multi-User Adventure game that I wrote. (Called Cantrip).
I was meant for use on unix hosts, but I ported it to the ST. You can connect
upto 20 machines together, (this is a #defined limit, so more could be
connected upto something like 64).

>1. Would it need one ST used as a server to the rest?
Thats the way I've done it. One machine runs the game, and the others act
as terminals (of a sort).
>2. Should I use the MIDI port as there should be a through connection?
I used Midi. But not the through option. You need to connect Midi out to
Midi in on the next machine in a loop, all the way round to the first machine
again.

>port or should let it through to the next ST (This is beginning to sound
>like a LAN!!!)
I developed a packet protocol suited to the task. Each machine has a unique
address, it extracts all packets addressed to it, echo-ing on all others
to the next machine in the loop. It can also insert a packet into the loop
when it needs to. Who generates packets, and when is defined as part of the
protocol.
There are a few of points to watch out for.
1. The standard io handlers can't cope with the kind of data flow rates you
can generate on the ring. Resulting in loss of characters.
2. Data can only flow in one direction. So it may take a while to pass a
message from one machine to another. This also means the only handshakeing that
can be done is to pass a message back round the other half of the loop.
(In case of errors, its useful to get machines to extract out any packets
which were sent by them. Otherwise they may go round the loop for ever}
3. If each machine reads an entire packet before it retransmits it, the baud
rate is divided by 2 for every machine in the loop. I cured this problem by
reading the packet header, and if the packet was not intended for that machine
starting to dump out the rest of the packet as it arrived.

>Anyhow you get the idea 
>advaTHANKSnce
>Robin
Your welcome.
What kind of game did you have in mind ? Midi may not be fast enough for
arcade games, unless the amount of data to be sent is kept small.

Cantrip is not quite finished (I'm not happy with the NPC code). But if theres
any interest in the ST version, I could post a set of binaries (it should run
on any ST, single or multiplayer).
,Kenneth.

-- 
,Kenneth.
K.Cameron@uk.ac.edinburgh                             kenneth@uk.ac.ed.cs.tardis

aikc@castle.ed.ac.uk (Kenneth Cameron) (02/24/91)

I have received a number of request about Cantrip, about what it is, and where
it can be got. Rather than answer them all individually, I'll post a short
description here, and hope to post a copy to st.binaries within a few days.
(Those that hate adventure games better hit the 'n' key now).

	Cantrip is a multi-user adventure game. It is written in C and there
are versions to run on various multi-user machines. It is a text based adventure
system. Players can interact with their surrounding and other players. There are
some monsters (NPCs) but they are pretty dumb at the moment. I ported the game
to the ST, using the Midi ports to build a simple network. Eventually the whole
thing will be put in the public domain, but not until its finished. Meantime
an almost finished set of binaries will be released. As far as possible I've
kept the software apart from the scenario, so that people can create there own
new world without having to learn C. Cantrip has a simple command language
which can be included in any text, such as room descriptions. The inital
adventure is not very large but shows how the commands can be used to build
up various puzzles and effects.
I'll post it as soon as I can.

-- 
,Kenneth.
K.Cameron@uk.ac.edinburgh                             kenneth@uk.ac.ed.cs.tardis