top of page
About Anchor
Capture.JPG

Infinite Runner Personal Project

April 2021 - February 2022

Unity Engine

Project Overview

Jaywalkers is a networked PC Infinite Runner game where players must run across a 4 lane highway while dodging obstacles as well as collecting energy drinks to avoid running out of endurance. With an open-world element, players are also capable of exploring a small part of the city to solve puzzles and complete side objects for rewards.

What I've Done

  • Coded audio, animation, object physics interactions, player controls, user interface, and gameplay loop.

  • Utilized object pooling to develop an optimized endless course with diverse obstacles, objectives, powerups, and purchasable upgrades.

  • Programmed a save / load data system as well as an online leaderboard utilizing Google Firebase to keep track of player progression and encourage competition.

  • Improved immersion by implementing post-processing effects and creating cutscenes with the Unity Timeline and Cinemachine tools.
     

Encountered Challenges
  • Overview: I embarked on the 10-month journey to create Jaywalkers so that I could practice C#, Unity game engine systems, and networking. 
  • Challenge: During the development of Jaywalkers, one challenge I encountered was project optimization. In the past I thought optimization was something to be cautious about only when making a mobile or AAA sized game until my super computer could no longer efficiently process the lowpoly world for more than 15 FPS. I learned the hard way that game performance is something to always keep an eye on from the beginning to the end of any and every project. 
 
  • Solutions: To make the game run smoothly I learned how to use the Unity profiler tool and discovered performance heavy elements such as physics rigidbodies and lighting/rendering/post-processing. I addressed these performance issues by reducing rigidbody count with object-pooling, and reducing render draw calls by baking lighting and removing excess effects. I also discovered the technique of using mesh LOD's (Level of Detail) I plan to utilize in future projects which helps reduce the number of GPU operations that Unity requires to render distant meshes.
  • Ethan's CV icon
  • gitreal2
  • LinkedIn
  • Twitter
bottom of page