Education

Posted in Links from the In-tar-web on July 15th, 2007 by MrCranky

Interesting post here from Richard Bartle on problems in games industry education and the new games academy that TIGA has been pushing. I agree with most of it, especially the focus on the need for an education, not training. I don’t need people who have worked through a ‘my first game’ tutorial, and it seems like that’s what the computer games courses in the UK provide. The quality of graduate from these courses are rarely better than the wider pool of people who either studied a more traditional course, or who have come from elsewhere in the software industry. I don’t think that’s because the courses are bad at teaching, I just think they are focusing on the wrong things.

What we need are people who has learned the importance of structured programming, or the fundamentals of databases, or any one of a hundred other things that are vital to understanding exactly how to develop software for games. Basically what I need are people who have been educated to the level of a Computer Science degree, but with all of the extraneous parts taken out. Games developers rarely need to know formal proof notation for languages, or details of the electronics behind the hardware on which their software runs. They also need to be aware of the constraints under which they must develop – fixed memory environments, designing algorithms that never take longer than a fraction of a frame to execute, etc. Possibly the hardest thing to learn about games programming is how to make things happen with all of those shiny tools and bloated constructs unavailable.

Of course, my idea of an ideal course for a games developer is probably a bit of a hard sell for universities. After all, if you signed up for a games course, you’d expect to be making games for at least some of it. But the fundamentals of making games are the same fundamentals for all software – it is only when you reach the high-level concepts do ‘games programming’ and ‘regular programming’ diverge.

Nowhere is this more obvious than the field of Artificial Intelligence. I gave up the Artificial Intelligence part of my degree after second year, when it became clear to me that the fields on which it concentrated were not going to help me make games. Neural networks, machine vision, genetic algorithms, knowledge based systems – are all good for cutting edge research programmes, but utterly out of place on even the highest-end hardware for playing games. As such, the AI that you find in games bears little relation to the AI that you would research in a university. Sure, maybe you can build an all-singing all-dancing AI that can respond to your questions and think and act like a real person; but if you can’t make it run in less than 3ms and occupy less than a few hundred kilobytes of memory, then you might as well forget it.

Regardless, it seems that the good people, the ones who shine in their job, are the ones who would do well in games regardless of the course they studied at university. They are the people who make games on their own, who code them in their spare time and learn by doing, not just by being taught. I think there is very much a place for games courses, but they should be far more like Computer Science degrees than vocational courses.

Web site update

Posted in Tales from the grind-stone on July 6th, 2007 by MrCranky

So, I decided to add a bit of PHP to the bottom of the web site pages that displays when the particular page was last updated, and the About page hadn’t been updated since August 2006! That’s pretty bad on my part, so I must apologise. It annoys me when other people let their website go stale, but it’s a bit hypocritical to expect it of others when we don’t do it ourselves. So henceforth I pledge to keep the site more up to date and freshen things more regularly. That goes on the pledge list, probably somewhere around 600th or something. But I’ll try. In addition, I’ve added a Jobs page for the future, although it is empty at the moment, I thought I should have one. We certainly get enough CVs and people fishing for jobs, at least now I can filter out the ones who don’t read past the front page and just spam email everyone.

A little hint for anyone thinking of contacting us about a job: those who show that they’ve actually read the site and done at least some research into the Company are immediately rated above those who just have a list of emails and send off a form mail to all of them

We’re transitioning between projects this week, so Pete and I have been going over what we’ve done for the last few months, how things have gone, what we’ve got and where we’re going. And things are looking pretty good – we’re quite proud of the work we did with Add Knowledge; while there was the usual mad rush to wedge things in, looking back on it we can do some quick re-factoring to turn it into something maintainable and re-usable. Our internal code-base is looking reasonably plump with functionality for making games with, and we’re happy with the style and content. Unit-testing could be more wide-spread and thorough, but that will have to be a long term goal. All in all, I’d rate our performance probably a B for the last project – good, but room for improvement.

