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

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!


  • 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


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.


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.

Wednesday, 29 August 2012

Web Hosting

Everything seems to be ticking along nicely on the HostGator server. Spent some time changing my stats database so that I can track downloads and referrals from other websites. The old host provided AWStats (summed up) files that I could use, whereas HostGator provides raw logs. These contain much more detail but I needed a new process to make sense of them.

The EasySpace account has now been killed off. In my opinion they are best avoided as a company due to the following experiences I've had:
  • Tech support is only core business hours and they are slow to respond, sometimes taking hours and thereby causing the issue to continue into the next day. HostGator are 24 hour and respond in minutes to chat requests.
  • When I changed to a cheaper package of theirs they were unhelpful and did nothing to avoid downtime. I encountered disruption even though ultimately I stayed on the same server and didn't benefit from newer version of software (e.g. PHP).
  • They publish prices for hosting on their website, but increase this by 15% + £2.50 year on year. The terms and conditions do not state this, saying instead "at our discretion". This effectively penalises existing customers and gives no incentive to stay with them as well as being underhand.
  • Cancellation of an annual package requires 12 months notice. I am still waiting to be stung for another year's payment for a service I won't be using. This will teach me to spend more time wading through their unintelligible Terms and Conditions.

Onward and upward. Hopefully HostGator will continue to impress me with their responsive technical support. They only take a couple of minutes to respond to chat requests and thus far have answered all of my questions and were very helpful when I moved everything across.

Tuesday, 21 August 2012

Website and Email Moved

The website has now been moved to HostGator. So far, so good. HostGator have been helpful when contacted and everything seems to be set up correctly.

The building work at the back of the house is progressing slowly due to the wet unpredictable summer we're having. We have some brickwork down today and hopefully the concrete floor will be in tomorrow.

I'll post some more next week about my experiences with EasySpace and HostGator.

Wednesday, 15 August 2012

Ads, Hosting and Building Work

Following the release of the KitBase (scale model database) update last week, I have been tied up with arranging ads (finally) and getting the emails out to customers, press and model clubs.

This week building work started on the house. We're having a good size conservatory put on the back to give more space for us and the small person who is taking over. This will free up our lounge to become a study/office for yours truly to spread out a bit.

The work is progressing nicely. I get on well with the builder, which is good. He does take a bit of care and is minimising disruption, even taking the time to put our gates back up at the end of each day. We had a bit of a faff with brick matching but hopefully we're all sorted now.

Aside from finishing off the advertising for KitBase, I'm moving my hosting in the next few weeks. The new company is likely to be HostGator as I've heard good things from some other Indie developers and they are a lot cheaper than my current EasySpace hosting. EasySpace inflate their prices by %15 + £2.50 every year which is not stated explicitly in the T&C's - just says 'at their discression'. This gives me no incentive to stay with them as you are penalised for loyalty.

My first experience with HostGator has been a bit poor though, in that I emailed them 2 days ago and still haven't had a response.

If the hosting change doesn't cause me too much work, I may be able to crack on with some of the enhancements to the game engine next week.

Thursday, 2 August 2012

Gamedev mode again soon

Hoping to be in gamedev mode again soon. My other product upgrade is code complete. I just have final testing to do.

Starfire - Ares Assault is still being downloaded and played. Around 10% of the downloads are Mac which is good to see. Makes the effort creating a Mac version worthwhile.

Still playing and enjoying Trine. Well worth a look if you want a nice hack and slash / puzzle platformer.

Thursday, 26 July 2012


Have been playing Trine for an hour or so every day as a bit of light relief from database coding. It's a great game with sickeningly beautiful scenery and animations (I am green with envy). Gameplay-wise it blends together physics gaming and platforming in a way that works. Switching between characters on the fly makes for some nice moments, such as rope swinging onto a platform as the thief then immediately transforming into the knight to smash up some skeletons.

It reminds me of a few games I've enjoyed in the past such as Ghosts 'n' Goblins, Imogen (and old BBC puzzler with a transforming character) and Spherical. The physics puzzles are reminiscent of Half Life 2, albeit in 2.5D.

