Run, Chase n'Kill

From CS486wiki
Jump to navigationJump to search

Run, Chase n'Kill is a game that is being built by Onur Ozan Sahin, Efe Orak, and Onur Dincol. It is a multiplayer, cross platform 3D game where you and your only opponent try to finish first in a map full of obstacles and some power ups.


How to Play

When a player searches for a game, an opponent gets selected from the pool of searching players. After they match up, the game objects get loaded and game starts.

Players start running automatically after 3 seconds of waiting phase. They can swipe their screens in order to switch lanes, while running. Obstacles show up while players are running, and some power ups spawn randomly for them to pick up. Power ups give users Fast Run to go faster, a Banana to leave behind, and a Magic Potato to throw it to their opponent.

Environment

Map: Players run in a circle map tiled with trees, grass, and rocks; covered in a cloudy sky.

Road: It is a designated circle tiled with grass, and 1 unit above the surface.

Obstacles: Obstacles are little rocks spread in the road, causing players to slow down.

Power Ups

Fast Run: Player can run 1.5 times faster when use this power up.

Banana: Player can leave it behind to slow down their opponent when they steps onto it.

Magic Potato: Player can throw the potato to their opponent, making them slow down. The Magic Potato hits the target automatically when the opponent is in the specified range (Range is not yet determined).

Characters

Terlik: A wooden sabot-flipflop that has two legs, and a saggy nose that looks alike with Squidward from Sponge Bob animated series.

Semsi: An umbrella that uses its stalk as its only leg, and hops on it to move forward.

Week by Week Progress

as of 01/26/2015, we both worked and watched tutorials on making games with Unity, each consisting of roughly an hour.

Week 1:

VPS (Virtual Private Server) is rented from GoDaddy, Ubuntu 14.04 without X11 System. Connection is done via SSH. Tutorials on Bugzilla are studied. MySQL installation on server. -This is necessary for Bugzilla.


-- Unity Tutorial: Editor Basics

-- Unity Tutorial: Game Objects

Week 2:

A subdomain is acquiared under rck.itusandbox.com Installation of Bugzilla on server. -URL: bugzilla.itusandbox.com. Began discussions about how to design the terrain and environment.


-- Unity Tutorial: Models and Materials

-- Unity Tutorial: Terrain Sculpting

Week 3:

Designed terrain in Unity. -Used one side of a cube as the platform. Environment is built. -Trees, rocks, bushes are added. -Middle tree acts as a game controller. It holds the scripts for the camera and the characters.

Began discussions about the characters.


-- Unity Tutorial: Environment Details

-- Unity Tutorial: Using Cameras

Week 4:

Searched and purchased several geometric shapes from the Unity Asset Store trying to find the best shape for the path. -Ended up with a torus, flattened it and converted it to a circular plane path, perfect 2 pi radians for both of the characters. Purchases for characters from the Unity Asset Store; Semsi and Takunya. Physics Research for character movements. -Theoretical lines and movement formulas are established. -The characters run in a straight line so we need to turn them at an angle after a certain amount of time. -The angle is calculated by the amount they traveled over the total calculated lap time converted to degrees after several sine cosine functions.


-- Unity Tutorial: Using Lights

-- Unity Tutorial: Fun With Lasers!

Week 5:

Characters are placed to their initial starting locations. Camera is placed and attached to the characters. -The camera attaches itself to the characters according to who is the first player - user of the device. Lights are added. -Performance assesment on lighting is done. -Optimization of lighting. -Several lights to light up the entire platform. -Two lights actively moving with the characters to keep them light the entire time.


-- Unity Tutorial: The Partical System

-- Unity Tutorial: Scripting Primer and Q&A

Week 6:

Simple server program written in C++ with Unix sockets. Echoing information is sent by 2 clients.

Simple client program written in C++ with Unix sockets to test the server's functionality. This allowed us to search for a game - meaning waiting in the session list of the server until a 2nd player is found and they are moved to another session to exchange information.

Circular movements for the characters along their pre determined paths. Implementation of the formulas we generated in week 4.

Count down to start feature is added.

Lanes are added. Switching lanes feature is added for computer only, with arrow keys.


-- Unity Tutorial: Audio

-- Unity Tutorial: Fun With Explosions!

Week 7:

Switching lanes feature also brought to mobile devices with swipe left/right operations. Intermediate builds and testings for android are done. Optimizations for a mobile device including texture, physics etc. The terrain is entirely redesigned using "terrain editor" and we switched from using a 3D cube to a simple plane and by changing certain coordinates we added hill-like looking elevation. The game used to run with 15 fps, and after the optimizations it increased to 75 fps.


-- Unity Tutorial: Put It Together, Cinematic Explosions

-- Unity Tutorial: Scripting Primer and Q&A, Part 2

Week 8:

Heads up Display (HUD) is added on the scene and actively moving along with the first player's character. Minimap is implemented on the HUD horizontally at the top. This is done through a conversion from the circular path to a linear path.


-- Unity Tutorial: Nav Meshes

-- Unity Tutorial: Unity Test Tools

Week 9:

The two in game buttons (attack and jump) are added on the HUD to the lower corners. Jump feature is added; Swipe up to jump, Swipe to an upper corner (upper left/right) to jump and switch lanes simultaneously. Started to use the Gyroscope; This allows the users to look around themselves by tilting their devices while running in game.


-- Unity Tutorial: Let's Make A Game, Infinite Runner

-- Unity Tutorial: Scripting Primer and Q&A, Part 3

Week 10 (Spring Break):

Testing on an Android device for the entire week for glitches and possible bugs.


-- Unity Tutorial: Persistence, Saving and Loading Data

-- Unity Tutorial: Mobile Development

Week 11:

User Interface is upgraded.

Added Main Menu and Search Game pages.

Information exchange between the client and server is established via sending byte arrays.

Server Daemon now relays the coordinates and animation statuses to both clients.

Collision with obstacles is being implemented.


-- Unity Tutorial: Object Pooling

Screenshot Images from the Game

Count Down to Start

A Scene from the Gameplay

Heads up Display (HUD)

Animation State Machine