context: see the RoboCup official Web site 
due date: deliverables (one zip file) sent to babak at sce dot carleton dot ca by email Friday June 10th. Be prepared to talk about your project on the last day of class (Monday June 13th).
project: this counts for the remaining 50% of your final mark! Program a soccer team according to the RoboCup simulation league rules (see refs below).
deliverables: for each team
- this is a group project: teams of 3-4 students
- a competition will be held between the teams, while the students comment on the behavior of their players. This will take place on the due date.
- version 14 of the soccer server is the one that should be used (and NOT the one called "tutorial version"). See "resources" at the bottom of this page.
- the games will be 5 on 5 (one of them can be a goalie if you wish).
evaluation: the following criteria will be judged in decreasing order of importance:
- commented source code
- design and models documentation + short user manual (it should be REALLY EASY to run your code)
- a few slides to describe the approach
Note that knowledge representation must be SEPARATE from the reasoning engine, for example if you are using a state machine approach, your state machine should be stored in some file which can be edited manually (no java!) and that is loaded at start-up.
- Approach (is it any interesting?). You can explore one or more of the following things:
Simple representations such as decision trees are not acceptable, unless they are generated by a machine learning algorithm. If you are using machine learning, your sample data should be provided and the learned tasks and concepts should also be stored in a separate file that is loaded at startup.
The reason for these restrictions is to make sure that you use the concepts learned in class!
- Quality (will I be able to reuse it?)
- of the presentation
- of the documentation
- of the code (no bugs or crashes)
- code reusability
- of the design
- Performance (is your team any good?). Please note that this is the least important part of your mark. Experience shows that given the timeframe, the more the approach is interesting, the weaker the team is (i.e. you will find out that even beating Krislet is not easy)! So a team that plays too well is either suspect, or is probably not that interesting...
- try to use Krislet as a starting base, it is easy to understand and extend.
- try to get a running prototype really early in the project (within the first 10 days), so you can get all the major risks addressed early.
- Project idea #1: use Jason (a Java-based BDI agent framework)
- Project idea #2: use Drools or Jess (Java-based expert system engines)
- Project idea #3: use Weka (a machine learning framework)
- Project idea #4: create your own state-machine engine and use a state-machine description language to specify the behavior of your agent, which you then load at start-up time.
- Project idea #5: use a planner
- Project idea #6: use Protege (an ontology editor)
- Project idea #7: create and use your own agent framework by combining various existing components
- Project idea #8: use a Bayesian reasoner
- these are only suggestions, feel free to use any other approach that you find interesting, but then consult with your instructor first!
- Michael Floyd's Powerpoint presentation can be found at 
- the server/monitor/krislet zipped bundle that you should use is at 
- the official soccer server manuals:
- Known KrisletBugs (some may have been fixed since)
- if you're interested in our RoboCup-related research project and/or want to use our tools for your project: 
(currently edited by 188.8.131.52?)
Find Page by browsing or searching