Introduction Betir is an all-new robocup client, written in java and based on the Biter client. It is highly optimized for speed and stability. It also has a more open design than that of Biter and allows for the decision making routines to be removed and replaced with something different, such as a neural net. Check the JavaDoc and the UML Diagram for information on how elements of Betir work together. Division of Labor The division of labor was even once everything was said and done. Greg worked on the new framework and base RobocupBehavior functions. Andy worked on the behavior classes of the players and the goalie. Future Improvements Be sure to check the Betir Technology page for the different ways Betir has been proven to work. In any software project, not just Betir, basic improvements are always possible. Ball prediction is not as accurate as we would have hoped, and neither is absolute position dashing. Higher accuracy in these functions could be a big improvement. Also, our timing is all client-side with no sync to the server. A more accurate method of syncing the client time to the server time could enable higher performance of the agent. Communication between the agents was not used in the tournament, but it could have been added very easily. Encrypted say messages and a standard format to send all the data an agent needs to broadcast every timestep would be a very beneficial step in getting a group of agents to play as a team in a more complex and effective manner. Betir's decision making algorithm is much more self-contained than that in Biter. Because of this, it is very simple to remove it and replace it with another architecture. The subsumption architecture used in the class' Robocup tournament is the default, and as of this time, the best working technology implemented. However, the use of neural networks has been proven to work as a replacement of the subsumption architecture, and a development of this technology could prove to be very beneficial. The NeuralNet class is included in the source code, even though it is not currently used. In an even more radical approach, we toyed early on with the idea of using genetic algorithms or genetic programming to help "evolve" more and more intelligent agents. While that is beyond the scope of this project, it could be researched further. |
UML Diagram JavaDocs Betir Technology