Distributed Artificial Intelligence (DAI) has existed as a subfield of AI for less than two decades. DAI is concerned with systems that consist of multiple independent entities that interact in a domain. Traditionally, DAI has focussed on the information management aspects of these systems. But in the past few years, a subfield of DAI focussing on behavior management, as opposed to information management, has emerged. This young subfield is called Multiagent Systems (MAS). This survey of MAS is intended to serve as an introduction to the field and as an organizational framework. It contains guidelines for when and how MAS should be used to build complex systems. A series of increasingly complex general multiagent scenarios are presented. For each scenario, the issues that arise are described along with a sampling of the techniques that exist to deal with them. The presented techniques are not exhaustive, but they highlight how multiagent systems can be and have been used to build complex systems. When options exist, the techniques presented are biased towards Machine Learning approaches. Additional opportunities for applying Machine Learning to MAS are highlighted and robotic soccer is presented as an appropriate testbed for MAS.