Nova NextGen: Ranks Redux 25 Jan 2015

The chorus of mumbled cursings toward the rank system in Nova haven't gone unnoticed. For years, I've looked to address the problem, but every idea was either A) too tough to implement, B) even more complicated than the current system, or C) not flexible enough for the various situations it needed to be able to handle.

Truth be told, I'd given up on fixing the rank system. In fact, the inspiration for the new rank system came from outside Anodyne when Kuro-chan (of Kuro-RPG fame) approached me with a brilliant idea that set everything in motion.

Since the initial release of SMS in 2005, ranks have been handled the same way: a single record in a single database table that references a single image. It's simple, straightforward, and works (sort of). As genres were introduced, the concept had to expand a little to be able to handle the extra weight of some of the genres, but generally speaking, it stayed the same. Unfortunately, there have been a host of problems with ranks on both the user experience side as well as the technical side.

On the user side of things, confusion reigns when it came to adding new ranks. (I'll admit, to this day, I cringe whenever I see a forum post pop up about adding new ranks… it's that bad.) There's the ever ambiguous class option (for editing and creating), the trick of setting the proper name and order to get a preview image on rank management, and the poor user experience design when it came to actually editing the ranks themselves. All of these problems have added up to create a headache for admins, so much that some have told me they just don't try to mess around with ranks because it's too confusing. I can't say I blame them!

From a technical perspective, the biggest issue is actually file size. For the DS9 genre, each rank set weighs in at a hefty 363 images. Shipping with two full rank sets, means the DS9 genre contains over 700 rank images, which in turn drives the size of the download up. In addition, using so many images means it isn't plausible to try and cache the images since there are so many of them and they're constantly changing depending on the rank set being displayed.

So clearly, lots of problems. Something definitely needed to be done, but it wasn't until Kuro-chan approached me over a year ago with the idea of using multiple images for each rank instead of just one. Once that idea was circling in my head, it only took a little while for everything to come together. So how exactly does this new voodoo work? Read on!

Ranks in Nova NextGen will be made up of two images: a base image (the collar) and a rank image (the pips). Using CSS styles, Nova will be able to lay down the base and then overlay the pips on top of the the base. Technically speaking, this will make caching images in the browser a helluva lot more meaningful since the same image is used for a wide range of ranks instead of just one.

From the user perspective, this will significantly increase the flexibility of ranks. Previously, Nova only provided the rank colors I felt were necessary. With the new system of ranks, I'll be able to provide significantly more colors and use only what's needed. How many more exactly? Nova NextGen's ST24 genre (Star Trek 24th Century) will ship with 17 rank colors (17 cadet colors and the same 17 colors for standard duty uniforms as well).

Then there are the pips themselves. Previously, they were tied to a single image, but with the new rank system they'll be separate. That means NextGen won't just ship with the standard pips, but with a much wider range of pips for games that want to use other styles.

But I'm not stopping there! I'll be taking the opportunity to overhaul ranks in Nova NextGen and make everything easier. While it may seem different at first, you'll see that the added flexibility will make managing ranks so much easier.

Rank Groups

Rank groups will replace the confusing class option. (All the class really was was a way to organize ranks together, but when you put them into a dropdown menu, there wasn't a good way to actually indicate there was a difference,hence Nova's showing a preview of the rank image.) Rank groups will allow you to organize ranks in a meaningful way that make it clear exactly what group "owns" the rank.

As an example, for the ST24 genre, NextGen will come with two groups for admiralty ranks (naval and marine), six groups for naval ranks (command, operations, sciences, aerospace operations, intelligence and diplomatic corps), and one group for marine ranks. When you see a rank dropdown in NextGen, the ranks will be displayed within those groups so it's clear what you're selecting without the carousel of picking a rank and waiting for the preview to pop up.

Managing rank groups will be dead simple (including drag-and-drop reordering) and even provide some killer duplicate functionality. Not sure why you'd want to duplicate a rank group? Take the example of wanting to create a new set of ranks for your Marine Black Ops department. Instead of using the traditional green Marine ranks, you want the Marine pips on a black collar. With the old way, you'd have to find those images and upload all them to each of the rank sets then create each rank separately. In Nova NextGen, simply click the duplicate button and you'll be prompted to provide a name (in this case Marine Black Ops) and a new base image. Hit Submit and NextGen will duplicate any ranks in the group and change the base collar. In a couple clicks, you will have managed to create an entirely new group of ranks that's available to use immediately.

Rank Info

There's certain rank information that almost never changes, and if it does change, it changes for a lot of ranks, not just one. With that in mind, I'll be moving the basic information about ranks into info records. An info record will contain the rank's name (Captain), short name (CAPT), and order in relation to other ranks. (There'll be a group option as well, but that's done more for presentation reasons.) That means that if you want to change Captain to Fleet Captain, you change it once and anything that uses that info record changes instead of having to change multiple versions of the same rank just with a different image.

I'll be taking full advantage of this in Nova NextGen to provide naval rank rates, marine rank rates, and a new aerospace operations rank rates (Air Force enlisted ranks). Want to do something beyond that? Just add a new rank info record and it's available to use on your rank records immediately.


The rank record is what pulls it all together.

Each rank has a group, an info item, and information about the images to use. Editing a rank is as simple as selecting the group from a dropdown, the info item from a dropdown, and the base and pip images you want to use (pulled directly from the server so you don't have to manage those images in another place). On top of that, there will be a live preview so when you select a new base or pip image, the preview changes to show you what your rank will look like before you actually create it.

Of course, you'll still be able to handle old rank sets as well, much in the same way that they're handled today, but I think you'll find by the time NextGen is available that most of the rank sets will be converted to the new format.

Managing ranks in Nova NextGen will be dead simple and provide ultimate flexibility and ease of use. Bet you never thought you'd hear that about rank management, did you?