AltDevConf is an online community-driven conference that will take place February 11-12, 2012

We aim provide free access to a comprehensive selection of game development topics taught by leading industry experts, and to create a space where bright and innovative voices can be heard.

Q: What is #AltDevBlogADay?

#AltDevBlogADay is a group of game developers and otherwise interested people (generally found on Twitter), ranging from experienced devs to students and educators to hobbyists, that want to blog more regularly. An idea inspired by iDevBlogADay.

Q: What do/can the developers post about?

Our peeps will post about anything they think might be interesting. That can vary from the extremely technical to the very high-level. It can be specific to their experience in game development, or simply a marginally related topic of interest. Basically we post what we think is interesting. And hopefully that's interesting to you too!

Q: How can I participate?

If you're a game developer (or related) and want to contribute, contact @mike_acton on twitter or email at macton@gmail.com

Also see: #readme (for Writers)

Q: Can you slow down the rate of posts? I'm having a hard time keeping up!

Nope. It's not live TV. You don't have to read it as it's written. You're welcome to read the posts at any rate you like. It's the nature of the internet that more information is generated than you could possibly consume. I suspect there are Wikipedia pages you haven't read either. ;)

“Refactor”

Refactoring is defined as a “disciplined technique for restructuring an existing body of code, altering its internal structure without changing its external behavior” by Martin Fowler.

But its everyday usage takes a very different meaning. We use the word refactor to everything from the original meaning, to a complete side-by-side rewrite of a barely-functional system. How can you use the same word to refer to something that does not change external behavior, with building an entirely new replacement system?

Read more on “Refactor”…

Constraint Based Design

In some cases the most destructive action one can perform on the creative psyche is to give it absolute freedom. The blank page, blue sky, and empty word document are among the most terrifying monsters in the creative world.

Read more on Constraint Based Design…

Comparing Floating Point Numbers, 2012 Edition

We’ve finally reached the point in this series that I’ve been waiting for. In this post I am going to share the most crucial piece of floating-point math knowledge that I have. Here it is:

Read more on Comparing Floating Point Numbers, 2012 Edition…

Sensible Error Handling — Part 3

In my epic trilogy on sensible error handling I’ve arrived at the third and final category of errors — warnings.

Warnings happen when the user does something that is kinda sorta bad, but not exactly wrong per se. It can be things like having two nodes with the same name in an entity’s scene graph, a particle effect with 1 000 000 particles or a 4096 x 4096 texture mapped to a 3 x 3 cm flower.

Read more on Sensible Error Handling — Part 3…

Python’s documentation at your fingertips

The pain

As I mentioned in my last blog post, I started learning Python some time ago and fell in love with it. But, as with any new programming language, I spent a lot of time browsing through the documentation to find out the correct name of the method to find a substring within a string for example. Is it indexOf, find, rangeOfString, locate??? Off I went to the (very well done, btw) online Python docs to look for the right method in the string module.

Read more on Python’s documentation at your fingertips…

Feedback loop

Something that we’ve heavily relied on as a new, independent developer is user feedback which we listened to every step of the way in order to improve upon our final product.  There’s no doubt that some feedback is more useful than others.  For every well thought out piece of criticism we’ve received there’s the guy who just offers “it’s mediocre” with no explanation.  For every user that emails us with something they’d like to see, there’s another who leave one star ratings without leaving even a hint as to the reason.  As Plato once observed “Out of every hundred a hater is born and without effort, a hater’s gonna hate.”  For the others who continue to bring us feedback, you’ve all been a tremendous help in creating Itzy3d (now available on the Apple App store as well as the Android Marketplace, plug..plug..plug).  I thought I’d take a moment to highlight how some of the feedback we received changed our game during development.

Read more on Feedback loop…

Running an Industry Night

Every month in a discrete location Seattle area game developers come together. They do so to drink beer, trade war stories, and socialize with industry peers. What I’m talking about of course is industry night and I organize one. It’s surprisingly easy to run and every game dev city should have one. If your city doesn’t have one then I implore you to read this article and start it yourself!

Read more on Running an Industry Night…

The Craft of Game Systems: Tuning RPG Content

This article primarily focuses on PvE combat in RPGs, though its methods can be applied to PvP or other types of games.

Role playing games have a tremendous amount of content, each piece with multiple parameters that define what they do in combat. Damage dealt by a sword, bonus granted by a skill, total health of a level 23 bandit, etc. It’s not too hard to tune content when you look at a single game zone or a fixed character level – you can playtest that area and tweak values until the game feels right. However, trying to tune values for a giant world with 100 levels of content and multiple classes is much more complicated. How do you choose values for RPG content without playtesting and brute force tuning every type of character at every level?
Diablo III Demon Hunter Progression
Many factors increase character power as they level up in games like Blizzard’s Diablo III.

Read more on The Craft of Game Systems: Tuning RPG Content…

Why You Should Be Using Construct 2

Note: I in no way represent the makers of the Construct 2 software. I am merely a fan of the program and simply trying to bring a wider awareness of the software to the general public.

Read more on Why You Should Be Using Construct 2…

Extracting dominant light from Spherical Harmonics

Introduction
Spherical Harmonics(SH) functions can represent low frequency data such as diffuse lighting, where those high frequency details are lost after projected to SH. Luckily we can extract a dominant directional light from SH coefficients to fake specular lighting. We can also extract more than 1 directional light from SH coefficients, but this post will only focus on extracting 1 dominant light, those interested can read Stupid Spherical Harmonics (SH) Tricks for the details. A webGL demo is provided at the last section which will only extract 1 directional light.

Playing Games – a short play by David Clark

Greetings readers!  We interrupt your regularly scheduled AltDev articles with something a little unusual as far as the posting trends of the blog go.  But that’s okay, one-offs are okay.  I wanted to share the work of my dear playwright friend, David Clark, because I found it delightful and thought that you other game developers out there might also find it delightful.

Read more on Playing Games – a short play by David Clark…

Team Audio Wants To Buy You Nice Things

It wasn’t that long ago that I was talking to Jason Scott, Volition’s studio design director hero, about how bummed I was that so many of my colleagues from other disciplines weren’t actively listening to the game. He was bummed, too. We were just a couple of guys sitting around, tears in our eyes, chins quivering, being bummed.

Read more on Team Audio Wants To Buy You Nice Things…

AltDevConf Programming – Wolfgang Engel, Igor Lobanchikov, and Tim Martin

Allow me to introduce you to Wolfgang Engel, Igor Lobanchikov, and Tim Martin, from the Programming Track. Their talk: “Dynamic Global Illumination”. Wolfgang and Igor will be presenting this one. What will it be about? From Wolfgang:

Read more on AltDevConf Programming – Wolfgang Engel, Igor Lobanchikov, and Tim Martin…

The Novelty vs Familiarity Paradox

Hi everyone n_n

This post is the continuation of my last one: A functional definition of Beauty

Today on the menu:

  • Beauty is identified in novel things which resemble familiar things, and not in familiar things: we know the things we know aren’t perfect. We don’t know how perfect this new awesome thing might be. Beauty is the unrealistic size of this possibility space, which is only reduced after we have taken the time to analyze this new thing and find its limits.

Read more on The Novelty vs Familiarity Paradox…

Computing in Schools – Lets Not Rush Things

There has been a significant amount of press in the UK about the quality of computer related education at Key Stage 3 and 4 (Secondary School level with pupils ages 11-16 years old) and to a much lesser extent Key Stage 5 (college or 6th form students aged 17-18 years old).

Read more on Computing in Schools – Lets Not Rush Things…

Building a memory system – Part 1: Fundamentals

Today, I want to start a series on how to build your own memory system to be used in your game or engine. The series will cover how to handle allocations with vastly different lifetimes using specialized allocators, how to handle alignment restrictions, how to implement debugging features like memory tracking and tagging, and more. Before we can start, we need to delve into the inner workings of new, new[], delete and delete[] today – you may be surprised about some of the subleties involved.

Read more on Building a memory system – Part 1: Fundamentals…

AltDevConf Programming – Mike Acton

With AltDevConf around the corner, we are all busy with preparations to make sure it becomes a success. I would like to announce Mike Acton‘s talk titled “Game Tools as a WebApp: Lessons from Insomniac’s Next-Gen Tools and Engine”.

Read more on AltDevConf Programming – Mike Acton…

AltDevConf Programming – John McCutchan

With AltDevConf around the corner, we are all busy with preparations to make sure it becomes a success. In the mean time, we still have a few more talks to announce properly, next up in the pipeline is John McCutchan‘s talk titled “Control, Configure, Monitor and View Your Game Engine From the Web”.

The Principles of Game Monetization

This post can also be viewed on our blog.


As a part of Betable’s community outreach, we decided to ask indie developers on the IndieGamer and TIGSource forums to weigh in on how they balance gameplay with monetization. The response was overwhelming, and lead to some interesting insights into what game developers find to be appropriate versus abusive monetization.

Read more on The Principles of Game Monetization…

AltDevConf Programming – Matthieu Laban, Philippe Rollin & Miguel de Icaza

There are only 2 days to go before AltDevConf! With the conference around the corner it’s time to finish unveiling all the details of the program we have put together. Today I’m pleased to present the next three speakers in our lineup for the Programming track: Matthieu Laban, Philippe Rollin and Miguel de Icaza. Together they will present a joint talk titled “Cross Platform Development in C#: From Windows Phone to iOS with MonoTouch”.

Branching strategy is not a remedy for instability

4 years, 5 branching strategies. First we worked all in one branch. Then we became hyper-branched. Then we consolidated into a couple branches. Switched companies. First we were all in one branch. Now we’re splitting into branches.

Read more on Branching strategy is not a remedy for instability…

3ds Max & Unity – the Good & the Bad (and some potential Solutions!)

To begin, I definitely want to mention that I’m far from a ‘Unity expert’ at this point – I’m still learning and doing alot of trial and error at this point, but am at the point where I’m at least comfortable enough that I feel like throwing this out there for the community.

Read more on 3ds Max & Unity – the Good & the Bad (and some potential Solutions!)…

AltDevConf Education – Ken Fee

We’re getting very close to the conference now, so in Education we’re counting down with our last couple of speaker introductions. Ken Fee is a games industry veteran with a track record starting with Lemmings at DMA Design. Ken later joined the teaching faculty at the University of Abertay Dundee, where he acts as Programme Tutor for the degree of Professional Masters in Games Development. This session will look at the way that the Abertay programme is structured. As the first institution in the UK to be recognised as a “Centre for Excellence in Computer Games Educations”, there is a lot to be learnt from analysing what Abertay does and the ethos with which they approach the challenge of providing complete education for future game dev professionals.

Tips for Reading Academic Texts

Do you ever open an academic text or scary PDF, scan for code snippets, pretty pictures, maybe read a bit then run for the hills?
One of the most important skills you learn in university, or rather you should learn but many don’t, is the ability to read and write academic texts. Often when tackling a topic, someone more knowledgeable than you has spent a great deal of time on the topic, possibly with peers to research the topic. If not your exact topic then I guarantee the supporting topics have been researched. So why not stand on the shoulder of giants? These are a few little tips I often give for tackling the wild white paper.

Read more on Tips for Reading Academic Texts…

Jumping from Web to Mobile, Part 1: Challenges of Cross Platform Game Development

For an indie developer working on game projects in the casual/social or mobile space, one of the earliest decisions to make is what platform to target. In most cases it’s a no-brainer, since the team or studio already gained experience developing a game for platform X but then there is always the question of branching out to more platforms.

Read more on Jumping from Web to Mobile, Part 1: Challenges of Cross Platform Game Development…

C / C++ Low Level Curriculum Part 5: Even More Stack

Welcome to the 5th installment of the series I’m doing on a C/C++ Low-Level Curriculum. This is the 3rd post about the Stack, the fundamentals have been covered a couple of posts ago, and the previous post and this one are really just for extra information to round out the picture of ways the Stack is used in win32 x86 function calls – then we can move on to other low level aspects of the C/C++ languages.

Read more on C / C++ Low Level Curriculum Part 5: Even More Stack…

Global Game Jam 2012 Wrap-Up

The 2012 Global Game Jam is over and it was another year of awesome games in the Raleigh-Durham – North Carolina area.  This week I wanted to put the spotlight on all the games lovingly crafted by our crack squad of jammers – especially mine, Low Power! :D

Read more on Global Game Jam 2012 Wrap-Up…

Gathering and Analyzing Data with Django: Part 3

After an even longer delay here is part 3 of Gathering and Analyzing Data with Django. Apologies to those who were waiting for the rest of the series, as the entirety has been completed for awhile. The article itself was picked up for publication in a gems style book so I ceased further distribution. The book’s status is now in flux so I’m going ahead with the posting the rest.

Read more on Gathering and Analyzing Data with Django: Part 3…

Component Granularity

In one of my previous post (The Game Entity – Part III, Components) I touched on the subject of component granularity as being something to keep an eye on. Since the post I have had a few discussions where there has been some confusion about what is meant by component granularity.

Read more on Component Granularity…

Don’t Store That in a Float

I promised in my last post to show an example of the importance of knowing how much precision a float has at a particular value. Here goes.

As a general rule this type of data that should never be stored in a float:

Read more on Don’t Store That in a Float…