This is very different to Frozen Byte's previous games (aliens-esque shooters: ShadowGrounds and ShadowGrounds survivor) but shares an attractive approach to lighting.

I hope to be working on the game again in the next couple of weeks. Coding is complete on the latest release of my database for scale modellers. Just testing to complete - bah.

Tuesday, 17 July 2012

Game development on hold...

The development of Starfire phase 2 is currently on hold. I need to finish off some work on my other product for scale modellers.

Should be able to work on the next phase of Starfire in the next few weeks. Performance still needs to be improved and I want to add some bonus content for folks who join the mailing list.

When the new version is released, I'll issue some press releases and try to drive more interest. Even though I have done little in the way of promotion, the game seems to have taken on a life of its own in non-English speaking countries. A lot of Brazilian gamers seem to be downloading it at the moment largely due to it being included on a Brazilian gaming site. More than a thousand people have tried it out so far overall.

I have been surrendering money to Steam again now that they are tempting me with their cheap games. My collection now contains Metro 2033, Trine 1 + 2 and Portal 2. So far, I have played Trine a bit and really like it. Kinda Ghosts 'n' Goblins meets Imogen (an old BBC Micro game).

Wednesday, 4 July 2012

Starfire - Ares Assault, Version 1.01 Released

I spent some time over the last week rebalancing the difficulty of the game, following feedback. Largely this has made the bosses move more slowly sideways, allowing easier escape and reducing enemy damage and speed on Easy and Space Slug settings.

Hopefully this will make the game more accessible and remove the frustration factor when fighting the first boss.

The latest version of the game can be downloaded from here:

