GameLoom Studio in Instagram GameLoom Studio in Facebook GameLoom Studio in Itch.io GameLoom Studio in Steam GameLoom Studio in Discord
Older blogposts ≫

Asteroid Arena - How It All Began


The common way

Many a years ago I had a simple ol' game idea: let's fly around in spaceships, pew-pew-ing each other in 2D, Asteroids style. A simple game, it shouldn't be hard for a programmer of my experience at that time to do. So how does one make this happen? Easy, just get a physics library, a bit of graphics library, and obviously you need to support controllers so grab a library for that too. AI? Yea there are libraries (observe the plural) for that as well to integrate. You need to create a nav mesh after all, no need to "reinvent the wheel".

Screenshot of Asteroid Arena (known then as "jam-summer-2016") in 2016.

By some magic I managed to get a playable demo together, and it wasn't even boring to play! You spawned in a little area with an opponent, and could do some trick shots to out-smart your opponent (the bullets bounced off the scenery making things interesting). But the area was boring - it would be much more fun if the world would wrap-around. Sadly, the physics library didn't support that.

Frustration

So why aren't we playing this awesome game? Because it never got awesome. Why? Because I got bored at integrating crappy libraries on top of other crappy libraries and decided to not continue. Having fun while developing a game makes a good game, being continuously frustrated while developing a game makes a horrible game - although the idea would've been good.

I got lucky, I managed to realize that my happiness as a programmer was more important than developing a game quickly; I'd rather take my time to implement it all myself and any bugs crawling to the surface would be mine and mine alone.

Our way

As such I embarked on a journey to create a game from a codebase consisting of nothing, not a single line of code, to a fully playable production quality game. But this time I was not alone. Although there are some exceptions, most games (including this) require a game artist and the game design input of more than one person. The "I" became a "we", and we have through week-ends and evenings managed to make something, something more than I could with "state-of-the-art" libraries and plugging them together.

Ship - First Iteration
Ship - Second Iteration
Ship - Third Iteration

First, second and third iteration of the ship.

One change that came with a bit of resistance from me, adding actual sprites. I had originally intended it to be a simple little line based Asteroids looking game, but when real graphics from an actual artist entered the game, imagination kicked in. How about some nebula clouds? Oh, wouldn't it be nice if the clouds would affect the viewing distance? This is when the game stopped being a prototype and started becoming an actual game that you would recognize from screenshots of today.

This is the starting point of Asteroid Arena, and of GameLoom Studio.

- Jens the Programmer, January 2022

Older blog posts:

2024

Task-Centric Development

Obstruction of Visibility - Temporal Beer's Law (1/2)

Obstruction of Visibility - Temporal Beer's Law (2/2)

2022

Portability and the Demo Effect

Iterative "KIS(S)" - The Sprite Atlas

About Animations…

Asteroid Arena - How It All Began