Happy Birthday, Anodyne & SMS!
Five years ago today, Anodyne Productions boldly stepped out to release SMS 1.2 to the public. It’s hard to believe it’s been five years, but here we are. Huge congrats to Jon and Cordell on the milestone and here’s to five more fantastic years for Anodyne.
Feature Spotlight: The Nova User Guide
It may be odd to list the user guide as a feature to highlight, but from where I stand, it’s a major selling point of Nova.
The documentation efforts with SMS started out with the best of intentions. I created a simple wiki that was supposed to house tons of tutorials, skinning information, FAQs and all sorts of things. At first, a bunch of stuff was added, but slowly, it failed to be maintained and new material was added only as a stopgap measure when lots of people were asking the same questions. The single biggest failing of SMS was its lack of documentation or a user guide.
Fast forward year and a half later and I was sitting at my desk with a blank sheet of paper starting to jot down my initial ideas for what was then called SMS 3. Even though I hadn’t even released SMS 2.6 at that point, I knew that figuring out the Nova feature set early was critical. The first item that went on the list was genres. The second item was documentation. From the start, I considered a full user guide as one of the top 5 most important things to be done for Nova. I’ve accomplished just that with Nova’s user guide.
It’s not just a comprehensive user guide, it’s nearly exhaustive. Almost every page in the system has been documented, even if it’s just to say what the page is for. For complex pages, the user guide goes into great detail about the various functions available on the page. Admin pages highlight what access levels are needed to manage the page. Related pages are shown at the bottom. If the page exists in the system, odds are it has a page guide associated with it. But it didn’t stop there.
Nova is an MVC (Model-View-Controller) system, so doing page guides only covered the VC of that. What about the M? After all, some developers may want to make custom page that use the already-built models in Nova. That’s why I spent weeks painstakingly going through the models to document every public method (private methods aren’t documented because they should be used directly). That means that if a developer wants to do something with a built-in model, they can look it up and see the parameters and what it returns. Did it stop there? Hell no.
Libraries that are used by Nova have been documented, including our own Auth library so that developers can tap in to the various libraries available from inside Nova. Nova uses a lot of icons, so it made sense to put together an image index of all the icons used in the system, the name of the icon (in case someone want to use seamless substitution to override that icon) and the pages the icon is used on. Nova’s database schema is huge … over 3 times larger than the SMS database schema, so it only made sense to put together a comprehensive guide to the database structure, including the columns, their types, defaults, name and description. There are install, upgrade and update guides, all very thorough. The tutorial scene is significant and cover a ton of details about the system from the get go:
- Configuring CodeIgniter
- Configuring Nova
- Nova Folder Structure
- Nova URLs
- How to read Nova’s version numbers
- Genres in Nova
- A Backup Guide
- An in-depth series about extending Nova
- An in-depth series about skinning Nova including a 5 part skinning how-to tutorial
- A series about models in Nova
- Advanced tutorial topics that include changing the application folder, removing the index file from the URL, translating Nova, creating a rank set and creating/modifying libraries and helpers
Nova’s user guide was a serious feature and something that wasn’t taken lightly. Documentation is easily the most difficult thing to do for a project like Nova, but if done right, can set the system apart. Make sure to check out the Nova user guide at http://docs.anodyne-productions.com.
Feature Spotlight: Image Galleries
Years ago, a member of my crew poked me in an instant message and asked when she would be able to use multiple images for her character. She had a whole slew of pictures and wanted to use a bunch of them, but SMS wouldn’t let her. I kept her suggestion in the back of my mind and a while later, added bio galleries to SMS. It was a fun little feature that easily allowed players to show all kinds of pictures of their characters. Fast-forward to about 18 months ago and another member of my crew poked me in an instant message and asked when she would be able to use multiple images for a mission. I can honestly say I hadn’t thought about that, but I jotted it down and a few weeks later, was building that functionality into Nova.
Image galleries is one of those little features that could easily go unnoticed for weeks or even months if someone didn’t say something about them. Nova keeps the SMS functionality of being able to assign multiple images to a character and display them as a small gallery. But, taking that concept a step further, Nova also lets admins easily use the same gallery concept for mission images and tour images. SMS allowed three tour images, but sometimes, you want more than that, so Nova gives you the ability to put as many images with a tour item as you want. Missions are the same way.
What’s even better is that these three items are all tied in to the image upload system, so adding a bunch of images to a tour item is really just as simple as clicking on the file name from inside the images tab when you’re editing the items.
Feature Spotlight: Sub Departments
How many times have you been putting together your manifest in SMS and been frustrated that you needed to create a new department for a group of characters that are technically part of another department? I think right away to things like Marines and fighter pilots. What if you want to group various squadrons of fighters under a single department? In SMS, you were out of luck, but in Nova, sub departments have arrived!
Sub departments are departments within departments. To highlight how useful sub departments are, let’s build a situation to use them. Let’s say you’re running an RPG with a fighters. It’s a big ship, so you have 100 fighters assigned to the vessel and those 100 are broke down into squadrons. In Nova, you don’t have to spend all kinds of time organizing the positions so all the various squadron positions are next to each other, you can simply create a new sub department. When you go to create a new department, there’s an option to select a parent department, or in other words, the department in which the sub department will be added. Once the sub department is created, you can assign positions to it or create new positions just for that sub department. (Unfortunately, if you have 10 fighter squadrons, you’d need to create 10 pilot positions, one for each sub department.) After that, just assign your characters to the right positions and you’re good to go.
When you check out the manifest, you’ll see any positions in the fighter department that aren’t part of a sub department, then like departments are displayed, you’ll see, indented slightly, the various sub departments associated with that department.
At this point, Nova doesn’t allow sub departments to have their own sub departments (a.k.a. nested sub departments). We may add this functionality in a future version of Nova as well as the ability to assign departments positions to multiple groups without re-creating the position.
Feature Spotlight: User Interface Improvements
Over the 3 and a half years SMS 2 was in the public domain, people got used to how they interacted with SMS, regardless of whether it was good or bad. With Nova, the goal was to keep the good and improve on the bad. The mantra during Nova development was “is there a better way?” In a lot ways, the way SMS did it was good, but there were a handful of places where I was able to significantly improve the user interface to make it easier to understand and simpler to use.
Position Updates
Easily one of the biggest UI updates is to the position management. SMS forced admins to change the number of open position slots with a number in a text field. It works, but there was a better way. Again leaning on jQuery’s UI library, open position slots are now handled through a simple slider with a range from zero to fifty. Want more slots open for a position? Just drag the slider until you have enough open positions and click Update.
Update All
For admins, one of the biggest gripes about SMS is when updating positions, departments and ranks that they have to take action on each item individually instead of updating all items on the page and updating them at once. Nova does away with that behavior. Update everything on the page, click the button once and everything is done.
New Form Layout
Forms in SMS were laid out with the label to the left and right-aligned. It certainly wasn’t a bad way to do it. Forms can be tricky to design from a user experience point of view. When you get a lot of form fields, using labels to the left can get messy and confusing for someone filling out the form. I could’ve left forms in Nova alone and been fine, but after an experiment with grouping a form’s field label above the field itself, I was sold that Nova’s forms needed to be updated. Now, most of the forms in Nova put the label above the field. Doing this makes moving through the forms easier than left-aligned labels.
The New Join Page
One of the biggest UI changes is probably the join form. SMS displayed everything all at once, but that can definitely be daunting to fill out. To make it a little less daunting, the new join form is broken down in to several tabs. The first tab is player information, the second tab is basic character information, the third tab is the rest of the character information and the fourth tab is other information, like the sample post question. In addition to breaking things into the tabs, Nova uses a Next Step button to move through the form easily. It’s definitely a new way of laying out the join form, but it makes the form less daunting.
