Project Overview

Kung Kong is a fast-paced arcade pong-style game that emphasizes speed as its core feature. Developed in just two weeks by a team of five, it delivers an exciting and dynamic gameplay experience!

Game Info

Roles: Game Programmer

Time: 2 Weeks

Date: March 2018 - March 2018

Team Size: 5 (2 programmers)

Genre: Retro - Pong

Engine: Unity

Version Control: Github

Code Language: C#

My Role

For Kung Kong I worked on the AI and as support for designers by bug fixing.

AI

The AI in this game doesn’t require advanced behavior. It simply tracks the ball's position and adjusts its own position to block it from getting past. To ensure it can still be outmaneuvered, the AI doesn't adjust immediately and has a maximum speed limit for movement.


void HandleMovement()
{
    //For the ai on the right monitor
    if(transform.position.x > 0)
    {
        //Checks if there is a ball and then if the balls position is on the ai's screen
        if(ball && ball.transform.position.x > 0)
        {
            //Moves the ai upwards
            if(ball.transform.position.y > gameObject.transform.position.y)
            {
                transform.Translate(new Vector3(Time.deltaTime * AISpeed, 0.0f, 0.0f));
            }
            //Moves the ai downwards
            else if (ball.transform.position.y < gameObject.transform.position.y)
            {
                transform.Translate(new Vector3(-Time.deltaTime * AISpeed, 0.0f, 0.0f));
            }
        }
        transform.position = new Vector3(transform.position.x, Mathf.Clamp(transform.position.y, -2.2f, 2.1f), transform.position.z);
    }
}
            

Problems

During this project, we worked in separate rooms, which limited our ability to collaborate closely. Most of our communication occurred online, with occasional in-person meetups. We also used GitHub for version control, but due to communication challenges, there were instances where multiple team members unintentionally worked on the same components simultaneously. This led to complications that were often difficult to resolve.

To address this issue, we should have been more explicit about individual responsibilities and utilized a version control system that locks items currently being modified. This would help prevent overlapping work and reduce conflicts.