Category: Knowledge Nuggets

Game Jam to Shipped Game

After this year’s global game jam, I wanted to share some experiences about shipping games to encourage first timers to get their games out there. First thing you need to understand is that you are not near to done. Our industry usually thinks in terms of features but this is misleading. We think “Camera system, it works… Done!”, but what we really we need to ask is “is this feature shippable?”. And in there lies the rub, what is shippable to you?

Game jams are rapid prototyping sessions. They are hugely valuable to determine if you are heading down the right track. They help to find the fun fast, so you know the general direction you will be taking on your game creation voyage. If your prototype is not fun to you, its probably not a good idea to pursue it. I am speaking from the heart here, spending may hours of time I will never get back trying to make something that is not inherently fun, fun. If you have a choice, and as indies you do, don’t to it if your prototype is not fun right now.

Once you have the fun, its time to do time estimates. It does not matter if you schedule or you scrum, you still need to estimate time. If you are new to scheduling, once you are done, double your time! I mean it. As developers, we are hugely optimistic and love what we do and sometimes we forget the bad times. Shit happens……




Lists and Linq in Unity, do it!

I have been using C# for many years now in game dev and I love it. Most hardcore C++ guys have always given me grief but I still think the language is beautiful! Yes yes, its memory managed but thats a whole beast unto its self. At least I don’t have to spend a week looking for an illusive overwrite or leak. But each unto their own, we all make games and in todays world, fast to market is a big deal, especially with little to no budget.

One of the great things in C# is Lists. For those of you who don’t know them, they are basically dynamic arrays with a whole host of special functions. They are wonderful things, especially for inventory systems. There is a lot of debate about if they are significantly slower than arrays but the general rule is don’t add to them in a critical update loop. Besides being able to add and remove items dynamically, you can also just bake the list to an array using ToArray(). This way you can have a list that you use to manage your stack and once you are done, you can just bake it out.

So what I want to chat about here is Linq, which is C#’s look up language for lists. I always stayed away from it, erring and my years for “Doing things the right way” but Linq used in the right way can save you a lot of time. I have started using it for my data structure look…