Archive for the 'Tales from the grind-stone' Category

R.I.P. Bertie

Posted in Tales from the grind-stone on July 23rd, 2009 by MrCranky
R.I.P. Bertie
Sadly, after 3 long years with us, we must say goodbye to Bertie, our faithful and loyal company mascot. Your tank was never too smelly, your incessant sucking and dropping of the gravel never too annoying, and your occasional freaking out and bopping your head off the top of the tank was always a welcome sound to startle us from otherwise mundane work-based reverie.
Yes Bertie, you shall be sorely missed. It may seem as if we are replacing you, with a slightly differently coloured, and hopefully more hardy version, but you may rest assured that no fish will ever hold quite the same level of affection in our hearts. Apart from Tim’s heart of course, he never took to Bertie like the rest of us. In fact, if I wasn’t so sure he understood that his job was on the line if he were to kill Bertie while I was away, I might have suspected foul play.
But no, it was simply Bertie’s time. He has lived a long and full life, amongst those who cared for him, and has now gone to that great big fish bowl in the sky, with a slightly superior grade of coloured gravel, and somewhat less algae and fish crap in the water. Farewell dear friend.

Sadly, after 3 long years with us, we must say goodbye to Bertie, our faithful and loyal company mascot. Your tank was never too smelly, your incessant sucking and dropping of the gravel never too annoying, and your occasional freaking out and bopping your head off the top of the tank was always a welcome sound to startle us from otherwise mundane work-based reverie.

A picture from happier (i.e. less dead) times

A picture from happier (i.e. less dead) times

Yes Bertie, you shall be sorely missed. It may seem as if we are replacing you, with a slightly differently coloured, and hopefully more hardy version, but you may rest assured that no fish will ever hold quite the same level of affection in our hearts. Apart from Tim’s heart of course, he never took to Bertie like the rest of us. In fact, if I wasn’t so sure he understood that his job was on the line if he were to kill Bertie while I was away, I might have suspected foul play.

But no, it was simply Bertie’s time. He has lived a long and full life, amongst those who cared for him, and has now gone to that great big fish bowl in the sky, with a slightly superior grade of coloured gravel, and somewhat less algae and fish crap in the water. Farewell dear friend.

Off to Brighton

Posted in Conferences, Tales from the grind-stone on July 13th, 2009 by MrCranky

Just a quick note, mostly to push the sunshine post off the top because it’s cooled down a bit (and I’ve correspondingly gotten less grumpy). Off to Develop Brighton tomorrow, which should be good. I’m not too eager to take the days out of my MGS work, but I have to think about longer term business as well. It’s all too easy to get focused on a nice tangible problem that we can solve, and neglect the other important things. But there are games to be made, partners to develop with, and lots more interesting stuff besides.

Definitely looking forward to meeting up with my contemporaries who I have been sorely neglecting, and finding out about new opportunities, and just generally being nosey about other people’s business (and in certain cases, other business’s people).

The accursed day-star

Posted in Tales from the grind-stone on July 1st, 2009 by MrCranky

It burns me so

It might just be my Scottish breeding showing through, but when it’s hot like this, I just want to curl up into a ball and die. It doesn’t start that way; I just wince a little at the bright sunshine and shade my eyes. After that, I gripe a little when it feels like the sun is scorching down on me when I have to go to or from the office. And the sweaty back from hardly any exercise makes me grumpy. But after 6 solid days of unrelenting, stifling heat with no respite, I start cursing the sky and generally rambling on and being  this mad old bastard that is having trouble dealing with the world.

I think it’s the fact that I’ve done everything, up to and including lying in a bath of cold water, and it only gives me a temporary break from the heat. I do realise there are many places hotter than 30 degrees out there, that’s fine, I wouldn’t want to be there either. I like Edinburgh’s climate. It’s cold and it’s grey and it’s windy, but you know what? I never find myself sitting in a chair in a stifling room, knowing that every other room in the damn house is worse, thinking about how  nice it would be to just get a single bloody nights sleep. Against all my pre-conceptions about the way the world is supposed to work, it doesn’t get any cooler at night. I can’t even see the sun, why is it still so damned hot! Anyway, you get the picture. Heat = grumpy Chris.

I made a trip into London on Saturday (where it was equally hot) to meet up with some folks from The Chaos Engine, which was nice (if too hot). I made the joke with Professor Schminky that a meeting of industry people who know each other only through an anonymous internet forum was bound to be fraught with issues, but it turned out my suggestion that we all wear paper bags over our heads with our forum avatars printed on the front was unnecessary. Thank Jeebus for that, because it’s really hard to drink wine through a paper bag.

That’s about all the interestingness I’ve had the mental capacity for recently. Tim tells me that Edinburgh is suffering the same blistering heat that Reading is, but at least he’s in a basement office with a north facing window. Right now I daydream about being back in the office, just because I know how lovely and cold it can get. Mmmm, cold…

Productive weekends

Posted in Tales from the grind-stone on June 14th, 2009 by MrCranky

For too long now, I’ve been attacking my to-do list in a rather sporadic way. RememberTheMilk.com is a wonderfully flexible way of storing and categorising a task list, and given how mobile I am the web-access is great. The idea that on my own I would be able to remember all of the myriad of different things that I need to do on a regular basis to keep the business operating smoothly has long since been discarded as a pipe dream. Tax returns, bills, server maintenance, paperwork, and that’s not even counting the one off tasks which I can’t do right away but can’t afford to forget.

rtm.logo

My problem, as is pretty typical for a task tracking system, is that it needs to be a matter of habit to check my task list every day. Which I do. But the very act of having a task list is by definition a triage action for managing things I need to do, and so if I’m not tackling the tasks quickly enough then they start to accumulate. If my list of due tasks is clear, then it’s fine, because I then look ahead, see what’s coming and act on it in advance. But every task has it’s own priority level – 1 means ‘can’t afford to let it slip’, 2 is ‘must do, but the world won’t end if it is delayed a little’, and 3 is ‘needs done when you get a chance’. So when time is pressing, the priority 3 items get left, and so my overdue tasks list is no longer clean and empty, but now has an item lurking there, untouched.

Once that psychologically important barrier is breached, then it’s oh so very much easier to let the next item on the overdue list slip as well. After all, I know I’ve fallen behind, but it’s okay because they’re all low priority. Before too long, the overdue list has a dozen items, and I’m no longer tackling tasks in advance, I’m just picking off the important ones when they appear on the overdue list. Some of the items on there are 2 months overdue, but even though they’re low priority, I don’t want to just change their due date to the future. That would be hiding from the problem – they are two months past due, and I should really tackle them.

And so, since I’m down here in Reading this weekend, and I’ve already done most of a day on our Evolution work, I’ve taken some time and made a concerted effort to tackle every last item on the list, even the low priority ones. Including the last one – “write blog entry”.

Done.

So what’s an “Ananlyst” then?

Posted in Random Stuff, Tales from the grind-stone on May 26th, 2009 by MrCranky

You know, I wouldn’t ordinarily mock applicants to the Company, but sometimes I get someone who makes my teeth grind so badly that I can’t help it. Such as the email I received earlier this week, entitled “Application for the post of Web trends Technology Ananlyst”[sic]. Hmm. Yes. Right. Spelling and capitalisation issues aside, WebTrends? What possible reason could you think that we would have to use WebTrends?

To be fair, this girl's been hard done by, as this image is used everywhere despite being a blatant photoshop job. But to indicate idiocy in all its forms, you can't beat it.

I refer potential applicants again to this post, although it should be noted that the unspoken rider to that post is that morons need not apply.

Travelling Wilbury…

Posted in Tales from the grind-stone, Tools on May 17th, 2009 by MrCranky

Right, I’ve had enough of the sad kitten at the top of the blog now; you can only stand so much cuteness before the mind rebels. Time for a quick update on status, as I’ve been quite heavy with the waffling and opinionated posts recently.

This post is written courtesy of the wi-fi in a B&B in central Reading, where I’ve been installed for the last week. It’s not my favourite accommodation in the world, I’ll admit (far too many chavs hovering outside the window when the pubs kick out). Luckily, I’ve found a decent room to rent which I’ll be taking up from the end of next week, where I’ll be for the majority of the next few months. Why? Our new client of course – the behemoth that is Microsoft Games.

MGS Logo

This is indeed the tools gig I hinted about previously, but sadly that’s as far as I can go in terms of details; not because I’m working on anything super-secret, but because the contract is just generally confidential. Suffice to say it will allow me to indulge my passion for making process improvement tools and automated build systems, and deploy them on a scale that is far beyond our range as a tiny software shop.

Sadly though this requires me to be away from Edinburgh for much of the time, which I’m still getting used to. I’ve lived in Edinburgh for so long it’s hard to adjust to living elsewhere, it’s a city that spoils you for anywhere else. This will also leave Tim minding the office in Edinburgh on his own, but hopefully he won’t be rattling around the place too badly. I’ll still be working with him remotely on our work with Evolution, but he’ll have to keep Bertie alive on his own…

Bertie

On the bright side, since I’m kept away from all of my usual distractions in the evening, I’m hoping to use the time productively to get some serious effort into our internal prototypes. That being said, in the 3 weeks away so far, I’ve managed no more than a few hours, but I put that down to the fabulous selection of pubs in and around the Rare studio in Warwickshire where I spent the first fortnight – it’s really hard to feel creative and productive when you’ve just had an exceptionally tasty portion of steak and chips for dinner! I’ve settled for keeping the usual pile of paperwork under control. Speaking of which – I must sort out last quarter’s VAT return before I miss the deadline…

Bad Digital Distribution Stores Make Kitties Cry

Posted in Industry Rants, Tales from the grind-stone on May 3rd, 2009 by MrCranky

 

Why dont you have a decent search facility WiiWare? Why?

Why don't you have a decent search facility WiiWare? Why?

It’s true. One of my biggest issues with the games industry as it stands today is with the digital distribution stores (DDS for brevity) in place on the various platforms. I’m not going to jump on the bandwagon with others who have predicted the imminent death of physical retail stores; I think there’s still a large place for brick-and-mortar game shops, and they’re certainly not going away any time soon. But I think a large part of the continuing need for retailers is down to the failings of the various digital providers. Let’s list the most relevant ones:

  • Amazon
  • Steam
  • WiiWare
  • XBox Live Arcade
  • Playstation Network
  • iPhone App Store

Amazon of course isn’t really a DDS, although I believe they’re changing that. It’s really just a retailer of boxed products – the shop-front might be on-line, but the products are generally posted to you; however the problems it faces and has overcome are very much relevant to all of these services. Steam is much more relevant to the discussion here, as it’s a proper DDS, and it has learned from many of Amazon’s lessons; sadly it is let down by uncompetitive pricing and the lack of community integration.

Really though, my irritation comes from the remaining 4 DDS – each of which is the only means of buying product for their respective closed platforms (Wii, X360, PS3, iPhone). All 4 suffer from the same problems, all of which have known solutions as demonstrated by Amazon, Steam and others. And the 4, together or separately, represent a massive market of game-hungry users, with cash to spare, who just want to find the good games and ignore the crap.

Here are the main problems, in order of importance to me (the user):

  1. Navigation: How do I find games that I want to buy
  2. Selection: How do I choose when I’ve found those games
  3. Purchasing: How hard is it for me to buy the games once I’ve chosen them

Navigation is the real fundamental problem here. All 4 providers suffer from the same issue: their services are popular, so developers make many titles; users are then swamped with choices. Without any external information (reviews, friends’ recommentations), all products look mostly identical, with only a superficial information (title, image, etc.) to distinguish them – assuming the user wants to read through every title’s description in the hope of finding something they like. If the average quality of titles is low (i.e. shovelware), then great titles are lost in the noise of rubbish, and customers are forced to take a punt on titles when they have little idea of their quality. Once they get burned once, they’re reticent to come back, and likely to dismiss the entire shop as shovelware.

All 4 holders recognise this as a problem, but take varying strategies to get around the issue:

  • Top X lists (sales based): Popular products are easy to find. Great. New products have little chance to generate sales because the titles in the top X list keep selling (because they’re the only ones the user can readily find).
  • Title searching: Allow the user to search for a keyword in the title or description. Great. As long as the user knows what product they want in advance. Little to no chance of discovering relevant products.
  • Limit the number of titles in the system: The console DDS do this more than the iPhone, simply by maintaining high barriers to entry (requiring approval prior to development, enforced QA standards, etc.). But at best this delays the problem from becoming serious. XBLA recently wanted to implement a policy of culling poorly reviewed/low selling titles which was a clear attempt to tackle this issue, they’ve since backtracked on this in favour of better searching (yay!)
  • Highlight particular titles: XBLA prefers this approach – titles get a week of being featured prominently on the front page. Great. Now you have to make enough sales during that crucial week to build enough momentum to get onto the top X list. Miss your week, and you’re shafted. Better hope you’re not featured during the same week that GTA4 comes out, eh?

The approach of limiting the amount of titles in the system is pure short-termist madness. Maybe it is just a short-term fix until a proper storefront system can be made, but XBLA has had what, 3 years now to mature their navigation systems? The solution is one already demonstrated by Amazon. Navigation is the key issue. Searching is only one potential fix. Products need to be categorised into groups so that users can find the set of products they like by interest. Products need to cross link to each other: “Liked this title? Why not try X and Y, also from this developer?” “Customers who looked at product X ended up buying product Y and Z.” “Customers who viewed these titles,” etc.

Random title prominence: this is so underrated. Sure, the front of your store is prime real-estate, and you probably want to sell it, but you can come up with a system which allows games to be featured if they’ve paid, or if the users have rated it worthy.

I can see the DDS people’s defence: “that’s too complicated a UI to put on a console, it needs to be kept simple”. Well maybe you’re right. That brings us straight to point 3: ease of purchase. Why is the game store only on the console (or phone)? It needs to have a properly integrated equivalent on the web. Customers like shopping on the web. They prefer it. They’re used to it, it’s more flexible, and it supports a much more pleasant experience. Ever tried to enter your credit card number using a joy-pad? It’s not fun. Why are you making me do it? I want to be able to browse a game-store on my PC that gives me as much functionality as Amazon, purchase my game, and then press two buttons (Shop, Download Purchased Titles) on my console to get that game downloaded.

Sure, some times it’s nice to be able to buy direct from the console, but it’s not my first choice. Keep it there as a more limited option and I’d be fine with that, as long as the web-store was nice. But as a developer, I want to be able to publish links to my game on a web-store, so they can get straight to our games, and get them onto their console in minutes.

Back to point 2 though – choosing products. I don’t trust reviewers as to what games are good. I certainly don’t trust the platform holders, since they have a financial interest in the products doing well. I trust the customers. Not individuals, because there are clearly nut-cases out there that rate highly or lowly depending on whether they took their medication this morning, but aggregate ratings over time.

Tell me what games sold big in the last week, or month (doesn’t have to include numbers). Tell me the average rating in the last week or month, and how many people rated it. Publish customer reviews, and professional reviews, and metacritic scores. Put all of the rating functionality into the search system, so you can find titles that rated over 4 stars in the last month in the flight simulator genre. Show me the all-time classic RPGs, based on ratings since the store first open. Maybe I’ve a hankering for high quality old-style adventure games, let me find those.

None of this is crazy blue sky thinking. It’s all been done, it’s all been shown to have worked. Build a better DDS, and you’ll sell more products, we’ll sell more games, the customer gets more games, and they get better games so they come back and buy more. I can’t think of any good reason why they wouldn’t want to fix their stores, other than to make little kittens cry.

Feature Creep

Posted in Tales from the grind-stone on April 17th, 2009 by MrCranky

We were having a discussion this morning about the perils of building your business around a popular tool that you’ve made, and I thought it might make a good blog post. Really this is inspired by the impending upgrade I’m going to need to do to SmartSVN 6, despite having only just bought a SmartSVN 5 licence. It’s a nice package, especially the diff tool. And there are times when you really do want to navigate the changed files in a large tree of directories, and TortoiseSVN and the command line shell really suck at that.

My problem comes in that pretty much all of the functionality I needed from the tool has been present since version 3. Sure some of the new features are nice, and the overall application is prettier now. But mostly what has come in subsequent versions has been for me superfluous bloat. It means the installer is bigger, it means the application is slower to respond, and more complex to navigate the interface. And really what I actually would most value is if I had pretty much the exact same set of features, but a) bugs were squashed and no new ones added, b) the support for the underlying system (in this case Subversion) had been kept up to date, and maybe c) the interface was improved and streamlined.

It’s not just SmartSVN though, it’s lots of applications. GetRight, ACDSee, Word/Excel/Office, all of which have gone through many revisions, each one adding more and more features that I don’t really need or appreciate. In the case of ACDSee the later versions actually made the interface worse, which effectively removed the one feature that people bought it for – the quick and easy way to mouse-scroll through whole directories of images.

The problem here is that what the end users want is fundamentally at odds with what the business needs to do. The end user would be quite happy having the same application and just keep using it forever. But for the business that authors the application, that’s a losing proposition. They’ve made one sale, and they get no more. What they really want is to be able to sell more things to the same user. If they make a new version of the tool, they can put enough new features in to persuade the user that it’s actually a new application. The user isn’t an idiot though. They know it’s not a whole new application. Maybe they need or would like some of those new features, maybe not.

Most likely they’re buying the new version because it fixes bugs in the old version, and is better supported. I’d even go so far as to say that they’d be willing to pay for those bug-fix and maintenance updates – not as much as they’d pay for a whole new version, but something at least. Some companies, like Whole Tomato (who make Visual Assist) have a refreshingly straight-forward approach to this: you buy the application, and you get X months of updates along with it. After X months, you have to pay again a smaller amount to keep getting updates.

