Rapid Game Prototyping: Tips for Programmers

In November 2013, two colleagues* and I made 30 games. Although I have done some game prototyping before, working on so many games in such a short period gave me some insights I did not have before. As I said to a friend, it’s like watching a television series in a few days, instead of watching each episode week by week – you just see different things.

In this article, I collect some of these observations in the form of a set of tips. I kind-of assume you are already familiar with the classical How to prototype a game in 7 days, which describes prototyping from a more general point of view. In some ways, this is a programming-specific extension to the ideas presented there. Continue reading

Geometry with Hex Coordinates

$$\newcommand{\bv}[1]{{\bf #1}}$$ $$\newcommand{\bperp}{{\bf perp}}$$ $$\newcommand{\bproj}{{\bf proj}}$$

There is surprising little information available on hex-coordinates, despite how many games use hex grids. In this article I will explain some of the math so that you can do basic geometry in a hex grid, and design more elegant algorithms for your hex-grid games.

How to Choose Colours Procedurally (Algorithms)

Changing the colours of art can be a great way to increase the amount of content in your game, and add variety and richness. It is relatively easy to implement. What is not always as easy is to get a set of colours that looks nice. This article gives some ideas for choosing colour palettes that look nice. Continue reading

13 More Tips for Making a Fun Platformer

This article is a follow-up of a previous article I wrote, 11 Tips for making a fun platformer. Once again, this article focuses on platformers, but the philosophy behind each idea can be applied to any type of game, whether 2D or 3D. This time there are a few more practical tips.

50 Tips for Working with Unity (Best Practices)

These tips are not all applicable to every project.

• They are based on my experience with projects with small teams from 3 to 20 people.
• There’s is a price for structure, re-usability, clarity, and so on — team size and project size determine whether that price should be paid.
• Many tips are a matter of taste (there may be rivalling but equally good techniques for any tip listed here).
• Some tips may fly in the face of conventional Unity development. For instance, using prefabs for specialisation instead of instances is very non-Unity-like, and the price is quite high (many times more prefabs than without it). Yet I have seen these tips pay off, even if they seem crazy.

I Want to Be a Game Artist!

That’s great! You’ll be flinging digital paint and shooting vertices, and making the game art world more beautiful as you go! But wait — a word of advice before you jump on the realtime rendering railway: you need three pieces of essential kit!

Loopholes in Game Design

I had just finished working on my latest card game; I was rather chuffed with it: the rules were elegant and nuanced: there was a wealth of strategies you could use in the game. I explained the rules to two friends, and they began to play. I was expecting them to be amazed with the game.

Instead, I was amazed with how one had managed to find a neat little trick to unexpectedly win the game: a loophole!

After the discovery, the game was never the same. I eventually decided to change the card game into a board game so that the game could keep my original idea, but without the loophole.

After the change in my game, I became obsessed with loopholes in games. I began to research them and find how they could affect games. In this article, I summarize my research. This article covers what loopholes are, and why they are bad, with a big list of generic types of loopholes that can be found in games. The article also gives some advice on how to find and correct these nasty little game breakers.

A Student’s Perspective on Education: DigiPen

Hi, thanks for doing this Dev.Mag interview. For the record, please state your name, what you do, and your favourite pastry.

Alicia: Heya, my name is Alicia Yeargin. I’m currently a student at DigiPen Institute of Technology in Redmond, Washington, and about to complete my Bachelor of Science in Game Design. My favorite pastry is, without a doubt, the maple donut.

Crunch Time

Looking into the development cycle for video games we look at one of the worst, and almost unavoidable occurrences. Crunch. For a common definition of crunch, or in full crunch time, Wikipedia give us A critical period of time during which it is necessary to work hard and fast . Indeed when we are crunch, for anything, we work as hard and as fast as we can.

But unfortunately crunch has a series of negative effect. In a brief summation of Evan Robinson’s article Why Crunch Modes Don’t Work: Six Lessons. Crunch leads to a short-term productivity boost due to the extended hours the people work. But in a long-term scenario crunch leads to a loss in productivity as the there is a natural peak amount of hours that a person can work and be effective at that work. As such it leads to poor work rushed out to meet deadlines. This happens with video games, writing, and many other things.

So You Want to Crowd-Source Your Funding?

With Double Fine adventures just hitting the \$2,000,000 when I started writing this article; I seem to notice that the Internet, or at least the parts I pay attention to, is abuzz with ‘Kickstarter fever.’ Now I am extremely happy about this since: I love Double Fine, don’t like publishers, and feel this can be the start of something great.

A guide for prospective game programmers

While I was still deciding on a topic for this article, huge discussions (read arguments) started popping up in various game dev communities I followed, all based around the same theme: education Continue reading

Game Design: On Ideas

Often enough I have talked to people wanting to start making video games. And often enough they talk about making the next big game. I have to admire their enthusiasm, as it reminds me of a much younger me. But most often they say one thing which I can’t forgive.“I have this great idea.”

The number of times anyone in the industry has heard that must be innumerable. And I can understand why. There is vision and drive to make something awesome. The belief that this idea can be the next half-diablo-doom-craft. And wanting to be at the front of seeing that idea come to life is admirable.

Unfortunately, when you just start trying to make video games, that great idea is worthless. Not necessarily because it is a bad idea, but because you lack the experience to take that idea from the vision in your head, to the reality that the fanboys drool over. This is because a great game comes down to how the ideas are executed in the game.

How to design levels for a platformer

In a previous article, I gave you 11 Tips for making a fun platformer. That article had general tips that covered a wide range of game design tasks. This article looks specifically at the process of designing levels for a platformer. The process is a guideline and covers the steps from the initial idea to the final playable level.

Implementing and Debugging the Perlin Noise Algorithm

One of the most visited articles on our site – How to Use Perlin Noise in Your Games – also caused the most problems. The pseudo-code contained an alarming number of bugs (one of the nastier ones is depicted above), which made it difficult to implement. Readers pointed out these in the comments, and so helped to make the pseudo-code progressively more correct. But even so, some operations remained unclear, so that I finally decided to replace the pseudo-code with real and tested code. I really hope that all bugs have now been squashed!

In the spirit of this extermination effort, this article gives some pointers to get a version of the algorithm up and running as quickly as possible. It is an extension of the original Perlin noise article, and refers to the code now presented there.

Bézier Path Algorithms

In the article Bézier Curves for your Games: A Tutorial, I introduced Bézier curves and Bézier paths. In this tutorial I provide some algorithms useful for working with Bézier curves: determining the length of a piece of curve; interpolating a set of points with a Bézier path; and reducing a large point set to a smooth Bézier curve. (Image by snuffyTHEbear).