Coming up in the near future – well, starting our next project hopefully. Also I’ll probably be looking around for some small cheap office space for us to set up in – a more permanent base from which to grow. And grow we shall – there’s lots for us to do, and only so much time in the day.

Puzzle Pirates

Posted in Games on June 23rd, 2007 by MrCranky

A while ago, while doing ‘research’ for one of our contract jobs, I was scoping out pirate games on the Internet. Puzzle Pirates had come up in various places as an example of a massively multi-player game that wasn’t targeted at the usual World of Warcraft playing gamer. So I fired it up and gave it a shot; since it is free to begin with it was a bit of a no-brainer.

The game itself is really a massively multi-player world, but the actions you take in that world almost all revolve around puzzle games. Your character is simply a 2D sprite moving around an isometric world. The puzzle games themselves are nothing particularly new or innovative, but they play well, are polished and fit nicely with the world’s style. Your character earns money by working on a ship (either an NPC ship, or a real ship crewed by other players), pillaging other ships for booty, or by working in shops on the various islands which make up the game world. The workings of the ships are tied to your puzzle playing performance; if you play well, the ship goes faster, and in the case of ship to ship battles, can fire more cannons.

A simple idea, but one that works amazingly well; by no means is it an immersive pirate simulator, but the simplicity of the basic puzzles allows new players to contribute, and the complexity of how the different actions interact with the game world leads the player along a long learning curve with much scope for fun along the way. On a hunch, I introduced my girlfriend to the game, and while she doesn’t do any of the more complicated things available in the game, she is perfectly happy to haunt the game’s taverns and inns, challenging people to sword-fighting (a frenetic block building game) for money. I on the other hand have worked hard (in between regaining the losses made when my other half logs on to my character and gambles away all of my money) to build up enough to buy a little ship, and work on trading between islands. In fact, the in-game economy is complex and rich, and the interface is much like EVE‘s in that it involves bids, sales and supply (fake producers) and demand (player-run shops). Everything the player needs, from weapons to clothes, is produced by shops run by other players – the game masters do little to affect the economy at all.

Those who choose to subscribe can access the full range of the gameplay all the time; non-paying players can join in and enjoy the world, but are limited to basic equipment, restricted from owning shops, and may only play tavern (player vs. player) games on certain days. Those restrictions serve to nicely encourage people to subscribe, without placing a big hard wall between them and the paying players.

All in all, Puzzle Pirates is a great game to play. It’s light and easy to play that you can sneak in a quick 10 minutes of fun between other things, and complex and engaging enough that you may find that 10 minutes turning into several hours because of that one-more-go factor. Plus, Three Rings (the makers), have one of the coolest offices around, and you can’t fault that for keeping their staff happy!

Out of the closet

Posted in Links from the In-tar-web, Tales from the grind-stone on June 20th, 2007 by MrCranky

Well, looks like we’ve been outed by the folks over at scottishgames.biz. I think most of the people who find their way to us either knew us in our past lives at VIS, or have been referred to us by word of mouth. There are a few brave and hardy souls who stumble on us via search engines, but they are quickly dispatched and their bodies pillaged for games consoles and cash.

Anyway, I’ve been keeping a relatively low profile until we were more firmly established, but I think there is probably no good time to make a big entrance into the industry, so we might as well stick our heads above the parapet a little. There will be pictures of Pete and I forth-coming, and I will finally get around to updating our About page! The Scottish games industry has seen some high profile losses over recent years, but the blood letting appears to have subsided, and I’m confident we’re on the way back up. Now if we could just persuade the journalists who write for the Scotsman not to keep telling the public how it’s all gone to pot, we might get somewhere.

Aside from that, I’ll be taking advantage of the discount available to Scottish-based developers for the EIF this year (thankfully it’s lost the cumbersome title, although I still preferred just ‘Edinburgh Games Festival’); but we’re a little busy so I’ve decided to miss out on Develop in Brighton this year.

Jumpgate

Posted in Games on June 16th, 2007 by MrCranky

A bit of a change of pace this week, here’s a snippet from a post I made elsewhere on the Ether-web.

Flying through space alone, only to be ambushed by three enemies popping out from behind asteroids within firing distance. Firing off a few shots to distract, and then running like a bitch, dodging like hell through asteroid fields and flying like a crazy man, while screaming like a girl on voice comms for backup. Surviving for a couple of sectors by the skin of my shields while my squad mates are assuring me they’re almost there. Almost intercepted by another bad guy coming in from another direction, but then punching past them and through a gate, to find 3 of my squadmates just turning up on the other side. The green guys come out of the gate to find that it’s turned from a chase into a battle in a matter of seconds, and I get to turn round and join in the most satisfying 4 a side battle. And when they’re all down and we only lost one of ours, I’m jumping up out of my seat and shouting “take that you f&**ers”, and then collapsing back down in fits of laughter, and a smile that didn’t go away for hours.

The game was Jumpgate, a game originally sold to me as “online Elite”; and with a description like that I was instantly sold. Elite has been a favourite of mine, and many others, since before high school. Jumpgate took the same open ended ethos and made it massively multi-player. Even in its heyday, Jumpgate rarely boasted more than 500 players on-line at any one time, but those who did play showed an amazing dedication and passion for the game that turned a small universe into a hive of activity. Combat, deep-space mining and trading all co-existing in space (relatively) well together; however it was the combat that generated the most devotion from the players. From all 3 factions squads and pilots relished the character traits of their factions, and role-played them to the hilt. There was a fair amount of out-of-character banter, but the meat of the game was always the warring between the factions.

Unusually for an MMOG, the complex flight model means that success is based entirely around your skills as a pilot. While you can earn money and experience to gain ready access to better equipment, the only thing that can improve your ability is practice and training. Undoubtedly this puts many people off, but for those with the ability and perseverance to learn, the adrenalin pumping rewards are phenomenal. My own skills in the sky were sadly outclassed by my contemporaries; I had the privilege of flying with the Octavian Vanguard – generally accepted as the finest squad on the server, and certainly filled with some of the most able pilots.

Sadly, a litany of poor decisions on behalf of the developers (Netdevil) sent Jumpgate into a spiral of decline. Arguably it was simply suffering from the natural cycle for MMOs – a big initial following which dwindles as newer and more interesting games appear. However it was clear from the long cycles between patches that there were few people behind the scenes supporting the game, and that the engine was fragile and prone to bugs when any significant changes were introduced.

The combination of stagnating game-play and bitter disputes amongst the player-base with claims of ‘griefing’, mean that today the server population rarely tops 50. A space once filled with new players and the vibrant hum of travellers lies cold and mostly empty; the few who remain live primarily for conflict, and continue to test their combat skills against each other. The much vaunted role-playing aspect has all but disappeared. However there is life in the old game yet, and talk of an upcoming graphical update to bring the visuals forward from their pre-2002 level has a few old heads interested again. And while there is still apparently just a single developer working on the game, no-one seems to want to see Jumpgate retired just yet.

Spambots in overdrive

Posted in Tales from the grind-stone on June 11th, 2007 by MrCranky

So I get the feeling that the amount of spam comments that come into the blog is actually increasing at an exponential rate. Since I last checked a few weeks ago, more spam has received than Akismet had processed in total prior to this lot. I guess this is an inevitability as the blog is around for longer and appears in more spam-bot lists. Anyway, Akismet is doing its job nicely, and only 9 of the several thousand comments slipped through, and since I have moderation on, none of those made it onto the live site.

Busy week last week – approval meeting for milestone 2 of the current project, and a meeting up in Dundee with 4J as to our next one. One of the things discussed was how much I would say on this blog about it, and for obvious reasons I’ll be keeping shtoom about most of the detail; however its looking pretty likely that we’ll be working with 4J for a few months, on an unannounced title, on unannounced platforms. So that will mean that my blog entries for the next while will be tending towards rants on software and the games industry in general, and commentary on the gaming news.

