praca_magisterska/games/unreal/tutorial/part-10-cpp-final-setup.md

4.8 KiB

Part 10 (C++): Final Setup

← Previous: Part 9 (C++) - Polish & Debug Features | Back to Index


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 | Back to Index