int main(void)

My Blog

Posted 01/08/12 @ 12:57am - By Ross

Balancing Act

For those that haven’t been following the competitive gaming scene, there has been a big surge in the last year or two. So much so that esports, as it is known, has started generating some big money. Two games in particular seem to be drawing the biggest crowd (and most of my attention). These two games are League of Legends and Starcraft II.

What I find unique about each game is that they seem to take a much different approach to achieving a balanced gameplay system. Starcraft II, as with the original, is a tightly knit balance between each of its three races. Zerg plays aggressive and relies on numbers for an advantage, Protoss relies on the strength of its units to crush the opponents, and Terran has versatility to adapt and slowly take control of the map. The races are themed and units are set (at least until the expansion) with small tweaks as needed. It’s a fragile arrangement that requires meticulous and somewhat timid changes to the system.

League of Legends, on the other hand, seems to take the opposite approach. Releasing champions every few weeks and potentially changing the game dramatically. This is not to say that Riot (the developer of League of Legends) is careless, simply that they take a different approach. Relying on the frequent changes allows for the game to stay fresh and new strategies to constantly evolve.

The reason I find the difference so interesting is that both seem to be working. Starcraft II has seen great success across the world and League of Legends has grown tremendously since its first MLG appearance. I find this to be a compelling example of two different trains of thought providing equal success. I take it as a lesson that you shouldn’t always force yourself to follow one path just because someone else has done it. Whats important is the feedback you receive and the passion you put into your project.

Posted 01/04/12 @ 8:18pm - By Ross

Bring the noise

Well it started with my RoadBuilder class and my research into procedural generation. There was one thing I kept on seeing during my research and that was noise generation techniques. In particular, Perlin noise.

So what, you may ask, is Perlin noise? To answer this, we must first look at what noise is. Conceptually, noise can be thought of as random looking numbers that can be consistently generated based off input. Rereading that it sounds a little cryptic so think of it this way. If I give you a number, you can give me a random number that corresponds to that number. Here is a theoretical chart that would represent a input corresponding to an output:

1 : 22
2 : 8
3 : 34
4 : 3
5 : 16

An input of 1 would correspond to an output of 22, an input of 2 corresponds to an output of 8, etc. The output of this magic function appears to be random, but whenever you give me 1, you get 22 back. That magic function is a noise generating function. So the question of what that magic function might look like probably comes to mind, and that’s where we get into Perlin noise.

Disclaimer: This section contains


return 0;