Bytesize Adventures
Crafting bite-sized digital worlds

AltDevConf 2012 – My Experience


This weekend I attended AltDevConf, an online game development conference. Their aim is to break down the geographical, and financial, barriers that prevent people from attending game conferences and provide free content from leading experts.

AltDevConf is a spin-off of AltDevBlogADay, a blogging website setup by Mike Acton to encourage game professionals to blog more (Inspired by Miguel’s very own iDevBlogADay).

You can checkout the conference schedule here.

There are a total of 23 sessions split across three tracks – Programming, Education, and Design & Production. Here are the sessions I attended…

Saturday

  • Design & Production: Intro to Producing for Mobile: how to “go indie”, actually ship an app, and not die.
  • Design & Production: Scrum Bowling: Agile Production Methodology for Indie Teams and Student Projects.
  • Design & Production: How to create a positive online game developer community.
  • Programming: Control, Configure, Monitor and View your game engine from the web.

Sunday

  • Programming: Understanding the second generation of behaviour tress and preparing for challenges beyond.
  • Design & Production: Effective PR, Marketing, and Community Management in the Indie games space.
  • Programming: Games Tools as a WebApp: Lessons from Insomniac’s Next-Gen Tools and Engine.

Design & Production: Intro to Producing for Mobile: how to “go indie”, actually ship an app, and not die

Speaker: Evangeline Marzec

There was some good information in this talk. Its a fairly emotive subject since so many people are now jumping on this bandwagon. The session very much focussed on the business side of App production and ensuring you build a stable business first and foremost.

Some general notes I made…

– Cycle through 100 good ideas in order to find a great one.

– Give Luck a small role in your business.

– Define success and failure for your business. These are important for knowing when to continue/quit.

– Choose tools wisely. Don’t choose tools that will require the production of expensive assets (Unity was used as an example).

– Focus and market research and know your competition. Also mentioned was not developing Apps in a niche that appears dead.

– iOS first, port later. I have to say I’m not sure about this one. The speaker was making the point that Android only represents on hundredth of their iOS revenue. I think it depends entirely on the experience you’re creating though as to which target platform you choose.

– You need a minimum of $2k to make an App! This one hit a bit of a nerve for me and, if my twitter stream is anything to go by, other indies too. I checked with the speaker and included in this figure is assets (sounds etc), minimal hardware, license, middleware, and time. That last one is where the figure seems way off. The speaker put developing an App at anything from 3 days to 2 weeks. My experience is that a well produced game/app takes a minimum of 6 months. I guess it totally depends on how you value your time.

In all fairness, this is one persons view and its clearly working for them because they’re running a successful business (something that I certainly can’t say is true of my Apps/Games).

– Get a good book keeper. Pay someone else to do this so you don’t have to.

– Backup your data and keep records.

– The speaker also shared some financial stats. Their first App made $947 in the first week (due to an Apple feature). The second made $12 in its first week. Their 3rd App made $0 in the first week. I wasn’t able to get any more information on this but this seems to reflect the kind of stats I see and hear about. The App store is getting more and more competitive and more difficult.

– Know when to walk away from a project. Couldn’t agree more – See my own iPhone game graveyard.

– Pay yourself a salary and allow yourself a bit of luxury.

– Get a mentor.

– Do what you’re good at.

Design & Production: Scrum Bowling: Agile Production Methodology for Indie Teams and Student Projects

Speaker: Margaret Moser

The speaker mentioned that they haven’t followed Scrum to the letter and have instead rolled their own – specifically rolling up sprint reviews, etc into a single mega-weekly-meeting. I think this is important since Scrum reviews are designed specifically to improve/tweak the Scrum process to better fit your company/team/project.

Some general notes I made…

– SMART tasks – specific, measurable, agreed upon, reasonable, tied to a specific time interval. Your tasks should meet these criteria.

– Estimate each team members availability each week since this changes depending on commitments.

