110 likes | 122 Views
ISICL is an intuitive and strategic language designed for programmers interested in AI and robotic battle simulation. It compiles into functioning Robocode, adds state machine functionality, and simplifies Java syntax.
E N D
ISICLIntuitive Strategic Intelligence Control Language COMSW4115 Michele Cozart Matthew Keitz Michael Marcus
Introduction • ISICL • Simulated robotic tank control language • Compiles into functioning Robocode • Designed for programmers interested in AI • Adds state machine functionality • Simplifies java syntax
Background • Robocode • Matthew Nelson of IBM • Robotic battle simulator • Encourages proficiency in Java • It’s FUN!
Why ISICL? • Intuitive way to define a Robocode tank • Abstracts away complicated event handlers • Adds state machine functionality • Platform independent code • Easily extensible • User-defined actions and states • Inheritance
Code Example state START: ahead 20 [ ScannedEnemy -> SHOOT ] state SHOOT: …
Development Environment • antlr • Java 1.4.1 • Robocode • RCS • Unix and Windows • Development and testing platforms • Columbia servers for code/website
Challenges • Team members split across country • Communication issues • Time zones • A team member disappeared • Lost knowledge • Lost development help • Diverse team • Age, gender, goals, purpose, desired outcome
Handling the challenges • Code repository “always” accessible by all • ISICL website used to organize group information • Instant Messager is a MUST. • Meetings take FOREVER • Met twice a week to plan and for status updates, more often towards the end • Everyone willing to pitch in
Testing • Test early, test often • Regression tests are important • Test harnesses are effective • Integration testing is vital but gets slighted due to time constraints
Lessons Learned • Agreement on goal/purpose • Clear tasks and requirements • Concrete schedule with firm deadlines • Expect things to take longer than they should • Spend time on developing interfaces between the components.
Conclusion • ISICL is cool (forgive the pun) • We learned a lot! • Questions? • Please visit our website at: www.columbia.edu/~mlc2106/index.htm