mirror of
https://github.com/kuhyx/praca_magisterska.git
synced 2026-07-04 15:43:14 +02:00
213 lines
6.0 KiB
Markdown
213 lines
6.0 KiB
Markdown
|
|
# Test Scenarios Document
|
|||
|
|
**Project**: Master's Thesis - Game Engine Performance Comparison
|
|||
|
|
**Date**: January 16, 2026
|
|||
|
|
**Author**: Krzysztof Rudnicki
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## Overview
|
|||
|
|
|
|||
|
|
This document defines the test scenarios for comparing Unity and Unreal Engine performance using bullet-hell games and NVIDIA Nsight profiling.
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## Test Hardware
|
|||
|
|
|
|||
|
|
*[Auto-generated by running: `./scripts/get_hardware_specs.sh`]*
|
|||
|
|
|
|||
|
|
- **CPU**: [Your CPU model]
|
|||
|
|
- **GPU**: [Your GPU model]
|
|||
|
|
- **RAM**: [Your RAM amount]
|
|||
|
|
- **OS**: [Your OS version]
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## Test Methodology
|
|||
|
|
|
|||
|
|
### Game: Bullet-Hell (Unity & Unreal implementations)
|
|||
|
|
|
|||
|
|
Both games implement identical gameplay mechanics:
|
|||
|
|
- Player-controlled ship
|
|||
|
|
- Enemy spawning system with escalating difficulty
|
|||
|
|
- Bullet pattern generation
|
|||
|
|
- Collision detection
|
|||
|
|
- 90-second survival mode
|
|||
|
|
|
|||
|
|
### Performance Metrics to Capture
|
|||
|
|
|
|||
|
|
1. **Frame Time** (ms) - Time to render one frame
|
|||
|
|
2. **FPS** (frames per second) - Derived from frame time
|
|||
|
|
3. **GPU Utilization** (%) - Percentage of GPU capacity used
|
|||
|
|
4. **Memory Usage** (MB) - VRAM and system RAM consumption
|
|||
|
|
5. **Draw Calls** - Number of draw calls per frame
|
|||
|
|
6. **Vertex Count** - Total vertices rendered per frame
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## Test Scenarios
|
|||
|
|
|
|||
|
|
### Scenario 1: Low Difficulty (Baseline)
|
|||
|
|
**Objective**: Establish baseline performance with minimal load
|
|||
|
|
|
|||
|
|
**Parameters**:
|
|||
|
|
- **Bullet count on screen**: 50-100 bullets
|
|||
|
|
- **Active enemies**: 2-3 enemies
|
|||
|
|
- **Duration**: 30 seconds of gameplay
|
|||
|
|
- **Captures**: 5 frame captures at different moments
|
|||
|
|
|
|||
|
|
**Expected Outcomes**:
|
|||
|
|
- Stable frame rate (60 FPS target)
|
|||
|
|
- Low GPU utilization (<50%)
|
|||
|
|
- Minimal memory usage
|
|||
|
|
|
|||
|
|
**Nsight Capture Points**:
|
|||
|
|
- 5 seconds into scenario
|
|||
|
|
- 10 seconds into scenario
|
|||
|
|
- 15 seconds into scenario
|
|||
|
|
- 20 seconds into scenario
|
|||
|
|
- 25 seconds into scenario
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### Scenario 2: Medium Difficulty
|
|||
|
|
**Objective**: Test performance under moderate load
|
|||
|
|
|
|||
|
|
**Parameters**:
|
|||
|
|
- **Bullet count on screen**: 200-300 bullets
|
|||
|
|
- **Active enemies**: 5-7 enemies
|
|||
|
|
- **Duration**: 30 seconds of gameplay
|
|||
|
|
- **Captures**: 5 frame captures at different moments
|
|||
|
|
|
|||
|
|
**Expected Outcomes**:
|
|||
|
|
- Moderate GPU utilization (50-70%)
|
|||
|
|
- Frame rate may drop slightly
|
|||
|
|
- Increased memory usage
|
|||
|
|
|
|||
|
|
**Nsight Capture Points**:
|
|||
|
|
- 5 seconds into scenario
|
|||
|
|
- 10 seconds into scenario
|
|||
|
|
- 15 seconds into scenario
|
|||
|
|
- 20 seconds into scenario
|
|||
|
|
- 25 seconds into scenario
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### Scenario 3: High Difficulty (Stress Test)
|
|||
|
|
**Objective**: Test performance under maximum load
|
|||
|
|
|
|||
|
|
**Parameters**:
|
|||
|
|
- **Bullet count on screen**: 500+ bullets
|
|||
|
|
- **Active enemies**: 10+ enemies
|
|||
|
|
- **Duration**: 30 seconds of gameplay
|
|||
|
|
- **Captures**: 5 frame captures at different moments
|
|||
|
|
|
|||
|
|
**Expected Outcomes**:
|
|||
|
|
- High GPU utilization (>70%)
|
|||
|
|
- Potential frame drops
|
|||
|
|
- Maximum memory usage observed
|
|||
|
|
|
|||
|
|
**Nsight Capture Points**:
|
|||
|
|
- 5 seconds into scenario (system stabilizing)
|
|||
|
|
- 10 seconds into scenario (peak load)
|
|||
|
|
- 15 seconds into scenario (sustained load)
|
|||
|
|
- 20 seconds into scenario (peak load)
|
|||
|
|
- 25 seconds into scenario (sustained load)
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## Data Collection Procedure
|
|||
|
|
|
|||
|
|
### For Each Scenario:
|
|||
|
|
|
|||
|
|
1. **Pre-test Setup**:
|
|||
|
|
- Close all background applications
|
|||
|
|
- Disable system updates
|
|||
|
|
- Set power mode to "High Performance"
|
|||
|
|
- Wait 5 minutes for system stabilization
|
|||
|
|
- Clear GPU/system caches
|
|||
|
|
|
|||
|
|
2. **Unity Testing**:
|
|||
|
|
- Launch Unity bullet-hell game
|
|||
|
|
- Navigate to scenario (Low/Medium/High)
|
|||
|
|
- Start NVIDIA Nsight Graphics
|
|||
|
|
- Attach Nsight to Unity process
|
|||
|
|
- Play scenario for 30 seconds
|
|||
|
|
- Capture frames at designated time points (5 captures)
|
|||
|
|
- Save capture data with naming: `unity_[scenario]_capture_[N].nsight`
|
|||
|
|
- Export metrics to CSV: `unity_[scenario]_metrics.csv`
|
|||
|
|
|
|||
|
|
3. **Unreal Testing**:
|
|||
|
|
- Close Unity completely
|
|||
|
|
- Wait 2 minutes for system cooldown
|
|||
|
|
- Launch Unreal bullet-hell game
|
|||
|
|
- Navigate to scenario (Low/Medium/High)
|
|||
|
|
- Start NVIDIA Nsight Graphics
|
|||
|
|
- Attach Nsight to Unreal process
|
|||
|
|
- Play scenario for 30 seconds
|
|||
|
|
- Capture frames at designated time points (5 captures)
|
|||
|
|
- Save capture data with naming: `unreal_[scenario]_capture_[N].nsight`
|
|||
|
|
- Export metrics to CSV: `unreal_[scenario]_metrics.csv`
|
|||
|
|
|
|||
|
|
4. **Post-test Data Organization**:
|
|||
|
|
- Organize captures in folders: `data/nsight/unity/` and `data/nsight/unreal/`
|
|||
|
|
- Compile metrics into master spreadsheet: `performance_comparison.xlsx`
|
|||
|
|
- Take screenshots of key Nsight analysis views
|
|||
|
|
- Document any anomalies or issues observed
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## Expected Data Outputs
|
|||
|
|
|
|||
|
|
### Per Test Run (15 total: 3 scenarios × 5 captures):
|
|||
|
|
- Nsight capture file (.nsight)
|
|||
|
|
- Metrics CSV with frame time, FPS, GPU %, memory, draw calls, vertices
|
|||
|
|
- Screenshot of Nsight GPU trace
|
|||
|
|
- Screenshot of Nsight memory analysis
|
|||
|
|
|
|||
|
|
### Aggregate Data:
|
|||
|
|
- Comparison table: Unity vs Unreal per scenario
|
|||
|
|
- Performance graphs showing all metrics
|
|||
|
|
- Statistical analysis (mean, std dev, min, max)
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## Quality Assurance
|
|||
|
|
|
|||
|
|
### Validation Checks:
|
|||
|
|
- [ ] All scenarios tested in both engines
|
|||
|
|
- [ ] 5 captures per scenario completed
|
|||
|
|
- [ ] All CSV metrics exported
|
|||
|
|
- [ ] Screenshots saved for all captures
|
|||
|
|
- [ ] Data organized in proper folder structure
|
|||
|
|
- [ ] No system crashes or anomalies during testing
|
|||
|
|
- [ ] Comparable conditions between Unity and Unreal runs
|
|||
|
|
|
|||
|
|
### Data Integrity:
|
|||
|
|
- [ ] Frame times make sense (>0ms, <100ms typically)
|
|||
|
|
- [ ] GPU utilization in valid range (0-100%)
|
|||
|
|
- [ ] Memory values reasonable for game scope
|
|||
|
|
- [ ] No obvious outliers without explanation
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## Timeline
|
|||
|
|
|
|||
|
|
- **Day 1 (Thursday, Jan 16)**: Setup Nsight, run Scenario 1 on both engines
|
|||
|
|
- **Day 2 (Friday, Jan 17)**: Run Scenario 2 on both engines
|
|||
|
|
- **Day 3 (Saturday, Jan 18)**: Run Scenario 3 on both engines
|
|||
|
|
- **Day 4 (Sunday, Jan 19)**: Verify data, re-run any problematic captures, organize data
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## Notes
|
|||
|
|
|
|||
|
|
- If a capture fails, note the reason and retry
|
|||
|
|
- Document any differences in how scenarios are triggered in Unity vs Unreal
|
|||
|
|
- Pay attention to engine-specific optimizations that may affect results
|
|||
|
|
- Consider recording video of test runs for reference
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
**Status**: Ready for execution
|
|||
|
|
**Next Action**: Run `./scripts/get_hardware_specs.sh` to generate hardware specs for Chapter 4
|