1. Bots & EUServer

just a quick note to those that are creating bot engines, and want to
have those engines be able to be multiuser...

(I guess this narrows down the targets for this message techinically
to.... Ralf... heh... but,I believe that it would be better for
all those interested in either the bot engine or EUServ
to take a look-see at this message...)

One thing that was brought to my attention concerning
EUServer is that it can only be an EXW.EXE program...

We cannot do things like use Neil or TrueEU or other such
EX.EXE graphics type of affairs, as things currently sit.

EX.EXE, as many of you know, cannot support linking to
DLL's, and this makes things real complicated...

So, there are options to get around this dilemma.

1>Make the bot engines use exw.exe (with or without
win32lib...) and then EUServ will be directly usable.

2>Make a complete dos ppp solution, including support for firewalls
with multiple local lan machines behind those firewalls... blech...

3>rewrite winsock.dll, itself, as some sort of loadable 'library/module'
for ex.exe... blech...
4>A slower method, in certain ways, of exchanging data between EUServ
and an ex.exe program could be created and implemented.  Another word
for this is cheating :)

If you need the graphical speed afforded by Neil, TrueEU,
Mode19??(bywhoever), etc... but desire multiplayer/user, we could
do something that was suggested a while back by someone wishing to
share data between applications in terms of BBS/Doors...

You would need a 'stripped down' client, custom built, to interface
with EUServ.  The end user would run this first, and connect to the
'game server'.  This client would then need to alloc a section of
(preferably LOW) memory as a pass thru buffering system.  You place
that _address_ into a file, and the user then starts the 'game',
letting the 'game' know that it will be in multiplayer mode.

When the game is informed of this tidbit of information, it looks for
the file containing the _address_ of the memory buffer, and reads in
the address.

The actual implementation is (or should be) a wee bit more complex,
if you want any efficiency...  You really need 2 buffers, one for
sending,
another for receiving.  Furthermore, the first byte of each should be a
boolean showing if data is waiting, this way, inside your polling loop
analyzing the buffer(s), you can simply peek to the actual address and
decide if u need to snarf any data.  The next (likely 4) bytes should
show
the *total* size of the "object" that is being buffered, since, quite
often,
you will wish to transfer a "thing" that is larger than these buffers
between
the client and the 'game' (like an image perhaps)...

The client and EUServ can be written, easily, to handle shoving this
entire "thing" between them in a fell-swoop, and it then becomes the
chore of the client to filter this to the 'game'.  The client can
maintain
the entire "thing" until the 'game' can retrive the entire 'thing'...

In some cases, due to connect speed, the 'game' will actually be able
to retrieve data from the buffer faster than the client is getting
from the EUServer.

I felt that, even tho this technique is rather obvious, it was important
for me to 'remind' and 'mention' it before too much code was written
that would then have to be rewritten for multiuser applications...

I also feel it's a *lot* of dratted hoops to have to jump, and I will
also be affected by this limitation, as I was planning to create a
"graphical MUD" that used Neil, TrueEU or perhaps a combination of those
two libraries, in conjunction with an upgraded version of EUServ.

If anyone has other ideas for getting ex.exe and exw.exe to work more
harmoniously together, those ideas may help this issue.  I would like to
avoid having to create a dos ppp stack for ex.exe apps to become
connectable,
as win95 already has the 'hard part' taken care of in terms of
connectivity
over tcpIP... and rewriting winsock2.dll is not my idea of a weekend of
fun...


    _/  _/   _/_/_/   _/  _/  _/  _/   _/_/_/ _/
   _/  _/   _/  _/   _/  _/  _/ _/    _/
  _/_/_/   _/_/_/   _/  _/  _/_/     _/_/
 _/  _/   _/  _/   _/_/_/  _/ _/    _/
_/  _/   _/  _/   _/_/_/  _/   _/  _/_/_/
({<=----------------------------------------=>})
({<=- http://members.xoom.com/Hawkes_Hovel> -=})
({<=----------------------------------------=>})

new topic     » topic index » view message » categorize

Search



Quick Links

User menu

Not signed in.

Misc Menu