Appearance
Complete Project Template
This template provides a fully implemented reference version of all milestones.
What's Included
Complete implementation of all 5 milestones:
Milestone 1 - Character & Input
- ✅ APlatformCharacter with Enhanced Input
- ✅ Spring arm camera with tuning data
- ✅ Movement, jumping, sprinting
- ✅ Data-driven tuning system
Milestone 2 - Interaction System
- ✅ IInteractable interface
- ✅ UInteractionComponent with sphere tracing
- ✅ AInteractiveActor base class
- ✅ Pickup and Door examples
- ✅ UI interaction prompts
Milestone 3 - Stats & AI
- ✅ UStatsComponent (health/stamina)
- ✅ IDamageable interface
- ✅ AEnemyNPC with AI controller
- ✅ Behavior tree (patrol → chase → attack)
- ✅ AI perception system
Milestone 4 - NPCs & Events
- ✅ AFriendlyNPC with dialog system
- ✅ ITalkable interface
- ✅ ATriggerEventActor
- ✅ Event routing subsystem
- ✅ Dialog UI system
Milestone 5 - Testing & Polish
- ✅ Comprehensive automation tests
- ✅ Console variables (CVars)
- ✅ Debug tools and validation
- ✅ Performance optimization
Download Template
This is the largest template containing the full implementation of all systems.
How to Use
Option 1: Reference Implementation
Use this as a reference while building your own implementation:
- Follow the milestone guides step-by-step
- Compare your code with this reference when stuck
- Use individual files as examples
Option 2: Starting Point
Use this as a base for your own game:
- Copy the entire template to your project
- Rename classes to match your game
- Customize and extend the systems
- Add your own gameplay features
Project Structure
Source/Platformer/
├── Core/
│ ├── PlatformCharacter.h/.cpp
│ ├── PlatformerGameMode.h/.cpp
│ └── PlatformerPlayerController.h/.cpp
├── Interaction/
│ ├── Interactable.h
│ ├── InteractionComponent.h/.cpp
│ ├── InteractiveActor.h/.cpp
│ ├── PickupActor.h/.cpp
│ └── DoorActor.h/.cpp
├── Stats/
│ ├── StatsComponent.h/.cpp
│ ├── Damageable.h
│ └── HealthRegenerationComponent.h/.cpp
├── AI/
│ ├── EnemyNPC.h/.cpp
│ ├── EnemyAIController.h/.cpp
│ ├── FriendlyNPC.h/.cpp
│ └── Talkable.h
├── Events/
│ ├── TriggerEventActor.h/.cpp
│ ├── GameplayEventSubsystem.h/.cpp
│ └── EventTypes.h
├── UI/
│ ├── InteractionPromptWidget.h/.cpp
│ ├── DialogWidget.h/.cpp
│ └── HealthBarWidget.h/.cpp
├── TuningData/
│ ├── CharacterTuningData.h/.cpp
│ ├── CameraTuningData.h/.cpp
│ ├── AITuningData.h/.cpp
│ └── InteractionTuningData.h/.cpp
├── Tests/
│ ├── PlatformerTestBase.h/.cpp
│ ├── MovementTests.cpp
│ ├── InteractionTests.cpp
│ ├── AITests.cpp
│ └── BuildValidationTests.cpp
└── Utilities/
├── PlatformerCVars.h/.cpp
├── DebugHelpers.h/.cpp
└── GameplayHelpers.h/.cpp
Key Features
Data-Driven Design
- Tuning data assets for easy balancing
- Console variables for runtime adjustment
- Modular component system
Robust Testing
- Automated test suite
- Performance validation
- Build verification
Professional Code Quality
- Clean architecture
- Comprehensive documentation
- Industry best practices
Customization Guide
Adding New Interactive Objects
- Create a new class inheriting from
AInteractiveActor
- Implement the
IInteractable
interface methods - Add custom logic in
Interact_Implementation
Creating New AI Behaviors
- Extend
AEnemyNPC
or create new AI controller - Modify the behavior tree asset
- Add new blackboard keys as needed
Extending the Dialog System
- Create new dialog data structures
- Implement custom
ITalkable
classes - Extend the dialog UI widget
Adding New Stats
- Extend
UStatsComponent
with new properties - Update the damage system if needed
- Create UI elements for new stats
Performance Notes
- Interaction system uses efficient sphere tracing
- AI perception optimized for multiple NPCs
- UI widgets use object pooling where appropriate
- All systems designed for 60+ FPS gameplay
Support
This template includes:
- Detailed code comments
- Comprehensive test coverage
- Debug visualization tools
- Performance monitoring
For questions or issues:
- Check the individual milestone guides
- Review the test cases for expected behavior
- Use the debug CVars for troubleshooting
License
This template is provided as an educational resource for learning C++ game development with Unreal Engine.