Inspiration
All members of our team shared a passion for arcade gaming. We were particularly inspired by the incredible popularity of FlappyBird, even though it is very simple in nature. Similarly, in our project, we sacrificed nuance for a fun, simple, never-ending game.
What it does
Our game consists of a randomly generated world that scrolls as you move. The world has five types of terrain that correlate with the height of the terrain. The objective of the game is to collect coins and to avoid rock spikes. You die if you hit a rock and your score increases as you collect coins.
How I built it
We wrote a terrain generator algorithm that creates randomly generated blocks which have heights correlating with different types terrain. Each block is only different from the ones on each of its sides by a small amount so that we have smooth rolling terrain and there are no cliffs or impassable terrain. We also wrapped our scrolling world around so that you can continue going forever and you will start at the beginning when you hit the end. The terrain at the end flows seamlessly into the terrain at the beginning creating one world. The terrain is generated using rudimentary Markov chains to randomize the terrain but also have a higher probability of going toward where the next terrain starts as it goes. This creates the rolling but consistent terrain made up of different biospheres.
For collisions, we used velocity and gravity. Two variables falling and onGround check whether the object is in the air(falling) or on the ground. The object jumps only when it's on the ground. If the object collides with blocks, stop scrolling. If the next block is lower, the object falls. If there's an ocean, the object floats.
Challenges I ran into
Several specific challenges emerged along the way:
- Putting a background onto the pygame
- Creating the collision algorithm
- Randomization was difficult to achieve, given that the terrains had to be contiguous ## Accomplishments that I'm proud of -On a very basic level, being able to stay on task for such an extended period of time -The terrain generator wraps around, all connects, has no cliffs...all despite the fact that it is randomly generated ## What I learned There is much more to completing a project than having an idea. There needs to be a commitment to the idea, cohesion and clear communication among the team members, and, most importantly, a willingness to work together on the most difficult parts. ## What's next for Blue Skies Blue skies can take on many ambitions. There are many directions in which the features could become more complex, starting with the obstacles and objectives that must be fulfilled to achieve a win condition. However, it should be noted that adding to the game should not go against the grain of a fun and simple game, which was the inspiration behind the entire idea.
Log in or sign up for Devpost to join the conversation.