PathFighters is a game with login system and REST API with multiplayer gameplay where you face other player in a duel. Games takes aproximatly 15 minutes. Game core is three lanes and two bases where one belongs to you and other to oponent that you joined to. You can choose from variety of minions/soldiers to attack or place towers to defend yourself from oponent. Each unit has different stats and abilities as well as price. Also there is possibility to upgrade your units and towers under uprade menu. Main goal is to take down oponent base and win the game. Game was made as a part of university project.
Here is a list of technologies used in this project:
- Python 3
- Unity with C# Scripts
- Mirror Networking for Unity as synchronization tool
- Flask
- SQLAlchemy
- Swagger API documentation for better understanding of API
- Pytest
- Docker
- Docker Compose
To run the game simply install it with the provided setup file and run the created .exe file. To register you need to have a password which is at least 8 symbols long and contains at least 1 lower case and 1 upper case letter, a digit and a special symbol.
Here is a brief description of the game elements that can be found while playing the game.
- Player 1 health points
- Current gold that is different depending on player
- Time left to finish finish the research
- Player 2 health points
- Lanes that can be used to send units by selecting unit in the box and clicking on the lane
- Towers that can be placed and removed
- Units that can be created
- Towers that can be build
- Avaible researches
- Player 1 base
- Player 2 base
- Surrender button/leave from the game
- Language selector
- Volume change for game sounds
- Music volume change
- Help box where information about hovered element is displayed
All of neccesery files for running server side are compressed into a single docker-compose.yml
that is found within this repository. All that can change in configuration is the volume in the path-fighters-api
container and port in path-fighters-server-api
container.
To run all just type in console docker-compose up
command with optional -d
for this being detached.