Wednesday, 9 January 2013

Windows 8 Initial Impressions

Shortly before Christmas, I installed Windows 8 on the compact Sony PC in our lounge (known as 'the biscuit tin').


My primary motivation for this was to give me a test machine for games and KitBase (scale model database). A few people have started asking about Windows 8. As it turns out, both work OK (except for a driver-caused bug in Starfire full screen).

I used Microsoft's Upgrade Assistant and downloaded the ISO DVD image (Windows 8 Pro 32-bit). This was all pretty painless and only cost 25 quid, which isn't bad value.

I completely wiped the machine and re-installed. Installation was pretty painless and the O/S was up and running in no time.

The fun really started when I tried to get hold of some video drivers. I already had a record of the video card type and headed over to nvidia's website to get the appropriate installer. This is where the fun started. The drivers would not recognise the video adapter. After much headbutting the keyboard and reading forums it turns out Sony have twiddled the hardware ID's so that you can only use their tweaked drivers.

Off to the Sony website then. Windows 8 drivers - nada. The only drivers are for Windows Vista. As some folks on forums recommended installing these I did so. They installed OK but they are clearly not 100% compatible as Steam crashes in 'Big Picture Mode' (their gamepad friendly interface) and Starfire has a weird scaling problem when run full screen.

Thanks Sony! Very helpful using standard video hardware then crippling it by preventing the installation of the latest standard drivers. Apparently, the same problem occurs with various Sony laptops. I won't be going to Sony for a PC again.

Anyhoo... Sony idiocy aside, here's my summary of the Windows 8 experience. Bear in mind this is from the perspective of use with a TV for internet browsing, gamepad gaming and NetFlix. I suspect I will have more confusion and niggles using it as a main development O/S.

Pros
  • *Extremely fast boot up. Much faster than Vista.
  • *Extremely fast log in.
  • Start screen with tiles works well on a TV
