Many Robocoders are talking about this (see
/Additions), so I decided to make a dedicated page for it. --
Jonathan
Generally accepted ideas (add if you think one is)
- Stepping one tick at a time.
Individual people's ideas (please keep alphabetically)
- Jonathan
- Easy speed control, including stepping one tick at a time.
- Two debug modes: graphical (like in RobocodeGLV014) and full. The bot should at least know whether full debug is on. Letting it know about graphical debug can be useful if a bot uses complex calculations for its non-full debug graphics.
- Three increasingly complex ways of user interaction (disabled when not in full debug):
- Custom debug modes (to choose a behaviour, for example). The bot can call a method with an array of strings. Should also be able to change modes itself. When the user selects one, the bot should be notified which. Should notify the bot with an empty string when full debug gets turned off.
- Besides that custom buttons, which work much the same way.
- Some kind of stdin (blue), stdout (black) and stderr (red). Colors should be customizable by users. stdout and stderr also enabled when not in full debug. ;)
- Debug panels. Small (or big...) GUI panels created by bots for communication.
- Bots should be able to ask the graphics to update. Useful when one gets user input in one tick at a time.
- Bots should be able to call methods like getCustomDebugMode?(), in addition to events.
- All the user interaction stuff should be in what is now the output window.
Maybe I'm missing something, but why not just run it in a debugger in the IDE of your choice? In some you can even step backwards these days. -- Pulsar
You can do that, but most of the time you don't need to go so low-level. Then something in-game is much better. Keep in mind I made this page because of /Additions (added that to the top now), and that these are just my thoughts (and possibly others' in the future). -- Jonathan