Build your Game on Lyra
Don’t start from scratch! Start from Lyra.
Epic suggests that you start your new game based on Lyra. They say the intent is for us to think of Lyra like engine code. That is, use it as a base and build our new games on top of it.
The cost to us is simply to learn how they configured the game and how to extend the framework they have built.
Pros and Cons discusses why you may or may not want to use Lyra yourself. There are legitimate reasons both to use and to not use Lyra depending on your circumstances.
If you already have an existing game, Lyra offers some plugins and game systems that you can copy into your game to save yourself a lot of work.
If you are starting a new game, it’s probably easier to start with Lyra and delete the stuff you don’t want, rather than to copy the (likely significant) stuff you do want from Lyra into a blank game. There are multiple viable ways to base your new game on Lyra. Some options are discussed here:
Extending Lyra: Development Considerations
Unofficial Lyra Dev Network Community Discord
We have a community Discord for discussing Lyra game development.
Open to C++ devs, BP devs and enthusiasts.
Please be respectful of others.
Dev talk only. No politics, religion or hate.
Getting Started
Ready to create your own LyraStarterGame project?
I made this How-To before an official one was available, I leave it here for posterity: Set Up a New LyraStarterGame Project
Lyra Concepts
Project Organization
IMO you should try to not modify the base Lyra game unless you really must. The entire namespace of the base game should be considered to be reserved by Lyra.
- Content goes into GameFeature Plugins (GFPs)
- Core C++ can go into a regular Plugin
- Practically speaking this is ideal, though it is optional
At the very least you need to create one GFP for your Content.
Upgrading Lyra Core
Epic will sometimes upgrade the Engine and/or Lyra Core.
Upgrading Lyra Core discusses how I try to make this process as easy on myself as possible.
Re-save Assets on Engine Update discusses the need to explicitly re-save many binary project assets any time you update the Engine version. This is a UE requirement that significantly affects Editor startup time.
Player Input
Common UI “owns” player input
- Lyra Input Overview
- How Common UI is Setup in Lyra
- High Level Overview of Common UI in General
- How to take Control of the Mouse in Lyra
Lyra Game Mode
- Lyra Experience
- How & Why Lyra loads itself and your GFPs the way it does
- Lyra Game Initialization
- Debug Tracing to illustrate how a Lyra World starts up and initializes itself
- Lyra Game Phase Subsystem
- Once a game is playing, how to manage different phases of game play
- Lyra Plugins
- Overview of the Plugins Epic distributes via the Lyra project
Lyra Gameplay Systems
- Character Parts
- Modular Character Parts
- Equipment System (prototype)
- Inventory extension: Inventory Items that are pieces of Equipment usable by Pawns
- Health and Damage System
- Based on Gameplay Ability System Attributes & Effects
- Interaction System (prototype)
- Allows the player to interact with Actors in the World
- Inventory System (prototype)
- Allows pawns to keep items in inventory
- Team System
- Organize Players, Pawns, etc into Teams
- Weapon System (prototype)
- Equipment extension: Equipment Items that are Weapons usable by Pawns
Other Lyra Systems
- Game Settings
- Comprehensive Game Settings (this is a beast to try to copy out due to the extensive use of UI assets, but it can be done)
Lyra Character
- Shooter Mannequin Character
B_Hero_ShooterMannequin
is the base Character class in Lyra, you will definitely want to understand it well- Demonstrates key concept: Asynchronous, inter-dependent
ModularGameplay
Initialization of Pawn components
- Lyra provides a great
Character
base, but does not provide a usefulPawn
.- This seems to be typical in UE5; Characters are first class, Pawns are completely up to you.
Gameplay Ability System (GAS)
Lyra-Specific GAS Resources
- How to: Create a New Gameplay Ability
- Lyra Ability Tag Relationship Maps
- C++ Examples:
General GAS Resources
- UE5 Gameplay Ability System Conceptual Overview
- Gameplay Attributes:
- Attributes and Attribute Sets (Epic Documentation)
- Attributes and Gameplay Effects (Epic Documentation)
Misc Lyra Stuff
In an effort to understand the material Epic has provided us to start with, I am dissecting the GameFeature plugins they shipped to understand what they do, how they’re similar and how they differ from one another.
Module | Description |
---|---|
ShooterCore | Base framework for a shooter game |
ShooterMaps | Implementation of ShooterCore |
TopDownArena | (will probably skip this) |
Bug fixes:
- How to: Resave Lyra 5.1 Assets for faster Editor Load Times
- How to: Fix Lyra’s Unarmed Animation Bugs
Works in progress:
- How to: Customize the Lyra FrontEnd (incomplete; coming eventually)
References
As I learn more about LyraStarterGame I’m keeping a list of references.