mirror of
https://github.com/johndoe6345789/ArenaFPS.git
synced 2026-04-25 06:04:57 +00:00
67b4782fdc210bd0caf85ee21ee603f06eb308b5
Co-authored-by: johndoe6345789 <224850594+johndoe6345789@users.noreply.github.com>
…
…
…
…
…
…
Unreal3Arena
A Arena FPS clone built in Unreal Engine 5 with procedurally generated assets and CI/CD pipeline.
Overview
This project recreates the classic Arena FPS experience in Unreal Engine 5, featuring:
- Procedural Level Generation: Levels generated from Python code for testability
- Bot AI: Bot AI implementation with combat and navigation logic
- Deathmatch Game Mode: Classic Arena FPS deathmatch rules
- CI/CD Pipeline: Automated testing and validation
Features
Game Systems
-
Arena FPS Game Mode (
Plugins/GameFeatures/ArenaFPS)- Deathmatch with frag limit and time limit
- Bot spawning and management
- Respawn system
-
Crash Bot AI
- State-based behavior (Combat, Roaming, Seeking Items)
- Navigation using UE5's Navigation System
- Configurable skill levels
Procedural Generation
- Arena Level Generator (
Tools/ProceduralGeneration)- Code-based geometry generation
- Exports to JSON format
- Unit tested with pytest
- Inspired by DM17 "The Longest Yard"
CI/CD
- Automated Testing: Python unit tests for procedural generators
- Project Validation: JSON validation, structure checks
- Artifact Generation: Automated arena geometry generation
Getting Started
Prerequisites
- Unreal Engine 5.7
- Python 3.11+ (for procedural generation)
- Git
Installation
-
Clone the repository:
git clone https://github.com/johndoe6345789/Unreal3Arena.git cd Unreal3Arena -
Install Python dependencies:
cd Tools/ProceduralGeneration pip install -r requirements.txt -
Generate arena geometry:
python arena_generator.py -
Open
Unreal3Arena.uprojectin Unreal Engine 5.7
Running Tests
Python Tests
cd Tools/ProceduralGeneration
python -m pytest test_arena_generator.py -v
Project Structure
Unreal3Arena/
├── .github/workflows/ # CI/CD pipelines
│ ├── procedural-tests.yml # Python procedural generation tests
│ └── unreal-ci.yml # Unreal Engine project validation
├── Content/ # Unreal Engine content
├── Plugins/
│ └── GameFeatures/
│ └── ArenaFPS/ # Arena FPS game mode plugin
│ ├── Content/ # Assets and blueprints
│ └── Source/ # C++ source code
├── Source/ # Main game source (Lyra-based)
├── Tools/
│ └── ProceduralGeneration/ # Python procedural generators
│ ├── arena_generator.py
│ ├── test_arena_generator.py
│ └── requirements.txt
└── Unreal3Arena.uproject # UE5 project file
Key Components
ArenaFPS Plugin
Located in Plugins/GameFeatures/ArenaFPS/:
ArenaGameMode: Deathmatch game mode with Arena FPS rulesArenaBot: AI controller for bot players (Bot AI)
Procedural Generation
Located in Tools/ProceduralGeneration/:
arena_generator.py: Generates arena geometry procedurally- Exports JSON data for import into Unreal Engine
- Full unit test coverage for reliability
Contributing
- Fork the repository
- Create a feature branch
- Make your changes
- Run tests to ensure nothing breaks
- Submit a pull request
License
Developed with Unreal Engine 5
Acknowledgments
- Based on Epic Games' Lyra Sample Game
- Inspired by classic arena-style FPS games
- Uses Unreal Engine 5.7
Description
Languages
C++
96.6%
C#
2.5%
C
0.5%
Python
0.3%