# Holesome Inspired by [hole-io.com](https://hole-io.com) PADI 2023, Maximilian Giller, 5000149 ## What is this Game about? Holesome is about holes! 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 holes 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 holes 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](https://github.com/erincatto/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