Event Resolution Framework

Has anyone ever pursued creating a library/framework for the abstract
management of event resolution models?

I’m coding a game where character actions of all players are planned
ahead of time, and then these actions are executed all at the same time.
This, obviously, means that I will need to develop logic to resolve
event conflicts. For example, character A decides to send a message to
character B, at the same time that character C decides to shoot
character A. So my game logic needs to decide which events take
precedence (does character A get off his message before getting shot?)
and so forth.

I was curious if anyone had every worked on some kind of generic event
management framework that could underlie an actual gaming engine. Anyone
heard of anything like that?

This sounds interesting. Have you heard of such a library in another
language?

Andrew W. wrote:

This sounds interesting. Have you heard of such a library in another
language?

No. Google searches bring up nothing. But then, maybe “Event Resolution”
is the wrong terminology(?)

So how does the logic decide which event takes priority? And what
abstraction could a library provide for something like this? It almost
seems
like you would just need to set up some rules, like “Event F always
wins”,
“Event K always beats Event D unless some_fact is true”, etc.

On Sep 3, 2010, at 9:41 AM, Andrew W. wrote:

No. Google searches bring up nothing. But then, maybe “Event Resolution”
is the wrong terminology(?)

I think you may want to google “rules engine.” When I did that, I came
up with this hit:

http://rools.rubyforge.org/

cr

On Fri, Sep 3, 2010 at 10:16 AM, Terry M. [email protected]wrote:

Andrew W. wrote:

This sounds interesting. Have you heard of such a library in another
language?

No. Google searches bring up nothing. But then, maybe “Event Resolution”
is the wrong terminology(?)
On Fri, Sep 3, 2010 at 4:41 PM, Andrew W. [email protected]
wrote:
So how does the logic decide which event takes priority? And what
abstraction could a library provide for something like this? It almost seems
like you would just need to set up some rules, like “Event F always wins”,
“Event K always beats Event D unless some_fact is true”, etc.

Maybe a rules engine? I’ve never used it, but google turns up:

http://rools.rubyforge.org/

Jesus.

On Fri, Sep 3, 2010 at 4:48 PM, Chuck R. [email protected]
wrote:

On Sep 3, 2010, at 9:41 AM, Andrew W. wrote:

So how does the logic decide which event takes priority? And what
abstraction could a library provide for something like this? It almost seems
like you would just need to set up some rules, like “Event F always wins”,
“Event K always beats Event D unless some_fact is true”, etc.

On Fri, Sep 3, 2010 at 10:16 AM, Terry M. [email protected]wrote:

Andrew W. wrote:

This sounds interesting. Have you heard of such a library in another
language?

No. Google searches bring up nothing. But then, maybe “Event Resolution”
is the wrong terminology(?)

I think you may want to google “rules engine.” When I did that, I came up with this hit:

http://rools.rubyforge.org/

Amazing ! We even nearly used the same words :slight_smile:

Jesús.

Chuck R. wrote:

On Sep 3, 2010, at 1:51 PM, Jes�s Gabriel y Gal�n wrote:

On Fri, Sep 3, 2010 at 4:48 PM, Chuck R. [email protected] wrote:

On Sep 3, 2010, at 9:41 AM, Andrew W. wrote:

So how does the logic decide which event takes priority? And what
abstraction could a library provide for something like this? It almost seems
like you would just need to set up some rules, like “Event F always wins”,
“Event K always beats Event D unless some_fact is true”, etc.

On Fri, Sep 3, 2010 at 10:16 AM, Terry M. [email protected]wrote:

Andrew W. wrote:

This sounds interesting. Have you heard of such a library in another
language?

No. Google searches bring up nothing. But then, maybe “Event Resolution”
is the wrong terminology(?)

I think you may want to google “rules engine.” When I did that, I came up with this hit:

http://rools.rubyforge.org/

Amazing ! We even nearly used the same words :slight_smile:

Great minds think alike!

