# Part 10 (C++): Final Setup [← Previous: Part 9 (C++) - Polish & Debug Features](part-9-cpp-polish.md) | [Back to Index](README.md) --- ## Overview Polish the game with visual assets, materials, and final tweaks. **Time:** ~15 minutes --- ## Step 9.1: Assign Better Visuals to Blueprints Now we use Blueprints for what they're good at: assigning visual assets! ### BP_Player: 1. Open `BP_Player` 2. Select `ShipMesh` component 3. In Details: - **Static Mesh** → Keep Cone or choose a spaceship model - **Material** → Create or assign a green emissive material 4. Compile and Save ### BP_Enemy: 1. Open `BP_Enemy` 2. Select `MeshComp` component 3. In Details: - **Static Mesh** → Keep Cube or choose enemy model - **Material** → Create or assign a red emissive material 4. Compile and Save ### BP_Bullet (if you created one): 1. Same process - assign materials for player (green) vs enemy (red) bullets --- ## Step 9.2: Create Background 1. In level, add **Plane** (from Place Actors → Basic → Plane) 2. Scale it large (Scale: 50, 50, 1) 3. Position below player (Z: -100) 4. Assign dark material (black or dark blue) 5. This provides contrast for bullets and enemies --- ## Step 9.3: Adjust Camera If camera needs adjustment: 1. Select BP_Player in level 2. Find `SpringArm` component 3. Adjust: - **Target Arm Length** - Higher = further away camera - **Socket Offset** - Adjust view position --- ## Step 9.4: Final Testing Press Play and verify: **Gameplay:** - ✅ Player moves smoothly with WASD - ✅ Player fires green bullets in spread pattern - ✅ Enemies spawn from top - ✅ Enemies move in sine wave pattern - ✅ Enemies fire red bullet bursts - ✅ Collision detection works (bullets hit enemies, enemies hit player) - ✅ Score increases when enemies destroyed - ✅ Lives decrease when hit - ✅ Special ability clears screen (X key) - ✅ Timer counts down - ✅ Victory after 300 seconds - ✅ Game over if lives reach 0 **Visual Polish:** - ✅ Player and enemies have distinct colors - ✅ Bullets are visible and distinguishable - ✅ UI is readable - ✅ Background provides good contrast **Performance:** - ✅ 60 FPS with 100+ bullets on screen - ✅ No lag or stuttering --- ## Step 9.5: Build Standalone Game (Optional) To build a playable executable: **First, set the default level:** 1. **Edit → Project Settings** 2. In the left panel, find **Project → Maps & Modes** 3. Under **Default Maps**: - **Editor Startup Map** → Select `BulletHellLevel` - **Game Default Map** → Select `BulletHellLevel` 4. Close Project Settings **Then package the game:** 1. In the main toolbar, click **Platforms** (next to the Play button) 2. Select **Windows** (or **Linux**) 3. Click **Package Project** 4. Choose output folder 5. Wait for build (5-10 minutes) 6. Run the `.exe` file from output folder > **Alternative:** You can also access packaging via **Edit → Project Settings → Packaging** to configure settings, then use the **Platforms** menu to build. --- ## Completion Summary ### Total Time Comparison | Part | Blueprint | C++ | Time Saved | |------|-----------|-----|------------| | 1. Project Setup | 5 min | 10 min | -5 min | | 2. Player | 60 min | 15 min | 45 min ⚡ | | 3. Bullet | 30 min | 10 min | 20 min ⚡ | | 4. Enemy | 90 min | 25 min | 65 min ⚡ | | 5. Spawner | 40 min | 10 min | 30 min ⚡ | | 6. Game Director | 45 min | 10 min | 35 min ⚡ | | 7. UI | 30 min | 15 min | 15 min ⚡ | | 8. Game Mode | 20 min | 5 min | 15 min ⚡ | | 9. Polish & Debug | 20 min | 10 min | 10 min ⚡ | | 10. Final Setup | 40 min | 15 min | 25 min ⚡ | | **TOTAL** | **6-8 hours** | **2-3 hours** | **4-5 hours saved!** ⚡⚡⚡ | ### Key Benefits Achieved ✅ **90% faster variable definition** - copy-paste vs clicking ✅ **Version control friendly** - readable C++ diffs instead of binary Blueprints ✅ **Type-safe** - compiler catches errors before runtime ✅ **IDE support** - autocomplete, refactoring, debugging ✅ **Easier to maintain** - code is documentation ✅ **Reusable** - copy C++ files to new projects instantly ### Hybrid Approach Used - **C++ for logic** - All game mechanics, variables, algorithms - **Blueprints for visuals** - Meshes, materials, colors - **Best of both worlds** - Fast development + visual asset management --- ## What's Next? **Extend the game:** - Add power-ups - Multiple enemy types - Boss battles - Sound effects and music - Particle effects - Leaderboard system **All easily done in C++** with the same copy-paste efficiency! --- ## Congratulations! 🎉 You've built a complete bullet-hell game in Unreal Engine using C++ in 2-3 hours instead of 6-8 hours with Blueprints! --- [← Previous: Part 8 (C++) - Create Game Mode](part-8-cpp-create-game-mode.md) | [Back to Index](README.md)