Spell Sorter

for Dungeons & Dragons 3rd Edition
version 4.0

Development Journal

It's finally underway! I've started development of new version of Spell Sorter that will finally make a legitimate program out of this overgrown JavaScript of mine. Right off the top, I want to thank the users who have taken the time to write me kind words about Spell Sorter, and who have made so many great suggestions for it's improvement.

Version 4.0 will address the most common request I receive-- a download version that can be run from your desktop without an internet connection.

I'm writing this new version in Java-- and actual programing language this time, not just web-scripting-- so it will work like an honest-to-gosh program. You'll have a little icon on your desktop that you can double click on and everything! And since I won't have to figure out cross-browser cookie protocols and such, version 4.0 will be much more customizable.

Of course, the development is going slowly because I actually have to learn Java before I can write the program. I've taken a couple of shots at teaching myself. That hasn't worked out so well. Now I'm enrolled in a Java Class, and I actaully have a working Alpha version of Spell Sorter built! I figure now is the time to start keeping a development journal so all of you eager users out there can keep track of my progress (and harass me if I get too far behind).

On a final note, I want to say up front that I may have to charge a small fee for Spell Sorter, just to recoup some of my investment. I'm curious to know what people think about the idea of paying $5-10 for a program I've been giving away for free. If you'd like to comment on this, or any other facet of the development of this new version of Spell Sorter, I'd love to hear from you-- even if it's just words of encouragement to keep me working.

- Mark

January 28, 2003

    Started Java class the evening. Learned a lot in the first class.

February 18, 2003

    EUREKA! I have a working version 1-Alpha! It's crude. There is no GUI-- it's all command line driven, but when I enter "Brd 3" it spits back a list of all the third level Bard spells. A modest start, but a start none-the-less.

February 22, 2003

    Version 2-Alpha is now working. I'm focusing on gathering the proper info for each caster class and calculating the correct number of spells of each level that each class gets. I've developed a Java super-class called "CasterClass" with sub-classes "Bard" and "Druid" so far, and I can enter the caster class, level, and Int/Wis/Cha score and get back the numbers I need. I'm not sure if this is the right track to take though. If I want users to be able to add customized caster classes, maybe I need to generate these details dynamiclly rather than hard-coding in the main D&D caster classes. I'll have to think on this.

March 5, 2003

    I've decided for simplicity's sake to hard-code everything into the first version of Spell Sorter 4-- you won't be able to edit, customize anything or add anything of your own. I'll probably use this as a beta/free demo. The customization features are one of the two most difficult obstacles I have to over come. The GUI is the other one. By ignoring the customization features for now, I can focus on the GUI and get a working version completed sooner. That said, I've got all seven primary caster classes defined and coded now. I can enter basic data for each class and get back the appropriate variables that define how spells of each level a caster gets. Of course it's still all command-line. The next step will be to actually display lists of spells for each caster.

May 8, 2003

    I know it's been a while since I've posted anything, and in truth there was a long dry spell there where I didn't do much. I was waiting for my Java class to get to the section on Graphic User Interface (GUI). Of course this was one of the last sections covered. And then when we got to it, it turns out that the GUI I need to develop for SS4 is more complex than anything we didi in class. I got stuck. Stuck bad. I ended up taking the code to class with me on a disk and sitting down with the instructor to work through it. The good news is we did get it worked out and the GUI is developing nicely. I should have screenshots in my next post.

September 8, 2003

    Ye tap-dancing gods! Has it been FOUR MONTHS since I've updated this journal? You people aren't doing your jobs. You're supposed to stay on my case about this and keep me moving. What happened to all the tyrants from the summer of 2001 who wouldn't give me a moments rest? Anyway-- it's been a MUCH busier summer than I anticipated. Summers are usually dull for me and give me lots of time to get in the zone in front of the computer. Not this one though. Can't really say why that is. Anyway-anyway, I have kept my word and DO have screenshots of the development so far. I don't feel like typing 1000 words so here are the pictures: ScreenShot1.jpg - ScreenShot2.jpg - ScreenShot3.jpg. As you can see I have a working program here... albeit an crude one. If you have a calendar, you can also see that I've completely blown my self-imposed deadline to be finished by the end of the summer. I haven't even gotten the thing to print yet. But I'm working on it, yes I am. And hopefully I won't let 4 months go by again without an update.

December 19, 2003

    It has been a while, hasn't it? I'm stuck on the print out function. I can get it to print, but it looks UGLY. Check out PrintOut1.pdf to see what I mean. I've bought two books and posted to a dozen JAVA forums for help and I just can't figure out how to get the thing to print out right. And if it doesn't print, it's useless to me :-(
    I'm now in the process of looking for a Java coach-- an expert who can help me thru the rough spots. I've got a couple of likely prospects, but it's tough to find time with anyone during the holidays. Hopefully I'll be able to get over this print hurdle and start moving again in January.

May 25, 2004

    I get so much Email when I don't update this journal-- so many people afraid I've given up. It's really very encouraging.
    Ok, here's the deal-- I've made a LOT of progress on the print problem, but I'm not out of the woods yet. I did find a Java coach, and he pointed me in the right direction to fix the biggest problem. The type on the page actually looks like type now instead of jagged bit-map characters. Unfortunately my problems didn't stop there, and my new Java coach turned out to be even busier than I am. So I wasted a LOT of time waiting for him to return my emails.
    Finally (after several months and several of your Emails) I went back in solo. I've now managed to get the program to recognize user-defined page margins, and I've managed to keep the spell list from printing off the side of the paper-- two significant issues! I still have one final problem to overcome tho. I can only ever print the first page. Once I figure out how to print all the pages of the spell list, I think the print problem should be behind me. I'm optimistic that I can get that sorted out pretty quickly. And once the print problem is solved, I think the rest of the program should fall together pretty easily. It may be ready for beta testing this summer... but you've heard THAT before, haven't you?

June 7, 2004

    Well, I did it. I finally got the thing to print out exactly the way I wanted. Turns out I'd spent a great deal of time trying to graphic2D.transform() my JPanel object, when what I actually wanted to do was graphic2D.translate() it. That probably makes no sense to anyone out there who isn't a Java Swing programer. Suffice it to say that Spell Sorter now prints.
    Problem is, even tho it prints exactly how I wanted it to, I've discovered that I wanted it to print the wrong way. Bummer. Here's what I mean... I've got it to the point where I can set my own margins and the print out will respect them. In ScreenShot4.jpg you can see where I've set the top margin to 1.25 inches (I keep my character notes on a clipboard, so I always set a large top margin). In ScreenShot5.jpg you can see that my printout will come to 3 pages, I can choose my printer, set my options, etc. All is going very well.
    Now take a look at PrintOut2.pdf. Specifically take a look at the bottom of page 1 and the top of page 2. See how the type in the 'Mage Armor' spell got cut in half. That's no good. I need to go back to the drawing board and figure out a way to get my pages to break neatly between spell blocks. Spent the better part of Sunday afternoon working on that to no avail. So as always, I seem to be one breaktrough away from smooth sailing.

July 4, 2004

    IT PRINTS! It actually PRINTS just the way it needs to! Of course it's taken almost 10 months to get to this point. I can't believe I've been working on the print function since September. But it works now, and that's the important thing.
    If you'd like to see the results, checkout PrintOut3.pdf. Notice how the pages break cleanly between spell blocks? That tooks some doin', let me tell you. You can also see that I've added page numbers at the bottom of each page. You can't see it in this example, but I also managed to figure out how to start the column headers on a new page if they'd appear more than three-quarters of the way down the previous page. Basically, you won't have your column headers at the bottom of a page with only 1 spell underneath them.

July 10, 2004

    Today I plucked the first fruit from the version 4 tree. I used version 4 to print out the spells known by my fourth level Bard. Now to extend the fruit analogy a bit, it wasn't quite ripe. I still had to write in the Save DCs, and I had to write in the number of spells of each level that I could cast each day.
    At the moment I can only pluck un-ripened spell lists for Bards, Sorcerers and Druids. It's a start. After almost a year and a half of development, I'd like to say that my Bard's spell list was sweet and juicy-- but I think that would clearly be stretching the fruit analogy. Suffice it to say that playing that Bard today was extremely rewarding.

July 24, 2004

    So I get an Email from a guy named Alan who tells me that he checks this journal every day for updates. Alan's unfortunate obsessive/compulsive disorder aside, I was flattered-- and just a tad guilty. Every day for the last two weeks I've found myself thinking "Poor Alan. There's no update today." Well, I really don't have much to report, but the guilt finally got the better of me, and so Alan, this one's for you.
    I've got the instructions figured out-- the line at the top of the list that says "Select the 4 spells you know" or "Cast per day = 2" so now I don't have write that in by hand on my Bard's printout. Not much of an accomplishment really, but there it is. Right now (well, not RIGHT now, but just before I started and as soon as I finish writing this) I'm working on the random spell selector. This is turning out to be trickier than I expected, but I think I'm moving in the right direction. Of course all of this is still only for the Bard. Once I make the Bard work I can then apply the same code, with minor modifications, to the other classes.
    Ok, my guilt is lifted. Now back to work...

August 2, 2004

    I can't believe how close I am now. The Bard is finished-- I mean completely finished. I can do anything with a Bard spell list in SS4 that I could do in SS3. By association, the Sorcerer is also finished. That was just a matter of changeing a few variables. The Druid was also pretty easy to extrapolate from the Bard. So as long as you're playing a Bard, Druid or Sorcerer in a D&D 3.0, game Spell Sorter 4 is ready for action.
    Actually, if you're playing a level 4+ Ranger or Paladin with a Wisdom of 12+, it'll work too. If the Ranger or Paladin do not qualify for spells, the program spits back an ugly, indecipherable error message. I need to figure out how to turn it into a polite, elegant error message, something like "Please increase the caster's level or wisdom score and try again." I don't think that'll be too hard, I just need to review my notes on throwing and catching errors.
    That just leaves Clerics, with their Domain spells, and Wizards with their specialty schools and barred schools and spell books with no set limit to the number of spells they can know. Wizards are always tricky. But I'm pretty confident I can get those things done in the next few weeks. It's really starting to look like I'll have the Demo ready by the end of this summer.
    Of course I'll still have to flesh out the Help menu and figure out the Cut/Copy/Paste functions. Putting it online as an applet won't be too tough, but I'll need to figure out how to make it downloadable. And I'd really like to get the 3.5 spells in there before I release it. That's a sobering thought. Ok, so more work ahead than I initially thought. But I want to end this update on an up note, and since I haven't posted one in a while, here's ScreenShot6.jpg which looks just like the final version will.

August 24, 2004

    Well it took longer than I expected to get to this point. Of course I didn't expect the alergic reaction that caused my hands and fingers to swell up like brautwurst, but that only lasted a day or so. Can't really blame that.
    The Ranger/Paladin issue mentioned above resolved itself pretty quickly. You can see the results in ScreenShot7.jpg. A simple but effective error message.
    The Cleric actually gave me quite a few headaches. I had to go back and re-work the way a caster's spells are passed to the function that displays them on the screen. It also took a lot of work to get the Domain selection menu just the way want it. I was never happy with the need to "hold down the Ctrl key" to select multiple domains, so I came up with the checkbox list you can see in ScreenShot8.jpg. That was tricky. AND I had to go back and tweak the printing algorithms to account for the Domain Spell Divider which you can see in ScreenShot9.jpg. But the thing that took me the MOST time was passing the selected domain spells to the prepared spell list and having it display properly-- long story short, if a selected domain spell was also available as a regular Cleric spell of that level, it showed up twice in the prepared spell list, even if it was only selected once.
    But the Cleric is finally done. Let's see, I have... 28 days (1 lunar month) to get the Specalist Wizard working and all the other little odds & ends finished before my self-imposed deadline of The End of Summer. Here I go.

September 12... er, 13, 2004

    Two big things to report this time. First, I stayed up late and got the Wizard finished as you can see in ScreenShot10.jpg. Well, mostly finished. If you create a specialist Wizard, and let the computer pick random spells for you, you may or may not end up with any spells from your specialty. The first time I ran the program for the screen shot, I had no level 0 or 1 Abjuration spells. I'm not really sure how to correct that, since the randomizer generates a list of random numbers without ever looking at the spells. The numbers are matched up to the appropriate spells later. For the moment I'm going to leave this one bug, since it's easy enough to modify the random results by hand.
    Second big thing, I've got the data from 3.5 just about ready to be plugged into the program. If you're sharp, you noticed that the specialist Wizard interface uses 3.5 rules for selecting barred schools, rather than the 3.0. I figured there was no point in re-doing that when I was so close to making the 3.5 switch. So anyway I just gotta go through the data one more time to clean it up a little, then I'll be ready to paste it into the program. Of course, I'll have to revise the layout of the spell block display slightly, but I don't anticipate any trouble there.
    Since I'm on the subject of 3.5, I should mention that I decided to take the data directly from WOTC's online System Reference Document (SRD) in compliance with the Open Gaming License. Since I'm hoping to make some small bit of money off of the full version of Spell Sorter, I figure it's safest to jump through all the legal hoops. What this means in a practical sense is that you'll find spells like "Crushing Hand" instead of "B*gby's Crushing Hand" because the name 'B*gby' is a WOTC trademark. Naturally this could cause some confusion when you look for a Hand spell starting with a "B" and can't find it. So one of the first upgrades I'll be doing in the for-sale version is adding a spell editor which will allow you to customize any information about a spell, including the name, to fit your own house rules. I'll have to remember to mention that in the FAQ.
    Alright then. It's getting late and I have to go to work in the morning. I'm still planing to have this thing online by Sept 21. Wish me luck.

September 18, 2004

    It is Done!

    And only 362 days behind schedule! Well, Ok, it's not done-done, but done enough that I can finally post it on the Cadre web site and let people take it out for a spin. I'm sure there are still a few bugs to work out, and I definitely need feedback for the FAQ and Instructions pages. I need to know what kinds of problems people have running Spell Sorter so that I can post solutions to those problems.

    Once I have all the rough edges smoothed off of the Spell Sorter Demo, I'll get to work on Spell Sorter Pro, the version I'm actually going to charge money for. Pro will have all those extra bells and whistles that will let you save and open spell lists, add and edit your own spells, classes and domains, and apply meta-magic feats to your spells.

    Before I can charge money for a program tho, I'm going to need beta testers. The first ten volunteers will get their copies for free.

September 25, 2004

    Wow! Over 150 hits on the new spell sorter in about a week. Considering that I only told a handful of people, and the rest just happened to wander by, I'm flattered.

    Thanx to everyone for all the great feedback. Based on you comments I've made a few cosmetic changes-- most noticeable, I increased the font size slightly, and I added a quick instruction line to the start up screen.

    The biggest bug however was caught by murph who noticed that more than two dozen spells were missing from his Bard list. This came as quite a shock to me. Not only did I miss it, but apparently EVERYONE but murph missed it too. And as near as I can tell this problem affected all of the classes, not just Bards. But thanx to murph's sharp eye, I was able to diagnose and fix the problem.

    So now you'll all probably want to delete the previous build of Spell Sorter that you downloaded and get this most recent version. I probably ought to establish some kind of mailing list to alert people to new updates. I still plan to add one or two features to the Demo before I really get started on the Pro version.

    Oh, and as for beta-testers, I have a couple spaces left, but I really need someone who uses a Unix/Linux machine. If that's you, and you'd like to beta-test Spell Sorter Pro for me, please volunteer.

September 30, 2004

    First, I finally have a mailing list set up. If you subscribe to the mailing list, I'll send you notification by Email every time I post a new release, or an update, or a patch or something like that. That way you'll always have the newest, shiniest version of Spell Sorter in your game group.

    Second, I emailed WotC's legal department to make sure I was in compliance with the Open Game License. They politely told me that it wasn't their job to evaluate my work, but that after glancing at it, it looked Ok to them. I figure what they mean is "Hire your own lawyer." So to be safe I probably need to find a lawyer to review the OGL and my web site to make sure I'm in compliance. While I'm at it there are probably a couple of other copyright/trademark issue that I should have a lawyer look at too. I'm pretty sure I've taken care of all that, but you never know with all the legalese.

    Of course lawyers cost money. I suppose there's an off chance that one of you out there is a lawyer and you might volunteer your services, but I doubt it. That's why I'm now taking donations via PayPal (and soon Amazon) and why I hope to start displaying Google AdWords soon. If you appreciate all the work I've done on Spell Sorter, and you'd like to chip in a dollor or ten, it would sure help me out.

    Finally, I still need a volunteer beta-tester or two who runs Unix or Linux.

November 9, 2004

    It's been a while since I updated, but at least I've made some major improvements. For one thing, the scroll wheel now works the way it should. For another, I've added a "Misc Spell List" option so you can create a list of spells or spell-like abilities for monsters or magic items. The last big improvement is the addition of two new "Views." You can now see your spell list in the efficient Print Format you're used to, or in either a super compact One Line Format or the WotC Traditional Format. Just use the "View" menu to change the view at any time.

    There have been a few minor tweaks as well. I've added the Instructions and FAQ under the "Help" menu, but I'm still not sure they're functioning the way I'd like. That's ok tho, since I haven't gotten around to actually writing either of them yet. There were a number of other little fixes as well.

    This is the build that I'm sending out to my Beta Testers. With the exception of some minor tweaks and corrections to whatever bugs they find, this is it, the final version of Spell Sorter Demo. Any new functionality is going to be added to the Pro version, which we'll hopefully see... well, I get in trouble when I set deadlines. I'll be working on it tho, count on that.

    OH! I almost forgot about the great artwork done by Jeff Hebert, creator of Hero Machine. It looks great in the download version, but you may not see it in the online version yet. I'm working on that.

February 23, 2005

    I've been suffering a bad case of the winter blahs recently, and I haven't touched Spell Sorter in months. Part of the problem is that I'm not currently playing a spell caster. Part of the problem is that I sent out the first work to my volunteer beta-testers right before Thanxgiving, and a lot of it never came back-- very de-spiriting. That's my fault tho. I should have known better than to send out the work right before the holidays. Live and learn.

    The biggest part of the problem tho, is that the next step in developing the pro version is to figure out how to let the user edit spells, and add their own. I only have vaguest idea of how to do that. Frankly the prospect of hitting another road block like the print problem (see December 19, 2003) scares me a bit.

    The good news is that I've found myself thinking about Spell Sorter more and more over the last couple of weeks. The university is closed due to snow today, so (after I went back to bed) I found the motivation to re-design the Spell Sorter web page. I like the results. I like having the demo in-line instead of in a pop-up window. It's a minor re-start, but it's progress of a sort. I'm going to go get some lunch now, and maybe afterwards I'll open up the code again... maybe.

July 10, 2005

    Geez has it really been since February since I updated this? Well fortunately, Spell Sorter Pro has seen more progress than the development journal. Back in March, during spring break, I figured out how to read the spell data in from an external file, rather than having it all hard coded into the program. This is a huge step, becasue now I can figure out how to edit the data in the external file. This will allow you to edit spells and add your own from other sources.

    Back in March I started working on an interface to let the user do just that. Then spring break ended and it was back to the office and Spell Sorter sat dormant for a few more months. Then I got an Email from DworkinBariman in Australia telling me how much she loved spell sorter and that gave me the kick in the pants I needed to get back to work. I've finished the interface, and it looks damn fine if I do say so myself. Here, take a gander at ScreenShot11.jpg. Now all have to do is make it DO something when you click the buttons. Don't let me slack off on this people. The first beta version of Spell Sorter Pro will go public once I have this feature working.

October 10, 2005

    Well, it took a long time to simply find the time, but I finally got the Add/Edit Spells feature working this weekend. A couple of my beta testers are looking at it now. I've already discovered that it does not work on the Mac. No idea why yet. But once I fix this and any other bugs that my beta testers find, I think I finally have a workable, sellable product in Spell Sorter Pro. And of course once I start making a little money from it, that's a mighty strong incentive to keep working to make more money. I hope.

    Which means I need to invest a few bucks and set myself up with some commerical web hosting and merchant software, since I can't turn a profit with my free university web space. The plan is to offer Spell Sorter Pro at half price while it is still in development (with free updates), and then charge full price when I have all of the planned features implemented.

    With a little luck and a little time, that will happen sooner rather than later.

October 9, 2006

    How can I have gone 364 days without an update you ask? Well let me tell you-- yes YOU personally, since if you're reading this, you're probably the ONLY person who hasn't given up on me yet.

    First and foremost I had to take a part-time job in addition to my full time job to make ends meet. Working evenings and weekends selling bikes and kayaks at the local REI has taken a big chunk out of my coding time. But I'm sure I could have made time if I was properly motivated.

    The thing is the Laurel Cadre hasn't actually played D&D in over a year. We've played Call of Cthulu, we've played Big Eyes-Small Mouth, and I ran a Conan campaign, but nothing that gave me any motivation to work on the Spell Sorter.

    Well that's over now. Jeff is set to run a big honkin' D&D game that should take us from 1st level to 20th. I expect it will last a year or longer. We have a Sorcerer and a Druid and I personally will be playing a Bard. By 20th level, I expect we can count on some multi-classing and definitely some meta-magic feats. Jeff tells me he plans to run the game with a laptop running Spell Sorter among other tools. So I should have ample motivation to keep this project going.

    I still haven't figured out what the problem is with Macs yet. I may have to let that slide in order to get stuff like customized domains done in time to be useful. I also need to prioitize what features will be needed most for our group. Hoepfully things will get back on the fast track and I'll have a marketable version of the sorter before we make 10th level.

    Course, first I have to figure out if I can still remember Java.

April 30, 2007

    Yes, it's been over six months, but I have made progress. A lot of work got done over Spring Break, but I stumbled and couldn't seem to get back on my feet until this past weekend when everything finally came together.

    I've been working on the Export feature-- the utility that will allow you to export a list of custom spells, domains and classes and share the data with others in your game group. Data entry can be a real pain (believe me) and by enabling users to spilt the work load and then share the results, I think the system is much more useable. The only way I was able to get all the data into the original Spell Sorter was by sharing the task with the rest of the Laurel Cadre.

    Anyway, the export feature is done and seems to be working fine. Check out ScreenShot12.jpg to see the interface for yourself. In this illustration, I'm exporting the spells I've entered from Complete Adventurer. Domains and Classes have yet to be activated. At this time, you can't edit either, so there is no point in being able to export them. Of course I won't know for certain that this works until I write the IMPORT utility, but I'm feeling pretty confident about that.

    In the game, we're around 6-7th level, so our spell casters are starting to branch out into some of the more esoteric spells found in supplement books. The more the Cadre uses non-standard spells, the more they'll be on me to get this Export/Import thing working, so it shouldn't take me six months to get there.

May 24, 2007

    Wow! An update in less than a month. I'm really truckin' now.

    It's true actually. I've made much faster progress on the import utility than I had expected to. Part of this is due to need. As the Cadre's D&D campaign continues, my Bard has taken a level of Cleric, and I want access to spells from other books-- but I want the rest of the Cadre to help me with the data entry.

    Part of it is do to one of Java's serendipitous aspects-- the more code I figure out, the more pieces I have to reassemble into other parts. Turns out most of the import code was already written in chucnks of other code. I just had to copy, paste and arrange the pieces. Hopefully, this portends an easier development process for editing domains, caster classes and meta-magic feats.

    Finally, it was due in no small part to Scott and Shawn, two completely unassociated gamers who both happened to stumble upon my little project this month. Both took the time to write to me and both were so excited about the project that I couldn't help but get excited too. Thanx guys.

Planned Features

  • Downloadable - run it from your desktop without an internet connection

  • Edit/Save personal annotations on each spell

  • Add/Edit your own spells from any source

  • Add your own prestige classes of spell caster

  • Add you own clerical domains

  • Save your caster's spell list and update it when you level up

  • Import/Export any custom created items to share with friends

  • Display spells in either horizontal detail or classic vertical detail

  • Print out spell lists or play from the screen

  • Select spells to prepare multiple times

  • Change the level of a spell by applying meta-magic feats

  • Support for both D&D 3 and 3.5 spells