Skip to content

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

📁 Download Complete Project

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:

  1. Follow the milestone guides step-by-step
  2. Compare your code with this reference when stuck
  3. Use individual files as examples

Option 2: Starting Point

Use this as a base for your own game:

  1. Copy the entire template to your project
  2. Rename classes to match your game
  3. Customize and extend the systems
  4. 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

  1. Create a new class inheriting from AInteractiveActor
  2. Implement the IInteractable interface methods
  3. Add custom logic in Interact_Implementation

Creating New AI Behaviors

  1. Extend AEnemyNPC or create new AI controller
  2. Modify the behavior tree asset
  3. Add new blackboard keys as needed

Extending the Dialog System

  1. Create new dialog data structures
  2. Implement custom ITalkable classes
  3. Extend the dialog UI widget

Adding New Stats

  1. Extend UStatsComponent with new properties
  2. Update the damage system if needed
  3. 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.