Check++

Posted in Tales from the grind-stone on June 1st, 2007 by MrCranky

Well that’s milestone 2 about wrapped up, on schedule and no dropped features. I’d be hopelessly naïve if I thought that two successful sprints in a row was down to fantastic management or process, or even down to Pete and I and our amazing skills; rather more likely is that these first two milestones have consisted of things that we knew we could deliver without fuss. Next sprint is a bit more meaty – two sub-games, with all of the design ambiguity and art bottlenecks associated with content generation. We’ve dealt with the engine functionality needed to deliver the content, now we have to deliver the content itself.

Looking over all of the legacy code though, I am having to resist the temptation to write it all again from scratch. Yes, the code is tested in fire, and exceptionally functional, but in many places it is ugly, unmaintainable, and downright hard to use. Combine that with the fact that it came from a team who were constrained to work in straight C in most places, and the code isn’t exactly clean and easy to read. So with that in mind I’m inclined to use it as a reference point rather than a base to work from, and pare it down to the essentials. But then the businessman in me kicks in, and reminds me that we’re not here to make good code, but rather good games. So the decision is really – what will help us make better games, faster and more reliably. Decisions, decisions…

Positives

Posted in Tales from the grind-stone on May 24th, 2007 by MrCranky

Lots of positive stuff the last couple of weeks, which is good as it helps to negate some of the awful “grr” moments I’ve been getting, while browsing through some of the worst code in our legacy stock. We’ve been talking to a couple of other companies relating to our next contract, both interesting projects, although we’ll only be able to take on one. Most likely we’ll take the full game project rather than the pitch/demo project, simply down to the likelihood of it actually coming to fruition.

I’ve also ticked off another couple of things in our annoying tax/paperwork burden – quarterly VAT return, and end of year payroll all out of the way thanks to our efficient payroll person. Still have the corporation tax return and annual accounts to sort out, but that should be the last for now.

Milestone 2 is looming (1st of June), and things are coming together for that – a little later than I’d hoped, but such is the way of things. Still no sign of development hardware, but I suppose that’s just the way it goes. I’m sure we’re not hugely high on the list of priority customers!

Milestones and maths

Posted in Tales from the grind-stone on May 10th, 2007 by MrCranky

Not much for posting recently as we’ve had our heads down getting things done. We passed milestone 1 of our build at the start of the month (well actually a few days before – how good are we!), and have been cracking on getting more visible functionality in, less on the under-the-hood work. It was quite a nice moment when we saw the models and environments from our old game going in (the most complicated art I had to hand), after a few false starts.

Most annoying thing so far has been the two days spent on thrashing out a problem in the graphics projection code, only to find out it wasn’t a high level conceptual problem at all, but rather an assumption that our underlying maths library was fine. Turns out we were transforming 3D vectors by a 4D matrix, but ignoring the 4th column. Of course, the 4th column is rarely used for most 3D work, except in projection matrices. D’oh! All fixed, and another story to be marked as done.

The one true handed-ness

Posted in Industry Rants on April 25th, 2007 by MrCranky

WrongRight

It’s right handed. Get over it. It is an arbitrary decision, but so what? Everyone has their own preference for how they visualise things (I for example interpret +z as forwards/into the screen, and +y is up, and don’t really care about x), in the same way that everyone visualises the flow of time differently. The maths is no easier or harder either way, but it’s a real pain to convert between them when people make different assumptions. DirectX doesn’t insist on left handed (no matter what anyone has told you – it provides left and right handed versions of all the view/projection functions that care), OpenGL assumes right handed, all the big modelling tools use right-handed. The majority have spoken already on this, but every single developer that chooses to buck the trend makes the rest of our lives more painful.

And if I ever have to debug another handed-ness related problem, I think I’m going to cut off my right hand and replace it with a sharpened set of axes, then go round visiting all the games studios in the land, slashing and gouging all those who want to argue about it.


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.