Saturday, January 30, 2010

Worldwake Update (Beta 4.3)

The Beta 4.3 update is now complete, including Worldwake. Download link in the nav bar to the left
Unfortunately I didn't have time to implement (or really look in to) a better update procedure, so you will still have to uninstall your old version then reinstall the new one.

Again, no worries, the save files aren't effected by this process at all.

Changes included in the 4.3 version:
> Complete Gather text for every card, including the new October rules changes.
> New sets included: Worldwake, GVL, Slivers
> Updates to FNM, JGC, and MPR special printings
> Several minor fixes, art corrections, and such.


I never got around to completing the Garruk vs Liliana or Sliver records, so the art for those is missing. I changed the way foil/normal printings are handled to be more efficient, but I think some records were updated incorrectly in the database when I did so. Again, nothing major, just some cards will have a FOIL numeric box when they shouldn't.


The update process was pretty smooth, with just a couple of minor problems, namely the fact that Gather output has changed slightly (in the background code) and now adds HTML line breaks throughout card text for some bizarre reason.
I had to figure out how to remove that weirdness and finally just removed all HTML 'BR' tags for the old-new comparison. Once I managed that I discovered a grand total of about four changes in all of Gather.
Piece 'O cake.

Saturday, November 28, 2009

Zendikar

Zendikar update is complete.

It has been for a while, actually, but I kept forgetting to update this blog.
Oops.

Latest download info can be found in the Download link to the left.

Anyway, here's the details for this update:


Changes included in the 4.2 version:
> Complete Gather text for every card, including the new October rules changes.
> New sets included: Zendikar, Planechase, and FTV - Exile
> Support for Plane cards
> Introducing a new 'Product' rarity (for booster packs and such).
> Updates to FNM, JGC, and MPR special printings
> Prerelease and Release event cards now included (some with no art for now).
> Several minor fixes, art corrections, and such.
> Improved Database functionality: Simple Search now supports Block and Set selections, previously only available via the Advanced search.

Next update: Shortly before or after Worldwake's release.


Additional Notes:

This update took a little longer than usual (by about two weeks) because of a number of changes to the Magic rules set.

Planar cards were introduced, which required me to make slight modifications to the entire database. I also had to change the search paramaters to allow Planar cards, so I modified the entire search routine to load the Drop-down list from the database.
Now the drop-down for the Simple Search offers Set and Block search filters. Previously, these options were only available through the Advanced Search filter.
Plane cards can be accessed through the Land/Plane button (previously only used for Lands)

Oracle text for a number of cards was changed, and I still had to make lots of changes from the M10 rules overhaul. Because of this, I waited a week after the Prerelease for the Oracle update, and downloaded the entire database as a 20MB text file.
I then spent the next week perfecting a text-parsing program that translated that horrid mess into a readable format, then had a different program compare the two databases and let me look over the changes.
With the help of these two programs, Oracle updates take about two minutes to compile, and less than an hour for me to error-check.

So all future updates should contain complete Oracle text.

Saturday, May 16, 2009

Advanced Search - An in-depth look

I'd like to take a behind-the-scenes look at the new Advanced Search options, both to explain how to best use the tools, and to explain just how such a complicated search filter works.


First of all, the Advanced Search query is generated 100% on the fly. Previously, only three predefined search queries were used. This was simple and effective, because the search filter was almost always the same. Just the key words sent through the search filter changed.
For example, the filter by name would look like this:
WHERE CardName LIKE [something]

Changing the text sent in the [something] placeholder yielded different results. The catch was, not every field is necessary for every search. Suppose you didn't care what the card's name was. The program still had to send the search filter something. In this example the [something] would be a dummy value, just to trick the database into including everything.

Combine this process with up to 50 values, and now problems arise. The database is often making far more comparisons than necessary, slowing performance.



The new search options bypass this problem by generating the search filter when it is needed. If text is entered in the CardName filter, the database filters based on the text entered. More importantly, if no text is entered, that step is skipped!



So, with that explination out of the way, here is the first in a series of screenshots. The first step is to determine what set(s) of cards to display.
Filtering by format will show all printings (records) of all cards legal in that format. These format lists are another series of tables in the database.
Filtering by Set, on the other hand, will only show cards from the sets enabled through the checkboxes. The sets are grouped the same way the 'volumes' are grouped, which should make everything easy to understand.

Also worth noting is the interactive title text for each group of sets, which can be clicked to toggle every set in that group on or off, and the clear button int the top right of many filter groups. This can be clicked to reset that filter (or to toggle everything on or off in the case of check box collections).



The second tab brings back many familiar controls, but now features some extra options.

Skipping the Color options for now, the only changes to the Card Type filters are the addition of a "Planeswalker" checkbox. This rarely-used option is bundled with "Enchantments" and "Creatures" for the simple search, to preserve the layout. Similarly, the "Token" and "Land" as well as the "Product" and "Special" rarities have also been split.

The CMC options now allow for up to three ranges of numbers, which is probably quite excessive.

Back to the Color options.
Each row of checkboxes represents one group of filter options. Clicking the "Multicolor" and/or "Hybrid" tabs will set that row's filter to only hybrid or multicolor style cards, rather than monocolor cards. Clicking "Match All" means that only multicolor/hybrid cards that match all the selected colors will be included.

Additionally, the filtering process will be skipped for rows with each box checked, or no boxes checked. The same is true for the Type and Rarity checkboxes.


Here are some examples:
White, Blue = Only white and blue monocolor cards.
White, Blue, Multicolor = Multicolor cards that are blue or white, and are not colors that are not checked.
White, Blue, Green, Multicolor = Multicolor cards that are blue or white or green, and are not colors that are not checked.
Black, Red, Green, Multicolor, Match All = Multicolor cards that are exactly Black, Red, and Green




