Estate is a feature-rich 2D action survival game built with C++ and SFML. Fight enemies, collect weapons, develop talents, and survive in various environments with a comprehensive progression system.
- Combat System: Melee and ranged weapons with different combat mechanics
- Enemy AI: Multiple enemy types with different behaviors and combat patterns
- Talent System: Unlock and upgrade abilities as you progress
- Multiple Environments: Various background environments to explore
- Health System: Health packs and survival mechanics
- Minimap: Navigate the world with an integrated minimap
- Asset Management: Organized weapon, enemy, and environment textures
estate/
├── assets/ # Game assets and resources
│ ├── backgrounds/ # Background textures
│ ├── textures/ # Game sprites and textures
│ │ └── enemies/ # Enemy sprite textures
│ ├── weapons/ # Weapon textures
│ └── ARIAL.TTF # Font file
├── src/ # Source code
│ ├── main.cpp # Main game loop
│ ├── config.h # Game configuration
│ ├── player.h/cpp # Player character logic
│ ├── enemy.h/cpp # Base enemy class
│ ├── weapon.h/cpp # Weapon system
│ ├── talent.h/cpp # Talent/skill system
│ ├── minimap.h/cpp # Minimap functionality
│ ├── background.h/cpp # Background rendering
│ ├── health_pack.h/cpp # Health item system
│ ├── backgrounds/ # Background system implementations
│ ├── enemies/ # Enemy type implementations
│ ├── weapons/ # Weapon type implementations
│ └── talents/ # Talent system implementations
├── build.sh # Build script
├── CMakeLists.txt # CMake configuration
└── README.md # This file
# Install Homebrew if not already installed
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# Install SFML and CMake
brew install sfml cmakegit clone https://github.com/wtbates99/estate.git
cd estatesudo apt-get update
sudo apt-get install g++ cmake libsfml-devgit clone https://github.com/wtbates99/estate.git
cd estatepacman -Syu
pacman -S mingw-w64-x86_64-gcc mingw-w64-x86_64-cmake mingw-w64-x86_64-sfmlgit clone https://github.com/wtbates99/estate.git
cd estateUse the provided build script:
chmod +x build.sh
./build.shIf you prefer to build manually:
mkdir -p build
cd buildcmake ..
cmake --build . -j$(nproc)cmake .. -G "MinGW Makefiles"
cmake --build . -j$(nproc)After building, run the game:
./estateestate.exe- WASD: Move player
- Mouse: Aim and attack
- B: Return to background selection
- ESC: Exit game/Skip talent selection
- Arrow Keys: Navigate talent selection
- Enter: Select talent
- New Enemies: Add implementations in
src/enemies/and update the enemy factory - New Weapons: Add implementations in
src/weapons/and update the weapon factory - New Talents: Add implementations in
src/talents/and update the talent factory - New Backgrounds: Add implementations in
src/backgrounds/and update the background factory - Assets: Place new textures in appropriate
assets/subdirectories
The game includes debug features enabled by default:
- FPS counter
- Collision box visualization
- Debug console output
Configure these in src/config.h.
- macOS: Ensure SFML is installed via Homebrew:
brew install sfml - Linux: Ensure
libsfml-devis correctly installed - Windows: Make sure SFML is properly installed via MSYS2
Make sure assets/ARIAL.TTF exists and is accessible. The build process should copy assets to the build directory automatically.
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is open source. Please add an appropriate license file for your preferred license terms.