RoboJogger

From Robowiki
Revision as of 07:34, 14 December 2012 by Skotty (talk | contribs) (found a solution to a problem; updated development progress to reflect)
Jump to navigation Jump to search

A user interface for RoboRunner currently being developed by Skotty. Once the user interface is complete, this page will provide details on it; until then, this page will provide information on development progress.

Development Progress

The RoboJogger UI is being built using Skotty's existing Swing codebase as a starting point. This means some of the background code may not be entirely clean or relevant, but it will speed development considerably.

At present, there is no licensing restrictions on any of the code, as it is all written entirely by Skotty and Skotty generally doesn't bother with licenses for his own code. However, some kind of open source license may be applied to RoboJogger before it is released, provided there is any desire for such.

An initial trial version is complete (less Apple Java extensions; see next paragraph for details on that) -- version 0.9 -- but it's features are reduced until an updated RoboRunner is released that provides a way to get on-the-fly battle results. Until then, version 0.9 uses a very slightly modified version of RoboRunner 1.2.3, where the only change is to allow RoboRunner to be interrupted mid-challenge. I will post a zip archive of it once I fix the Mac problems.

For Macs, Apple has changed their Java extensions such that the old hooks I was using no longer function correctly. I need to update my interface to the Apple Java extensions before I can finish the Mac version. It is not a ton of work to fix, but it may or may not be awhile before I get it done as there is a lot going on in my life right now that might keep me away from hobby programming.

The app as a whole is currently somewhat married to Robocode version 1.7.3.0. Part of the issue is that the setup function is integrated into the application, and I cannot specify a classpath via the command line like RoboRunner itself does due to this. I'm working on a few changes to make this problem as minimal as it can be.

One potential major problem right now has to do with reading and writing the score log files. They are not properly synchronized at the moment, so if you don't want to risk messing up a score log, it's best to avoid interrupting RoboRunner by clicking the Stop button or opening result summary windows while RoboRunner is still running. It's not a big deal -- I do these things frequently and haven't chanced on a messed up log file yet -- but just be aware it could happen.

As touched on earlier, until a new version of RoboRunner is released, there are no on-the-fly results. To see the latest results, you have to close any open results summary windows and reopen them, such that they pull the latest data from the RoboRunner score log files. Likewise, the status information for RoboRunner at the bottom of the main RoboJogger window currently does nothing. Also, RoboJogger calculates confidence values itself. Confidence values for individual robots will match what RoboRunner calculates, but confidence values for challenge groups and overall total will not be the same. The method RoboJogger uses is not the same as what RoboRunner uses. This will also hopefully be fixed after an update to both RoboRunner and RoboJogger.

Next progress update will be on or around 12/25/2012.

Sneak Peek

A sneak peek of the main RoboJogger UI window. Pretty basic at the moment, and it could see drastic changes depending on further development and feedback. (My skills are more in the area of bringing a design to life rather than coming up with the good design in first place). Ultimately, it will probably end up looking a lot like RoboResearch, as it is trying to accomplish basically the same thing. The table of challenges acts like a priority queue, with RoboRunner running whatever challenge is at (or nearest) the top that has not already been run. All functions for now are controlled by menu items or buttons, but before it's done, there will also be popup menus and at least some drag/drop ability. There are other dialog windows for basic options, adding new challenges, running setup, challenge results, and a few other things.

(Changed on 12/11/2012 -- button locations changed to be more like RoboResearch, which I think is better; added status message and progress bar for RoboRunner status at the bottom, though progress bar will not function until the next RoboRunner update is finished.)

RoboJoggerSneakPeak r3.png

Dialog for running RoboRunner setup. Currently accessed via menu: Tools -> Run Setup.

RoboJoggerSneakPeak2.png

Dialog for adding a new challenge (smart battles and force wiki output options not yet present). Currently accessed via menu: File -> New Challenge. Not sure if there will be a button for this anywhere, but it will be added to a popup menu for the main window, in addition to being avaiable via the File menu.

RoboJoggerSneakPeak3.png

Dialog (non-modal) showing summary of battle results. I welcome feedback on this. At present, it uses the top row to show scores, the second row to show confidence in the scores (although the dialog in the screenshot doesn't show data for this row yet), and I was also thinking of adding a third row showing battles run per opponent, which would be of interest on an opponent by opponent basis due to how RoboRunner smart battles works. Center data area is separate and scrollable to better handle huge challenges (suggested by Voidious).

RoboJoggerSneakPeak4 r2.png