Run Seo Run(Unity 3D Personal Project)
Excercising our development muscles!
You Can play Run Seo Run Here ! 
Note: While the game is playable we are still tweaking and making finishing touches on it as well as figuring out the best way to deploy it online for everyone to play!
Run Seo Run is an infinite runner-style title  Designed by Travis Vanessen , Programed by myself  , and with sound & Music produced by Thilan Wajinesha.  This is a project all three of us collaborated on in our spare time and should be available to play in a few weeks.  Run Seo run is pretty simple the Goal is to help our hero , Seo,  escape the legion of enemies pursuing him and rack up the highest score possible while completing challenges!
We were inspired by quite a few infinite runners such as jetpack joyride , mega Run, Robot Unicorn ,  and a few others.  One of the earliest features we agreed on having was a challenge system,  As of now our game only contains 3 challenges those being have Seo run for 500 steps, having Seo run for 1,000 steps , and having Seo Collect 100 riceballs.  over the duration of the play session  completing these challenges becomes harder as your speed increases  after every 20th step.
i wrote the code for saving completed challenges, as you can see the topmost challenge ( running for 500 steps has been completed and our pre-game challenge menu reflects that. in order to achieve this  I had player pref values saved in memory upon completing  challenges that had not yet been completed. 
I did some minor QA for another infinite runner earlier this year and after seeing how that game progressed  from begining to end I was extremely excited to give developing this game a try.  Pictured here are our collectible rice balls, a typical platform section, an enemy approaching Seo, and Seo running fearlessly at him . 
Of all the Things  shown here aside from figuring out the base-game infrastructure pretty early I was also really excited at how well the spritesheet animation worked in unity. Both Seo and the Enemies Animate using several Co-Routines that repeatedly set and reset the offset that animate the given character.  Seo has four different sets of animations his initial walk animation , his run animation , his jump animation, and his death animation .
This Prefab which we call a LevelBlock represents the core functionality for the infinite part of our game.
Of course when making a game like this memory management and making sure that  the environment truly never ends is a very important. factor. if for any reason your game stops instantiating new territory or does it to late the game comes off as broken or you let the player peak beyond anyveil of belivability your  game has and if the game flat out crashes well ... that's never a good situation..
So the concept behind these are very simple , when our player character collides with  the green object(  rendered invisible in-game due to a culling mask on the camera) we instantiate the next level block exactly 100 units ( the width of this block) away from the x position of our current block. once our player character collides with the red object we call a function that destroys our current block in roughly ten seconds.  
we also took care to make sure each block is sort of it own environment with its own rice ball spawners, enemies, and backgrounds that are children of our parent block object. that way when we destroy the level block we also destroy all of its children as well .  So far I have never seen more than 7 level blocks in existence at once and by constantly destroying old level blocks we manage to  balance our memory usage very well!
Here is our High Score menu, the current score is highlighted as you see and we use a bubble sort to sort the players current score within the score list  and  position it accurately.  Our Highscore list is only revealed if the player gains a higher score than the lowest score in the score list.
All of the UI work is done using OnGUI  as much as I love Ngui I don't have a license for it on my home computer so using unity's native solution was the easiest and cheapest thing to do . I can say however that working with On gui has made it much easier to understand how NGUI handles UI as a whole. 
This is our game over screen the screen that shows up if the player does not earn a high score and also what our next button in our highscore menu leads into . This menu shows you how many riceballs you collected during this play session , allows the player to restart, and lets you view previous highscores.