(if it doesn't say v1.01 on the download link, you will need to refresh your browser)

You can read the full release notes in the 'Suisoft / Starfire - Ares Assault' Start menu folder (under Windows). The release notes are in the resources folder in the APP file on Mac.

The work for the next release consists of:

  • Screen resolution choice
  • Performance settings - nebula density and shrapnel density

  • I also need to spend some time on the website to make it more attractive and show off the game with videos and screenshots.

    Thursday, 28 June 2012

    Mac Version and Future Plans

    The Mac version of 'Starfire - Ares Assault' was released yesterday. So far, not many downloads but it has only been pushed out via a few forums. Anyone with a Mac - please let me know if it works OK and feel free to leave comments.

    From initial feedback it's clear that my strategy of always using the desktop resolution isn't working. Think I was being a bit overly optimistic there!

    Also, quite a few players have criticised the difficulty. This is a trap I've fallen into previously with Gravity Core.

    Based on this, the development tasks for the game are:
    • Difficulty level rebalancing
      • Settings from 'Normal' difficulty will be moved to 'Hard'
      • Slower enemies (on lower difficulties)
      • Less damage from enemy bullets (ditto)
      • Smaller groups of enemies (ditto)
    • Longer invulnerability when respawning
    • Warning message when destroyer is approaching
    • Screen resolution choice
    • Performance settings - nebula density and shrapnel density
    Hopefully these changes will make the game more accessible in gameplay terms and variety of machines it can be played on.

    Tuesday, 26 June 2012

    Starfire - Ares Assault has been released for a few days now.

    Players seem to like it generally and have complimented the visuals and music. I still seem to be falling into the trap of making games that are too hard.

    The consensus seems to be that the first boss in Starfire is too tough. Not very scientific as no-one has said it ISN'T too tough!

    If you're playing Starfire, please let me know whether you think the first boss is too tough... and please let me know if is ISN'T.

    Any other comments are also welcome.


    Thursday, 21 June 2012

    Game Released Live - Phew!

    The game is now released live:

    Only the Windows version is available at the moment. I still need to complete final testing on the Mac build and package it up for release.

    The website still needs a lot of work. It is rather cosmetically challenged at the moment.

    Comments are welcome. If you like the game please 'Like' it on Facebook or follow me on Twitter:
    I have a difficult decision to make soon - which game next?

    Tuesday, 19 June 2012

    Soooo Close

    Getting painfully close to release now. The installer for PC is built and the company/game logos have been added into the game. The game also has a final name, which is a bonus!

    The subtitle of the game (Ares Assault) is derived from the piece of music I have used as a basis for the game (Holst's Mars). For those of you not into ancient mythology, Ares is the Greek God of War, whereas Mars is the Roman God of War. The power of the music certainly gets your pulse pounding when you're playing the game. The swooping attack of the Dreadnought near the end of the game still gives me the willies!

    The task list is now down to 5, except that I'm about to add 3 minor issues that require fix before release :-(

    Just Mac installation package, documentation, website and more testing after that. Releasing this game has been much easier than Gravity Core as I already have everything in place and can 'borrow' installer scripts and the like.

    When this game is complete, I have some non-game work to do, then I have the difficult 'next game' decision to make. The next game will be more complex than 'Starfire: Ares Assault' and will be shareware like Gravity Core.

    Thursday, 14 June 2012

    Pox and the Finish Line

    This week's development time has been somewhat curtailed by our little boy having Chicken Pox. The small person seems to be pretty much better now. I managed to get in a few hours work thanks to family taking up some of the sprog watching duties.

    The majority of the work completed has been around balancing. The game was still pretty brutal on the easier difficulties. There's still some work to be done in this area.

    The issues/tasks log is now down to 8 items. Most of these are tweaks, balancing and website/documentation.

    Hope to have the beta version of the game released next week... hope this isn't developer optimism.

    Thursday, 7 June 2012

    Scoring, Lives and Game Over (Man)

    Most of the scoring, lives and game over code is done. I still have some animations to implement as well as bonus lives and score bonus for lives left at the end of the game.

    After this, the majority of the work is testing, balancing and getting the website, documentation, installer etc. done.

    No matter how many pieces of software I build, I always forget how much work is involved in crossing the finish line! Nearly there...

    Wednesday, 30 May 2012

    Beating Down Final Tasks

    Plugging away at the final tasks this week. The issue/task list is now down to 13 items. Unfortunately, sometimes new ones get added if I spot a bug or unexpected feature.

    The game now has a brightness slider and the collision detection performs ten times better now that I have implemented the heuristic algorithm I developed for Gravity Core. The collision system changes were considerably fiddlier than I anticipated but it's done now and there for the next game.

    Some of the remaining tasks include:
    • Scoring System
    • Lives and Game Over
    • Documentation and In-Game Instructions
    • Website
    • Installation Packages
    I just need to keep plugging away then I'll release the game as a beta. The last few steps over the finish line always seem to be tough.

    Tuesday, 22 May 2012

    Attack Waves Completed

    Finished working my way through the music to design the attack waves. I have a set of around 30 tasks / issues to work through before the game is fit for release. After that it's website work and spreading the word.

    Now the music analysis is done, I can listen to some music while I'm coding. It's really hard for me to keep motivation and momentum without music.

    My music of choice when 'in the zone' coding, is metal - Devildriver, Machine Head and Slayer are current favorites on my playlist.

    Do you have any musical preferences when coding or working? Comments welcome.

    Monday, 21 May 2012

    Free to Play Games

    Having bought an iPad a few weeks ago, I have been exploring the App Store for games. One of the games I stumbled across is 'Heroes vs Monsters'. This is another game in following the increasing trend of 'Free to Play' as a revenue model.

    The game is easy to get into and relaxing to play, however the system of buying in game gold with real money doesn't sit well with me. It is possible to accumulate gold by grinding but most encounters seem to yield a couple of hundred gold whereas decent magical items cost tens of thousands. There's an option on the gold purchase page to buy up to £70.00 (GBP) worth of gold. This seems ludicrous for a casual roleplaying game when the nearest competitor (Battleheart) can be bought for £2.00.

    Screenshot of HvM (I should win some kind of 'worst screenshot' award for this):

    Personally (as a player), I'm not a fan of the Free to Play model as it seems to offer watered down grinding gameplay to one set of players (those who play for free) and instant expensive cheats for those who want to throw money at it. The uncertainty of what I will need to spend to finish a game kills my enthusiasm for it.

    As a developer and purveyor of software myself,  I understand the need for revenue but the game designer in me rebels at the idea of different gameplay dependent on how much you spend.

    Comments and differing opinions welcome.

    Thursday, 17 May 2012

    Asteroid Field Gun Turrets and Dreadnought

    Another step closer to completion. The asteroid gun turrets are now finished.

    The final boss (Dreadnought) is mostly coded up. The boss smashes its way through the asteroids initially, before flipping. Thanks go to BareknuckleRoo on the SHMUPS forum for the Icebreaker idea.

    The Dreadnought initial attack pattern (spawning interceptors) is implemented:

    I'm pretty close to getting all of the attack waves and boss behaviours finished. The work doesn't stop there as I have a fair few other features to implement, such as scoring and engine tweaks/fixes, however it feels like I'm over the hump.

    I spent a lot of time recently analysing the music in GoldWave (sound editor) to find the appropriate spawn points for enemies. This is pretty tedious (and stops me from listening to music to reduce tedium) but I'm pretty pleased with the end result. It will be short but intense game. The music synchronisation really adds to the dramatic effect, particularly with large attack waves and bosses.

    Wednesday, 2 May 2012

    Asteroids Coded Up

    Asteroids are now coded up for the quiet section of the music. The rocks crash into each other and split into smaller chunks when shot up, as all good asteroids should. Getting the balance right for the damage and collision physics was fiddly but feels pretty good now.

    In Shoot'em'up circles, asteroid fields are generally frowned upon as boring. When I listen to the music (Holst's Mars) my imagination cunjures up an asteroid field for the slow middle of the track. Hopefully by having some nice physics and chunky explosions, the asteroid field will be an interesting (but short) change of pace in the game. I also plan to throw in some gun turrets to spice things up.

    I have uploaded a video:

    And... here are a couple of screenshots:

    Thursday, 19 April 2012

    Sprite Scaling and Collision Detection

    Spent some time tweaking sprite sizes in game. The destroyer (and bomber) units are now larger and more threatening. The knock on effect of this, is that I'll need to drop the pixel perfect collision detection. This is a piece of code I wrote probably 15-20 years ago. It has served me well but doesn't work with free rotation and scaling. It's hard to let go of code that took some time to figure out, but sometimes a mercy killing is required.

    You can see the difference here:

    Collision detection is now based on overlapping circles. This fits well with the ship shapes and the shields. The system may need to be more flexible for future games but serves well for now.

    The use of scaling also means that I can optimise texture memory.

    I spent a fair chunk of time this week planning an extension to our house. Now that the house is full of toys and a small boy running around, we definitely need more space!

    Wednesday, 11 April 2012

    News Letter Stuff

    More engine chunks written. The form to allow sign up for the news letter is now done and working on both Mac and PC. The SFML Http class was helpful in getting this done quickly, although some work was required to encode the request data going to the web server. Another step closer to having a releasable game.

    Also added functionality to allow a web browser to fire up on quitting. This allows some buttons to be placed on the menu to go to the website.

    Should be back on gameplay code soon...

    Thursday, 5 April 2012

    Compiler Shenanigans

    Next job has been storing the game fonts as bitmaps/character metrics rather than TTF. Another license restriction - I can't distribute the font files directly. Side benefit is the bitmap can be edited. Should be useful for texture or weathering effects on fonts in future games.

    Recompiled the game on my Mac for the first time in months. I have to admit some apprehension...

    253 errors to start with. Most of these were subtle compiler differences. Generally pretty easy to fix.

    The two compilers (Visual Studio and XCode) have very different personalities. XCode is like the Nazi interrogator in Indiana Jones (the guy with the little glasses and threatening coat hanger). You will cooperate or be severely punished. Visual Studio is like one of those hippy English teachers - easy going, loose with the rules and more rewarding of experimentation.

    Still have to create a utility to convert the TTF's to image/metrics, as I fudged this in the code to test it. Most likely will add some command line parameters to the game EXE to allow utility behaviours without firing up the game proper.

    EDIT: The conversion functionality is now built into the engine. Any games I develop using the codebase will have a command line mode to manage assets. A neat solution, if I do say so myself!

    Music-wise have been listening to a lot of Slayer this week. I bought the last two albums they did when Dave Lombardo came back. Really enjoyed them in all their Satanistic lunacy. Also explored some other tunes on Spotify - Halestorm (getting into rock with female vocals in my (38 year) old age) along with Seether and Shinedown.

    Tuesday, 3 April 2012

    Music Code and Infinitee

    Away in the Lake District for a few days the other week, hence the quietude of the blog. Very lucky with weather - sunshine all the way. We're back to cold and snow now in the UK... :-(

    Spent a bit of time this week rounding off my music code. Due to licensing restrictions, I can't redistribute the music in a standard file format (e.g. OGG Vorbis) therefore I'm converting the files into a custom format for distribution. I had to do the same thing for Gravity Core. It's all coded up now and was pretty easy. Another tick off in the task list and it's nice re-usable engine code to boot.

    As an aside, a fellow Indie outfit (Subsoap) have taken a novel approach to the bundle concept. Check out the infinity bundle:
    This is either genius or insanity (although these aren't mutually exclusive!)

    They've kindly included Gravity Core in a roundup of indie games at the bottom of the page.

    Monday, 19 March 2012

    Pretty Nebula and Spinny Things

    Finally coded up the nebula effect. Came together very easily. Just rendered some of the late frames of an explosion (with some colour and settings tweaked) and drawing 100 scaled up sprites, with varying sizes, velocities, size and transparency. You get 100 lovely layers of parallax prettiness.

    Also added a variant of enemy that comes down from the top then spins off at an angle sideways. Pesky critters are hard to shoot!

    A couple of new screens:

    Monday, 5 March 2012

    Necessary Evil

    Spent most of today working on 'necessary evil' functionality.

    The game (and engine) now has slider bars for sound and music volume. Not the most exciting functionality but now it's done and re-usable.

    The player (pilot) profile screens are now finalised, to support different players on the same machine. Essentially, each player can have their own keyboard config etc. Again, standard stuff.

    It's amazing how much tweaking some of this stuff takes, so that the user interface behaves as expected.

    Back to gameplay development next, I think!

    Tuesday, 28 February 2012

    Decent Quality YouTube Videos

    Recently bought a new video editing package - Sony Vegas Movie Studio Platinum 11.0.

    Previously I had been directly uploading FRAPS videos to YouTube (takes a looooong time) and also tinkering with Windows Live Movie Maker (resulted in horrible blurry videos).

    It took a bit of effort to find optimal settings to make clean, crisp videos therefore I thought I would share my experiences and hopefully save somebody a bit of pain.

    (I did have a few tips from other Indies - you know who you are, if you're reading - thanks!)

    In order to match the 720p format, I started the game in a window at 1280x720 resolution (60 frames per second).

    FRAPS is configured to 30 frames per second (otherwise the game runs a bit too juddery).

    In Sony Vegas I created and rendered using 720-30p format (1280x720, 30 frames per second, progressive scan).

    The critical part here is to specify exactly 30 frames per second (rather than the default 29.97 offered by Vegas). Using the 29.97 resulted in blur and ghosting. This needs to be done in the project (Project / Properties) and the render settings (Project / Render As - click 'Customize Template').

    I also brightened up the video, as the compression seems to darken it a bit. I applied a 0.05 brightness increase and 0.10 contrast.

    For bits per second I used 20,000,000 and the codec is Sony AVC/MVC (mp4).

    I imagine the same rules (30 fps etc) will apply with other video packages.

    Hope this helps someone out!

    Here's an example vid:

    (note at 720p full quality it might need bufferring up a bit beforehand, but it looks fine at default quality if it's left in a window, rather than full screen).
    Did various bits of tinkering yesterday - varying pitch of weapons fire (depending on shot size) and enhancing explosions for Bomber and Destroyer.

    The main chunk of work has been the secondary weapon (a traditional charge up blast weapon).  There's a twist in that the shots break up and scatter on impacting a smaller unit.

    I've uploaded a new video:

    The gameplay difficulty still needs tweaking. It is very tough on Hard difficulty (as shown in the video) although I can battle my way through without losing a ship most times.

    Need to finalise the name of the game shortly - can't keep calling it 'Vertical Shooter' forever...

    Wednesday, 22 February 2012

    Music and Coding

    Lots of refinements this week. Improved the sprite system to make it more flexible - easier to scale, colour and fade sprites. Added quite a few more graphical effects, such as sub-explosions on the destroyer. Screenshots to follow...

    A few other game devs (and other non-game devs) have been tweeting about music and its role as a motivator in coding. I thought I would throw in my thoughts...

    When I'm in full flow writing new code I tend to listen to pacy metal (DevilDriver, Machine Head, Shadows Fall, Disturbed, Blaze Bailey... to name a few) and it really syncs up with my mood. If I'm grappling with design decisions or difficult to track bugs I normally opt for silence. Once I have a solution the metal comes back on.

    To anyone reading... please comment or your own music preferences when 'in flow', coding or doing whatever you do.

    Monday, 13 February 2012

    Homing Missiles, Energy Pods and Massive Attacks

    Homing missiles are now implemented (these are the red enemy shots you can see on the second screenshot below). The bombers now drop energy pods (first screenshot), givng you a fighting chance against the hordes of enemies that follow. As the music intensifies, so do the enemies. It's not entirely balanced at the moment - Death is a frequent companion!

    I also added a few more sound effects and graphical effects, in particular enemy shots hitting the player shield now bounce of with a pretty effect and sound.

    (energy pod)


    Just for a bit of historical perspective, I grabbed a couple of screens from an old game I made (Windows 95 era) that bears a startling similarity to this one. Considerably more primitive and bland - I've definitely improved, as have my drawing / rendering tools!

    (old game - circa 2003)

    (old game - circa 2003)

    Next job - secondary weapon.

    Tuesday, 7 February 2012

    Attack Waves Progressing Nicely

    Attack waves are built almost 50% of the way through the music. The section after the destroyer was pretty intense to set up, as the music has two interplaying layers. I spent a lot of time in GoldWave playing snippets to help me visualise the required attacks.

    Here are a couple of screens, showing the new Bomber unit (will fire homing missiles when finished):

    I also implemented a method for skipping to a point in the music, to aid testing. This had the unfortunate side effect of spawning all of the prior enemies in one huge wave. Unintended but entertaining!

    Here's a video of the bug:

    Based on the intensity of fighting later on, I'm going to add 'energy' pods dropped by the bombers. These will prevent energy from running out due to continuous firing (firing and being shot reduces the energy bar).

    I still need to introduce an energy bomb secondary weapon. Holding down the button for a second or two charges it up and uses around 30% of the energy bar.

    Lots still to do before I have a finished game, but it's getting there!

    Thursday, 26 January 2012

    More Tweaking

    Spent some time tweaking animations and lighting as some of the ships looked a little flat. The bomber movement is now working, just need to add in homing missiles.

    Next job is finishing off the attack waves up to the slow part of the music. At this point, the game will switch to an asteroid field, probably with homing mines and the occasional ship. I need to listen to the music a few more times to get a feel for the attacks required.

    Although I'm only about a third of the way through the music, I do have most of the units complete. The major chunk is developing the final boss...

    Tuesday, 17 January 2012

    Refinements and Bomber

    I spent most of yesterday refining the damage system and Destroyer. I also added a new enemy: Bomber. The Bomber will have homing missiles and shields and appears after the Destroyer.

    The model still needs some polish, so I'll hold off any images or videos until it's rounded off.

    I'm starting to really enjoy playing the game, even in its unfinished state. This is both a blessing (because it motivates me) and a curse (because I waste too much time playing instead of coding). Hopefully this is a good sign for the playability. My wife also enjoys playing, which is a step forward from Gravity Core!

    Monday, 9 January 2012

    Damage System, Shields and Destroyer Attack Pattern

    Back to some game development this week. Had a good break over Christmas and recharged my batteries somewhat. Actually played some games for a bit, rather than coding!

    The player energy (hit points) system is now in place. There will be a 'hardcore' mode for purists, allowing the energy bar to be switched off. In the standard mode, the player will be able to take 3-4 shots and firing continuously will also deplete the shields, hopefully encouraging more measured firing.

    Enemies also have hit points allowing for tough bosses. The first boss now swoops down and attacks when the music hits certain key points. It's quite evil.

    I'll try to get a point where another video can be uploaded next week.