Code Monkey home page Code Monkey logo

war_of_ages's Introduction


War of ages
War of Ages

A clone of well-known game Age of War, extended with multiplayer.

Github top language

Features

  • Play a single player game just like in Age of War.
  • Play a game with your friend or a random dude.
  • Participate in tournaments.
  • Make a bot play for you, so you can have a rest during the game (and, hopefully, not lose).
  • See your stats, i.e. rating, number of games won/lost online, etc.
  • Chat with your friends inplace during a tournament or a game.

Demo video

Click on them:

Demo video

Dependencies

Install on Windows

Sorry, we didn't manage to make it easy to install all dependencies with CMake, so you will need to suffer try hard to install the project. To be clear, we don't guarantee that the method below works.

For example, we didn't manage to install War of Ages on a random computer run on Windows in 1.5 hours. :( Whereas, on another computer everything went smoothly and the project was installed in 7 minutes.

So, good luck!

You will need MSYS2, which you can install here. You will also need CMake and git.

To install CMake you could use MSYS2 also:

pacman -S mingw-w64-x86_64-cmake 
pacman -S make

Also, make sure you've added directories with cmake.exe and make.exe to your PATH variable.

Once you've installed them, run the following lines in MSYS2 to install all libs except of TGUI:

pacman -S mingw-w64-x86_64-sfml 
pacman -S mingw-w64-x86_64-boost
pacman -S mingw-w64-x86_64-sqlite3 

If you are getting error while installing packages from MSYS2 try updating packages info with:

pacman -Syyu

Now open cmd and just run the following code line by line (skipping comments obviously) from an empty directory to install TGUI and build the project:

git clone https://github.com/kholkinilya/war_of_ages.git
mkdir -p war_of_ages\build
cd war_of_ages\build

git clone https://github.com/texus/TGUI.git
mkdir -p TGUI\build
cd TGUI\build

# MSYS Makefiles is one of possible generators, you can use another one
cmake .. -G="MSYS Makefiles" -DCMAKE_BUILD_TYPE=Debug -DTGUI_CXX_STANDARD=17 -DTGUI_BACKEND=SFML_GRAPHICS -DTGUI_BUILD_GUI_BUILDER=0 
cmake --build . -j4
cd ..\..

cmake .. -G="MSYS Makefiles" -DTGUI_DIR=.\build\TGUI\build
cmake --build . -j4

cp TGUI\build\lib\tgui-d.dll .\client
mkdir -p ..\client\resources\sounds\music

client\war_of_ages_client.exe

Last beat is to install music (it's optional actually).

  • Just put the music you'd like to play while in lobby in client/resources/sounds/lobby_music.{wav, ogg, flac}.

  • Also, you can install a battle music into client/resources/sounds/battle_music.{wav, ogg, flac}.

We personally recommend this one for lobby and this one (Middle_age_RPG_Theme_1.ogg) for battle.

Install on Linux

Seems to us that you are capable of installing it yourself since you are a Linux user.

war_of_ages's People

Contributors

kholkinilia avatar hsevm avatar

Stargazers

 avatar Aurorum avatar  avatar Dmitrii Art avatar  avatar Sergei Kharitontcev-Beglov avatar Alexander Kovrigin avatar

Watchers

Anton Semenov avatar  avatar  avatar

war_of_ages's Issues

Mutex в player (посмотреть сюда, когда будет готова сеть)

Надо подумать насчет mutex в player:

  • Если его оставлять там, то у нас game_state не будет атомрным, что приведет к бедам вроде: уже атаковали юнитов, но еще не почистили, и в этот момент берем снапшот, в котором оказываются юниты с отрицательным здоровьем.
  • Если его переносить в game_state, то game_state почти все время будет держать mutex, что может сказаться на частоте кадров (надо протестировать, конечно же)

Кажется, это должно просто фикситься, как-нибудь типа объединяя какие-то операции в одну под мьютекс или подчищая в апдейте (хотя тогда будет преимущество у первого апдейтнутого плеера)?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.