– 81 attendees. 14% of attendees were familiar with Scrum. Some openly dislike it. I asked how many were managers vs dev – 13% were managers vs 37% devs. I was wondering if there was a correlation between who disliked Scrum and their role within a team.

Unfortunately we lost the speaker at this point. Mike Acton stepped in and chatted a bit about his own experiences with Scrum.

For my own part, I introduced SCRUM at work so I have some experience with this. Personally I think its a good development methodology. I think some people expect it to be a silver bullet, which it isn’t. It takes hard work and effort to get everyone engaged with the process. What it does though is give you better control/metrics for making educated responses to project progress and it increases accountability and engagement.

Design & Production: How to create a positive online game developer community

Speaker: Ryan Arndt

This talk focusses on tips about maintaining and growing a community. I have to confess that I didn’t get quite as engaged with this talk because it just didn’t resonate with me. The talk itself was very well presented though and, if you already have a product with a semi-engaged community, it contained some useful tips.

Here are my fairly minimal notes…

– A community doest maintain itself

– Inclusion. Welcome people

– Engage with people on their platform of choice. Don’t expect them to move their communication to a single central place of your making.

– Arrange community news/events (https://www.igda.org/gamejobshashtag)
– Crowdsourced contests
– Casual/light – community shouldn’t take itself too seriously.
– Ask open ended questions
– Share positive content (e.g. when game does well)

– 3 strike rule for banning.

Programming: Control, Configure, Monitor and View your game engine from the web

Speaker: John McCutchan

This talk was really interesting. So interesting in fact that I didn’t take quite as many notes as I would have liked. Moving tools and monitoring to the web is something that I’m really interested in. You probably know that I’m creating web based level editing tools for my next game. Its great way to remove the constraints of traditional tools. The talk was really engaging and very clearly presented.

Here are my notes…

– Simple to create GUI’s

– Reduced interation time

– Don’t need to be physically near the tools

– Webgl caching, live performance monitoring, live editing, remote viewing.

– For remote viewing, achieving 30FPS at “good enough” quality – 2MB/Sec though so too much bandwidth remotely, ok locally.

– Web based means easy to update, approachable, easy to demonstrate game changes, browsers getting faster every year

– Why web socket? New web app protocol, TCP connection with tiny overhead, message based, bandwidth reduction.

– Why JSON for data? key->value, easy to parse, text based.

– Interface – JS generates all HTML dynamically.

– How?
– 1: API for engine tools
– 2: expose API as JSON over web socket
– 3: build engine tools as web App

– Thinking of porting to Dart due to JS limitations.

www.johnmccutchan.com

[youtube=https://www.youtube.com/watch?v=sVHEWB_H_wU]

Programming: Understanding the second generation of behaviour tress and preparing for challenges beyond

Speaker: Alex Champandard

This talk was all about behaviour trees. The talk focussed predominantly on code based examples, reviewing 1st gen vs 2nd gen trees. It was certainly interesting although I’m not sure when I’ll have the opportunity to employ something like this – unless its just for fun of course :)

Here are my notes…

– 4 prototypes shown – 2 first gen, 2 second gen.

– They’ll be open sourced later in the year on github. For now check out https://aigamedev.com/

– Motivation – behaviour trees are everywhere (halo, spore, red dead, etc). Used in AI, squad logic, animation etc.

– 1st gen vs 2nd gen – behaviour trees changing fast. having to due to complexity of games and expectations.

– MoveToCover (action), hasAmmo? (condition) – both behaviours

– trees are comprised of sequences (fixed lists of statements) and selectors (conditional branching). A sequence happens in order – failure breaks it. A selector tries all children – individually report success.

– More selectors at top of tree and sequences later in tree.

– That is simplest form – each NPC needs a new tree (memory issues).

– Nodes and tasks.

– 2nd generation. Specialised interpreter for processing behavior trees (rather than relying on pure C++)

– Shown 2 examples, Data oriented behaviour tree and Event driven behavior tree

Design & Production: Effective PR, Marketing, and Community Management in the Indie games space

Speaker: Erik Johnson

This was a really interesting talk. Most of what was highlighted wasn’t particularly revolutionary but it was helpful having it brought together and hammered home (with examples). I particularly liked the focus on engaging with the community and leveraging word of mouth (your community become you game evangelists).

Here are my notes…

– Respect customers. bad example of this: https://www.penny-arcade.com/resources/just-wow1.html

– Dont be defnsive and dont take things personally.

– Let customers know someone is on other end of line.

– Members may become evangelists for your company.

– Website, blog, forum – should do this as minimum. As long as you maintain them otherwise dont expect them to be active.

– twitter, youtube, facebook, google+, indiedb, reddit, n4g, etc.

– Be open with development

– Consider public alphas, betas – https://www.wolfire.com/

– Be creative/human – find out what community is into.

– Exposure – podcasts, lets play videos, local media etc

– Let peers know about your game to help spread the word

– Research where to reach your potential audience (niches etc)

– Dealing with press – be unasuming, frank, generous (screenshots, interview, keys etc)

– Organic marketing – open development, word of mouth

– Malleable marketing throughout dev process – go with opportunities, change marketing plans to fit, trial and error, know whats appealing about your game (especially what others perceive as appealing – highlight these in your marketing screenshots etc), trust your instincts.

– Take risks, get creative. Bundles, etc

– Tie it into the game content – e.g total crates collected tied into content releases.

– Know when to shut up. Leave people wanting more. Understand balance. Keep a few aces up your sleeve – leave stuff for people to discover.

– Consider price point – no permanent price drops in first 6 months

– Consider platforms, promotions

– Exhibiting (show game off), kickstarter

Programming: Games Tools as a WebApp: Lessons from Insomniac’s Next-Gen Tools and Engine

Speaker: Mike Acton

Along with the web monitoring tools, this was the talk I was most looking forward to (because its so relevant to my current game). It certainly didn’t disappoint and was interesting throughout. I picked up some interesting tech to look into that I hadn’t considered and it also confirmed my choices in some cases. I would have liked to have seen more of the tool demoed but you can’t have everything right :)

