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.

Development Update

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.

Flow Diagram of the Tutorial, Act 1 & 2, Blurred to avoid spoilers.

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

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.

The downside to Unity

I’ve been hearing a lot of people talking about Unity lately and I know a LOT of developers who’ve moved over to Unity to develop their games and this is a good thing, for now…

What is compelling about Unity

The reasons for developing with Unity are plenty and well documented. It’s Rapid Prototyping capabilities are legendary and I’ve used it in this capacity several times. It has a comprehensive built-in library of tools and content, it has fast edit and continue capabilities, is seamlessly multi platform and by using it you will be tapping into the largest development community available and will be safe in the herd mentality sense.

With a list of positives like that there is a strong case for using Unity especially if you don’t have the skills to produce one or all of it’s many features, which is likely. Either you’re no artist or you’re no programmer with Unity neither of those are reasons not to make a game. This fantastic from my point of view both as a player and as a developer looking for a wider pool of developers and games to cross-polinate with.

 

The downsides to Unity

I’ve used Unity to develop prototypes but I’ve never used it to take a game to completion, I’ve spoken to many devs who have though and all cite the same problem, a problem I’m very familiar with from the bad old days of j2me development, Memory Fragmentation and Garbage Collection. There are ways to deal with this problem that were standard practice in the bad old days first among those was banning memory allocation at runtime, instead assigning objects from a pool of preallocated objects, Static Allocators and Memory blobs are easy to use in a native manual memory managed environment and it’s easy to see Unity maybe making the Garbage Collector optional at some point and so when I talk about the downside of Unity, I’m not talking about Memory Management.

When I talk about the downside to Unity I’m referring to the fact that it is proprietary and fundamental to the operation of the game. In the history of game development Unity has most in common with flash and XNA, both of which were ultimately unsuccessful because of the actions of the technologies owners, Adobe tried to heavily monetise flash and Microsoft forgot XNA existed much like it does with everything it makes. Right now Unity seems to be built by people with the community’s best interests at heart and I hope it continues. But if the technology was ever brought into a greedy organisation like Adobe or an organisation like Microsoft who’s attention is divided to say the least there is no telling where that might leave your game. It concerns me that we seem to have not learned from the mistakes of depending on flash or XNA and that Dan Marshall might be left out to dry again or Robert Briscoe might have to port Dear Esther again!

 

Please don’t shout at me, I’m not saying Unity is bad!

So in summary I personally wouldn’t and don’t rule out Unity development but the many arguments in it’s favour must always be weighed up against the risk of losing the right to change or build your game, target new platforms or even update it to support the progression of existing platforms.

Development Update

To solve the murder, you will have to find out what this machine is.

I plan on posting more regular development updates from now on detailing what i’m working on and where i’m going with it to coincide with my screenshot saturday posts.

This week I’ve mostly been working on a system where if an NPC is sleeping you can still talk to them by going to their room and pressing the call button, they’ll answer the door and let you talk through your dialogue tree with them. I’m also adding a system where you can sleep to fast forward time, the UI for setting how long to fast forward to is an alarm clock on your phone. Finally I’ve been ‘writing’ the dialogue for the ending of the first act.

Things i’ve still to do before the next build are:
-Polish Pass on Act 1
-Make the Encyclopdia work, any datapads with historical background go here, like Mass Effect.
-When you meet a character their profile is added to the Contacts App in the Phone, and stores all the information you have on that person.
-Add Google Analytics
-New More Polished Trailer

Then I am going to begin work on a Greenlight Campaign.

What I’ve learned so far about getting coverage (nothing)

So I’ve not posted in a while for 2 reasons: my new son Alex taking up all my time and I’ve been working hard putting a build together in order to entice the press into writing about Alaska.

Development Update

The game is progressing nicely, it’s a 2 or 3 act game and the first acts core content is finished but in a rough state and I’ve split my time between polishing and developing it. There’s still a long way to go before I’m happy with it but there is enough game there to know I’m going to be happy with the final product. Coming up now, I need to write the second act dialogue and puzzles and QA the first act and make sure it’s paced well, I’m not, nor have I ever been, interested in making a difficult game and so sanding off any sticking points is important.

Public Relations

As expected I didn’t get nominated for the IGF and so 2 pieces of the distribution puzzle are still not in place: A steam deal and press coverage. I’ve been working on polishing a build a bit to try and get some preview coverage or at least an announcement trailer post. I put out the press releases this morning and as usual absolutely no one posted news on it. It’s tough because I know that there are hundreds of emails going into these inboxes and I am British so don’t believe in being too pushy and waiting your turn, tweeting them or sending follow up emails to me is pushy as well as contributing to the noise and making the journalist think you feel entitled to PR. On the other hand I know I my game was more gimmicky I’d have an easier time catching peoples attention but that’s really not the kind of game I want to make and I have to make those kinds of compromises in my day job far too much to let it spill into this.

So in summary I think the truth is, press releases as an unproven indie, don’t work. They only serve to waste your time and clog up journalists inboxes/make them feel under pressure. Something I’ve got no data on yet but I’m intrigued to find out about is how this would change if I had a kickstarter or greenlight. I don’t believe Alaska is a good fit for early access due to it’s narrative dependant gameplay, imagine you’d played a buggy half finished version of gone home with dodgy programmer art before it was released. However greenlight is an option and I’m probably going to start working towards one now, especially since I know I want a steam deal and it’s now the only avenue available to get there.

The doom and gloom about press releases aside, I have learned that there is a much more effective and easier way to getting noticed than spamming journalists email accounts & that things like screenshotsaturday.com and simply submitting the game to the igf, all the coverage I’ve had so far was from those 2 channels and I think going further down that route by posting on forums about it and most importantly of all turning up to industry events which I have been utterly abysmal at, on account of having a pregnant wife for virtually 2 straight years as well as the resulting family, i’m going to try and balance these better in the future by going to industry events, but taking it out of dev time, not family time. Hopefully it pays off and hopefully this will be helpful to other people starting out.