4 ms·
Two related things I've been studying in more depth lately: Dataflow programming and behavior trees(the game AI concept). http://en.wikipedia.org/wiki/Dataflow
by chipsy 14y ago
Two related things I've been studying in more depth lately: Dataflow programming and behavior trees(the game AI concept).
http://en.wikipedia.org/wiki/Dataflow_programming http://en.wikipedia.org/wiki/Dataflow_programming
http://www.altdevblogaday.com/2011/02/24/introduction-to-behavior-trees/ http://www.altdevblogaday.com/2011/02/24/introduction-to-beh...
The first comes up anytime you want to make a signal processing chain more modular and composable(graphics and audio are the classic applications) and many of its concepts share space with FP theory. Graph demonstrates a implementation built around certain needs of web apps. Note that it seems like implementations vary a lot with the data types - audio processing, for example, may allow for cyclical feedback loops, and mainly distinguishes between two types of data - multi-channel PCM data(which may be split and combined between nodes) and parameter changes over time.
The second describes a form of concurrent finite states with good compositional properties - parent-child relationships that result in concurrency expressions passed back to parents(success, failure, in progress). Coroutines are comparable in power, but put emphasis on direct control of the concurrency, while BTs use modules of state + logic with pre-designed yielding points. (I think other finite state constructs have applications, too, BTs just happen to be my focus right now)
I currently believe that highly-concurrent applications can be abstractly architected as a combination of dataflow, behavior trees, and asynchronous events - each one of those covers a very distinct set of concepts surrounding concurrency problems, and they present natural boundary points with each other.
- tel 14y agoI'd love to talk with you about this design. I've been looking into a similar kind of build and I'm really curious to compare notes.
- chipsy 14y agoShoot me an email. (I just updated my profile)
- w01fe 14y agoI'd love to chat about this as well -- I'll send you an email.
- msutherl 14y agoCan we make a party?
- drudru11 14y agothis is why I read HN. I'm going to enjoy reading about behavior trees for the next week :-) Thanks for posting.
- vdm 14y agoBehavior Trees as a way to do REST hypermedia. http://vimeo.com/50215125 http://vimeo.com/50215125