/InVasion

Online top-down pixel-art shooter — C++ first-year project of Applied Mathmatics and Computer Science program at Higher School of Economics University.

Primary LanguageC++GNU General Public License v3.0GPL-3.0

InVasion

Read this in other languages: English, Русский

Words of gratitude:

On behalf of our entire team, we would like to say huge thanks to Vitaly Selishchev, our mentor, for his invaluable contribution to the project. In addition to the main duties of the mentor, Vitaly held online meetings for us, where he helped us solve problems that we encountered as we developed, Vitaly also conducted an online code review, where he pointed out our mistakes and suggested possible alternatives for writing code that would facilitate the development process for us. And even that's not all: at almost every online meeting, Vitaly showed us various OOP patterns and methods for solving classical problems related to the creation of project architecture.

Project Description:

Actions take place in the distant future. People invade an alien planet in order to capture the resources of another civilization. Two teams participate in the battle: humans and aliens. The task of both teams is to keep the lead in points until the end of the match.

Controls:

Buttons Action Buttons Action
W / up move forward E use aid kit / ammo crate
A / left move left F put aid kit / ammo crate
S / down move backward R reload weapon
D / right move right Tab view match statistics
Esc open the game menu during a match

Project demo:

Project defense presentation (ru) - link.

Gameplay footage:

InVasion - Gameplay Footage

In-game screenshots:

Classes abilities demonstration (medic and support):

Project build:

Client setup:

Godot editor is required. During development, we used the version v3.4.2, you can install it by clicking on the link.

Next, you need to open the /client/godot/game/default_env.tres file inside the engine, after which you can start editing the client code sources.

Server setup:

When building on Windows, we recommend using the vcpkg package manager to install all of the following dependencies.

To build the server, you need to install boost, we developed on version v1.71.0, it can be installed from the link.

You also need to install the protocol buffers compiler, we used version v3.18.0, it can be installed from the link.

The last thing you need to install is sqlite.

P.S. If you have Linux and sqlite does not start, then installing additional components should solve the problem:

sudo apt update
sudo apt-get install libsqlite3-dev
sudo apt-get install sqlite3