Oh, and further down the list of hits is Ruleby which looks like an
interesting choice. Plus, it’s under active development.

http://github.com/codeaspects/ruleby

cr

I think a rules engine might be along the lines of what I was looking
for, though I’m not sure rools or ruleby would be any help. Half the
links at rools.rubyforge.org don’t work, including the ones that link to
code examples, so I set that one aside. Ruleby seems to be better
maintained, but to be honest, I still can’t quite figure out the API,
even after looking at the docs and examples. Furthermore, the Ruleby
rules conflict resolution system is not clear to me (FIFO more important
that actual given resolution priority…?) so I’m not sure how it would
integrate into what I want to accomplish with my video game.

I’m thinking now it would just be easier to design my own rules system,
though admittedly I don’t know anything about advanced node-based
algorithms.

On Mon, Sep 6, 2010 at 6:42 PM, Terry M. [email protected]
wrote:

Chuck R. wrote:

On Sep 3, 2010, at 1:51 PM, Jes�s Gabriel y Gal�n wrote:

On Fri, Sep 3, 2010 at 4:48 PM, Chuck R. [email protected] wrote:

On Sep 3, 2010, at 9:41 AM, Andrew W. wrote:

So how does the logic decide which event takes priority? And what
abstraction could a library provide for something like this? It almost seems
like you would just need to set up some rules, like “Event F always wins”,
“Event K always beats Event D unless some_fact is true”, etc.

On Fri, Sep 3, 2010 at 10:16 AM, Terry M. [email protected]wrote:

Andrew W. wrote:

This sounds interesting. Have you heard of such a library in another
language?

No. Google searches bring up nothing. But then, maybe “Event Resolution”
is the wrong terminology(?)

I think you may want to google “rules engine.” When I did that, I came up with this hit:

http://rools.rubyforge.org/

Amazing ! We even nearly used the same words :slight_smile:

Great minds think alike!

Oh, and further down the list of hits is Ruleby which looks like an
interesting choice. Plus, it’s under active development.

http://github.com/codeaspects/ruleby

cr

I think a rules engine might be along the lines of what I was looking
for, though I’m not sure rools or ruleby would be any help. Half the
links at rools.rubyforge.org don’t work, including the ones that link to
code examples, so I set that one aside. Ruleby seems to be better
maintained, but to be honest, I still can’t quite figure out the API,
even after looking at the docs and examples. Furthermore, the Ruleby
rules conflict resolution system is not clear to me (FIFO more important
that actual given resolution priority…?) so I’m not sure how it would
integrate into what I want to accomplish with my video game.

I’m thinking now it would just be easier to design my own rules system,
though admittedly I don’t know anything about advanced node-based
algorithms.

You can get some ideas from:

http://en.wikipedia.org/wiki/Drools
http://en.wikipedia.org/wiki/Rete_algorithm

Good luck, looks like a very interesting project.

Jesus.

On Sep 3, 2010, at 1:51 PM, Jesús Gabriel y Galán wrote:

On Fri, Sep 3, 2010 at 4:48 PM, Chuck R. [email protected] wrote:

On Sep 3, 2010, at 9:41 AM, Andrew W. wrote:

So how does the logic decide which event takes priority? And what
abstraction could a library provide for something like this? It almost seems
like you would just need to set up some rules, like “Event F always wins”,
“Event K always beats Event D unless some_fact is true”, etc.

On Fri, Sep 3, 2010 at 10:16 AM, Terry M. [email protected]wrote:

Andrew W. wrote:

This sounds interesting. Have you heard of such a library in another
language?

No. Google searches bring up nothing. But then, maybe “Event Resolution”
is the wrong terminology(?)

I think you may want to google “rules engine.” When I did that, I came up with this hit:

http://rools.rubyforge.org/

Amazing ! We even nearly used the same words :slight_smile:

Great minds think alike!

Oh, and further down the list of hits is Ruleby which looks like an
interesting choice. Plus, it’s under active development.

http://github.com/codeaspects/ruleby

cr

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs