Dev Journal: User data entry systems (feat builder, monster builder)

10 Sep

It is past time to share some of the things in the works for Monster Advancer. While none of these come with any estimates of release I figured it would be worth it for the few interested souls who care what “might” be coming down the pipeline eventually.

Prelude: Before I could ever get to the point of properly handling the complexity of user-entered content I needed to update the code-base with all the lessons I have learned so far programming for D&D 3.5 and Pathfinder (3.75). I am happy to report that the code-base conversion is nearly complete at its heart with only a few peripheral issues not already duplicating the functionality of the original system. This is of course the back-end code. The front end UIs each will need to be re-imagined to take full advantage of the advances I have made. In any case, the underlying purpose of the rewrite was to create a code-base that would be easy to adapt to the user entering of feats, special abilities, classes, equipment, templates and of course, monsters. For all intents and purposes the rewrite has been a phenomenal success. The new code-base indeed makes it far easier to plug in new UIs and feature sets with a keen emphasis on data coming from the UI can being translated straight into the database.

Current Work: With the rewrite complete I put together the basic new interface for creature “advancement”. This of course will just serve as the testing tools for any of the data we add via the new “builder” interfaces. I started with the feat builder because it seemed to be the most likely to be relatively simple. In short order, I had cobbled together a nice little interface that handled simple use cases as well as even some of the tricky ones.

Feat Builder - Feat Descriptions

Feats can have various types of descriptions.

With that worked out and the feats that I created able to be saved upon submission into the database, I decided to tackle the true beast…the monster builder…

While the Monster Builder won’t be able to be fully completed until we have a feat builder and special ability builder at the least, I figured starting on this would help direct my efforts on what else might need to be adjusted in the code to accommodate the challenge that is user-entered creatures.

Diving right in, I built through monster builder pieces that would allow hit dice, armor class, challenge rating, size, type, alignment, feats and special abilities. All while making sure everything would still flow through the current monster generation process. This ensures all the data will work in whatever the current state was (partially complete, incorrect, finished, etc.). The live previewing function made this easy to see at a glance as changes I made to the monster could be seen right away on the monster stat block.

All the work that went into this was enormously helpful in identifying places where the code still needed more flexibility to capture all the data that is potentially needed from the user to build a monster from scratch. All in all, the progress so far is encouraging and I am looking forward to the day that some of this sees release…and I hope you are too.

Monster Builder with live preview

Monster Builder with live preview

Monster Builder in action

Monster Builder in action

Here are several more screen shots of the interfaces so far:

This slideshow requires JavaScript.

History of Monster Advancer

2 Jul

On May 18, 2009 I launched the monsteradvancer website. It was a site born out of my love of D&D, my love of programming and my irritation at the time I had to spend crunching numbers and tweaking monsters for every session of my D&D 3.5 campaign. That is to say, it took way too long to make interesting monsters for encounters, my players were seasoned enough know an impressive number of creatures, and I had some creatures that I really thought were interesting but just wouldn’t be useful without a much higher challenge rating.

I realized at its heart the rules for monster advancement were meant to be simple, but it just didn’t translate well to a print medium. I figured it should actually be fairly straight forward to do it with a web application so I went for it. I started by setting up a system that did the basics:  increase size and add hit dice. I quickly added templates to the list as most weren’t terribly complicated and got it all done and working. Shortly after, I realized that with all advanced creatures my application could create it wouldn’t be hard to write a simple algorithm that could generate upgraded monster encounters as easily as the standard ones that were published everywhere. Thus, both the Monster Advancer and its counter part the Monster Advancer Random Encounter Generator were born.

I published the site and adopted the persona of Monster Advancer Overlord as an homage to the old school City State of the Invincible Overlord. The site scarcely had a few dozen available creatures but it was functional and I figured if I was using it all the time, surely other DMs might want it as well. It did what I needed it to do but not much more.

I quickly found I was right about people wanting the tool, but also found that that meant I needed to get some more creatures in and more features added. I spent the following months adding new features, templates and creatures furiously trying to keep up with feedback that I haphazardly tried to follow on sites like enworld and reddit.

On April 4, 2010 I released 404 more creatures covering the majority of the Monster Manual 1 and after a couple weeks of updating and tweaking that huge addition I declared Monster Advancer out of beta (April 22, 2010).

Other notable milestones included the following:

  • link-able creature entries and Monster Advancer forum on May 17, 2010
  • random encounter chart generator on June 11, 2010.
  • Treasure generator on September 20, 2010
  • Pathfinder auto-conversion and Pathfinder mode on September 25, 2010
All in all, the whole site was a colossal success. It had far exceeded my expectations as far as its own evolution but also as far as usage. My development was fueled by user feedback and love of the game. The donations option I had stuck on at the beginning over the course of the first had raised almost enough($144) to cover the hosting costs for 1 year ($13/month–because I am java guy and so I wrote a Java application which weren’t/aren’t cheap to host). However, none of the money stuff was ever even on the radar as it was never about costs–I was happy to pay for the domain and site hosting out of pocket. It was always about the DMs like me out there that were struggling with 3.5 (as excellent as a system as it is) because of the challenge of delightfully complex monsters. With a tool like this, who knows, maybe being a DM would be less about work and more about actually having some fun. If people were willing to give money, even a few dollars, for a free product they thought was great (or had potential) then I figured the whole endeavor was surely a worthwhile effort.

Even after feature releases tapered off, usage was solid as new people continued to find the tools and existing users continued to. I was disappointed that more features weren’t added in the past two years, but I was impressed I had managed as much as I had. The biggest milestone that doesn’t show up on the Monster Advancer timeline was my first son. I still worked on the features, mostly R&D for new stuff that I could do. Anything that I could squeeze in here and there and still make progress toward any of my established end goals. All the while, I watched the site usage slowly but surely climb as more and more people discovered the tool and realized that even as it was it did a lot of useful stuff. In spite of all the challenges (another kid) and general lack of development time, everything was actually still going well.

Behind the scenes I had tons of in-progress work on user-content entry, offline versions of the application, full graphical dungeon generation, DM screens, DM charts, tailored encounter creation, complete custom creature builder and all sorts of UI updates. Even if none of these were going to be completed any time soon, work was getting done.

Then disaster struck: Our web hosting company disappeared.

Late night on 6/28/2012 our hosting service went down. Not just our website mind you…the whole hosting service. No site to contact, no online technical support, no returned phone calls, no access to any site resources. The world went black and even the Overlord was not prepared. Since then we have acquired a new host and moved the monster advancer site over to the new accommodations, but the outage was not simple to correct. The disaster plans I had in place centered around data recovery, not service replacement, and getting everything in place for a move of this magnitude took several days.
This spurred my desire to increase the communication with those that support the site and more towards a generally more community-inclusive approach. During the outage I realized I had no way to let users know what was going on as the things like the forum and the contact email would not be easily obtained when the whole site was down. This blog is part of the creating a safety net of communication. A tool to talk about Monster Advancer or just gaming in general that is 100% separate from the website.

The other greatest side affect of the outage is my increased resolve to move Monster Advancer into the next phase–a more robust tool-set, Pathfinder support, user-content creation, and generally cleaning up everything that has been built so far.

Hopefully, we will all see this timeline continue to expand, but hopes do not write code or add features…so only time will tell. Till then, thank you for all your support and I hope to continue to make your DM lives easier and provide you with tools to put a little caution back into your players’ actions and perhaps even a bit of well-deserved fear.