Skip to content

Latest commit

 

History

24 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

A Task For Two

LogoTex

Unity C# Multiplayer License

A Task For Two is an online cooperative multiplayer puzzle game developed in Unity as my Bachelor's thesis project.

The project implements a polished multiplayer gameplay vertical slice in which two players communicate and cooperate to solve an asymmetric puzzle in a synchronized online environment. It focuses on multiplayer networking, software architecture, real-time synchronization, automated testing, and the delivery of a polished player experience.

Download for Windows


Overview

This project demonstrates the design and implementation of a complete online cooperative gameplay vertical slice.

Players create or join a multiplayer session using Unity Relay and Unity Lobby, solve an asymmetric cooperative puzzle by exchanging information in real time, and complete a shared objective. Alongside the gameplay, the project includes a modular architecture, persistent settings, automated testing, and robust multiplayer session handling.


Features

  • Online cooperative multiplayer gameplay
  • Unity Relay & Lobby integration
  • Host and join-by-code sessions
  • Real-time synchronized gameplay
  • Asymmetric cooperative puzzle
  • Shared victory flow
  • Host disconnect recovery
  • Extensive video, audio, and HUD settings
  • Persistent player preferences
  • Automated Edit Mode and Play Mode testing

Technologies

Category Technologies
Language C#
Engine Unity 6 (6000.3 LTS)
Multiplayer Unity Netcode for GameObjects
Networking Services Unity Relay, Unity Lobby
UI Unity UI Toolkit, TextMeshPro
Version Control Git, Git LFS
Development Visual Studio Code

Software Engineering

This project applies modern software engineering practices, including:

  • Modular object-oriented architecture
  • Multiplayer state synchronization
  • Event-driven programming
  • Automated Edit Mode and Play Mode testing
  • Version control with Git
  • Separation of gameplay, networking, and UI systems
  • Persistent data management
  • Clean project organization

Screenshots

Main Menu

MainMenu

Multiplayer Lobby

Players can create private multiplayer sessions and invite another player using a generated lobby code.

SecondPlayer

Gameplay

Players explore the environment together while communicating to solve a synchronized cooperative puzzle.

GameView

Cooperative Puzzle

Each player sees only part of the puzzle. Communication is required because each player controls the value needed to complete their partner's equation.

PuzzleA

Video Settings

Customize display options, graphics quality, and camera settings.

VideoOptionsMenu

Audio Settings

Customize separate volume levels for music, gameplay sound effects, and menu audio.

AudioOptionsMenu

HUD Settings

Customize crosshair appearance, FPS and ping counters, and the in-game system clock.

HudOptionsMenu

Pause Menu

Pause gameplay at any time while maintaining multiplayer session state.

PauseMenu

Victory Screen

Complete the cooperative puzzle to finish the level.

EndScreen

Getting Started

Requirements

  • Unity 6 (6000.3 LTS)
  • Git
  • Git LFS

Clone the repository

git clone https://github.com/hassan-afifi/A_Task_For_Two.git

Enable Git LFS

git lfs install
git lfs pull

Open the project using Unity 6 (6000.3 LTS).


Download

Windows Build

Download the latest playable version from the Releases page.

https://github.com/hassan-afifi/A_Task_For_Two/releases/latest


Repository Structure

Assets/
├── Animations/
├── Audio/
├── Materials/
├── Models/
├── Prefabs/
├── Scenes/
├── Scripts/
├── Settings/
├── Tests/
└── Textures/

Packages/
ProjectSettings/

License

This project is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.

https://creativecommons.org/licenses/by-nc-nd/4.0/

About

Online cooperative multiplayer puzzle game developed in Unity as a Bachelor's thesis project.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages