May 2, 2019

Fancy Flying - or how to make a game in 48 hours

The Ludum Dare competition was on this weekend and it's a competition where you make a game in either 48 or 72 hours. I've previously participated in the competition eleven times, but I skipped it the last three times, but this weekend I decided to be a part of it again.

The problem with this competition is that it's not entirely fair because of the voting system. Hundreds of games a submitted each time so how can you judge which game was the best? A single team of judges can't play them all, so the participants in the competition will each judge at least twenty games and then the average score will give you the final result. Sometimes you are lucky that the twenty out of hundreds of participants like your type of game, so you will get a good score. There's also a problem with people who vote on your game without even playing the game (to encourage voting your game is displayed higher in a list of all games), which was reported by someone who thought it was odd that he/she got twenty votes but only five people had downloaded the game. So you should participate because it's fun and you want to test an idea - not to win. 

A few days before the competition I was researching an aircraft game I'm working on and read an article about bird strikes. As seen in the the movie Sully: Miracle on the Hudson, which is based on a real even where an aircraft crashed in a river around New York because birds hit the engine, birds are dangerous. So I decided to make an infinite aircraft game where you get points for flying low (to avoid enemy radar) while avoiding dangerous objects like birds, mountains, houses, and radar poles. This was the result:


The entire world consists of a few chunks: mountains, forest, lake, city, which are spawned every 50 meters with some probability, and the chunks are recycled by using a pooling system, which makes it faster. I originally planed to make my own collision system because the game is not physics based, but then I realized that I could use Unity's own collision system even though the game is not physics based, meaning that I use transform.Translate() to move the aircraft and not rigidBody.AddForce(). But if you add a rigidbody to the aircraft and set it to kinematic and then the colliders connected to the mountains should be set to trigger, you can still check for collisions by using OnTriggerEnter in the script attached to the gameobject which also has the rigidbody. The problem is that if you collide with an object, the rigidbody will just continue through it, so you have to make your own collision response system. 

In the first Ludum Dare games I made I didn't include any sound, because you have to make the sound during the 48 hours so it's easy not to prioritize sound if you run out of time. I've gradually added sound to my games with various results, so this time I really tried to add sounds that didn't scare people (or forcing them to turn off the sound because sound was "sooo bad"), and so far no-one has really complained that the sounds are bad. The jet engine sound is from a YouTube clip and I had to make it seamless, which took a lot of time but I learned a lot in the process, which was the point of participating in the competition.

If you want to test the game you can download it here: Fancy Flying

No comments:

Post a Comment