Queer reading Metal Gear Solid 5

09/09/2015

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

14/08/2015

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

05/03/2015

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?

20/08/2014

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.

Development Update

22/07/2014

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-1024x686

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

23/06/2014

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

15/05/2014

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

benthere-1

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.

news32467_4-clockwork_empires_announced__steampunk_citybuilder_from_dungeons_of_dredmor_developer

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

05/05/2014

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.

Development Update

12/04/2014

There are 4 areas I’ve been working on this week:

  • The flow diagram of the second act
  • Dialog with Asher that links the first and second act
  • Bug fixing and code cleanup
  • finishing the encyclopedia functionality and updating more UI elements to the final UI

 

Story

The way I’ve been working on the plot for Alaska is firstly I had a general outline of what I wanted to happen, mainly based very heavily on games, films, tv shows and books I like. Those influences are primarily Blade Runner, Pathologic, Twin Peaks and Philip K Dicks books with Faustian themes, like Galactic Pot Healer and The Three Stigmatas of Palmer Eldritch.

I then broke the game into 3 acts, despite my belief that the 3 act structure is wholly unsuitable for interactive narrative, it’s actually really difficult to break down a story any other way when you are a complete amateur, so I’m trying not to bite off more than I can chew with the writing.

BkuhvM_CYAAiTGX

So dealing with each act 1 at a time I will draw a flow diagram of all the Key/Gate verbs in the Act and then go about implementing each one and marking it off on the chart as I go, as part of the flow diagram I will often write a chunk of supporting narrative that may or may not end up exposed in the game but is justification for peoples actions and when I come to writing dialogue in any of the steps on the flow diagram I will usually do the same and write backgrounds for the characters and justifications for what they say and try and give them more than just one dimension, again even if it’s never exposed to the player.

So I’ve been doing that this week and it always makes me feel hugely out of my depth because unlike with the Art, which was more lack of interest than ability, I’ve never had an aptitude for writing and I don’t think I ever could. So after working on story stuff it’s always good to go back to the easy, comfort zone stuff. That being coding and UI grunt work.

 

Bug fixes

The code isn’t very clean at all, one of the reasons it’s not open source right now is I need to go over it and clean it up before I’m willing to let people see it. One of the most important rules I have that I just can’t get myself to adhere to is no code in the header file. No matter how important I feel it is I just have a bad habit of not creating the cpp file when I make the class, so all the code goes in the header and compile times plummet. So with a mind to speeding up compile times after reading and implementing the recommendations in this blog post by Bruce Dawson, I decided to set about moving all the code that shouldn’t be in the headers into cpp files and it makes me feel a lot better about the code cleanliness.

Second on the agenda was fixing some of the known bugs. There was a boring issue where there are 2 ways to pick up an object, one is by holding it in front of you and moving it around and the other is by putting it in your inventory and I had to make sure both these methods were supported for using objects on other objects. My favourite bug so far was where you could put NPC’s in your pocket, carry them around and then drop them off elsewhere which was a trivial fix. and there was a fairly harmless buffer overflow when reading files from an ifstream that meant some of the text in the game ended in garbage strings in release mode. Buffer overflows are fairly common in code and are usually harmless, especially in a game. They can cause things like the heartbleed exploit everyone’s banging on about these days but for my purposes it’s good to get rid of it because it can mangle the heap if you’re unlucky.

Finally keeping visual studio in check requires a lot more work than it used to, I link statically to the c runtime which means I need to build all the libraries to link statically to it too which means they need to be static libraries because dynamic libraries don’t always link well to the static runtime, also since switching to visual studio 2012, I’ve had issues with conflicting versions of direct x in this new windows sdk it’s started getting bundled with which effectively stopped gpu debugging tools from working so I’ve had to fix that by being very specific about the order they get included and linked and where they get included and linked from. Lastly Visual Leak Detector has been reporting false positives since I upgraded to 2012 and it’s made keeping on top of leaks difficult, updating to the new version of vld rectified that though which means I can be certain there are no leaks again. All of this is very boring, very time consuming stuff, thanks Microsoft.

 

Encyclopaedia

most of the work on the encyclopaedia, as with all the menus is in lua, but there was one thing missing from the menu system that I hadn’t gotten round to implementing – scrollable button lists. There is already scrollable text boxes and it was quite simple code it affects the inventory too which, before, had a maximum size. The other side to the Encyclopaedia is building the UI elements needed.

 

So that’s everything for this week, No screenshots again this week because as you can see everything I’ve been working on has been pretty bland, I’m  certain there will be new screenshots over the next couple of weeks though, as I work on new stuff. I will finish up by linking to all my coverage I’ve had so far though because I’ve been meaning to get them all in one place for a while now.

http://indiestatik.com/2013/10/25/igf-entries/

http://indiegames.com/2014/02/_waldirs_inferno_by_jeni.html

http://www.indiegamemag.com/screenshot-weekly-alaska-iubes-the-last-federation/

Thanks to all those guys for the coverage, it’s hugely appreciated.

Development Update

05/04/2014

I’ve not had a chance to post development updates the last couple of weeks because i’ve been busy, I have a small list of things to work through before I put out a Demo, Trailer and Greenlight campaign.

Primarily I have been working on getting the UI up to date with the new style and removing all the programmer art, it’s an ongoing process and there’s still lots to do. Part of that is connecting up the functionality for the Mass Effect style encyclopaedia that reveals background details about the setting as the player explores and the Contact screen which holds all the details you know about the NPC’s you meet as you find out about them.

I’ve also been writing and implementing dialogue for some of the NPC’s, I hate writing the dialogue because I know how important it is and I don’t have a clue what I’m doing. I had initially planned to have a relatively small selection of dialogue options and present them all to the player all the time, rather than having them tunnel through a tree, but this approach means you need to be quite careful about constraining the conversation too much and not getting to flesh out the characters enough. I’m still going to persevere with this approach as I don’t think ‘exploring’ a dialogue tree is very fun, but if it turns out later that I need a lot more dialogue than can comfortably exist in one menu, I might switch.

The other thing I’ve been working on is Google Analytics implementation in C++ using Microsofts Open Source Cross Platform C++ REST API. I’ve already uploaded the Google Analytics code to GitHub because I think it might be valuable and it’s small and clean. I intend to flesh it out further as time goes by, currently it only supports Events. Analytics is something in mobile we take for granted and is invaluable for measuring all sorts of aspects of where our game is failing the players. Most big studios have their own Analytics solution for their games but Google Analytics is fine for my needs and will help me learn more about how people play my game in the absence of any kind of testers.