February 1999
- client images Chris Gray
- Question on c++ switch optimization, and parsers in general. Ben Greear
- Question on c++ switch optimization, and parsers in general. Adam Wiggins
- Question on c++ switch optimization, and parsers in general. Ola Fosheim Grøstad
- Question on c++ switch optimization, and parsers in general. Chris Gray
- Question on c++ switch optimization, and parsers in general. Chris Gray
- Question on c++ switch optimization, and parsers in general. T. Alexander Popiel
- Question on c++ switch optimization, and parsers in general. Ola Fosheim Grøstad
- Question on c++ switch optimization, and parsers in general. Richard Woolcock
- Question on c++ switch optimization, and parsers in general. Marc Hernandez
- Question on c++ switch optimization, and parsers i Chris Gray
- Question on c++ switch optimization, and parsers i Jon A. Lambert
- Question on c++ switch optimization, and parsers i Chris Gray
- optimizing code diablo@best.com
- optimizing code Hans-Henrik Staerfeldt
On Mon, 8 Feb 1999 diablo@best.com wrote:
>
> This is in reply largely to a recent post by Mr. Gray. In it, he mentioned
> that a significant part of his processor overhead was due to his 150
> mobiles all moving about every 2 seconds.
>
> Mobile ai is the biggest pain in my neck, and I'd love to hear ideas on
> how to improve them generally while retaining most or all of the
> functionality.
>
> Essentially, our mobiles have two "timers" attached to them. One covers
> attacking and one covers most other things. Every half-second, the code
> decrements each timer on every mobile. If the timer is up, it checks to
> see if the mobile should be doing something (either attacking someone or
> doing whatever else). Now, our actual routines are not that complicated.
> Quite a few mobiles (mountain lions, elk, rabbits, thugs in the sewers,
> etc) wander around randomly, but other than that, mobiles that are not
> directly involved with a player (and aren't wounded or whatnot) don't do
> much.
>
> I cannot really think of a better way to do this in principle and I'm
> wondering if any of you can. I use a custom language and compiler, so keep
> that in mind when offering language-specific suggestions. I'm sure some of
> you clever coders out there have much better ways of doing things, and I'm
> sure many of us could benefit from your knowledge. Thanks!
>
> --matt
The way to do this is to implement an 'event queue'. The queue is a sorted
list of whan what is going to happend. So you peek at the first element,
and notice that it need activation at time x, then wait (sleep) for x-now
timeslices and then start the event at the top of the queue (might be
a mobile moving, or parsing of one players commands). If the event is
to be recurring regularly, insert a new event in the list at the time
the event is to recur .. as simple as that.
If a mobile has two timers, it should have two event in the queue.
We have used this system extremely successfully in Valhalla where the
event queue is the very core of the engine (along with messages)
to handle unlimited number of co-routines to be attached to each
object.
Hans Henrik Stærfeldt |
email: bombman@diku.dk | voice: +45 40383492
hhs@cbs.dtu.dk | voice work: +45 45252425
phone-mail: | address:
40383492@sms.tdm.dk | Hans Henrik Stærfeldt,
WWW-home | Dybendalsvej 74 2. th,
http://www.cbs.dtu.dk/hhs/ | 2720 Vanløse, Danmark.
|
Student of Computer Science | Scientific programmer at Center for
and Information Psychology. | Biological Sequence Analysis,
at University of Copenhagen | Technical University of Denmark. - optimizing code Chris Gray
- optimizing code Hans-Henrik Staerfeldt
- code profiling Chris Gray
- World-file parsing and RTTI? The Arrow
- World-file parsing and RTTI? Mark Gritter
- pet peeves diablo@best.com
- pet peeves diablo@best.com
- pet peeves Caliban Tiresias Darklock
- pet peeves Marc Bowden
- pet peeves Richard Woolcock
- pet peeves Koster, Raph
- pet peeves diablo@best.com
- pet peeves Caliban Tiresias Darklock
- pet peeves Kristen Koster
- pet peeves Caliban Tiresias Darklock
- pet peeves Adam Wiggins
- pet peeves Wes Connell
- pet peeves J C Lawrence
- pet peeves Matthew Mihaly
- pet peeves Ling
- pet peeves Ola Fosheim Grøstad
- pet peeves Matthew Mihaly
- pet peeves Ola Fosheim Grøstad
- pet peeves Matthew Mihaly
- pet peeves David Bennett
- pet peeves Robert Woods
- pet peeves Wes Connell
- pet peeves Travis S. Casey
- pet peeves Matthew Mihaly
- pet peeves Neerenberg, AaronX
- pet peeves greg
- pet peeves Richard Woolcock
- pet peeves J C Lawrence
- pet peeves Martin Keegan
- pet peeves Ola Fosheim Grøstad
- pet peeves J C Lawrence
- pet peeves diablo@best.com
- pet peeves Brandon A Downey
- pet peeves diablo@best.com
- pet peeves Darren Henderson
- pet peeves diablo@best.com
- pet peeves Darren Henderson
- pet peeves Steve Houchard
- pet peeves diablo@best.com
- pet peeves Darren Henderson
- pet peeves diablo@best.com
- pet peeves Steve Houchard
- pet peeves diablo@best.com
- pet peeves Richard Woolcock
- pet peeves diablo@best.com
- pet peeves Richard Woolcock
- pet peeves Apocalypse
- pet peeves Caliban Tiresias Darklock
- pet peeves diablo@best.com
- pet peeves Adam Wiggins
- pet peeves diablo@best.com
- pet peeves Adam Wiggins
- pet peeves diablo@best.com
- pet peeves Mik Clarke
- pet peeves Caliban Tiresias Darklock
- pet peeves Travis S. Casey
- pet peeves Caliban Tiresias Darklock
- pet peeves Benjamin D. Wiechel
- pet peeves Marc Bowden
- pet peeves Matthew Mihaly
- pet peeves Mik Clarke
- pet peeves Benjamin D. Wiechel
- pet peeves Matthew Mihaly
- pet peeves Caliban Tiresias Darklock
- pet peeves Marc Bowden
- pet peeves Matthew Mihaly
- pet peeves David Bennett
- pet peeves David Bennett
- pet peeves Petri Virkkula
- pet peeves J C Lawrence
- Horror Themed Muds [was CthulhuMud Driver 6] Christopher Allen
- Horror Themed Muds [was CthulhuMud Driver 6] Caliban Tiresias Darklock
- Horror Themed Muds [was CthulhuMud Driver 6] Mik Clarke
- CthulhuMud Driver 6 Mik Clarke
- CthulhuMud Driver 6 J C Lawrence
- Mathengine Ling
- Mathengine Apocalypse
- Website update Koster, Raph
- Influential muds Koster, Raph
- Influential muds Dan Shiovitz
- Influential muds Adam Wiggins
- Influential muds Sunny Gulati
- Influential muds diablo@best.com
- Influential muds Juha Lindfors
- Influential muds Brandon J. Rickman
- Influential muds Caliban Tiresias Darklock
- Influential muds Andy Cink
- Influential muds J C Lawrence
- Influential muds Dr. Cat
- Influential muds Jay Carlson
- Influential muds Mik Clarke
- Influential muds Richard Woolcock
- Influential muds Koster, Raph
- Influential muds Mik Clarke
- Influential muds Ola Fosheim Grøstad
- Influential muds Dan Root
- Influential muds Benjamin D. Wiechel
- State of the art? Andy Cink
- State of the art? diablo@best.com
- State of the art? Caliban Tiresias Darklock
- State of the art? ##Make Nylander
- State of the art? diablo@best.com
- State of the art? Martin Keegan
- State of the art? David Bennett
- State of the art? Martin Keegan
- State of the art? Andy Cink
- State of the art? J C Lawrence
- State of the art? David Bennett
- State of the art? Matthew Mihaly
- State of the art? Caliban Tiresias Darklock
- State of the art? Matthew Mihaly
- State of the art? Ola Fosheim Grøstad
- State of the art? Ola Fosheim Grøstad
- State of the art? J C Lawrence
- State of the art? Matthew Mihaly
- State of the art? Mik Clarke
- State of the art? J C Lawrence
- The Terrorist Class Ola Fosheim Grøstad
- The Terrorist Class Mik Clarke
- Welcome To "MUD-Dev"! mud-dev-admin@kanga.nu
- IMPORTANT ADMIN: New list setup requires your attention J C Lawrence
- ADMIN: URL change J C Lawrence
- PermaDeath (was pet peeves) Marc Hernandez
- ScryMUD 1.8.7 released. Ben Greear
- PermaDeath Sayeed
- PermaDeath Ola Fosheim Grøstad
- PermaDeath Sayeed
- roleplaying and immersion (was: PermaDeath) Ola Fosheim Grøstad
- Roleplaying and Immersion (was: PermaDeath) Sayeed
- Roleplaying and Immersion (was: PermaDeath) Adam Wiggins
- Roleplaying and Immersion (was: PermaDeath) J C Lawrence
- Roleplaying and Immersion (was: PermaDeath) Ola Fosheim Grøstad
- WEB: VR-stuff Ola Fosheim Grøstad
- WEB: VR-stuff J C Lawrence
- WEB: VR-stuff Mik Clarke
- WEB: VR-stuff Marian Griffith
- WEB: VR-stuff J C Lawrence
- ADMIN: The list archives are now online and fully searchable J C Lawrence
- Theories was pet peeves Wes Connell