program registration submissions committee lodging portland

Collaborative Diffusion: Programming Antiobjects

Collaborative Diffusion: Programming Antiobjects

Thursday, Oct 26, from 10:30 to 12:00

Object-oriented programming has worked quite well - so far. What are the objects, how do they relate to each other? Once we clarify these questions we typically feel confident to design and implement even the most complex systems. However, objects can deceive us. They can lure us into a false sense of understanding. The metaphor of objects can go too far by making us try to create objects that are too much inspired by the real world. This is a serious problem as a resulting system may be significantly more complex than it would have to be, or worse, will not work at all. We postulate the notion of an antiobject as a kind of object that appears to essentially do the opposite of what we generally think the object should be doing. As a Gedankenexperiment antiobjects allow us to literally think outside the proverbial box or, in this case outside the object. This article discusses two examples, a Pacman game and a soccer simulation where antiobjects are employed as part of a game AI called Collaborative Diffusion. In Collaborative Diffusion based soccer the player and grass tile agents are antiobjects. Counter to the intuition of most programmers the grass tile agents, on top of which all the players are moving, are doing the vast majority of the computation, while the soccer player agents are doing almost no computation. This article illustrates that this role reversal is not only a different way to look at objects but, for instance in the case with Collaborative Diffusion, is simple to implement, incremental in nature and more robust that traditional approaches.

Alexander Repenning, University of Colorado

Related Onward! Papers
Related Panels
Related Practitioner Reports
Related Research Papers
Related Tutorials
Related Workshops

While Space Available
program registration submissions committee lodging portland
For comments and questions about the web site
please contact us at
© 2005 OOPSLA