Coco (Unity Game)

Project information

Project Description
Coco is a unity game

Introduction

Coco is a 2D puzzle game that is focused on Human-Computer Interaction (HCI) and guessing words by connecting letters together. The player can interact with the game either by matching the letters via mouse (or touch screen) or using pre-defined hand gestures that are recognized by the image processing algorithm. It is the combination of the final projects for the courses “Design of Computer Games” and “Foundation of Computer Vision.”

Functionality Overview

The Unity game engine is used for developing the game by C# language. The game is based on the MVP pattern. Levels are automatically constructed from words that have been placed in a file. The image processing application is written in Python language and utilizes the OpenCV framework. The game and the image processing application communicate using Socket. The game has a purchase feature for buying hazelnuts. Hazelnuts are used for receiving help from the game. If the player presses the “help” button in the game scene, one word is guessed for the player, and three hazelnuts are reduced.

If the player chooses to interact with the game with hand gesture recognition, the game acts as a client and receives data from the image processing application (server) whenever it detects a valid hand gesture. The player can show zero to five fingers to the camera. Finger numbers one to five are related to the location of the letters on the circle (for example in FIGURE 1, location of the letters ‘T,’ ‘I,’ ‘E,’ and ‘D’ are 1, 2, 3, and 4, respectively), and zero is used for checking the correctness of matched letters.

If the player chooses to interact with the game by mouse (or touch screen), the game follows location of the cursor since the player clicks the mouse’s button and draws a line, recognizes the collisions between the cursor and characters, and finally builds a word by concatenating the selected letters and checks whether the result word is true or not.

Technologies/Languages Used

Technology Usage
Python is used for implementing image processing application
C# is used in unity engine
Unity is the engine used for creating the game
OpenCV framework is used for implementing the image processing algorithm
Git is used for version control