Even Whole Tomato though are guilty of the most annoying of the application developer’s sins (from an end user’s point of view at least) – feature creep. Every development has a Request For Enhancement list which is used as a back-log of items that might make their way into the application at some point. Anything reasonable the end users request goes on that list. And because the developer is a business, that makes its money from cranking out new versions of the application, they work through that list, pretty much endlessly. So an application which is clean, usable and decently featured in version 3 can turn into a Swiss-Army-Knife of an application by version 8; bristling with functions, features and options, which the majority of users, other that one user who requested it originally may never touch.

It seems that very rarely is the decision taken to just draw a line in the backlog and say “it’s good now, let’s just stop adding features”. Keep selling it, keep maintaining it, putting out bug-fix and maintenance upgrades, but no more features. What, I ask, is wrong with making compact applications with specific and targetted functions? Even if there are valuable features to be added, why not ask if there is value in maintaining a Core and a Premium version of the application? Or even multiple Premium versions? Find your users and target the groups who want to buy your product. Give them each their own version. Discontinue versions that don’t sell well, and maintain versions which have.

A well architected software development can maintain development on multiple branches simultaneously with not too much extra effort, certainly there is a cost but I believe there is also a reward. Give your users exactly what they need and no more, and you avoid becoming the behemoth application that is under-cut by a spunky fresh new competitor, that didn’t have all of your features but had “just enough” to be valuable, was cheap enough to develop to undercut you on price, and flexible enough due to its small size to adapt quicker and better to changing technology than you did.

Coding Reviews

Posted in Tales from the grind-stone on April 14th, 2009 by MrCranky

Some discussion on the Chaos Engine about code reviews and check-in process had inspired me to write up a post on my thoughts on this, but on my morning trawl through my RSS feeds this morning it looks like Lee Winder has beaten me to the punch. He pretty much covers all of my thoughts on the matter, and I don’t think I disagree with any of his opinions, so hey, job done. 🙂

In summary if you don’t want to follow the link though, I’d say code reviews are a good thing, especially as teams scale and there are differing levels of skill and familiarity with the code-base. They get everyone on the same page about what is being written and how it is being built. Pretty much all of the criticisms levelled at the process are from people who have had bad experiences due to issues completely outside the scope of the process. If your code review was useless because the reviewer was being a) petulant and petty, b) disinterested, or c) unable to comprehend the issues involved; then the issue is with your team ethos and make-up, not with the review process.

I want to write up my thoughts on the ongoing IGDA debacle, but suffice it to say for now that any interest I had in re-kindling the Scottish chapter have been well and truly snuffed out.

JamPlus

Posted in Coding, Tales from the grind-stone on February 4th, 2009 by MrCranky

Amongst various things I had to sort out today, I was asked to write out a blurb for a potential client about improving build processes and automating/scripting things in the development pipe-line. It’s a subject I get quite passionate about, because unlike so many things in games development, it’s a nice task to do. There are clear, quantifiable goals (“make creating a build a one click process”, “speed up turn-around times for artists by 50%”), and usually plenty of options about how to get there. It is also a nice, self-contained task that you can just wade into and make progress on, unlike for example gameplay coding, where you can often get blocked on feedback from the creative team, having to rework things and so on.

I think that’s possibly why I like to spend time on improving our pipe-line at the weekends or in my off-time; even though I could spend more time on the big pile of client work that needs done, I find myself tackling little bits of our own pipe-line because I know it’s a task I can get done without any other input.

On that note, with some more collaboration with the developers on some little niggles, we finally switched our creaky old makefile based system over to using JamPlus properly. Both build processes still run side-by-side, but the JamPlus version has a fraction of the number of lines in the makefile, runs much faster doing dependency checking etc., and in general is much cleaner and will be more maintainable going forward. I’ll have to walk the guys through what’s there so they can maintain it too, but after that I should be able to scrap the makefiles altogether.

Next step is the art/audio asset to platform binary conversion process, and this is why I really wanted to switch over to JamPlus. Our previous art pipeline would always rebuild platform assets, even if the source assets hadn’t changed. That was fine early on, when all of our tools ran lightning fast and we had few source assets, but very quickly it grinds when you introduce slow tools (such as our font encoding tool that does smart packing of glyphs and colour conversion), or many assets. Also the build scripts which make those assets are all Lua based, and so we have different technology for building code than for building art and audio. I’m pretty hopeful that we can make JamPlus fulfill both functions, and in the process get fast dependency checking for our art assets so that only the assets that have changed get rebuilt. But for that I’ll need a free day, and those are few and far between right now.


Email: info@blackcompanystudios.co.uk
Black Company Studios Limited, The Melting Pot, 5 Rose Street, Edinburgh, EH2 2PR
Registered in Scotland (SC283017) VAT Reg. No.: 886 4592 64
Last modified: February 06 2020.