The Tournament Director Forums

Main => Beta Testing => Topic started by: Corey Cooper on May 01, 2009, 10:23:34 AM

Title: Upcoming version question
Post by: Corey Cooper on May 01, 2009, 10:23:34 AM
The version I'm currently working on once again has a pretty serious structural change.  The code now has a much more modern object architecture, which makes maintenance much easier.  The side effects are (1) (the good one) upgrading objects in the code is dramatically simpler.  This will make adding new features that require changes to the Tournament or Layout much simpler than in the past.  And (2) (the down side) the serialization of these objects results in much larger file sizes.  Thus, a saved tournament that may be 50k bytes today will likely be 100k or 150k bytes saved in the new model.  Size really isn't the issue (hard drives are enormous in comparison), but loading and saving these files IS, and it will require a not-insignificant increase in load/save times.

All the technical talk aside, loading and saving files (tournaments and layouts) will take longer in the new version.  As it turns out, the biggest culprit is the layout.  It usually takes up, on average, about 2/3 of a saved tournament file, while the tournament information itself takes the remaining 1/3.  Therefore, I've decided it's time to cut the umbilical cord between a tournament and its corresponding layout.

Currently, when you load a tournament file, you are also loading the layout saved with the tournament file.  The question I pose to you, the users, is which method do you think would be best to facilitate this change:

(1) The tournament and layout are completely separate items.  A tournament and a layout are loaded and saved completely independently of each other.  When you load a tournament, the current layout is unaffected.  When you load a layout, the current tournament is unaffected (this is how it is today - just like loading any "template").  When you exit the program, you are prompted to save your tournament if it has not been saved, and you are prompted to save your layout, if it has not been saved.


(2) Pretty much the same except the tournament has a "pointer" to the layout used.  A filename only.  When you load the tournament, the software looks for the layout referenced in the tournament file and attempts to load it as well.  If it cannot be found, either the current layout remains or the software restores the default layout.  When you save your tournament, the filename of the currently loaded layout is saved with the tournament, so the layout can be restored when the tournament is loaded again.   Of course this means that you could delete a layout or make dramatic changes to one outside of a tournament, so that the next time you loaded the tournament you wouldn't necessarily see the same layout that was used during that tournament (as you've made changes to the layout).

Initially I was planning to implement (2).  But the more I think about it, the more I'm inclined to go with (1).  I believe this one is a slightly simpler model, and oddly enough I think it will be easier for people to grasp.  I actually think it might be simpler to understand than the current system (with the Layout saved with the tournament).

What do you think?

In the interest of complete disclosure, this isn't technically a vote where I'm going to implement the one with the most votes.  But I would like to hear some opinions from people who use the software, and see how this change might affect everyone.  Once I get into the code for this, things could change regardless.

Thanks in advance to everyone for contributing.
Title: Re: Upcoming version question
Post by: Karpro on May 01, 2009, 11:28:31 AM

I think as long as we get proper instruction on how to use it either will be fine.  Do which ever makes your end easier/better. 

Title: Re: Upcoming version question
Post by: Johno on May 01, 2009, 11:39:31 AM
I think the layout being kept seperate will be best.

Currently when I load an old tournament as a template for a tourney we are going to run, it's frustrating at times when it loads the old layout.

Generally I think people will have a layout they like and use that one over and over.
Title: Re: Upcoming version question
Post by: mrticsay on May 01, 2009, 02:54:53 PM
I don't think its necessary to keep any information on the layout with a tournament.  I believe a tournament is the data associated with it- who played, what the buy-ins were, what structure we played, who busted who/when, what the payouts were, etc and that anything to do with presentation- layout, events, sounds, chips, etc. doesn't matter (tables don't matter either).  So both storing the data or a reference to a layout file isn't necessary

I'd like to be able to setup defaults for the presentation so that when I startup TD, I get my default layout, sounds, chips, etc.  I accomplish that today with the default tournament setting.  Therefore, in your future plans, I'd propose an extended view of layout, or a new structure like "presentation" (but I'm sure there's something better) which incorporates all the non-tourney data.  So, I don't have to load a layout template, then a chip template, then an event template, etc.  In this case, I'd want the "presentation" structure to be linked references to the template files.  When a "presentation" is opened, it brings in the current version of the referenced template files.

A proposed modification/enhancement to your (1)- have two different buttons- save tournament and save "presentation" (whether in addition to the save prompting or as a replacement).

However you do it, I like the idea of separting this (as you probably would have guessed based on my prior posts).
Title: Re: Upcoming version question
Post by: mikiewendy on May 04, 2009, 12:52:06 PM
I personally don't have a preference to either item.  I would just need to change my current layout file to the default file name.  All of my tournaments use the same layout therefore I would prefer not having to load a layout each time I load a prior tourney file to setup a new tournament.
Title: Re: Upcoming version question
Post by: T-Bone on May 06, 2009, 10:04:51 AM
I like the "pointer" concept, but either works for me. Do what makes things easier for you so TD continues to be an inexpensive (and invaluable) package.
Title: Re: Upcoming version question
Post by: exterminatorx on May 13, 2009, 10:22:55 AM
I think you right to go with (1), and modern programmatic thought is the separation of an applications "data" from the "view" of the data.  The layout is just a "view" of the data. 
Title: Re: Upcoming version question
Post by: jhisey on May 15, 2009, 04:49:05 PM
Which ever is easier for you is fine.  I would like to be able to load everything else in a single click though.  IE. Layout, chips, tables, etc.  I'd hate to have to go to each page and load each one now whereas today, I have a tournament file that has all my defaults that I load.  I immediately put in the month and Save As a different filename.  Very easy that way.