Kai Backman
08-09-2005, 08:27 AM
I just got a basic DES engine working for ShortHike the other day. When I finally got down to the actual implementation there wasn't that much material on the subject available so I decided to write an article series (as a set of blog posts) on the subject. You can find the intro: here (http://www.kaibackman.com/development/2005/08/discrete_event_.html).
This is a request for information for that series (like the intro says). If you have implemented a DES yourself, know someone who has done so, know an article on the subject or if nothing else, know someone researching into it, please post/PM/email me so I can collect all the background information.
Here is a quick summary for those who are new to discrete events simulation:
In a traditional continuous simulation engine (what most people do) you loop through all your simulation objects and update them based on past values (like position) and trends (like velocity). In a DES you update based on when interesting things happen. Here are some benefits of a DES compared to traditional approaches:
- The time to converge is based on amount of change, vs. number of objects traditionally
- Usually less processing to reach the same fidelity
- Easy to limit workload per frame and still have usable intermediate results
- Processing effort better focused on interesting events, fast forwarding has higher fidelity
- Great capacity for distributed processing (I'm not going to explore this specifically)
- In short: it's faster and more accurate.
For rigid body physics you are better off using specific libraries (or existing algorithms), for general purpose simulation a DES is very practical.
BTW. If you have any general comments on what you would like to see me write about, I'm open for suggestions! (plenty of practical details to be sure) :)
Edit: Thank you in advance for anyone providing information! :D
This is a request for information for that series (like the intro says). If you have implemented a DES yourself, know someone who has done so, know an article on the subject or if nothing else, know someone researching into it, please post/PM/email me so I can collect all the background information.
Here is a quick summary for those who are new to discrete events simulation:
In a traditional continuous simulation engine (what most people do) you loop through all your simulation objects and update them based on past values (like position) and trends (like velocity). In a DES you update based on when interesting things happen. Here are some benefits of a DES compared to traditional approaches:
- The time to converge is based on amount of change, vs. number of objects traditionally
- Usually less processing to reach the same fidelity
- Easy to limit workload per frame and still have usable intermediate results
- Processing effort better focused on interesting events, fast forwarding has higher fidelity
- Great capacity for distributed processing (I'm not going to explore this specifically)
- In short: it's faster and more accurate.
For rigid body physics you are better off using specific libraries (or existing algorithms), for general purpose simulation a DES is very practical.
BTW. If you have any general comments on what you would like to see me write about, I'm open for suggestions! (plenty of practical details to be sure) :)
Edit: Thank you in advance for anyone providing information! :D