Friday, 30 November 2012

Rounding Off

Along side my DIY activities, I have been working my way through a list of fixes and enhancements to Starfire. Most of the changes are engine-related and will be useful for the next game.

To aid with cross-platform development, I am investing in a NAS (network-attached storage) box. This is fundamentally two hard drives attached to a low powered box running a Linux based O/S (called DSM). This will allow me to centralise my development files (source code, images, sounds, documents etc) so that development from Mac/PC and ultimately Linux is easier.

As I work more on iOS code, I will spend more time using the Mac. I have found that accessing Windows 7 shares from the Mac is troublesome and there are various discussions/blog entries about this but no real solution.

Additionally, having a Linux based NAS gives the following other benefits:

  • Website development server environment (PHP / mySQL)
  • RAID for important files
  • Access to documents and files from mobile devices (if PC is switched off)
I could do some of these things on my main PC or a secondary PC but having them central is a boon.

I'm sure some other benefits will be discovered as I familiarise myself with the box. I would probably have the box in my sweaty paws by now if not for my bank's anti-fraud measures blocking my order. Should be sorted now...

Another avenue I'm exploring is an alternative version control solution. Currently I use SourceSafe which is:

a) awful
b) Windows only
c) awful

I've read about various alternatives including Subversion, GIT and Mercurial. I am swaying towards Mercurial at the moment as it seems to be the most cross-platform (being mostly Python) and supposedly has a relatively easy learning curve. GIT seems to have poor Windows support and Subversion seems like overkill for a single developer scenario.

Next steps - finish next Starfire version for PC/Mac and get it released, then polish up the website.


James McNeill said...

Any of the version controls you mention are fine; certainly miles better than SourceSafe. I've had experience with Subversion and Git, but not Mercurial.

At home for a long time I used Perforce, since that's what I've used at work for the last decade or so. Perforce looks like it's free for up to 20 users? Just checked the website. It used to be free for two users. Anyway, Perforce is the de facto games industry standard; it's what Google uses; and it's essentially what Microsoft uses internally. I'm not saying it's perfect but it is nothing if not battle-tested under extreme conditions.

Lately I've been learning Git since it's what the cool kids are using and I wanted to make some contributions to a Github project. I was fortunate to have a friend who is knowledgeable in Git help me get going. I haven't found it that bad under Windows. It's certainly clunkier than Perforce in terms of the number of steps it takes me to do a commit, but it's doable. The branching workflow is really nice, too. Perforce has added something called shelves that approximates it to a degree.

I know nothing about Mac development but I'd expect Subversion, Mercurial, or Git to be readily available on that platform, so I'm not sure your cross-platform argument is necessarily valid.

Gary said...

Thanks for your comments James.

Are you using a GUI or command line for GIT? When I looked at the tools last week they seemed to be in beta.


James McNeill said...

I am using the command line for most of my Git commands, and the gitk GUI tool for reviewing the change history. I have it wired up to an external diff tool (Beyond Compare) that I like. Gitk is pretty basic; I haven't yet figured out how to trigger a diff of a file with the keyboard yet, for instance.