After having accidentally lost my chance to form a team for SLO Hacks, I decided to design, draw, and code a game all by myself to make use of the productive environment. The idea for the game came from several constraints as well as my personal experience: I didn't have time to design, draw, and code anything more than a randomly generated, single-mechanic game, so I thought about my 6-hour bus ride from UC Irvine to Cal Poly SLO and decided to make an infinite runner out of that.

What it does

Road to SLO is a game where you drive on an endless road bordering the San Luis Obispo coast and must avoid lighting storms and collect coins as it gets faster and faster. There are three lanes that you can swap to in order to avoid the obstacles and collect the coins. You only have 3 lives and it doesn't get any slower when you get hit!

How I built it

I started off by drawing the bus sprite in Aseprite, a handy paid tool for creating sprites. I actually spent about 3 or 4 hours on the bus, but it turned out really great. Next, I hand drew the background and spent 4 to 5 more hours making it move realistically as a parallax background, which means that far away things move slower than those that are closer. I combined the bus and background and spent a while tweaking it so that the size and speed made sense. Coding the game was actually harder than drawing art because of the tweaking required to make good gameplay. I had to implement and adjust all the rates for how often coins and obstacles would spawn, how fast they'd approach, how fast the bus moved, how much coins were worth, etc. I also had to actually make the game work! I drew most of the art as I developed the game, and in total, I hand drew 16 different multi-frame animations. I decided against static images for most of the sprites because it would make the game feel lifeless and static, so I basically drew, frame by frame, complete animations for everything.

Challenges I ran into

The most difficult part, surprisingly, was getting the obstacles and coins to approach at a realistic speed and grow in size as they got closer. Normally, people use Lerp (Linear Interpolation) to make things move smoothly, but it didn't make sense for objects to move at the same rate as they approached (things move slower when they're further away). So, I implemented a very interesting (read: after much tiring trial and error) solution to make them work both in realism and gameplay. I also got stuck at getting the "Play Again" option to work, because it's not simple to reload the level and make something happen afterward because everything got reloaded.

Accomplishments that I'm proud of

I'm super proud of learning how to do pixel art adequately and not have it look like my 3rd-grade crayon art. Although it was tedious, I think I gained tangible art skills by taking on this challenge. I'm also super proud that I actually have a finished game! No placeholders, no unfinished features, just a finished product! (except Android support doesn't work oops)

What I learned

I learned so much about art, visual design, perspective, game design, C# features, and planning efficiently and successfully!

What's next for Road to SLO

Maybe Android support (if I can get it working) and a high score counter, but otherwise it's a finished game!

Built With

Share this project: