Development Update

animatic-02

I know it’s been a long long time since my last development update, almost a year! The reason is very simply because the things I’ve been doing have been tediously boring, at least to my mind anyway. Here’s a brief summary of what I’ve been doing on Alaska for the last 10 months. I expect this will be my last development update before I start my greenlight campaign, I currently estimate i’ll be ready to go on greenlight in July or August.

Anniversary

Last month was the 5 year development anniversary of Alaska, my original estimate was a 3 year project but I’ve changed jobs twice, got married and had 2 amazing kids in that time and those things all take priority, as they should. This is what it looked like 5 years ago:

It’s come a long way since then. I’m pretty proud of what I’ve achieved, personally.

So What have I been doing over the last 10 months?

Moving Repo, Moving IDE, C++11 (Aug-Oct)

So the first thing I did after my last blog post was do a lot of long overdue clean-up. Moving to visual studio 2015, updating build flags and dependencies and generally tidying up the build. As part of that I also moved to git which has taken a load of as subversion is a pain to work with. I backed up all my source assets too. With the move to visual studio 2015, I can now support C++11 properly which meant I could clean up some crusty code.

Moving from Windows 7 and Visual Studio 2012 to Windows 10 and Visual Studio 2015 forced me to migrate from the old DirectX SDK to DirectX included in the Windows SDK. I’m still using D3D10 and effects. I’m not moving mid development and this meant reworking some stuff to work better with the new SDK & IDE. It’s better in the long run but PIX still doesn’t work properly with old effects and that’s a nuisance.

This all took a few months but It was important because it made a lot of things that had become a slog less so and it was time away from the mammoth job i’d unwittingly undertaken in my last blog post, the dreaded character import pipeline rework.

Bug Fixes (Nov & Febuary)

Mainly as a consequence of changing lots of stuff related to the build there were a few weird bug fixes that needed addressed, I did some of these in November and some in February.

  • BSP Loading was very slow (one small part was 75% of the load time)
  • luabind threw exceptions in the destructor and vs2015 rightly didn’t like that
  • a couple of materials and reusing some render buffers were causing visual issues
  • The Game Entities used their address in memory as their guid! Need real guids.

Fixing all these issues meant I had to do the job I’d been avoiding:

The Dreaded Character Import Pipeline Rework (Nov-Mar)

Final Characters

My character import pipeline is a disgrace, It is laughably fragile and I’ve paid dearly for it. If this was my full time job I would have allotted much more time to making it more stable but I figured I would only have to do it once or twice and so I could just suffer.

My import pipeline currently consists of:

  • Build and Rig the characters in Mixamo Fuse
  • Load the model in Blender and cut away all the hidden verts (teeth, joins)
  • Reduce the poly count as much as possible with decimate
  • Import the Rig with all the animations, repose & bind it
  • Export the rig and all animations, one by one to collada
  • Make DDS versions of all the textures

Alaska is quite rare for a small indie game in that it has 13 unique characters and this process is very manual, laborious and error prone. It took me a long time doing it manually before I decided to try and automate it.

By March I had generated all the Final Models and used a couple in the test map to prove them out. At this point I realised I could use python in blender to automate the export and It made one of the most laborious parts trivial, It really is easy to write scripts for blender and I thoroughly recommend it, this is the script I used to export all the animations:

import bpy
import os

for action in bpy.data.actions:
    outname = None
    for object in bpy.data.objects:
        if object.animation_data != None:
            object.animation_data.action = action
        bpy.ops.pose.transforms_clear()
        if object.name != "Armature":
            outname = object.name.lower()
    root = os.path.dirname(bpy.data.filepath)
    if action.name == "Idle":
        file = root + "\\" + outname + ".dae"
    else:
        actionname = action.name
        if actionname.endswith("StrafeWalking"):
            actionname = actionname[:-7]
        if actionname == "Walking":
            actionname = "Walk"
        file = root + "\\" + outname + actionname + ".dae"
    bpy.ops.wm.collada_export(filepath=file

A few loops around this script and the final models were in the game but something was wrong!

Human Readable Formats (March-April)

I always knew I was going to need to implement binary formats and now was the time, the final characters where massive collada files and they had a lot of redundant garbage in them. This caused loading times to explode to about 2 minutes if I remember correctly so I was forced to address the issue. I ended up making unified binary formats for the following files:

  • skeletons
  • objects
  • atlases
  • fonts
  • bsps
  • shaders

This reduced the load times to ~10 seconds and was pretty satisfying. There were quite a lot of minor bug fixes as a result of this and it took me into April.

Kinematic Character Controllers vs Nav Mesh Based Character Controllers (April – May)

I had been using a kinematic character control for the full length of development and while I was fairly happy with it, there were a couple of issues. Primarily I couldn’t achieve the kind of control over it I wanted, getting pushed out of the way, sliding down surfaces, climbing vertical faces and tunneling where all issues i’d been fighting all through development.

Kinematic Character Controllers are good because they give you a strong connection to the physical geometry (walking into a door, knocks it open for example). Nav Mesh Based Character Controllers are good because they give you a strong connection to AI reasoning (If an AI decides he wants to go somewhere, he’s not going to get stuck on the way).

Weighing these two options up I decided to take the plunge and try to remove and replace the kinematic controller I wasn’t really happy with, with a nav mesh based controller. It turned out to be a lot simpler than I anticipated and now I feel like I have a good character controller which I can tweak much more easily without having to fire off rays and apply forces to.

Animatic (May~ongoing)

animatic-01

I had been looking for someone to do an animatic for me to help with promotion and to cement some of the themes of the game more firmly at the start to help the demo pop better. By April I had decided, as usual to stop waiting for someone to come to me and try and throw something together with my extremely limited artistic capability, it’s ongoing and may not pan out but If I can manage to achieve what I’m after it’ll really add something to the game I feel it needs.

What Next?

The greenlight submission really is coming soon (although I wont submit it until I am completely happy with it). To get there I need to block off the areas of the map I don’t want the player going and finish the animatic, I also need to make an updated in game trailer and then make my greenlight page. Following me on Twitter is the best way to keep up with ongoing development, fingers crossed my next post will be about the greenlight submission!

Firewatch critical analysis

Preface

Firewatch is a recent first person adventure game which is trying to achieve very similar goals to Alaska and I absolutely loved it. I do think it’s failed in some regards and I’d like to try and reconstruct why I think it’s failed in the ways it has and also in what it has been successful in achieving. In recent years there has been a general thrust in smaller studios to explore verbs in first person games that use mechanics other than crude remote agency tools (guns).

The collapse of Irrational after Bioshock seems to have caused what some people hoped would happen with the Looking Glass alumni. That is, it seeded studios all over the world with immersive sim developers. That didn’t happen with Looking Glass/Ion Storm because those developers where almost entirely absorbed into large studios and those individual developers either failed to change the culture (like Harvey Smith at Midway) or stopped trying (Doug Church at EA, Warren Spector at Disney). I hope that’s a fair assessment. Happily, these developers have settled somewhere they seem comfortable now.

What made the Irrational alumni different is the era in which they were working. Developers from Looking Glass were known and respected throughout the industry as individuals and the studios who hired them wanted their brand. Irrational’s brand was Ken Levine, the perceived auteur of Irrational and so it seemed the people who actually made his games didn’t carry as much weight with big studios. Those studios had seen what they’d done with the likes of Levine, they feel like they’d created monsters and their response was to shut down any individual credit in their games and also to refuse to hire credited individuals. As a result of this and other factors the industry began to go through a second corporate revolution. EA found themselves on the other side of the table from where they started, they were the corporation that EA was created to wrest creative control from and developers where leaving EA to wrest control back from them. So developers from irrational went off and seeded a large number of teams with immersive sim development as a foundational culture, something that hasn’t happened since Arkane and Ion Storm were founded in the late 90s. Ratus Apparatus and Campo Santo while not being Bioshock alumni are part of the same wave of developers trying to build immersive sims without the gameplay crutch that is the gun verb.

Chose your own adventure

Firewatch starts with a chose your own adventure sequence which is designed to set the scene of the game and funnel the actual person who you are into the start of the game in a tailored, plausible way. This sounds like a good idea on paper, an interesting attempt to break the computer game amnesiac trope. Unfortunately it’s execution is lacking, in a first person game binary agency is always a problem (in this sense, first person meaning things happen to you, not the literal camera view point being the eyes of the avatar). In the opening moments the game alienated me by giving me so little choice over what I would do that I wasn’t able to accept that I would end up at the beginning of the game at all, in failing to ease me into the beginning of the game it actually made the introduction more dissonant than if it had just dropped me there and told me the character’s background because quickly resolving that traditional dissonance is a skill I’m familiar with and is also a disbelief I’ve already chosen to suspend before I started the game. The dissonance of having binary agency however meant that *I* had done things that I would not do and that dissonance is unfamiliar and inside the context of the game and so lingers in the players mind. It does eventually dissipate, resurging when the character’s back story comes to the fore but it becomes tolerable.

Saying that, the back story is absolutely inconsequential to the plot of the game it is completely and absolutely superfluous, the game would have worked, and much better, if the player had been allowed to bring whatever back story they so chose to the game. This is one of many perplexing ways in which the game fumbles with its narrative.

Metroidvania

The game’s primary mechanic, other than the chose your own adventure dialogue, is its metroidvania gating. I loved it, I have an irrational love of this mechanic especially when they are executed well and clearly distinct and signposted, the abilities you unlock in Firewatch are exactly that clearly distinct and well signposted, it doesn’t take someone familiar with the metroidvania style more than a few seconds to parse the language of the game and understand whether something is gated and whether they currently have the tools to unlock it. Contrast that with Batman: Arkham Asylum which is one of my favourite metroidvanias, if not my favourite, I spent quite a while trying to figure out the first hacking puzzle I came across not yet realising that I didn’t have the tool to unlock it yet, not even realising it was a metroidvania yet & this was about an hour into the game if I remember correctly.

Saying that Firewatch didn’t use the mechanic perfectly, one of the key components of the pay off of a metroidvania is that it has to show you where you can’t go a fair amount of time before you can go there but it also has to show you why you want to go there and it was rare to look beyond one of Firewatch’s gates and see anything interesting or different from the side you were on, you generally got the reason to go there after or at the same time as the tool to get there and you were remote from it so the visual feedback to fuel the desire wasn’t there. Sometimes, and this is quite damning, it is infact the antithesis of the genre, the first time you see a gate is when you approach it to get to the other end AND you already have the tool to cross.

The one perfect execution of the metroidvania mechanic is the gate in the cave, there is a visual reason to go there, you don’t have the tool to get there, you receive a ludic reason to go there, you acquire the means to go there and then there is a pay off once you do. This is perfect, textbook metroidvania design at its best.

Types of twist

As background to my thinking re. the twist(s) in the game I recomend this article by Anthony Burch about satisfying twists (tragically it’s no longer available at the original site so I had to get an archive.org link):

The Four Kinds of Plot Twists (Three of Which Suck)

The twist in Firewatch was clearly signalled right at the very beginning of the game, you can’t deny that the player had a lot of the information required to deduce at least some of it. There were, however A LOT of red herrings. I’d estimate about 80% of the game was red herrings, plot threads that went know where or plot threads that claimed to feed into the twist but upon reflection reveal themselves to be a lie. I’m going to go into detail now so spoiler warning!

The primary Red Herrings I’d identify are:

  • Henry’s back story
  • Delilah’s trustworthiness
  • The Girls in the lake
  • The research station
  • Ron and Dave’s letters

Henry’s back story – LIE: As I’ve detailed before Henry’s back story didn’t play into the plot of the game in the slightest, it’s nothing more than quite a poor a reason for him to be where he is. However it falls into the lie  category because it is used to support the idea that some power organisation is orchestrating events. At the tent Henry claims they have information about him that he hadn’t talked about over the radio, implying whoever was spying on him knew about him before he came to Two Forks.

Delilah’s trustworthiness – NOT TWIST: Delilah’s trustworthiness is brought into question several times through the game leading the player to believe she may be involved, I actually think this is done quite well especially as you can see the same thoughts clearly going through her mind. However near the end of the game it is revealed to the player that she is lying because she has a boyfriend and is a polygamist. As I said it is done relatively well but it does contributed to the confused state of the ending.

The Girls in the lake – NOT TWIST: The Girls in the lake also present a sense that the actors orchestrating events are malicious and again right at the end it is revealed to be a coincidence that the true perpetrator supposedly exploited.

The research station – LIE: I would categorise this as a lie, it is a bit of a stretch but the idea that Ned would go to the lengths he supposedly did is unconvincing at best. I’ll address this better in the following section.

Ron and Dave’s letters – ???: Seriously did I miss something, what was this all about, it didn’t seem to try and say or do anything.

Ned’s Motivations

Ned’s behaviour is downright odd. Everything he does after he loses Brian is poorly established and his behaviour, being completely insane, is at odds with the rational measured way he goes about things and expresses himself. Failing to convince the player that Ned is insane, means they undermine the entire game, it’s critically important they achieve this but I don’t feel they did. Throughout the game Ned reveals himself to Henry once at the beginning, bizarrely. He deems it appropriate to exploit the missing girls despite them inevitably turning up. He tries to convince Henry there’s some sort of bizarre science experiment. He fashions and uses radio equipment but somehow manages to accidentally make them aware of him with a cough. All of this to supposedly protect his secret in the cave and then gives the key to the cave to Henry in an attempt to shut him in? Behind a gate he just gave Henry the key to, what? Not to mention getting out without the key was trivial? It’s perplexing that such a well made and plot focused game would have such glaring issues.

Why I liked it

This post might come across as very critical so I want to reiterate that I loved Firewatch and express why. Firstly, and primarily, with Firewatch, Campo Santo overreached. They stretched themselves past the point they were capable, this isn’t a game that has been cleverly designed to have constraints that match the developer’s budget, Firewatch is the game they wanted to make and then they tried to make it and in doing so didn’t quite manage to complete it. That to me is far, far more interesting a game than the a master developer at the peak of his craft producing something less than his best.

Secondly, the game is very polished in its presentation. The visuals, the script, the voice acting are all absolutely coherant all working together to polish over the lumpy interior, the huge compromises that had to be made to systems and plot to get the games development under control. I think it is amazing how well it manages to get you, the player to ignore what should be and would be in a lesser game glaring issues.

Lastly, it happens to be exactly my kind of game, a first person immersive sim metroidvania, it’s all my favourites and it’s why I’m trying to make one too. With Alaska, I hope I can manage to make something even as half as good as this game.

Queer reading Metal Gear Solid 5

For those who don’t know what queer reading is: Queer theory

A primary inspiration for this article is Aoife Wilson’s article on eurogamer: So, Mr Kojima, do we feel “ashamed” over Quiet?

I want to say in advance that i haven’t played any metal gear solid games except the first and ground zeroes/phantom pain so feel free to disregard my ideas based on Kojima’s previous work.

It should go without saying there will be spoilers.

 

It is my assertion and my reading of Metal Gear Solid 5 that the game is about Hideo Kojima struggling to come to terms with his own Homosexuality.

Misogyny

paz

Almost the first thing anyone talks about when they talk about Ground Zeroes is the scene at the end where Kojima blows up a Helicopter by exploding a bomb inside a woman’s vagina. It’s as crass as it sounds and to my mind at least is one of two things: either it’s a statement of resent for woman’s power over men (which seems to be a theme of the series from my understanding of it) or it’s a statement about the complex issues of violence and sex and to what extent consensual sex can be violent. I & this article will assume it’s the former, ymmv.

As far as i’m aware the Metal Gear Solid has never shown any aptitude or intention to wrangle complex and subtle issues it counts amoung it’s themes – Child Soldiers, Nuclear Proliferation, Private Military Companies and Auteur Theory, not exactly working in the grey area. So it strikes me as unlikely it’d be capable of or willing to address the latter idea, leaving the former. As I’ve said before women’s power over man does seem to be a recurring theme through the series – Aoife’s article states about a character in Metal Gear Solid 3 (which I haven’t played):

She was sexy, and she was playing Snake (and us – don’t deny you hammered R1 every single time you were able).

So working under the predicate that it was a statement about women’s power over men, ergo (in my opinion) a misogynistic statement, how does that mean MGSV is about struggling with sexuality? It doesn’t, it strikes me that the statement might not be a resentment of women’s power over him but women’s power over other men, a weakness he doesn’t feel he possess? This on it’s own is pretty tenuous but I thought it’s worth mentioning as background to my main points.

Purple Snake

2015-09-09_00001

Now, to the meat of the argument. I’m sure there are a lot of people who sniggered at my title because Metal Gear Solid 5 is clearly a gay game, it can’t be queer read because to queer read it is the only way to read it! It’s Top Gun with a gay supercharger on it, the glorious 80’s soundtrack, the gruff topless men hanging out on a pink oil rig. They love each other LIKE BROTHERS! This seems to me, obvious but there are people out there who believe top gun is about masculine competition and don’t see the homoerotic subtext of the entire decade! Ordinarily I’d be inclined to believe Kojima isn’t one of those people because MGSV is so outrageously and camp, it revels in it. It is surely impossible to not notice. However, mgsv’s treatment of woman seems to imply otherwise, that Kojima thinks the game is about Hetero Sexuality.

Quiet, You

Aoife’s article is a great article and describes mgsv’s problematic treatment of women better than I could, but something Aoife seems not to have picked up on is the homoeroticism. Aoife postulates at one point that none of the men in the game seem to notice that Quiet isn’t wearing any clothes and attributes this to their heroic intents:

Even when Quiet strips down to just her ammo belt and dental-floss underwear (which would give you serious wedgie issues if you were to sit in her sniping positions, just FYI) and dances in the rain, he’s always looking her right in the eye.

To me this is as clear a statement as any that every man “Snake” wins over and inspires is coming out the closet onto the big gay party rig utopia after the boring humdrum brutality of Afghanistan’s war torn wasteland. As a side note she also seems to consider Big Boss as a hero:

He’s the noble hero, saviour of men, women, wild animals and children and beloved by his soldiers.

But to me he was more like a villian, she has more knowledge of the series and character than I do but there are several indicators that he is not a hero, least subtly when he’s covered in blood and with his horn he literally looks like the devil, this fits with the idea that Kojima is struggling with coming to terms with what it is Big Boss represents.

devilbigboss

The camera’s treatment of Quiet is a form of overcompensation only found in two groups of people. Teenage boys famously overcompensate for a lack of understanding about what makes them attracted to women and most people believe this is what Kojima is doing, that he is immature. I believe his overcompensation is the other kind – the man who doesn’t find women attractive but wants to or wants to seem as though he does. To me the camera’s fixation with Quiet is to stop us noticing Kojima’s fixation with Snake.

It should go without saying that the game is not subtle, Child Soldiers are not subtle, the camera work is not subtle and the name of the characters are not subtle. The only female character in the game is called Quiet, aka A woman should be seen and not heard and Protagonist is called Snake, everyone in the game worships Snake.

Mansplaining Forced Exposure

The spoiler in Aoife’s article about Quiet’s attempted rape scene (sigh A-Fucking-Gain) seems to make an attempt at making Quiet’s character about female exposure, about trying to tell women that they are unable to control being exposed and that they should turn this percieved weakness into a strength, yada, yada, yada. Kojima at his most patronising there. Or is it actually Kojima, again, talking about himself? It seems to me that a queer reading of this part of the story would seem to be talking about coming out. Coming out (for someone who is struggling with their identity) is exactly that, recognising that you can’t control other people’s perceptions and opinions of you and turning that perceived weakness into a strength.

Conclusion

I want to stress this is all 100% speculation, it’s not my intention to offend anyone, Hideo Kojima included, with this article. I will absolutely take down or edit anything in it to preserve that intent. Please don’t hesitate to let me know on twitter @Sombrero_Kid or via email. Mostly though I hope it inspires debate about what is to me an interesting theory about the themes of the fantastic gay anthem of games, MGSV.

Development Update

I know it’s been a long time since I last put up an update, there’s a bunch of reasons but mainly it’s been because I’ve thought the greenlight build was right around the corner for so long but things that needed doing just kept popping up.

So what have I been doing on Alaska?

Well the main thing I wanted to do before getting the greenlight demo ready was swap in the final characters to replace the dodgy placeholders I’ve been using. To do that I had a lot of work to do but I didn’t realise it. Basically I wanted to be able to use one skeleton and set of animations to control all the character but the characters come from the software I’m using pre weighted to their own skeleton, I spent a long time trying to set up an animation retargeting solution in blender failing, I still feel like it should be possible but I just don’t know how, so I resorted to animating a master skeleton and then for each model moving the master skeletons bind pose to match the models skeleton and then swapping them over, it works fine but it’s laborious. Then I had the issue that the skeletons for the new models are 2 orders of magnitude larger than I need them to be and blender has no way to bake the scaling of them without warping the animations which meant I had to extend my model loader to take in the master transform and bake it into the model at load time, this is working now but I’ve still got a few issues i need to resolve before I can roll it out to all the characters, mainly the walk animation moves the character (rather than letting me move them while the animation plays in place).

After that I’ve got a couple of content & prop passes on the parts of the map accessible in the demo, to get them to a releasable level of quality & block off the rest of the map, after that I’ll release the greenlight build and start working on the trailer for the greenlight campaign which is by all accounts the most important part.

I was targeting this summer for the greenlight campaign but it looks like it’s going to slip to the end of the year.

Unity, Unreal Engine, Source or Roll your own engine: Pros and Cons

I’ve not blogged in a while but I thought it was a good idea to detail the differences between the various engines on show at GDC right now. I’ve had a good chunk of experience with all of the above options (I’ve used Source but not Source 2 ofc.).

Unity

pros:

Unity can roughly be defined as the amateurs Game Engine, you don’t need to know much about programming, there’s a lot of GUI tools and the Asset store is packed with tools and art you can buy rather than make, it’s ease of use and low cost means there’s a huge community and if you’ve got any questions they’ve probably already been answered.

cons:

Almost every feature in Unity is a little beat up, nothing quite works as well as you’d like and so it means polish is that much harder, a few examples of this is the managed run time and garbage collector introducing the object batching problem, audio, networking, and 2D being recent and clunky additions to the engine. Finally the renderer had been stuck in forward renderer land till this week (unless you had the very expensive pro license) and now having finally been updated to bdrf lighting it’s apparent that calling it physically based lighting is a stretch. The roughness term is global to the material and the light probes only seem to give very weak aproximations, nothing like the global reflection found in UE4 and other AAA engines.

Unreal Engine

pros:

Unreal Engine is very slick, like Unity it has excellent tools and an Asset store, the asset store seems to be more sparse than Unity on account of the fact it has less users and it is similarly priced. Programmers can write in C++, meaning it’s extremely optimisable and very fast. You also get the entire source code which helps you understand what’s going on underneath, something that’s quite frustrating with Unity.

cons:

The one thing holding it back from mass adoption is the fact that you need to be a programmer to make games with it. I like C# and love C++, i’m not going to pretend otherwise, but similarly i’m not going to pretend C++ is right for non-programmers, you can’t really muddle through like you can with C#. The UE solution to this problem – blueprints is a dangerous path to take in my opinion on account of the sheer visual complexity they introduce.

Source

pros:

Free.

cons:

Source is generally the worst of both worlds combined with a complete lack of focus on tools and a very ambiguous licensing agreement. Historically it’s only been useful for mods of valve games. It’s C++ but you didn’t get access to the source, it’s tools are awful, no Asset store or anything even remotely similar and the community has all but adandoned it, the forward renderer wasn’t exactly flashy when half life 2 came out and it’s not changed much, except the Dota version did switch to defferd fresnel lighting in 2012 but true bdrf physically based lighting is still no where to be seen. It’s also been difficult to monetise. Source 2 is hopefully a different kettle of fish altogether, I sense Valve are taking it seriously and taking the tools more seriously than they ever have, from the Dota Editor Alpha I’m quite optimistic but there’s also a sense of rough edges that I can’t quite put my finger on, a feeling that valve still don’t fully believe in tools, I don’t expect it to reach the polish of the other 2.

Roll your own

pros:

You can do anything you like. It’s not as difficult as you might think. You can always debug every line and see the root cause in every crash dump. Absolutely free and no risk of losing the ability to put out updates or patches. You can put it on any platform you like.

cons:

You will have to write your own tools and you almost certainly wont have time to put the same kind of effort in that dedicated engines do. It’s not as difficult as you think but it is more time consuming. It does take more technical knowledge than premade engines.

Summary

I hope that’s a decent summary of the pros and cons of the various competing engines at GDC this year, it’s a little unfair on Source on account of the fact that we know almost nothing about the new version. I may have made some mistakes about the features of the various engines, please feel free to correct me in the comments if you see any errors. I’d say as a rule at this point Programmers should roll their own or use Unreal if they’re in a hurry and non programmers should use Unity with Source being a watch this space kinda thing.

Should you or I enter the IGF?

IGF 2015 submissions are due to close in October and I thought I’d blog about my experience last year to A) help me decide whether I should submit again and B) because I wish I’d had a hell of a lot more information about what your $95 actually buys.

tl;dr – don’t enter if no one’s heard of you & your money buys you nothing (I’ll explain this less hyperbolically in the post!).

So the IGF competition basically consists of 3 phases. Submission, Waiting/Customer Support and the Finalists/IGF Awards. I can’t tell anyone anything about the Finalist stage except the ambivalent knowing you wont get nominated but hoping you do is pretty hard going especially when it’s followed by the crash back down to earth when the nominations are announced. The other 2 though I have experience with.

Submission

I remember working my ass off preparing a build and marketing material for the IGF last time around and I wasn’t sure right up until that night If I was going to submit or if it was too early. I did submit & it was too early but getting that stuff together was extremely important for me for 2 reasons. 1)It was the first proper marketing I’d done for Alaska and I learned so much from it and 2)I got more coverage than everything that had come before, albeit not very much, but coverage is everything in this industry. It was a fantastic experience and going through and categorising the competition and realising that you are hopelessly out classed was fun too. I blogged about my predictions here which turned out to be way off but also helped me realise months before the nominations were announced that I had know hope of being one of them.

Waiting/Customer Support

What I mean by that is that once you submit, you will likely never hear from anyone related to the competition ever again and if you do it’ll be to tell you something is wrong or broken. I don’t think anyone will mind if I share the fact that I got 2 comments about my game, both some of my most precious and insightful feedback I’ve had and those 2 comments alone made the whole thing worth it. I was quite disappointed however to learn from analytics in the game that only 4 instances of the game were ran over the 5 month period I was in the competition for.

I WISH SOMEONE HAD TOLD ME THIS BEFORE.

Judges are under no duress to play your game, they are unpaid volunteers. While I’ve learned since that 2 people are assigned your game to play as an obligation and in my experience it was honoured, you can’t expect it. They might just not bother, or boot it up for 30 seconds and move onto something more interesting to them. I’d also like to point out that none of this information is readily available from the IGF itself and I feel like if I’d known what to expect beforehand I’d be able to check my expectations, hence this post.

So the period from October to March basically consist of frantically working on the game and uploading builds in the hope that people notice you’re in active development and check out the game. You get no feedback from the IGF whatsoever about whether or not people are playing or talking about your game & you can only communicate with judges through the build or if they ask a question about it on your page, these questions and the answers are publicly viewable to all judges. Behind the scenes judges can talk privately about your game amongst each other or in a chat room thing. Which is a good thing. Although, as someone who views negative feedback as the most valuable kind, I’d love to see what people have been saying but I understand why this isn’t the case.

Nominations

This is where the IGF starts to perform badly imo, I’m well aware it’s a VERY hard problem to solve and I think it does an acceptable job, but basically as the nominations approach subject specialists are selected, pertaining to the categories and their word re the nomination is gospel. All the other judges just serve to highlight interesting games to this small pool. Bear in mind it’s very likely these specialists haven’t played your game. This is largely down to how the categories work, there are categories for lots of things like audio, writing(sic) and visual art. I don’t think this is helpful and I think getting rid of the technical excellence category was a half step that made things worse.

Suggestions for devs

Here are my tips for submitting if you are considering it.

  • Don’t submit if a lot of the judges likely have never heard of you – There’s just so many games to compete with the judges will be forced to filter your game based on a single screenshot (Remember, they are volunteers!)
  • Don’t Don’t Don’t submit you game if you haven’t put it in front of people before – This should’ve been obvious to me and it really wasn’t but much of my focus on builds while the competition was running was fixing the tutorial so that someone could play the game without me hovering over their shoulder. This was after I’d already blown my 2 chances to grab someone! Don’t do this, seriously.
  • Don’t expect anything – If you go in with low expectations you wont be disappointed when you get literally nothing back. Seriously there’s going to be 600 other games, many of which are well known, great games the judges are already excited about. Last year games like Quadrilateral Cowboy didn’t get a look in, can you honestly say your game is better, better known and as immediately impressive as that!
  • If you are going to submit work extra hard on the trailer and image, make sure it grabs people and something you’re happy with representing your game for the next 5 months. My IGF trailer was terrible, I hate it and it looks nothing like how my game plays or what my game looks like. It was a rush job and I quickly replaced it with a slightly better one but it still has more than half my youtube views and generated traffic long after I swapped it out because sites embedded the initial version.
  • PUT ANALYTICS IN YOUR GAME – This will alleviate a lot of the frustration as you will be able to see how many and how long for judges play and where they fall down, feedback from judges (who are basically some of the best designers and critics in the business) is far too valuable a resource to squander.

Suggestions for the IGF

Firstly I’d like to say I’m well aware the IGF is cash strapped ($95 for 600 games isn’t actually very much money and the prize pool is $50,000 or something). And I’m very grateful to all involved both as a developer and a gamer. But if we don’t help to improve things, they wont get better so here are my suggestions for how the competition could change to be fairer in my opinion.

  • Foreknowledge – A lot of this post is guestimates and reconstructed from talking to judges about how it works. If developers know what they were getting into before hand I think their experience of it would improve significantly (think an accurate official version of this post, detailing, exactly how it works).
  • Feedback Feedback Feedback – while the competition is running it’d be nice to see if you are generating any buzz and how many people downloaded your build, basically as much information as you can without compromising the integrity of the competition, I understand this is a bigger ask than it might seem though.
  • Mandate or make an optional link for some sort of publicly available demo for the public to get in on the action – not the full thing or anything obviously but I’d’ve loved to have got to taste some of the games at last years IGF, lots of them I still wonder about & it’d be nice to get more of a feel for them than 1 image & trailer.
  • No categories, no judging tiers – This is the biggy so I’m going to take a couple of paragraphs if that’s ok with you?

It’s both doable and obvious. These 2 work together to fuel the same game getting nominated for almost all the categories on account of the fact they’re the games the judges like. As a developer and a gamer I don’t like to see the same game in every category. Especially if it’s a game everyone has already heard about or played. I feel this phenomonon is getting worse as the submissions increase and judges are forced to filter out most of the games very early.

My theory is that if all the judges voted and the votes were weighted, so judges like @weetim who played almost every game had more say, it’d incentive playing more games for judges and It’d generate a full pool of lesser known games rather than the same famous games over and over. The categories are pretty meaningless anyway. Games like The Yawg or Dominique Pamplemousse weren’t nominated for the audio category because they had great audio. They were nominated because the judges loved the games (As they should be!). It’d also help developers better understand if they were in with a shot. There was a theoretical 38 slots for games last year and they were filled with 23 games, that’s pretty decent but I think it could be improved.

Backtrack

I don’t want this post to come across as whiny or anything, I’m genuinely writing this out of love for the competition and the indie games it supports. I just wanted to make some suggestions and maybe help out devs considering entering be prepared for what it is. I had no idea whatsoever what to expect when I entered. If I read something like this I expect I would still have entered and I think I’d have had a better time because I wouldn’t have had the expectation that a percentage of the 300 judges would play my game. Like I said before this information is largely reconstructed from talking to judges and trying to peer through the opaque framework of the competition. Some of it might very well be wrong and I encourage anyone who knows otherwise to correct any mistakes! Also I forgot to link to one of the most important things I gleemed from researching how it works so I’ll bang it in here: http://www.matthewwegner.com/igs-2013-soapbox-talk/

At the very bottom of that page are a bunch of stats about last years judges, I’ll relink them here incase they disappear or something. If anyone objects or anything I’ll take them down of course.

entries-all-480x269 entries-top-480x269 entries-contenders-480x252 judges-all-480x256 judges-top-480x256 judges-insane-480x232 judges-tim-480x256

Development Update

Dare Teaser Trailer

Protoplay

It’s been a month since my last blog post, can’t believe how quickly time is going by and I’ve been working exclusively on polish, meaning the plan to have finished the second Act of the game by the end of the quarter isn’t feasible so I’m moving back the projected release date to the 2nd Quarter 2015, as always though and while there’s no pressure to finish it and less time to work on it the release date will move again if I’m not happy with it. I’ve committed to a playable build of the game at Dare Protoplay on August 9th and 10th which I’m excited about as it will be the first time other people play the game and will inform the direction of future development quite a lot.

Why the delay

I’ve been pretty accurate for the most part with my milestones except when it came to the things outside of the games development, which I have next to no experience with. The time it takes to produce marketing material has ballooned lately and it’s thrown off all my deadlines. Fortunately I’ve got to pressure to hold to them and a when it’s done attitude has always been on the cards. tbh I probably shouldn’t be public with my soft deadlines at all but if it helps other devs plan projects it’s a good thing and it costs me nothing.

Exhibit on a budget

poster

I really can’t spend too much money on Alaska development right now and so I’ve been shopping around at where to exhibit and what to spend when I do. Where to exhibit is a pretty easy choice basically divide the amount you are spending with how many people are going to be there and then again by how many devs are going to be there and you get a very primitive cost per mind share metric, I’ve been looking at a few options between The Scottish Games Expo, Dare Protoplay, Rezzed, EGX and Develop. For me the maths don’t work for any but Dare Protoplay and EGX, The Scottish Games Expo was too new, Rezzed was too small when compared to EGX and Develop had a low public to developer ratio. Protoplay being the clear winner because it was free and being in Dundee will help me practice for any future exhibitions I go to.

So now I’m taking the game on tour what do I need to exhibit it. I settled on an A0 banner and t-shirts for exhibitors as well as my business cards and the game of course. I’ve already had the banners made up and they’re actually very cheap if you are on a shoe string and add a lot of professionalism to your exhibit. The T-Shirts weren’t that cheap as far as t-shirts go but I think it’s a good idea and I got them from Zazzle which means I can add them to a store page and other people can buy them too! The store page is at http://www.zazzle.co.uk/ratusapparatus* and will include other themed products like mugs too. I’ll be adding the store to my site soon.

What to prioritise

When exhibiting it’s important to have a build people can play easily without your input and that means, tutorial, gamepad support, and polished signaling. On top of that I will be filming people playing which I hope isn’t a problem for people, at the very least I will be watching and taking notes because the value of having other people playing your game is incalculable.

So if you’re around Dundee on August 9th & 10th come along and play the game! Give me feedback and maybe I’ll make a decent game! it’s also likely the first and last opportunity for anyone outside a select group to play the game for quite some time. EXCLUSIVE!

Development Update

Quick development update because it’s been so long since I’ve posted one, the primary reason for that isn’t that I haven’t been working on Alaska, it’s that working on Alaska, Family stuff and other issues I’ve got going on right now have left me WAY too busy to blog! Not to mention my annual Dota 2 International & Steam Summer Sale distractions that slow development down every summer and give me the R&R I need to go at a breakneck pace the rest of the year.

That stuff is all largely sorted though and I have got things to post about from my plan in the last development update I got almost all of it finished the only part I’m still not happy with is the notification system which is still too easy to ignore and the tutorials, which I’m currently thinking would serve the player better if they were in the world beside the objects they refer to. It’d mean they were easier to ignore when you’re not interacting with that object and harder to ignore when you are, people have a tendency to filter the HUD entirely when they are focusing on a task and I’ve found that had prevented people from reading the tutorials, I’m hoping this system helps point people in the right direction.

I’m also working on the notifications, adding the most recent text to the HUD until you dismiss it, currently by going into the notes section of the UI although I can foresee issues with that approach and might do a timed dismiss or add an easier way to dismiss them.

The final thing I’ll be adding is final map sections for the players ship, there is a bedroom and lab on the ship which haven’t currently been implemented and a basketball court on the station which also hasn’t been implemented, also I haven’t added any toilets at all and being an immersive sim tradition (along with the basketball court) It feels wrong to not include them.

Implementing the font system actually required a lot more work on the renderer than I anticipated, the previous font system was stateless, a major weakness, in that you couldn’t use shaders to manipulate it which has a lot of ramifications, including not using the same object space as all the other geometry, it had to be in a 2D plane on the screen. Rectifying that however introduced a problem, everywhere a font was used in the code with the new system would flip GPU states and cause the renderer to barely function after it was switched on and I went about introducing the fix.

The first pass on the fix was to swap all the state change code for state pushing and popping code and use a state stack. State stacks are common in graphics programming because there’s a lot of driver overhead in switching states and a stack can be used to help minimize that. The first pass on the state stack just set a state as it was pushed and set the previous state when one was popped, simple and SLOW! I couldn’t really live with making the engine even less efficient so I wrote some code to manage the states better it involved setting the state based on a comparison between the current state and the one on the top of the stack at draw time, meaning a push and pop without a draw between cost nothing in GPU terms.

After that I noticed I was currently creating the states as I was pushing them, even if an identical state already existed, which is also a source of a lot of slow down. I implemented a system where a state would be created once and reference counted between all duplicate pushes and common states where created once at start up, minimising both the number of states being used at once and the number of times a state was created, the system works well and is a good balance between not having to worry too much about the GPU state in game code and optimising the state switching. I still need to implement a depth peeling system to deal with transparency which will allow me to bucket the states better and reduce switching further, but that will affect the game code quite a bit so is less clear cut for wins/work.

I plan to have something to show in the next update after quite a long series of dry updates, it’d be nice to have  a new animated gif or two so I’ll hopefully get a chance to focus on something visual over the next couple of weeks.

Think big or go home

No matter where you go in the games industry you’ll find countless people telling you to start small “make something manageable that you’ll get done quick or you’ll never finish it” is the accepted wisdom but I believe this is bad advice and I thought I’d write a quick blog post detailing why you should think big when starting any project but especially your first.

You only make an entrance once

Fart Jokes and Lucas Arts

Your first game tells people who you are, what your studio stands for, it’s dissonant to go against your established brand and it’s hard to get across. If Dan Marshall was to make a game about the Holocaust, not only would he be starting from scratch to find a new fan base but his existing fan base would be confused about how to take it. This is why you should treat your first project like a mission statement. Dan Marshall started with toilet humour up front, Mike Bithell started with a great story, Rami Ismail made a game with nothing but mechanical depth. You could do the same but for what it is that you are passionate about in games.

Passion is Art

On the topic of passion, it’s an excellent idea to make something important, not just to you, to the world. I’m not saying it has to be something that turns heads it just needs to be something that YOU think is important to the world. The reasons are three fold, it’s something you can be proud of, it helps motivate you and it is what differentiates you.

If you’re starting out on your own it’s hard, it’s far easier, in fact, to just make something terrible on someone else’s time and get a wage. The thing that you do get, that you don’t any other way, is a game you can be proud of, a game you can show people and tell them you made it without feeling a little embarrassed or deflated, something you can hold up as an example of why games are important.

Motivation on a project is probably the most important thing and the reason people tell you to start small is because they assume you have a small, finite pool of motivation that is fixed regardless of what you work on and this is not true. Take it from me, I know this first hand, It is actually harder to finish a 2 week project you never had any interest in than a 5 year magnum opus you that came to you in a dream and just won’t let go of your attention.

It’s impossible not to be excited about this game.

Differentiation is one of the most important things in the modern games industry without it no one will ever play your game and being passionate about it is going to differentiate you for two reasons firstly if it’s something you feel is important it’s probably also something that’s not being made by someone else, the idea here relies on the potential that if you think it’s important you might find other people think it’s important too and that will differentiate you big time. It also differentiates you because the passion and energy will come across when you talk about it, consider as an example Gaslamp Games and Clockwork Empires. That game has gotten press and the public excited in a huge way despite few people having played it and the game barely existing  at all in it’s current form, the reason is because the project is ambitious and that ambition fuels passion in the developers in a way the press rarely see and that passion infuses the game in a way that transmits to the public when they read about it. The previews of that game sound like the game, the developers and the press are all in a state of hyper excitement and passion can do that for you too.

Think big, cut regularly

I touched on motivation earlier and thinking big increases motivation because you are excited about it, true, but it also helps with motivation in another way. Motivation is a plastic thing, sometimes you have tonnes of it and you get lots done without very much effort and other times you feel stuck and slow, like you are working in tar and it’s hard to get out of this frame of mind, it’s happened to me a few times working on Alaska and the only way I’ve found to unstick myself and get a fresh perspective on the project and a new burst of productivity is to cut some things from the design, all of a sudden the end seems much closer and you feel like a 10,000 meter runner suddenly seeing the finish line, this kind of pace management is much harder to do when the design was razor thin to begin with but of course there is truth in the theory that you might not need these techniques if you think small. It is my opinion though that this kind of pacing is essential to building the stamina needed to complete a large project and if you think small you haven’t exorcised the muscles needed to complete a large project at all.

The herd is fucked

I don’t want to be one of the people spelling doom because there are more games being made than ever, this is a good thing, it’s a great thing. Games will get made that satisfy all sorts of weird niches and maybe they’ll be niches we enjoy, who knows. Saying that it’s the single most important thing a game developer can do to break any from the pack. You need to do something other people don’t and making something small is easy, anyone can do it and everyone is. If you really want to set yourself apart the best way to do that is, the surest way to set yourself apart is to put a fuck tonne of work in, so that when people look at it all they can see is sweat and blood. It will move people from just glancing at it to giving it a chance more consistently and more reliably than any other way I know, beyond spending a LOT of money advertising.

 

Hopefully that was useful to someone and who knows maybe convinced someone to make an art game rather than an endless runner with in app purchases and ad’s as a vehicle to fund something that they will never make because unremarkable things so rarely make any money. I’ll end on one of my most popular tweets on twitter –

Development Update

As part of my relentless match to a release quality playable demo, I’ve been working hard on some underlying tech issues and feedback that were considered good enough for whiteboxing but definitely not good enough for the public.

The Key parts of this I’ve been working on:

  • Audio
  • Fonts
  • Player Movement/Control
  • Navigation & Signaling

Audio

Something quite obviously missing from the Engine all this time has been any audio whatsoever. Audio in Alaska has taken a back seat to Graphics, AI and other features because it’s not going to be integral to the experience, good audio is extremely hard to get right as people notice even slight defects in the production process. Which is why it’s not a great idea to focus on it if you know you aren’t going to be able to do an excellent job. Doing an excellent job costs a lot of resource and expertise. Saying that, no audio whatsoever is jarring and people find it difficult to engage with a world without it. So I’ve implemented a basic sound system built on Open AL which currently only supports RAW audio. It suits my needs for the time being but I will likely extend it to be able to support a container format like ogg later.

Fonts

I’ve been using the inbuilt Direct3D font rendering tech to draw text up until now and it’s unsuitable for production for serveral reasons:

  • It has no shader pipeline support
  • It’s slow
  • It requires a draw a draw call to get metrics about a piece of text for formatting

For these reasons I’ve always had a mind to replace it with a better solution, Microsoft would prefer me to use Direct Write but as I’m switch from Direct 3D to Open GL later on I don’t want to couple myself to DirectX any more than I have to, so I’m building a solution with FreeType, which will enable me to use platform agnostic code to prevent me having to port the font code in future. This work is preliminary and I’ll likely be working on it over the next couple of weeks.

Player Movement/Control

For player movement I’ve been using bullets built in Kinematic Character Controller, which is not really considered release quality. I’ve had a couple of issues with it, mainly the player sliding down slopes and not being able to climb steps at low speeds. On the plus side it being open source means I can take it and make it work properly. I’m still working on the slope problem, but the step climbing problem was the more serious one. It meant I had to increase the player speed to levels that didn’t fit the pacing of the game and made it hard to position the player a comfortable distance from the screens in the game, as a result I got a lot of feedback about not being able to use the screens, the screens being too small or fiddly. When I came to make the screens bigger as part of the feedback I realised that actually the screens were a good size the problem was entirely sensetivity. I added a mouse sensetivity option and set the default to half what it was before but to give more sensitivity to the player position I had to slow him down to a sensable speed, losing the ability to climb stairs with the current controller. So I had to fix the stair climbing bug. It took a lot of digging through the bullet source code to find the issue but I tracked it down to the players step code sweep code not detecting collisions with short casts, probably because of floating point errors, so the solution was to change the step code to function with longer casts.

Navigation and Signaling

In my playtest feedback the tutorial, a very short low friction introduction to some of the basic mechanics, is holding players up a lot.

Some of the issues i’ve been seeing include:

  • Ignoring the tutorial text
  • Succeeding a tutorial without realising
  • Misreading the lights cutting out as a bug
  • Not reading the “notes” which are designed to provide hints about how to progress

I’m reluctant to force players to stop and read the tutorial text with a fullscreen popup, so currently I’ve simply increased the size of the tutorial window to make it more prominent, if later metrics show it’s still a problem I may force the text. I’m well aware of the weakness of using popups to train the player and I’ve worked hard to make a lot of the training implicit with the tutorial text as a fallback, my feedback seems to show that I’ve been successful at this as a lot of the basic controls were immediately obvious to the players.

As for succeeding a tutorial without realising it, I think this is an area where the tutorials are defined to broadly. The tutorials are currently satisfied if, for example, you pick up an object, but i’ve always intended them to provide a kind of breadcrumb structure. I wanted you to pick up a specific object but picking up any object satisfied the tutorial. It meant players veered off the course of the very linear tutorial (the rest of the game is very open but the tutorial is supposed to be linear to give you that elder scrolls moment when you finish it). So as a result I intend to reign the tutorial in even tighter, It really is something I want the player to glide through without any kind of friction in order to get to the world exploring as soon as possible.

The lights cutting out have been misread as a bug by several people and the reason is because it looks random and isn’t grounded in the world very well at all. One of the main reasons for this is the lights flicker in intensity randomly and there are no audio cues. I’ve already added an ‘shockwave’ push to the swing door, to both signal there was an explosion and that the swing door is a swing door unlike the other doors the player has encountered. I’m in the process of changing the lighting from going nuts and cutting out to slowly powering off and then the red dim emergency lights cutting in as well as adding a sound to the event.

The players haven’t been reading the notes in the diary when they are prompted I need to push them harder to look at them as it functions like a hint system for when you are stuck I intend to do this by rendering the last received note on the HUD until the player looks at the notes and adding this as a toggle in the options menu. I’m not a fan of HUDs and I’ve been trying to get by with zero HUD but as time has went by I’ve added a few things to it, like signalling when the player has a phone call or wifi access because I’ve had no sound so far, I couldn’t use audio cues nor do I want to rely on audio cues because I want it to be accessible to hearing impaired players, I will likely add a toggle for audio and visual hud cues to the menu also.

 

As well as continuing to work on these issues I’ll be adding sounds to the engine next and adding radios to the world that play music, I’m hoping to make the radios play a stream from a real radio station but I need to make sure the licensing allows for it and so far I haven’t found anything suitable.