Here are my notes…

[youtube=https://www.youtube.com/watch?v=i_iTzYoAPXY]

– Picked single browser to avoid browser cross compat issues (Chrome)

– 3D window is custom plugin

– Tools are html and javascript

– Forward thinking. seemed to be where future lies. expectations of new developers.

– Forces data division. Avoids hacks.

– UI dev costs are lower (JS and HTML)

– Opens development up to programmers outside of traditional engine/tools team

– Not a mature platform yet so difficulties exist not present in traditional tools dev.

– Challenges part and parcel of game dev. learn as we go. better to do it now.

– Web server on each client machine (Mongoose) with asset db (MongoDB), asset files (backups stored on disk), source files (referenced), file tracker (tracking changes), build manager (managing build process), comms via REST, UI (html5, css3, js), scene editor (native plugin), scripts. Also shared server (logging, help/videos,feedback system,asset comments).

– Had considered flash (years ago) scaleform. Also used to have a standard stack apache/mysql but installation etc too time consuming.

– Asset updating was on-demand, now immediate

– Scene editor (native plugin) – will run any native application (security fine because its internal)

– jQuery used but building custom controls (rather than prebuilt components such as from jQuery-UI).

– Difficult Q’s – File naming, auto-saving disconcerting (switched to manual)

– Installer was difficult as was fighting some of the built-in browser security (xss)

– Undo/Redo was difficult

– Had to build in ability to bring down/up individual system components

– Had to add login to track who was using tools

Conclusion

Overall the conference has been excellent. Very well organised and, despite some technical hitches, things ran very smoothly. I was expecting much more latency and technical issues that simply didn’t happen. Its a credit to the organisers and all of the speakers.

You should definitely make room in your diary for this event next year. Its fun, free, and a great opportunity to learn something new.