The third tab allows for text-based filtering.

The Subtype, Rules Text, and Flavor Text fields each allow a pair of AND fields, and a single NOT field.
When completed, the filter will exclude anything from the NOT field, and include anything that matches either of the two three-condition OR clauses.

The Artist field simply filters by artist name.

The Card Name box is actually intended to copy/past long lists of card names, such as from a decklist psted online. Unlike the other fields, this list requires an exact match.


Perhaps least impressive is the fourth tab, which filters results by the inventory records in the currently-opened save file. Unilke all the other options listed here, this filter is performed after the search, because these records are not part of the master database.

The filters are paired up, allowing up to two ranges of inventory.
The first dropdown determines what versions to check. Total, the default, finds the sum of all versions each printing of each card.
The other options for this list are "All," which checks all versions for a match among any of them, "Regular" which is the normal printing, "Foil" which is the foil (shiny/premium) printing, and two "other" entries, for oddball cases such as foreign versions, or signed copies.


Last but not least, the sort order tab allows a wide variety of sorting conditions, including several compound conditions. This step formats the data as effectively as possible for further processing (control break processing) later on, when the resulting list is broken up into managable pieces.

Sunday, May 3, 2009

Beta 4.0 Release

Beta 4.0 is now available for download >>>HERE<<<

If you had a previous version, you will have to uninstall first, but no other changes should be necessary.


Improvements - Beta 4 finally eliminates the dreaded GridView, allowing free access to the database. That means it is now possible to generate any search you want. The first stage of this process is the Advanced Search.

> The Advanced Search is functional
> Three tiered sort tools are now available
> Hardcoded filepaths are gone, and the program should be able to run from any directory, on any hard drive.
> Numerous subtle improvements to the GUI, mostly just tweaking the alignment of controls
> The database has been updated, fixing several hundred cards with cut-off text
> Most promo cards are included
> Alara Reborn is included
> Saving now works like any text document, meaning it warns you about closing without saving, and lets you choose a save location.


Problems & Bugs - While numerous improvements have been made, some technical difficulties have cropped up.

> Sorting processes for Card Type are buggy. I'm aware of the problem, but not sure how to fix it in a reasonable manner. The only fix I know of right now is to parse (read) the type line of each card, which is *slightly* time consuming and wasteful. By slightly, of course, I mean "omg panic" slightly.

> A similar situation with the "Distinguish Number Of Colors" filter option. This one is easier to fix, but I'd prefer to fix it through the database query (automatically) rather than add yet another column for such a narrow purpose.

> The search query is now generated live, and might have some bugs in it. It shouldn't cause any actual problems, but let me know what settings you used to cause the problem so I can fix it.

> The small card tooltip is still really wonky, but I disabled it by default so it isn't too annoying now.


What's Next - Here's what I have planned for the next couple of months:

> Fixes to the above

> Fixing the "uninstall the old version" problem, so installing updates is simple.

> User profile saving (saving of display settings, search settings, and default files to open)

> A card detail window, similar to Gather. This would show all the information about a single card, including alternate printings, and will give you a text field for jotting down notes.
For example: "note: Bob wants this card"

> Deck editing? I'm still thinking about how to do this. In theory it should be straightforward, because all the groundwork is already laid, but I want to meet with a professional developer and show him (her) my work first.
I plan on rebuilding everything using .NET 2008, making the most of everything I learned the first time, and the more work I do in 2005, the more I have to rebuild later. :P

Tuesday, March 17, 2009

File Saving upgraded

Work has been continuing, when I have the time, mostly on minor things that bug me.

One thing I completely revamped is the save file process. The save process now works much like word documents and such. I even included some "this file hasn't been saved" type error messages, so the entire process is much more intuitive.

Now that that feature is up to snuff, I plan on adding some other features, such as a wish list and trade list. By parsing a wish list and a collection file, have/want lists can be generated.

This upgrade won't be included until the Alara Reborn update, which will be released in late April (when the Alara Reborn set is released)



PS: Shameless plug for search engines (I hope):
Magic the Gathering
MtG
MTG
Magic Collection Manager

Wednesday, March 4, 2009

Beta 3.1 Release

Beta 3.1 is now finished.

I fixed several minor database glitches and improved the GUI subtly.
The biggest change is the text on the preview cards.


Upgrades and Fixes:
* The WUBBG error on conflux cards is fixed (It should WUBRG)
* Improvements have been made to the Preview Card text formatting.
* Some minor database issues were fixed
* The database and save file for cards were moved to a "Data" folder for consistency
* Planar Chaos frames are now included with the primary download
* Unhinged and Unglued frames are now available for download


The new version can be downloaded >HERE<, but I will update the link in the download instructions as well.
Those upgrading from a previous version will need to uninstall the old version first. I hope to overcome this irritant soon.

Beta 3.1 Screenshots

Beta 3.1 brings improvements to the preview card text formatting. The small card text formatting has also been upgraded.






============================================================
NOTE: several of the following screenshots are from before the Beta 3.1 changes were made.
This is to give an example of the sorts of changes that were made, and because I already had those screenshots and replicating them would be a bit excessive. :P

The biggest changes were to the text box, where icons and formatting changes are now applied.
============================================================


Advanced Sorting Options (Sort By Color)




Advanced Sorting Options (Sort By Type)



Overriding Card Frames - Some people prefer the look of the old style card frames, while others prefer the new frames. You can override the default.





Tokens are included too