I guess I mentioned RTools 2.0 last post, so I should get go into what to expect.
RTools 1.0 has a system that is based around working with tournament software. When you launch the program, you are asked what program you want RTools to interface with, and you are given everything that that program has. The drop-down menu gives you everything that RTools can find, not just what you need.
The plus of this is that it takes out several steps that existed in the previous software; a connection was made only on an individual tournament basis and not by program, and you needed to connect using the tournament codes the software provided.
The change going forward will be by merging these two paradigms. When you launch 2.0, you will get a screen asking you to make a connection, and it will have two steps: choose the program you wish to connect to, and choose the tournament from that program. The tournament will then be loaded into RTools and placed in the drop-down in the main window. If you want to add another tournament, the "..." button currently in the UI will do this, as well a menu option.
This seems like a bit of a back-step, but the changes allow some back-end code changes which will have some increased benefits...
- The paradigm of a tournament rather than a program means that settings can be used on a tournament basis much more easily. Every tournament will have it's settings encapsulated, and it would just be a menu option to make a settings change apply to all open tournaments.
- By associating a window directly with a tournament, you can avoid having multiple timers or pairing windows open at the same time for that event. Attempting to open a second one will just have the first one be brought to the front, and possibly refreshed with new data. It also doesn't interfere with other events, as the whole system separates the two tournaments from each other.
- Regular updates can be sent directly to already-opened windows, allowing for things like an automatically-updated list of remaining tables updated every 30 seconds.
- The program can access all tournament information now, opening a path to place RTools-specific data onto EPIC. (such as round clocks)
This does come at one feature downside though, as settings get a little rough to integrate using this system as there are no longer universal settings. The plan right now is to scrap all settings code from the initial 2.0 builds in order to focus more on how the new inter-component settings will operate, and then re-insert the settings system in a simpler form.
I have already broken off the 2.0 code separately from the soon-to-be-released 1.1 codebase, and have started a lot of the core work needed to implement this. So far, the timer/clock windows are the only system that I have converted fully, with the next step being the UI. That way, I have a path to test the core settings changes, while also having the UI updated into the new form. After that comes reworking the access object classes, which are what do all the talking between RTools and the tournament programs. Then, it's just getting each button to work the way it did before I decided to mess everything up.
---
Update (07/20/10): Version 2.0.0 alpha 1 is running now; this doesn't sound like much, but it's actually a huge step for me. The major issue with such drastic revisions is that at a certain point early on in the coding, you lose most of your ability to debug visually; it's like tearing apart an engine: at some point early on, you won't be able to turn the engine on again until you've made your changes and almost finished the rebuilding process. This version means that I have the GUI back up and running after the core changes have been done. At this point, the WER access object is the only one converted (though the others will be relatively trivial, since it's just the same steps as converting the first one), the only buttons "hooked up" are the ones that don't display a "pairings-based" window, and the menu is useless.
This also gave me the first opportunities to test out the new tricks with making the program tournament-centric, and everything works as planned. The demo right now would involve launching a timer, starting it, closing it, waiting a few seconds, then launching a timer again from the main window. v1 behavior would bring a new window up; v2 behavior brings back the old timer, still running like it never left.
No comments:
Post a Comment