Introducing RoboDojo
- Inherit from an abstract base class
- Build in your own navigation and targeting algorithms
- Join the arena
- Battle to the death
That’s the idea behind this little project, RoboDojo. No, it isn’t a new idea. No, it isn’t terribly unique (Java’s RoboCode), but it sure is fun. And the domain turns out to be very useful to learning .NET development on many levels.
About RoboDojo
Built your own Robot in .NET. Your bot is loaded into BattleField host application where it is initialized and set on its way. The game proceeds in turns, during which each bot getting a turn. Each turn allows a single physical move, and single shot of a weapon.
Bots get current data about the environment in each turn, and use it to make decisions about what to do next (movement and targeting).
The battle runs, the bots take damage, the last bot standing wins (unless the timer runs out first).
Why I Started This
When building courseware or coding examples to work with new technologies, there is always challenge in looking for a domain to work in. Frankly, the customer address book example, although real, makes me want to scream. I am betting this is why Hanselman started BabySmash in the first place.
It is important to note that I started this little pile of code as a playground and a general application with which to learn and grow.
The State of The Project
The first drop I made on CodePlex is very raw.
The current code base seems to work, does not have complete test coverage, only has a little functionality, but is promising. It is a WinForm (for goodness sake) application wherein a user can basically just build a square bot that travels around the screen. No weapon features yet.
I admit, the code is stalled out a bit at the moment. I am neck deep in some real work for a little while, but I pledge to not let this project atrophy.
Next Big Features
Here are the high level features I want to get in next. Before this, though, I want to ensure better coverage on the code that is already there so refactoring gets safer.
- Weapon support
- Game persistence for storing battles and results
- Implement the UI in WPF (vector graphics just kill bitmaps)
If You are Interested
Please let me know. I am happy to work with anyone who might actually care about this project. I freely admit that I am not, nor have I ever been:
- A game programmer
- A UI expert
- A successful administrator of an opensource project


