Skip to content

Latest commit

Β 

History

History
125 lines (97 loc) Β· 4.47 KB

File metadata and controls

125 lines (97 loc) Β· 4.47 KB

πŸ¦β€β¬› Raven

Unreal Engine License C++

A comprehensive C++ framework plugin for Unreal Engine 5.7 that provides essential base classes, systems, and utilities to accelerate your game development workflow.

🧩 Compatibility

  • βœ… Unreal Engine 5.7+
  • βœ… Blueprint Integration

πŸš€ Installation

Method 1: Manual Installation

  1. Clone or download this repository
  2. Copy the Raven folder to your project's Plugins directory
  3. Regenerate your project files
  4. Build your project
git clone https://github.com/RavenStormStudio/Raven.git <YourProject>/Plugins/Raven

Method 2: Engine Plugins

  1. Copy the Raven folder to your engine's Engine/Plugins directory
  2. The plugin will be available for all projects using that engine version

Enable the Plugin

  1. Open your project
  2. Navigate to Edit > Plugins
  3. Search for "Raven"
  4. Check the Enabled checkbox
  5. Restart the editor

✨ Features

Game Framework

  • Base Classes: Pre-configured base classes for common game framework components
    • ARavenActorBase - Enhanced actor base class
    • ARavenGameModeBase - Game mode with extended functionality
    • ARavenGameStateBase - Game state base implementation
    • ARavenPlayerControllerBase - Player controller foundation
    • URavenGameInstanceBase - Game instance base class

Object Pooling System

  • High-Performance Pooling: Reduce GC pressure and improve performance by reusing objects
  • Multiple Acquisition Strategies:
    • FIFO (First In First Out)
    • LIFO (Last In First Out)
    • LRU (Least Recently Used)
    • Random
  • Advanced Pool Management:
    • Configurable pool policies (max idle time, shrinking intervals, min pool size)
    • Pre-warming support for initial pool population
    • Automatic cleanup of idle objects
    • Detailed statistics and profiling
  • Factory Pattern: Extensible factory system for custom object creation
  • Blueprint Support: Fully exposed to Blueprints for designer-friendly workflows
  • World Subsystem: Centralized URavenPoolSubsystem for easy access
  • Developer Settings: Project-wide pool configuration via editor settings

🎨 Plugin Structure

Raven/
β”œβ”€β”€ Source/Raven/
β”‚   β”œβ”€β”€ Public/
β”‚   β”‚   β”œβ”€β”€ GameFramework/          # Base game framework classes
β”‚   β”‚   β”‚   β”œβ”€β”€ RavenActorBase.h
β”‚   β”‚   β”‚   β”œβ”€β”€ RavenGameModeBase.h
β”‚   β”‚   β”‚   β”œβ”€β”€ RavenGameStateBase.h
β”‚   β”‚   β”‚   β”œβ”€β”€ RavenPlayerControllerBase.h
β”‚   β”‚   β”‚   └── RavenGameInstanceBase.h
β”‚   β”‚   └── Pool/                   # Object pooling system
β”‚   β”‚       β”œβ”€β”€ RavenPool.h         # Core pool implementation
β”‚   β”‚       β”œβ”€β”€ RavenPoolSubsystem.h
β”‚   β”‚       β”œβ”€β”€ RavenPoolTypes.h    # Pool enums and structs
β”‚   β”‚       β”œβ”€β”€ RavenPoolStats.h
β”‚   β”‚       β”œβ”€β”€ RavenPoolHandle.h
β”‚   β”‚       β”œβ”€β”€ RavenPoolDeveloperSettings.h
β”‚   β”‚       β”œβ”€β”€ Interface/
β”‚   β”‚       β”‚   └── Poolable.h      # Interface for poolable objects
β”‚   β”‚       β”œβ”€β”€ Factory/
β”‚   β”‚       β”‚   β”œβ”€β”€ RavenPoolFactoryUObject.h
β”‚   β”‚       β”‚   └── RavenPoolActorFactory.h
β”‚   β”‚       └── Strategy/
β”‚   β”‚           └── RavenPoolStrategy.h
β”‚   └── Private/                    # Implementation files
β”œβ”€β”€ Resources/
└── Raven.uplugin

🀝 Contributing

Contributions are welcome! Please feel free to submit pull requests or open issues for bugs and feature requests.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

πŸ“„ License

This project is licensed under the GNU General Public License v3.0 - see the LICENSE file for details.

πŸ™ Acknowledgments

  • Built with β™₯ for the Unreal Engine community

πŸ“ž Support

For questions, issues, or feature requests:

  • Open an issue on GitHub

Made with ❀️ by Drischdaan