holesome/README.md
Maximilian Giller ad5a6731a3 Sync commit
2023-06-28 16:57:13 +02:00

77 lines
2.4 KiB
Markdown

# 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