A 2D isometric local multiplayer clone of hole-io, written as assignment for university.
assets | ||
src | ||
.gitignore | ||
CMakeLists.txt | ||
README.md | ||
TODO.md |
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
- Make sure cmake, g++ and Doxygen (
sudo apt-get install doxygen
) are installed - Clone the repository
git clone git@github.com:erincatto/box2d.git
- 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