Cellular automata machines: a new environment for modeling
Cellular automata machines: a new environment for modeling
Logical foundations of artificial intelligence
Logical foundations of artificial intelligence
A small matter of programming: perspectives on end user computing
A small matter of programming: perspectives on end user computing
Watch what I do: programming by demonstration
Watch what I do: programming by demonstration
The sciences of the artificial (3rd ed.)
The sciences of the artificial (3rd ed.)
Physically-based visual simulation on graphics hardware
Proceedings of the ACM SIGGRAPH/EUROGRAPHICS conference on Graphics hardware
Computer
CASA '03 Proceedings of the 16th International Conference on Computer Animation and Social Agents (CASA 2003)
Multiagent diffusion and distributed optimization
AAMAS '03 Proceedings of the second international joint conference on Autonomous agents and multiagent systems
Distributed, Physics-Based Control of Swarms of Vehicles
Autonomous Robots
Agent-based end-user development
Communications of the ACM - End-user development: tools that empower users to create their own software solutions
Incremental heuristic search in AI
AI Magazine
AI for Game Developers
Computer science education in the 21st century
Communications of the ACM - Self managed systems
An evolutionary autonomous agents approach to image featureextraction
IEEE Transactions on Evolutionary Computation
Broadening participation through scalable game design
Proceedings of the 39th SIGCSE technical symposium on Computer science education
Towards harmony-oriented programming
Companion to the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications
AgentCubes: Incremental 3D end-user development
Journal of Visual Languages and Computing
Harmony-oriented programming and software evolution
Proceedings of the 24th ACM SIGPLAN conference companion on Object oriented programming systems languages and applications
Proceedings of the 41st ACM technical symposium on Computer science education
Semiotic traces of computational thinking acquisition
IS-EUD'11 Proceedings of the Third international conference on End-user development
Conversational programming: exploring interactive program analysis
Proceedings of the 2013 ACM international symposium on New ideas, new paradigms, and reflections on programming & software
Hi-index | 0.00 |
Object-oriented programming has worked quite well - so far. What are the objects, how do they relate to each other? Once we clarified 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 than traditional approaches.