May 2003
- NetGames 2003: CFParticipation Sugih Jamin
- MUD codebases Chris Saik
- MUD codebases Ammon Lauritzen
- MUD codebases Caliban Tiresias Darklock
- MUD codebases Linder Support
- MUD codebases J C Lawrence
- Flow of messages sanxion sanxion
- Flow of messages Ammon Lauritzen
- Flow of messages Ben Chambers
- Flow of messages Travis Casey
- Flow of messages Brian Lindahl
- Flow of messages Ben Chambers
- Flow of messages Brian Lindahl
- Flow of messages sanxion sanxion
- Flow of messages Brian Lindahl
- UDP vs TCP for MUD/MMORPG project. Jason Slaughter
- UDP vs TCP for MUD/MMORPG project. Matt Mihaly
- UDP vs TCP for MUD/MMORPG project. Ryan Arthur
- UDP vs TCP for MUD/MMORPG project. Crosbie Fitch
- UDP vs TCP for MUD/MMORPG project. William
- UDP vs TCP for MUD/MMORPG project. Byron Ellacott
- UDP vs TCP for MUD/MMORPG project. Evan Cortens
- UDP vs TCP for MUD/MMORPG project. J C Lawrence
- UDP vs TCP for MUD/MMORPG project. Amanda Walker
- Customization in games, as a design tool / gameplay element ceo
- Warrior Challenge on PBS Madrona Tree
- Warrior Challenge on PBS Edward Glowacki
- Warrior Challenge on PBS Travis Casey
- Warrior Challenge on PBS Michael Chui
- MudDev FAQ - part 2 Marian Griffith
- MudDev FAQ - part 2 Mats Lidstrom
- MudDev FAQ - part 2 J C Lawrence
- MudDev FAQ - part 2 J C Lawrence
- Storytelling in a PSW from a Player's Persepctive Talanithus HTML
- Storytelling in a PSW from a Player's Persepctive Michael Chui
- Storytelling in a PSW from a Player's Persepctive David Kennerly
- Storytelling in a PSW from a Player's Persepctive Michael Chui
- Storytelling in a PSW from a Player's Persepctive Talanithus HTML
- Storytelling in a PSW from a Player's Persepctive J C Lawrence
- relevance of paper RPGs (was D& D vs. MMORPG "complexity") Travis Casey
- WAP MUD GAME DEVELOP Richard Ruan
- WAP MUD GAME DEVELOP Edouard Kock
- D&D and MMORPGs Michael Tresca
- D&D and MMORPGs Sean Kelly
- D&D and MMORPGs shren
- D&D and MMORPGs Threshold RPG
- D&D and MMORPGs Taylor
- D&D and MMORPGs Chris Holko
- D&D and MMORPGs Daniel James
- D&D and MMORPGs Peter Tyson
- D&D and MMORPGs Jason Murdick
- D&D and MMORPGs Michael Tresca
- D&D and MMORPGs Michael Tresca
- Database vs. Disk Tom
- Database vs. Disk Sean Kelly
- Database vs. Disk Ben Garney
- Database vs. Disk Adam Dray
- Database vs. Disk Hans-Henrik Staerfeldt
- Database vs. Disk Brian Lindahl
- Database vs. Disk Chris Holko
- Database vs. Disk Daniel.Harman@barclayscapital.com
- Database vs. Disk Weston Fryatt
- Database vs. Disk J C Lawrence
- Database vs. Disk Byron Ellacott
- Database vs. Disk Dave Rickey
- Database vs. Disk J C Lawrence
- Database vs. Disk Bruce Mitchener
- Database vs. Disk J C Lawrence
- Database vs. Disk Bruce Mitchener
- Database vs. Disk Jason Gauthier
- Database vs. Disk J C Lawrence
- Database vs. Disk Nicolai Hansen
- Database vs. Disk Zach Collins {Siege}
- Database vs. Disk J C Lawrence
- Database vs. Disk Zach Collins {Siege}
- Database vs. Disk J C Lawrence
- Database vs. Disk Kwon Ekstrom
- Database vs. Disk J C Lawrence
- Database vs. Disk John A. Bertoglio
- Database vs. Disk corrine_123@hotmail.com
- Database vs. Disk Kwon J. Ekstrom
- Database vs. Disk J C Lawrence
- Database vs. Disk Peter "Pietro" Rossmann
- Database vs. Disk Marc Bowden
- Database vs. Disk Kwon J. Ekstrom
- Database vs. Disk Sulka Haro
- Thoughts on a simplified multiplayer game. Jason Slaughter
- Thoughts on a simplified multiplayer game. Edward Glowacki
- Thoughts on a simplified multiplayer game. J C Lawrence
- Thoughts on a simplified multiplayer game. Bruce Mitchener
- Thoughts on a simplified multiplayer game. Edward Glowacki
- Thoughts on a simplified multiplayer game. J C Lawrence
- Thoughts on a simplified multiplayer game. Bruce Mitchener
- Thoughts on a simplified multiplayer game. Christopher Allen
- Thoughts on a simplified multiplayer game. ghfdh fcgdfgdfg
- ADMIN: Untoward unsubscriptions J C Lawrence
- Bringing out the barbaric in each of us David Kennerly
- Horizons Valerio Santinelli
- RP, MMORPGs, and their Evolution Talanithus HTML
- RP, MMORPGs, and their Evolution Brian Lindahl
- RP, MMORPGs, and their Evolution Michael Chui
- RP, MMORPGs, and their Evolution Marian Griffith
- RP, MMORPGs, and their Evolution Paul Schwanz
- RP, MMORPGs, and their Evolution J C Lawrence
- RP, MMORPGs, and their Evolution Matt Mihaly
- Account retention (was: D& D vs. MMORPG "complexity") Byron Ellacott
- Object-Oriented Databases John A. Bertoglio
- Object-Oriented Databases Weston Fryatt
- Object-Oriented Databases Travis Nixon
- Object-Oriented Databases Bruce Mitchener
- Object-Oriented Databases John A. Bertoglio
- Object-Oriented Databases Jeff Bachtel
- Object-Oriented Databases Sean Kelly
- TECH: Application-level branch prediction? ceo
- DID vs. MORAG "complexity" Jeff Cole
- DID vs. MORAG "complexity" Dave Rickey
- DID vs. MORAG "complexity" Matt Mihaly
- Objects Ben Chambers
- Scripting languages Jason Murdick
- Scripting languages Brian Hook
- Scripting languages Jason Gauthier
- Scripting languages Sanvean
- Scripting languages Jason Murdick
- Scripting languages Mark 'Kamikaze' Hughes
- Scripting languages Ling Lo
- Scripting languages Jay Carlson
- Scripting languages Mark 'Kamikaze' Hughes
- Scripting languages Lars Duening
- Scripting languages Mark 'Kamikaze' Hughes
- Scripting languages Lars Duening
- Scripting languages Kwon J. Ekstrom
- Scripting languages Lars Duening
- Scripting languages justice@softhome.net
- Scripting languages MIKE MacMartin
- Scripting languages Kwon J. Ekstrom
- Scripting languages Bruce Mitchener
- Scripting languages Kwon J. Ekstrom
- Scripting languages Dr. Cat
- Scripting languages Jay Carlson
- Scripting languages David H. Loeser Jr.
- Scripting languages Shu-yu Guo
- Scripting languages Lars Duening
- Scripting languages David H. Loeser Jr.
- Scripting languages criscal@gmx.de
- Scripting languages eric
- Scripting languages Smith, David {Lynchburg}
- Scripting languages John Buehler
- Scripting languages Mike Shaver
- Scripting languages sanxion sanxion
- Scripting languages Mark 'Kamikaze' Hughes
- Scripting languages Mike Shaver
- Scripting languages sanxion sanxion
- Scripting languages Mark 'Kamikaze' Hughes
Mon, Jun 30, 2003 at 01:08:46AM -0700 in
<20030630080846.13136.qmail@web21309.mail.yahoo.com>, sanxion
sanxion <sanxion2002@yahoo.com> spake:
> Monday, June 30, 2003, Mark 'Kamikaze' Hughes said:
>> There's four approaches to doing scripting in Java.
> Thanks for your tips. How would one go about using these scripting
> languages? Is it common to read them on startup and store them in
> memory? I imagine for NPC scripting they will contain lots of
> conditions, i.e. what to do if someone enters the room or someone
> picks up an object. It would be cumbersome to interpet a script
> file whenever something happens?
It depends on how your engine works.
The most important thing is to tightly partition your scripts in
callbacks (aka "listeners", "event handlers", etc.). A big general
"doTurn" script is going to be slow and hard to write. An
"afterDrop" callback that only activates when someone drops an item
nearby takes better advantage of the native code, and is much easier
to implement slightly differently on each of 500 mobs.
Hephaestus 1.0 read in the entire adventure script including all of
the event callbacks at startup, because it's a design-up-front CRPG.
In exchange for a slight startup delay while the user watches the
title screen, there are no delays in the game. That's a good
solution for a Diku-like engine, but not for most dynamic new-style
MUDs (when even Circle has OLC, you know things have changed...)
In a previous GMUD engine I wrote, callbacks contained the filename
of the script, it loaded scripts the first time they were invoked,
and checked the timestamp each time after that to see if it needed
to reload, because it was disk-based. That introduced some lag on
the first time in an area since a reboot or edit, but once loaded,
it was fast.
Most scripting languages have simpler syntax than Java, C, Python,
or Javascript; if you use one of the lighter languages, they'll
parse and load quickly. After that, just make sure you cache the
loaded script object. More complex schemes involving age checking
to clean out little-used scripts can be tacked on when you start
running short on memory...
Invoking scripts is extremely cheap in every scripting language I've
looked at. Hephaestus normally runs several dozen callbacks in a
turn, and it was a negligible cost even in 1.0 with Minimal, which
was far from optimized. Hephaestus 2.0 uses reflection to look up
callbacks, and can make enormous numbers of calls faster than the
user will ever notice.
I tend to write a lot of general-case code in the core engine, and
then put only the special-case stuff in each callback; if necessary,
I'll make multiple callbacks for different parts of the same action
(checking ammunition, then firing, for instance) rather than have to
implement core functionality over and over in the scripts.
One of the best resources on how to build an object and scripting
system is the Inform manual <http://www.inform-fiction.org/manual/>.
While it's for a single-user text adventure system, and Inform's a
strange little language with scary syntax, the design philosophy is
brilliant, and it shows exactly where you'll need those callbacks.
--
<a href="http://kuoi.asui.uidaho.edu/~kamikaze/"> Mark Hughes </a>
- Scripting languages Mark 'Kamikaze' Hughes
- When marketroids attack! Tess Snider
- Moo mailing list issue _DESPARATE FOR HELP! Ms Leigh Canny
- Moo mailing list issue _DESPARATE FOR HELP! David Clifton
- When Player Communities Rebel / Fanbois Gone Rogue vladimir cole
- When Player Communities Rebel / Fanbois Gone Rogue Andrew Barratt {MIS}
- NWN player modules (was: D&D and MMORPGs) Lars Duening
- NWN player modules (was: D&D and MMORPGs) Jonathan Grant
- Simpsons player types Matt Mihaly
- Dealing with cloned NPCs Thomas Sullivan
- Dealing with cloned NPCs Sasha Hart
- Dealing with cloned NPCs Mark 'Kamikaze' Hughes
- Dealing with cloned NPCs Kristen Koster
- Dealing with cloned NPCs Marc Bowden
- Dealing with cloned NPCs Kristen Koster
- Dealing with cloned NPCs Thomas Sullivan
- Dealing with cloned NPCs Owen Matt
- Dealing with cloned NPCs John Buehler
- Dealing with cloned NPCs Owen Matt
- Dealing with cloned NPCs Thomas Sullivan
- Dealing with cloned NPCs Vincent Archer
- The Laws of the Virtual Worlds Tamzen Cannoy