Cons
  • Desktop and Metro switching can be confusing, e.g. accessing a PDF through desktop Internet Explorer causes a switch to full screen Metro
  • Having two Internet Explorers is a bit odd (one is traditional desktop, the other Metro)
  • Pop-up side bars are not very intuitive initially. Watching Microsoft's short introductory videos is recommended. This seems a bit poor design-wise as you don't need to watch videos to figure out Apple devices running iOS. I can't imagine the swipe on touch screens is any more intuitive.
  • Driver horrors (largely due to Sony's dumb tinkering)

* I appreciate boot time and login time are dependent on installed applications and config. Both the Vista and Windows 8 configurations had minimal software. Just drivers and Open Office.

So, in summary, I quite like it. The chunky new Start screen works well on a TV and the lack of Start menu isn't really a problem if you pin applications to the desktop taskbar and get used to the pop-up sidebars.

I have already bought a license for my current development box. I will be upgrading it and will most likely connect it to the older TV we're keeping in the study/office.

Edit: This post doesn't express any of my thoughts on the whole App Store / Lock Down mentality that Microsoft are drifting towards (in line with Apple and their money making machine). As with other developers, I do worry about the openness of Windows being eroded and Microsoft's ability to censor and control software that is developed for their platform. That's for another day...

Monday, 31 December 2012

Synology Part II

The new Synology NAS box has been ticking over for the last few weeks.

On the whole, I'm pretty pleased with it. Having docouments and files centralised is a boon, even with a single user business.

A few of the good things I've found:
  • Playback of music through the iTunes interface is pretty easy. The Audio Station application is OK but I prefer iTunes on the whole.
  • Having PHP and mySQL on the network is very handy for testing websites and PHP functionality.
  • The Wiki (Media Wiki - the basis for Wikipedia) is great for tasks lists and notes, as it can be accessed easily from any machine with a web browser. Having it centralised means I can bob on and write down an idea from the iPad/iPod or lounge PC.
  • Setting up automated mySQL backups is a bit of a pain. I will need to get my hands dirty with config files and the Linux command prompt to get this working.
I few problems I've encountered:
  • Copying photos onto the DiskStation directly is a bad idea. The thumbnail process is hideously slow. Make sure you install and use the Synology Assistant on your PC. Your PC is much faster at converting images.
  • Moving folders around from Windows Explorer can cause them to lose permissions and become inaccessible. The workaround for this is to move them from the DiskStation web interface. I haven't yet tracked down the pattern of behaviour for this or found a solution online.

Thursday, 6 December 2012

NAS Box Setup

My Synology DS213 arrived yesterday afternoon (yay!)

Installation Notes:
(If you are easily bored or don't want to read the gory details, skip to Summary at the bottom of the page and see the spoiler of how it went).



It's now unboxed and I am setting about fitting the drives. I opted for two 2TB Western Digital Red drives (WD20EFRX) as these are aimed at NAS boxes and about half the price of 'Enterprise' (server) drives. I checked compatibility on the Synology website before ordering.

The front cover comes off easily enough allowing the drive caddies to be removed. Fitting the drives is very straightforward using the screws provided. The screw holes in the caddies have rubber washers built in, presumably to reduce vibration.



The caddies slide back into the box with a satisfying 'clunk'. So far so good.

Following the very short quick start leaflet I switch on the box and navigate to http://find.synology.com/

The first step is to download the Operating System (DiskStation Manager). You can choose to do this automatically from the web or use a PAT file downloaded from the website. I'm not using the files from the CD-ROM as they may be out of date.

In a fit of paranoia I have downloaded the latest installation file and burned it straight onto a DVD. I'll use the download file to install.

After setting up an Admin password, the next step is to configure the storage. The default is to 'Create a Synology Hybrid RAID (SHR) volume'. After a bit of Googling and a play with the RAID Calculator on Synology's website I concluded that this is the simplest and best option for my needs as my main concern is redundancy. If a drive fails, I don't want to lose my data.

After proceeding from the final installation step, the box only takes about 5 minutes to configure and reach the login screen. After login, a status screen is displayed indicating that the drive volume is still being created. The web interface is very slick.


After another five minutes the box is ready to use, although the verification process is still going on in the background.

While doing this, something I've noticed (or not noticed) is the sound made by the box. It is very quiet. Just an occasionally whispered chunter. My main PC (which has quiet components) covers the noise almost completely. +1 for WD Red drives and the fans in the DS213.

As an initial test I have dumped some files onto the drive into a new share. I also set up some users and permissions. This was very easy using the Control Panel.

Accessing the shares worked fine from Windows and Mac. A good start!

Summary:

  • Very easy to install drives and software.
  • Administration is very slick through the web interface.
  • Very quiet operation due to Western Digital Red discs and quiet onboard fan.

So far so good. When I have tried out the music and photo functions I'll post again.

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.

Thursday, 11 October 2012

Strategy

Wow, I didn't realise that I hadn't blogged for a whole month. Things around our house have been crazy with our conservatory being fitted and tiled then bathroom replacement. Currently the kitchen is being ripped out and tiled, ready for new units. It's pretty hard to concentrate on development or anything else when your house is being destroyed and rebuilt around your home office.

I have managed some game development work, along with marketing of my other product KitBase.

The main focus of my gamedev activities has been performance options in Starfire. I had set out to fix the screen resolution the same as desktop but this leaves little video memory and results in poor performance on machines without gaming-oriented graphics cards. So... I've had to relent and add a choice of resolutions.

The other niggle has been Vertical Sync. Some video card drivers kindly ignore the request to switch this on, leading to horrible jerky/shimmering video (known as tearing). To remedy this there's now a Vertical Retrace option in the Video menu. The options are On (use OpenGL if video card allows), Off (yuck but helps performance) or Force (uses Direct-X to wait for the monitor sync for those OpenGL drivers that ignore the request.


I've also added some sliders for the nebula effect, starfield and particles. Again, this allows smoother play on slower machines. The nebula consists of 100 layers of sprites all moving at different speeds. Looks pretty but can tax some graphics cards.



All of this should be released in the next few weeks.


Another thing I have been pondering is my next game. Like most developers I have a ton of ideas and a limited amount of development time.

The game I would really love to make is a First Person Shooter. If I have any hope of achieving this, I'll need to buy in some models/media and use an engine. I will be investigating Unity for this purpose initially and creating some prototypes.

Now that our little boy (nearly 2) is taking an interest in bashing keyboards and twiddling thumbsticks I would like to make a few little games for him. My SFML based engine should be good for the PC versions but I would also like to add code to support iOS. Unity would be an option here also, but I would like to keep a C++ codebase going for total flexibility and so that every game product isn't tied to commercial third party software (SFML is OpenSource with an nonrestrictive license). If I can make these polished but casual they might also provide welcome further income.

Hopefully the next blog post will arrive in less than 30 days!

Wednesday, 12 September 2012

Steam Greenlight

Finished all of the mailing list functionality today. I just need to finish sending through batches of confirmation requests for exisitng mailing list members.


Steam Greenlight

A lot of game developers, games and pundits have been discussing Steam Greenlight recently. A lot of negativity has been aimed at Valve over this and personally I think it's pretty unfair.


"Greenlight isn't Democratic and $100 is Evil?"

First of all, I'm not sure it's supposed to be democratic. It's there to help Valve make business decisions (which games to publish and make money) and allow game developers to prove to valve their game has support. This seems better than the old process:

if ((rand() % 10000) && isMoonWaxing) gameGoesOnSteam = true;

(sorry, fell into code there)

The $100 donation to charity seems to have raised a few hackles. Personally, I think this is a good thing as it dissuades posting of projects that aren't intended to be commercial. If you're pitching a game on Greenlight, you are expecting to make money from it, hopefully via Steam. Worst case scenario, a kid's charity gets some money and you get some exposure for a very small outlay.

If we're talking democracy as a metaphor, nobody gets to stand for political office without thousands of dollars of financial backing for their campaign. $100 is not much.

From an entreprenuerial standpoint, if you're intending to make money from any business venture you need to put some in. Even if you're cleaning cars you need to buy some sponges, a bucket and some cleaning products (probably $100).

Personally, I had considered putting Gravity Core on Greenlight just for a laugh. As anyone reading my ramblings for a while knows, Gravity Core wasn't a commercial success for me (it made peanuts). The $100 dissuades me, at least until I have another game to pitch.


Downside

The downside to Greenlight seems to be that it opens up the way for griefers and haters to attack games just for fun which isn't great for the morale of small (or one man) teams. Unfortunately being attacked by anonymous folks on the Internet seems to be an occupational hazard for game developers and the only solution seems to be to develop a thick skin.


Aim aiming to get a game onto Greenlight in the future and do think I have a better shot with that as opposed to emailing Steam and hoping the game gets accepted.

There's a misconception out there that you can just put a game on Steam. Players often say to indies 'Have you ever thought of putting your game on Steam?'. At least now it should be clear that it's not like Apple in that you submit and 'just' have to pass a quality test.

Overall I think Greenlight is a good thing and will be interested to see how it evolves over the coming years and months.

Wednesday, 5 September 2012

Confirming Mailing List Joins

Following my move to HostGator for hosting, I have some work to do on my mailing list software. HostGator have a policy around mailing lists that requires double opt-in. Essentially, this means that users will receive a confirmation email after joining the mailing list. A link must be clicked before any emails will be sent to them.

This is creating some work for me but the end result will be a mailing list process that is less open to abuse (e.g. submitting someone else's email address).

The new server code is written and working, I just need to test it thoroughly. Next I need to figure out what to do about the existing mailing list, collected before the double opt-in was in effect.

On a side note, I'll be installing Linux (Ubuntu) soon. My intention ultimately, is to use my current machine as a Linux box and buy a new machine for Windows. There are several good reasons for this:

1) I can test my web server code offline

2) I can build and test my games against Linux

3) Steam are making moves towards Linux / Ubuntu

4) It doesn't hurt to learn something new, every now and again

Hopefully I'll be getting some game code underway shortly. The freeby shooter needs rounding off (bug fixes and bonus content) then I can start work on a new game using the same engine code.