[MUD-Dev2] [DESIGN] AJAX Client/Servers?
John Bertoglio
jb at co-laboratory.com
Thu Feb 15 11:17:47 CET 2007
> > Phillip Lenhardt
> > Is anyone aware of or working on AJAX(ish) client/server code
> > for something mud-like? I am specifically not interested in
> > emulating a telnet+ansi connection in a browser. I am
> > interested in the details of making http 1.1 keep-alive and
> > chunking work (correctly? at all?) to minimize the amount of
> > socket creation/teardown, error detection and recovery when
> > sockets/connections close, etc. Extra points if the server
> > end code is in python.
I have been working on such an animal off and on for years. The current
version is fully functional mechanically in the sense that it will
accept commands, perform actions and display the activity (chat window)
to the user. I have found that with careful use of ajax/dhtml
techniques, you can avoid the keep alive issue by using javascript
timers to refresh the various display windows at reasonable intervals.
My underlying design philosophy is looking for a more relaxed style of
play so the lack of a truly persistent connection is not an issue. While
you lose the immediacy of a "CounterStrike-like" game, you open up the
possibility for a richer interaction. As a side benefit, you minimize
the issue of connection speed and latency differences. As long as you
have a high speed, persistent data store behind the web server, I think
a persistent connection to the web client is unnecessary as well as more
consistent with web development techniques.
Unfortunately, I have use the mud as a test bed for my professional dev
work, so every time I upgrade my platform, I have to start over. I had
the system working in 2000 with a Visual FoxPro backend and a FoxWeb
broker between the server and the db. The latest incarnation uses php to
connect to Cache (a very powerful industrial-strength database). I don't
have the time right now to go into it, but in practice, the system feels
like it has a persistent connections due to the smooth way Ajax updates
the display. The key to this system is because it uses pooled
connections, it is very scalable on modest hardware. The performance
needs to be seen to be believed. It works in IE and FF. Have not tested
in opera or Mac at this point.
As I get caught up with my consulting work (70-80 hours per week
contracted for the next few months), I will update the group on my
progress.
More information about the mud-dev2-archive
mailing list