Skip to content

wrazik/TankBotFight

Repository files navigation

MacOS / clang Ubuntu / gcc11 Windows / msvc

TankBotFight - platform for code competition

This project is C++ Platform for competition between AI bots written in any supported language.

Client will communicate with platform with platform via sockets.

scheme

Current state

Currently we have moving & shooting tank, background with customly generated roads. No network yet, no collisions yet.

simplescreenrecorder-2021-11-15_09.57.11.mp4

How to run

To compile the project you should have compiler that supports C++20 & cmake. You have to remember about two things:

  • Graphical files are stored in git-lfs
  • Package manager is stored as github submodule
  • Dependencies are installed via vcpkg

Downloading the repo

So, before you start, you must first download checkout git-lfs (https://git-lfs.github.com/)

> git lfs install
> git lfs pull

In case you already run git lfs install before cloning the repo, pull is not needed

To download submodules, run:

> git submodule init
> git submodule update

Next step is to install all dependencies with vcpkg

Install dependencies with package manager

Linux & MacOS

  ./vcpkg/bootstrap-vcpkg.sh
  ./vcpkg/vcpkg install

Windows

.\vcpkg\bootstrap-vcpkg.bat
.\vcpkg\vcpkg install

CMake generation

mkdir build
cd build
cmake ..
make

Contributing

We need help! If you have time & want to help - take a look at "Issues".

Please keep in mind that:

  • All PRs should contain tests.
  • To format the code, please use clang-format (configuration file is attached to the repo)
  • Naming convention must be kept consistent:
    • class/struct/enum names: PascalCase
    • class members: mCamelCase
    • class methods: snake_case
    • free functions: snake_case
    • function parameters: snake_case
    • local variables: snake_case
    • global constants: UPPER_SNAKE_CASE

About

Platform for algorithm competition with Tanks

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published