A 2D isometric local multiplayer clone of hole-io, written as assignment for university.
Find a file
2023-07-09 13:10:18 +02:00
assets A bunch of progress on collectable occlusion 2023-07-09 03:43:47 +02:00
src Fixed collectable sizes 2023-07-09 13:10:18 +02:00
.gitignore Some small perfomance improvements in regards to collectables 2023-07-06 01:16:47 +02:00
CMakeLists.txt A bunch of progress on collectable occlusion 2023-07-09 03:43:47 +02:00
README.md Some small perfomance improvements in regards to collectables 2023-07-06 01:16:47 +02:00
TODO.md Fixed bug in calculating sprite offset for collectables 2023-06-30 20:57:28 +02:00

Holesome

Inspired by hole-io.com

PADI 2023, Maximilian Giller, 5000149

What is this Game about?

Holesome is about currentLayoutHoles! But not the kind you have seen before ...

Gameplay:

  • Navigate the environment as a hole
  • Eat the things that fall into you
  • Grow bigger to eat more things
  • Hide from enemies by closing
  • Damage your enemies by setting up traps
  • Eat your enemies and be the only one remaining

Style:

  • Isometric
  • Cute, but dangerous
  • Intuitive color coding

What is the goal?

The player controls a hole and has to consume as many objects as possible to grow. There are a variaty of Game modes that could be fun:

  • Eat as many objects as possible in a given time
  • Eat as many objects as possible, as well as all of your enemies and be the only one left
  • Eat as many objects as possible, but don't eat the bombs/etc., they will make you smaller again

Which components are included?

  • Physics: Core gameplay element to make the objects fall into the currentLayoutHoles in a fun way
  • Controller Support: Use a controller to control the hole
  • Local Multiplayer: Play with up to 4 players on one device using split screen
  • Level Files: Levels are stored using a simple file format
  • Procedural Generation: Generate the levels procedurally to give the Game more variety
  • Menu: Because, duh

Potential expansions:

  • Multithreading: Improving performance by running the phsics in a separat thread and similar concepts
  • AI: Some currentLayoutHoles could be controlled by AI, which makes singleplayer games more exciting
  • Online Multiplayer: Play with friends online

Project Setup

Install SFML and Eigen: sudo apt install libsfml-dev libsfml-doc libeigen3-dev

Compiling Box2D from source

Website: Box2D

  1. Make sure cmake, g++ and Doxygen (sudo apt-get install doxygen) are installed
  2. Clone the repository git clone git@github.com:erincatto/box2d.git
  3. Build and install the library
cd box2d
mkdir build
cd build
cmake -DBOX2D_BUILD_DOCS=ON ..

In case of "RandR headers were not found": sudo apt install xorg-dev.

cmake --build .
cmake --build . --target INSTALL

Project structure

  • Physics Simulations
    • Map Simulation: World-bounds collider
    • Holes Simulation: Creates hole physics by managing all the individual Collectable Simulations
      • Collectable Simulation: Simulates physics for a single collectable