January 2004
- The last days of Discord PVP server on EQ Frank Crowell
- The last days of Discord PVP server on EQ szii@sziisoft.com
- biggest muds Matt Mihaly
- Congratulations Horizons... Lee Sheldon
- Congratulations Horizons... Brad McQuaid
- Congratulations Horizons... Marian Griffith
- Congratulations Horizons... Brad McQuaid
- Congratulations Horizons... T H
- Congratulations Horizons... Matt Mihaly
- Congratulations Horizons... Lee Sheldon
- Congratulations Horizons... Chanur Silvarian
- Congratulations Horizons... Lee Sheldon
- Congratulations Horizons... Brad McQuaid
- Congratulations Horizons... Marian Griffith
- Congratulations Horizons... Chris Duesing
- Congratulations Horizons... Mike Shaver
- Congratulations Horizons... Marian Griffith
- Congratulations Horizons... Tom "cro" Gordon
- Congratulations Horizons... Lee Sheldon
- Congratulations Horizons... Brad McQuaid
- Congratulations Horizons... Lee Sheldon
- Congratulations Horizons... Christopher Kohnert
- Congratulations Horizons... Vincent Archer
- Congratulations Horizons... Chanur Silvarian
- Congratulations Horizons... Vincent Archer
- Congratulations Horizons... Chanur Silvarian
- Congratulations Horizons... Lee Sheldon
- Congratulations Horizons... Chanur Silvarian
- Congratulations Horizons... Matt Mihaly
- Congratulations Horizons... John Buehler
- Congratulations Horizons... Philip M. Hofer {Frumph}
- Congratulations Horizons... Lee Sheldon
- Congratulations Horizons... Paul Schwanz
- Congratulations Horizons... Daniel.Harman@barclayscapital.com
- Congratulations Horizons... Lee Sheldon
- Congratulations Horizons... Lee Sheldon
- Congratulations Horizons... Matt Mihaly
- Congratulations Horizons... Lee Sheldon
- [DGN] The psychology of random numbers Ted L. Chen
- [DGN] The psychology of random numbers Ammon Lauritzen
- [DGN] The psychology of random numbers Chanur Silvarian
- [DGN] The psychology of random numbers Michael "Flury" Chui
- [DGN] The psychology of random numbers Zach Collins {Siege}
- [DGN] The psychology of random numbers David Kennerly
- [DGN] The psychology of random numbers Paolo Piselli
- [DGN] The psychology of random numbers Sean Kelly
- [DGN] The psychology of random numbers Chanur Silvarian
- [DGN] The psychology of random numbers Alex Chacha
- [DGN] The psychology of random numbers Ted L. Chen
- [DGN] The psychology of random numbers ceo
- [DGN] The psychology of random numbers Dave Bacher
- [DGN] The psychology of random numbers Hans-Henrik Staerfeldt
- [DGN] The psychology of random numbers Ben Hawes
- [DGN] The psychology of random numbers Byron Ellacott
- [DGN] The psychology of random numbers Kirinyaga
- [DGN] The psychology of random numbers Daniel.Harman@barclayscapital.com
- [DGN] The psychology of random numbers szii@sziisoft.com
- [DGN] The psychology of random numbers Brian Hook
- [DGN] The psychology of random numbers Daniel.Harman@barclayscapital.com
- [DGN] The psychology of random numbers Mike Shaver
- [DGN] The psychology of random numbers Byron Ellacott
- [DGN] The psychology of random numbers Byron Ellacott
- [DGN] The psychology of random numbers J C Lawrence
- [DGN] The psychology of random numbers Rayzam
- [DGN] The psychology of random numbers Vincent Archer
- [DGN] The psychology of random numbers Robert Zubek
- [DGN] The psychology of random numbers Travis Casey
- [BIZ] Defining 'churhn' in relation to MMO games Tom "cro" Gordon
- [BIZ] Defining 'churhn' in relation to MMO games ren@aldermangroup.com
- Moderation delays J C Lawrence
- NEWS TECH: Welcome to the "MUD-Dev" mailing list Peter Seebach
- NEWS TECH: Welcome to the "MUD-Dev" mailing list Jon Leonard
- NEWS TECH: Welcome to the "MUD-Dev" mailing list Peter Seebach
- NEWS TECH: Welcome to the "MUD-Dev" mailing list Lars Duening
- NEWS TECH: Welcome to the "MUD-Dev" mailing list Peter Seebach
- NEWS TECH: Welcome to the "MUD-Dev" mailing list Mats Lidstrom
- NEWS TECH: Welcome to the "MUD-Dev" mailing list Lars Duening
- Expected value and standard deviation. Michael Tresca
- Expected value and standard deviation. Ola Fosheim Grøstad
- Expected value and standard deviation. Michael Tresca
- Expected value and standard deviation. Ola Fosheim Grøstad
- levels (was: ghost mode) Ola Fosheim Grøstad
- Do players enjoy farming? (was MUD-Dev Digest, Vol 7, Issue 9) Paul Schwanz
- Do players enjoy farming? (was MUD-Dev Digest, Vol 7, Issue9) John Buehler
- Do players enjoy farming? (was MUD-Dev Digest, Vol 7, Issue9) Rayzam
- Do players enjoy farming? (was MUD-Dev Digest, Vol 7, Issue9) Paul Schwanz
- Do players enjoy farming? (was MUD-Dev Digest, Vol 7, Issue9) Sheela Caur'Lir
- Do players enjoy farming? (was MUD-Dev Digest, Vol 7, Issue9) Daniel.Harman@barclayscapital.com
- Do players enjoy farming? (was MUD-Dev Digest, Vol7, Issue9) eversilver@yahoo.com
- Camping (Was just named as a generic MUD-DEV reply) Chanur Silvarian
- Camping (Was just named as a generic MUD-DEV reply) ren@aldermangroup.com
- Camping (Was just named as a generic MUD-DEV reply) Brent P. Newhall
- Exploits and hacks in MMORPGs Björn Morén
- Exploits and hacks in MMORPGs Daniel Anderson
- Exploits and hacks in MMORPGs Sheela Caur'Lir
- Exploits and hacks in MMORPGs Kirinyaga
- Do players enjoy farming? Chanur Silvarian
- Do players enjoy farming? (was MUD-Dev Digest, Vol 7, Issue 9) Paul Schwanz
- Do players enjoy farming? (was MUD-Dev Digest, Vol 7, Issue 9) Tom "cro" Gordon
- Online worlds and behavior... etykwins@fcbayern.de
- ANNOUNCE: MUD-Dev conference, 26 and 27 March 2004 J C Lawrence
- MudWorld.Org Anthony R. Haslage
- New MMORPG from the Army Amanda Walker
- New MMORPG from the Army Dave Rickey
- New MMORPG from the Army Amanda Walker
- New MMORPG from the Army Daniel.Harman@barclayscapital.com
- FedExing ghovs
- Play styles and world interactionsistilldontwantitposted@phlange.com J C Lawrence
- Death and Permadeath and Corpse Retrieval Sean Middleditch
- Death and Permadeath and Corpse Retrieval T H
- Death and Permadeath and Corpse Retrieval Ben Hawes
- Death and Permadeath and Corpse Retrieval Sean Middleditch
- Death and Permadeath and Corpse Retrieval Spot
- Death and Permadeath and Corpse Retrieval Sean Middleditch
- Death and Permadeath and Corpse Retrieval Daniel.Harman@barclayscapital.com
- [DGN] Senior Focus Mentor Needed Andrew Budd
- [BIZ] HOW TO SCREW UP A PERFECTLY GOOD GAME COMPANY IN TEN EASY STEPS Michael Tresca
- [BIZ] TEN MORE EASY WAYS TO SCREW UP YOUR GAME COMPANY Michael Tresca
- Crafting systems Björn Morén
- Do Quests need to be Fed-Ex David Lyttle
- Do Quests need to be Fed-Ex eversilver@yahoo.com
- Do Quests need to be Fed-Ex Chanur Silvarian
- Do Quests need to be Fed-Ex Sean Howard
- Do Quests need to be Fed-Ex Chanur Silvarian
- Do Quests need to be Fed-Ex Sean Howard
- Moving toward Massive Multiplay (was Congratulations Horizons...) Paul Schwanz
- ADMIN: Policy change J C Lawrence
- [TECH][TOOLS] SCM systems ceo
- [TECH][TOOLS] SCM systems Erik Bethke
- [TECH][TOOLS] SCM systems ceo
- [TECH][TOOLS] SCM systems Jon A. Lambert
- Problems with current RPGs Björn Morén
- Problems with current RPGs Koster, Raph
- Problems with current RPGs Sean Howard
- Problems with current RPGs Björn Morén
- Problems with current RPGs Koster, Raph
- Problems with current RPGs Björn Morén
- Problems with current RPGs David Johansson
- Problems with current RPGs Yaka St.Aise
- Problems with current RPGs Hans-Henrik Staerfeldt
- Problems with current RPGs Björn Morén
- Problems with current RPGs Yaka St.Aise
- Character Perceptions John Buehler
- Character Perceptions Derek Licciardi
- Character Perceptions John Buehler
- Character Perceptions ceo
- Character Perceptions John Buehler
- Character Perceptions Scion Altera
- Character Perceptions John Buehler
- Character Perceptions bjoernen@hotmail.com
- Character Perceptions John Buehler
- [BIZ] Warcraft Interview Michael Tresca
- [BIZ] Warcraft Interview ceo
- [BIZ] Warcraft Interview Björn Morén
- Raffle at the MUD-Dev Conference, March 27th and 28th 2004 Ann
- R: Moving toward Massive Multiplay (was CongratulationsHorizons...) Ghilardi Filippo
- Python script as stand alone MUD server... Jason Slaughter
- Python script as stand alone MUD server... Sean Middleditch
- Python script as stand alone MUD server... Alistair Riddoch
On Thu, Jan 22, 2004 at 01:46:26AM -0500, Jason Slaughter wrote:
> Of course, being a scripting language, it will be slower than
> compiled code, but is that really going to be an issue? It seems
> to me the bottleneck in a mud server would be in the game logic,
> not in the lower level server/socket stuff (and the game logic
> would ultimately come down to Python scripting even if I compiled
> the server using C++, and used Python only for scripting)... so I
> would say that as far as speed goes, the loss won't be crippling
> at all (and it would be worth spending an extra $1000 on a faster
> server, at least, if it means saving a 100+ hours in programming
> and debugging).
> What are some other issues that I have to think about using
> Python?
When I joined the WorldForge project about 4 years ago, its only
functional server was written in pure Python, and it worked
extremely well. Python's high level features made it relatively
simple to code complex AI, introspection made it easy to to build a
flexible game object system using native Python objects, and the
whole code-base was completely portable.
Performance was a big problem. As I got involved in development, it
quickly became apparent that we were going to need to do some
serious work if we were going to scale beyond a dozen or so mobs and
players per server. I started to look at approaches to solve this,
and immediately looked at compiled code as the solution. I am not an
expert Python programmer, but the majority of the code had been
written by another developer who is very experienced, and I had no
reason to believe that the performance was due to bad coding. I
investigated and experimented with a few approaches, including
implementing performance critical components as compiled Python
modules, and finally settled on re-writing the core of the
application in C++, and keeping the high level code as scripts.
I was able to automate much of the syntax mangling from Python to
C++, and the structure of the code remained basically the same. The
automatic conversion was done with simple munging scripts in perl,
and manual fix-ups and debugging took no more than a week of part
time hacking. The starting point was 12,000 lines of python, and
the result was about 10,000 lines of C++ and 10,000 lines of python.
The resulting code was somewhat less portable, but not fundamentally
so.
4 years down the line the code is working well, and is still our
flagship server. Performance has been improved by a factor of more
than 100, though it is difficult to be precise as the job has
changed a lot over the evolution of the code.
Overall I think Python was an excellent language to build the
original prototype in, given the rapid development cycle, good
readability and ease of refactoring, but it does not seem as though
even now Python is fast enough for a decent scale MUD server. It
also works very well as an embedded scripting language. However if I
was going to do the same job again, I would probably not look to
C++. Its overcomplicated, difficult to debug, and takes a long time
to learn. Java now feels like a preferable option, especially given
that Jython exists, and makes Python's introspection available from
native Java and vice-versa. Free implementations of Java do exist -
major applications like eclipse are becoming available built with
gcj, part of the GNU compiler collection.
The above probably sounds a bit disjointed. If you would like to
know more about the specifics or either the original or the current
code please let me know.
Al
--
Alistair Riddoch
alriddoch@zepler.org
http://www.zepler.org/~alriddoch/ - Python script as stand alone MUD server... Jason Slaughter
- Python script as stand alone MUD server... Sean Middleditch
- Python script as stand alone MUD server... Alistair Riddoch
- Python script as stand alone MUD server... Kwon J. Ekstrom
- Python script as stand alone MUD server... Alistair Riddoch
- Python script as stand alone MUD server... Zach Collins {Siege}
- Python script as stand alone MUD server... Alistair Riddoch
- Python script as stand alone MUD server... Alistair Riddoch
- Python script as stand alone MUD server... Byron Ellacott
- Python script as stand alone MUD server... Mats Lidstrom
- Python script as stand alone MUD server... ceo
- Python script as stand alone MUD server... Zach Collins {Siege}
- Python script as stand alone MUD server... ceo
- Python script as stand alone MUD server... Zach Collins {Siege}
- Python script as stand alone MUD server... Byron Ellacott
- Python script as stand alone MUD server... Edward Glowacki
- Python script as stand alone MUD server... Brian Hook
- Python script as stand alone MUD server... Sean Middleditch
- Python script as stand alone MUD server... Frank Crowell
- Python script as stand alone MUD server... Byron Ellacott
- Python script as stand alone MUD server... Mike Shaver
- Python script as stand alone MUD server... Alistair Riddoch
- Python script as stand alone MUD server... Thomas Clive Richards
- Python script as stand alone MUD server... Zach Collins {Siege}
- [BIZ] Apparent acquisition of Yantis (mysupersales) by IDE Rudy Fink
- [BIZ] Apparent acquisition of Yantis (mysupersales) by IDE Bruce Mitchener
- Meaning and entertainment - Farming and FedExing (was Do players enjoy farming?) Michael Sellers
- Power games Ana Valdés
- Power games Mats Lidstrom
- Power games Ana Valdés
- Power games Byron Ellacott
- Power games Ana Valdés
- Mage 2 Mage gbtmud
- Mage 2 Mage Travis Casey
- Interpersonal Relations in Virtual Worlds Brad King
- Interpersonal Relations in Virtual Worlds Chris
- Interpersonal Relations in Virtual Worlds Nick Yee
- Interpersonal Relations in Virtual Worlds Paul Schwanz
- Interpersonal Relations in Virtual Worlds Ola Fosheim Grøstad
- Interpersonal Relations in Virtual Worlds Lee Faris
- Platform choice Gary Whitten
- MUD client popularity Brian Hook
- MUD client popularity Frank Crowell
- MUD client popularity Ammon Lauritzen
- MUD client popularity Brian Hook
- MUD client popularity Rayzam
- MUD client popularity Brian Hook
- MUD client popularity Rayzam
- MUD client popularity Edward Glowacki
- MUD client popularity J C Lawrence
- MUD client popularity Edward Glowacki
- MUD client popularity Travis Casey
- MUD client popularity Ammon Lauritzen
- MUD client popularity Byron Ellacott
- MUD client popularity Frank Fisher
- MUD client popularity ceo
- MUD client popularity Edward Glowacki
- MUD client popularity Emil Nilimaa
- MUD client popularity Tom "cro" Gordon
- MUD client popularity Edward Glowacki
- MUD client popularity Sean Middleditch
- MUD client popularity Zach Collins {Siege}
- MUD client popularity Sean Middleditch
- MUD client popularity Alistair Riddoch
- MUD client popularity Byron Ellacott
- MUD client popularity Brian Hook
- MUD client popularity Brian Hook
- MUD client popularity Sean Middleditch
- MUD client popularity Edward Glowacki
- MUD client popularity Brent P. Newhall
- SMOG - small multiuser online game Frank Crowell
- SMOG - small multiuser online game Miroslav Silovic
- SMOG - small multiuser online game Frank Crowell
- SMOG - small multiuser online game Crosbie Fitch
- SMOG - small multiuser online game Frank Crowell
- SMOG - small multiuser online game Byron Ellacott
- SMOG - small multiuser online game Crosbie Fitch
- SMOG - small multiuser online game Byron Ellacott
- SMOG - small multiuser online game Tom "cro" Gordon
- SMOG - small multiuser online game Crosbie Fitch
- SMOG - small multiuser online game Crosbie Fitch
- [BUS] How to build an MMOG... ceo
- [DGN] Subjective randomness (was: The psychology of random numbers) Robert Zubek
- Solutions for smarter NPCs Björn Morén
- Solutions for smarter NPCs ext.Christer.Enfors@tietoenator.com
- Solutions for smarter NPCs info@castwide.com
- Solutions for smarter NPCs Kirinyaga
- Solutions for smarter NPCs Vincent Archer
- Solutions for smarter NPCs Valerio Santinelli
- Solutions for smarter NPCs Olivier Lejade
- Solutions for smarter NPCs Kirinyaga
- Solutions for smarter NPCs Olivier Lejade
- Solutions for smarter NPCs Michael Sellers