Files
BallisticsDocs/CLAUDE.md
T
2025-07-02 22:40:58 -07:00

85 lines
3.3 KiB
Markdown

# CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
## Project Overview
This is EasyBallistics_C, an Unreal Engine 5.6 plugin that provides realistic ballistics simulation for projectiles. The plugin implements advanced physics calculations including atmospheric effects, material penetration, ricochets, and drag curves.
## Build System
This is an Unreal Engine plugin that uses Unreal's build system. The plugin compiles as part of the host project using UnrealBuildTool.
### Build Configuration
- **Module**: EasyBallistics (Runtime module)
- **Engine Version**: 5.6.0
- **Platforms**: Win64, Linux, Mac, Android
- **Build File**: `Source/EasyBallistics/EasyBallistics.Build.cs`
### Dependencies
- **Public**: Core
- **Private**: CoreUObject, Engine, PhysicsCore
## Architecture
### Core Components
1. **AEBBullet** (`EBBullet.h/.cpp`) - Main bullet actor
- Handles physics simulation, atmospheric effects, penetration
- Implements pooling system for performance
- Supports complex ballistics including drag curves, wind effects
- Manages collision detection and material responses
2. **UEBBarrel** (`EBBarrel.h/.cpp`) - Weapon barrel component
- Manages firing mechanics (auto, semi-auto, burst, gatling modes)
- Handles ammo cycling and reloading
- Implements spread patterns and muzzle velocity variations
- Supports networked replication for multiplayer
3. **UEBMaterialResponseMap** (`EBMaterialResponseMap.h`) - Material system
- Maps physical materials to ballistic responses
- Configures penetration depth, ricochet probability, friction
- Supports different penetration trace types
### Key Features
- **Realistic Physics**: Atmospheric density, temperature, pressure effects
- **Material Penetration**: Configurable penetration depth per material
- **Ricochet System**: Angle-based ricochet probability with energy loss
- **Multiplayer Support**: Full replication with client-side prediction
- **Performance Optimization**: Object pooling for high-rate fire scenarios
- **Shotgun Support**: Multi-projectile spawning with configurable spread
### File Structure
```
Source/EasyBallistics/
├── EasyBallistics.Build.cs # Build configuration
├── Public/
│ ├── EasyBallistics.h # Module header
│ ├── EBBarrel.h # Barrel component
│ ├── EBBullet.h # Bullet actor
│ └── EBMaterialResponseMap.h # Material response system
└── Private/
├── EasyBallistics.cpp # Module implementation
├── EBBarrel.cpp # Barrel implementation
├── EBBullet.cpp # Bullet implementation
└── [Additional implementation files]
```
## Development Notes
### Networking
- Uses Unreal's replication system extensively
- Supports both reliable and unreliable multicast for performance
- Client-side aim prediction for responsive gameplay
### Performance Considerations
- Object pooling enabled by default for bullets
- Fixed timestep simulation option for consistent physics
- Configurable trace complexity and collision margins
### Physics Integration
- Integrates with Unreal's physics system for impulse application
- Supports both simple and complex collision detection
- Atmospheric model supports Earth-like conditions or custom curves