Skip to content

Benjamin-Loison/Among-us-decentralized

Repository files navigation

Among us decentralized

AppVeyor Build Status Linux Mac

Language: C++
Graphics library: Qt

Objectives

Course schedule: http://www.lsv.fr/~chatain/enseignement/GL/

  • map/players (assets from native game for instance) - https://github.com/Perfare/AssetStudio
  • Show the map
  • Handle player movement
  • Maintain game state
  • Display other players
  • Display name tags
  • Menu (main menu and "meetings")
  • Network: peer-to-peer
    • with secret (visibility) - using OpenSSL/Helib for cryptography
  • Tasks:
    • Fix Wiring
    • Asteroids
    • Swipe Card
    • Enter Id Code
    • Scan Boarding Pass
    • Unlock Manifolds
    • Align Engine
    • Set places for tasks
  • Show small map with tasks and player location
  • Door sabotage
  • Cameras (Security)
  • Vocal chat during "meetings" (not prioritary)
  • Extra anti cheat (not prioritary)
  • Packaging
  • (documentation ?)
  • Tests :
    • Continuous integration:
      • Windows (Helib incompatible?)
      • Linux
      • MacOS
    • Code coverage
    • Other tests

Building

Requires Qt 5.12.11 (or probably any other recent version). To build on Ubuntu, you can either:

  • open AmongUsDecentralized.pro in Qt Creator, then click "Build Project",
  • or, from a build directory, run qmake path/to/AmongUsDecentralized.pro then make.

To build the .ts "to translate" file: lupdate AmongUsDecentralized.pro
To build the .qm "translated" file: lrelease AmongUsDecentralized.pro
Don't forget to put the .qm file into the directory storing the AmongUsDecentralized executable.

Code coverage testing

To test code coverage on Linux and Mac (requires gcov and lcov):

  • build in debug mode (in a command line: from the build directory, run make clean, then qmake CONFIG+=debug path/to/AmongUsDecentralized.pro, then make),
  • play the game and test the features you would like to test,
  • from the build directory, run the script runCoverage.sh on Linux or runCoverageMac.sh on Mac.

A webpage should open, where you can browse the code and see the coverage of each source file and folder.

Dispatching code from the InGameUI would be nice