Galaxia as a game may be dead, but it’s definitely not forgotten. Head on over to Galaxia ♠ Renaissance to read a lengthy (and getting lengthier) piece of fiction by former Galaxia player, Ashley Rayburn. It contains most of the well known players, the Consortium, the UGC as well of course yours truly, Q. If you don’t know what Galaxia is, it won’t mean much to you, but go read it anyway. It’s funny.
It’s very well written, has excellent cross browser support and best of all there are cool functions in Ruby on Rails for using it. One of the coolest features is drag and drop. I’ve already implemented it in Galaxia Ruby for adding ships to fleets :)
This is becoming a trend - another built-in feature of Rails that will seriously help Galaxia development.
You can use acts_as_tree in a model to make it, well, act as a tree.
What this means is you add an extra field to the database called parent_id that tracks object’s parents. Rails automatically manages this for you and adds extra methods for dealing with trees (things for accessing parent, ancestors, children etc.). Just like the post on type, this is something I was already doing with Galaxia but managing myself.
By default Rails applies special meaning to certain fields in a database table. One of these fields is “type”.
The type fields is used by Rails to create a “single table inheritance model”. This sounds fairly complicated and is best explained with an example:
Imagine a forum system. A forum will have threads and replies. Threads and replies are different and have different functionality, but certainly share a lot of characteristics. So you might create a class message with two sub classes: replies and threads. In Rails you can store all these in one messages table with a type field set to either reply" or thread. When you load a message it will actually create either a reply or thread object (in stead of a message object). When you create a new object it stores it in the messages table with the correct type.
This is ideal for Galaxia. In fact it’s the model I used all along - I just had to write the functionality myself.
Okay, Galaxia on Rails would my be a more apt name for a version of Galaxia in Ruby on Rails. But Galaxia Ruby sounds better to non-programmers.
This follows the tradition I’ve been recently following of learning new languages by writing bits of Galaxia in them. There is a real possibility I might get a version out this time :P
This version may even have AJAXy goodness and things. But don’t hold your breath…
I’m contemplating writing a mini-tutorial about OOP in PHP. I know there are many out there already but I have a friend in particular I’m trying to get to get to grips with this so he can help with parts of Galaxia Reborn (some parts are superbly modular; I may put the specs for such online and maybe have an online editing option of some sort for anyone who wants to help).
Either way writing a tutorial would probably be a good exercise as well as a good source of useful content .
“to get to get to” has to be a quote of the year or something.
The current version of Galaxia Reborn is now available to play with. You can’t actually do that much but some things are still fun to play with.
Signup works but doesn’t actually give you anything you can use so just login as “Q” with password “q”.
You can move ships around and build more at the colony (you have to find the colony first though :P) although you can’t send them into space just yet. Also, the entire interface has been translated into Finnish (well almost. Two little bits were added afterwards but they’ll get done soon enough). Thanks for that go to my girlfriend Julia. If anyone is interested in translating the interface into a different language let me know . You’ll get a permanent link on the info panel at the bottom for people using your language as well as a mention in any credits.
Not that it really makes much difference yet, I’m now running MySQL 4!
The upgrade was easier than I expected with the only problem not strictly being an upgrade problem (I had to manually kill MySQL and restart it to get it to recreate my socket file). This is all preparation for installing PHP5 so everyone can actually see Galaxia Reborn.
Well I have OpenID working at a basic level in Galaxia for signing up and logging in.
For signups though a user still needs to provide a username eventually to replace the url which will generally be too long.