More MODs On The Way!

We’ve got a handful of new MODs that are going to be on their way for SMS 2 in the coming weeks.  High on that list is a Cardassian MOD as well as Klingon, Bajoran, TOS, and even movie era.  We’re working on some of the Stargate stuff for Nova and once that’s ready to go, we’ll put together a MOD.

We’re also going to be release combadge resource packs as well.  Currently, we’re putting together TOS style, Movie era style, TNG Future, Bajoran, Cardassian, Klingon, and a generic set that can be used for any genre.  Keep an eye on the forums for more information about these releases in the coming weeks!

SMS 2.6.4 Out Tonight

We’ll be releasing version 2.6.4 later tonight.  It is a maintenance release that addresses the following issues:

  • Fixed spacing in rank drop down menus to avoid text and graphic overlap
  • Fixed bug where players could nominate another player for an award, even if no awards exist
  • Fixed a potential bug where a player could manually get to the NPC tab and submit a nomination even if the tab was disabled
  • Removed approve link in Approve Award Nomination list if there is no award associated with that nomination (and award with an id of 0)
  • Fixed bug where web location variable wouldn’t be written to the proper DIV in the event the file write failed
  • Fixed issue where SMS violated PHP mod_security rule 340077 on some servers
  • Fixed bug where excess data was being inserted into the access fields
  • Fixed bug where adding an access level from the Other section for the entire crew would fail
  • Fixed bug where leading comma would be added to a user’s access levels if they didn’t have anything in that field to start with

A soft release of the update is available on the Anodyne forums for people to try out.  If you are running 2.6.4 and have seen a bug that is not addressed on this list, please report it on the forums.

Why CodeIgniter?

The questions haven’t started streaming in yet, but no dout they’ll start soon enough (my guess would be about the time Anodyne releases the Nova API).  The questions are likely to be pretty simple: why did you choose CodeIgniter and/or why didn’t you choose framework X?

Why did you choose CodeIgniter?

In order to answer that question, I’ve gotta answer the question of why we’re using a framework at all.  We had a very specific set of goals and features in mind for Nova, and to have to build a core framework for those things was going to be both very difficult and very time consuming.  What CI allows is for us to hit the ground running because it’s such an easy thing to start using.  That’s point #1: the learning curve for CodeIgniter is incredibly short.  Within a few hours of combing through the CI documentation, I was coding stuff with their libraries and helpers.  It’s really very easy to get started with CI.  Which brings up point #2: CI’s community and documentation is second to none.  All you need to do is look through CI’s documentation and you know what I mean.  Everything is documented.  In fact, it’s my hope to mimic that kind of documentation for Nova from the start.

I’ve already blogged about some of the things moving to CI gives us (extensibility, internationalization, lots of helpers, ease of use, etc.), so I don’t want to focus on features.  It’s just a very fast, very powerful framework that gives us what we need now, plus allows us room to grow.  Number 3: fast, easy, flexible, and powerful.  It really can’t be beat in that department.  Last point now: flexibility for our users.  Some of the other frameworks out there tell developers to code a certain way or that they need to be running certain versions of PHP or other libraries on their servers.  CI is very straightforward: no additional libraries and PHP version 4.3.2 or higher.  Since a lot of our users are on free servers, the PHP version was very important.

So why didn’t you use framework X instead?

I’ll just give the quick rundown on the other frameworks that I considered and why I ultimately decided against them.

  • CakePHP – was a strong contender for a while, but the documentation just isn’t up to snuff and from what I read, the learning curve was a bit steeper than CI.
  • Zend – this is, after all, the official PHP framework.  True enough, but it’s layout is all over the place and there are tons of files associated with the framework.  It’ll be hard enough for people to get used to a new framework, but having to get used to one this large just wasn’t an option.
  • symfony – I considered this for about half a second then stopped.  This requires PHP 5 (a tough one for some of the free hosts out there) and has a very strict coding standard.  On top of that, it’s nowhere as easy to extend as CI.  Add to that its dependence on PEAR for development purposes and it just became clear it wasn’t a viable alternative.
  • Kohana – a close second since it’s a fork of CI, but ultimately the PHP 5 only stuff was its downfall.

So there you go, a quick rundown on the decision making process behind our framework.  For anyone interested in developing for Nova when it’s released, be sure to grab a copy of CI from their site and start playing around!

Where We’re At

I’m not quite ready to start doing weekly updates, but I did want to give people an idea of where Nova stands right now.  I realize there probably aren’t too many inquisitive minds right now, but months down the road, it’ll be good for people to have some kind of idea how we’re doing.  So, on to the update!

The first part of good news is that Nova will successfully install itself on the server.  What’s even more, Nova has an uninstall feature too which has already come in very handy during development.  I tend to think that it won’t be used very often in a production environment, but at least it’s there in the event someone need to clear all their data out.  Nova will also detect whether it’s installed or not; if it isn’t, it’ll redirect to the install page.  Pretty straightforward.  As of the writing of this post, the install creates the tables, inserts the test data, then inserts the genre data.  Part of M2 is getting the player account and primary character in to the install process as well.  After that, there will be a step with a few configuration options (ship name, etc.).

Another piece that’s received a good chunk of attention is the update section.  During development for SMS, I always tended to make sure things worked with the fresh install, but updating from a previous version was always an afterthought.  With Nova, I’m trying to change that mentality, so I’ve already begun working on the SMS 2 to Nova update script.  The first piece to get committed was an automatic backup feature that I’m really proud of.  If your server has a high enough memory limit, it will automatically back up your database and put it on your server before continuing.  This will also be used when updating from one version of Nova to another.  It’s possible the feature would be extended to the admin control panel as well, but I haven’t thought that far ahead yet.

After that, there are a handful of pages that are finished, namely:

  • Displaying news and being able to narrow it down by category (this will be enhanced in future releases to act more like the manifest with instant results)
  • Static and user-defined credits
  • Chain of Command
  • Viewing a character’s mission posts
  • Viewing a character’s personal logs
  • Viewing a character’s awards (by default, only 10 are shown in the player bio)
  • Viewing all the sim’s available awards
  • Award Detail (includes a list of who’s won that award, when, and the reason
  • RSS feeds for mission posts
  • RSS feeds for personal logs
  • RSS feeds for news items
  • Listing all mission posts (50 by default)
  • Listing all posts withing a given mission
  • Listing all personal logs
  • Sim section index page
  • Searching through posts, logs, or news items

On top of those, the following pages have been worked on and are moving toward completion:

  • View news item (includes adding comments to the database)
  • Contact page
  • Main welcome page
  • Character bio page
  • Departments and positions listing
  • Character manifest (working final details of the best way to indicate NPC/LOA/ELOA)

Of course, that means there are a lot of pages that haven’t even been started yet.

  • The join page
  • Player bio pages
  • Listing of missions
  • Viewing a mission post
  • Viewing a personal log
  • Sim stats
  • Sim tour
  • Deck listing
  • Specs
  • Docking requests
  • The entire “archive” feature (will be explained in more detail in another post)

The list may not look that big, but there are some pretty significant pages on that list.  In addition to those, I’m constantly tweaking the database schema, adding new test data, working on genre stuff, and writing little snippets of documentation.  There’s a lot of work to do, but it’s coming along very nicely these days!

Back to Top