Attempt to create a version of my previous Lyra-based game (Pegasus), but without all the Lyra bloat as I've often no idea what that template is doing.
Also trying to use C++ over blueprints to make source compare easier.
- Download & install Visual Studio Code and Unreal Engine
- Install Git LFS with
> git lfs install - Clone the repo
- Launch the Unreal editor by double+clicking on the
.uprojectfile inFile Exploreror by launching the editor directly Edit > Editor Preferences... > Source Code- Change the
Source Code EditortoVisual Studio Code Tools > Refresh Visual Studio Code Project- Close out the Unreal editor
- Open the newly created
.code-workspacefile in the root of the project Ctrl+Shift+Dto show theRun and Debugclover- Select
▶ Launch ThirdPersonShooterEditor (Development) F5to launch the Unreal editor with the VS Code debugger attached!
C++ intellisense is borderline-useless with Unreal projects. Might be size, idk. Anyways, I mainly use Search (Ctrl+F) to find variable references.
Make sure that if you're doing this globally that you toggle the Search Details (triple dot) and add ./ThirdPersonShooter to the files to include.
This will prevent Code from searching the entire Unreal Engine source, which is probably not what you want.
- swap to anim motion-matching & get assets for flying
- enable camera-collision for the vehicle parts
- move loose vehicle collision settings to presets
- add armor w/damage reduction
- shotgun crashes the engine if you shoot 2 silhouettes in quick succession
- Tracked this down to
GCNL_Character_Damagedfor theSelect & Queue Adminfunc - think the multiple hits so close are breaking something?
- Tracked this down to
- Exiting the editor will cause an
Access violation executing location 0xFFFFFFFFFFFFFFFFto be thrown with no source or context available - Add a check for IsPlayingAnim for the Feed Widgets before the queue up a new one
- Lyra uses
FFastArraySerializerinLyraEquipmentManagerComponent.hand the linker breaks when I try to import the header file- I'm sure this is important for multiplayer, so will need to address this eventually
- I've fixed the linker error, but need to go back and implement the removed
FFastArraySerializerreferences
- Research asset manager registrations for:
UInventoryItemDefinitionUEquipmentItemDefinition
- 30000.0 cm/s is a good muzzle velocity for blaster bolts
- Need to go back and rename a bunch of classes from ModularX to something more descriptive
- What is the difference between a
GameplayCue, and aGameplayEventin terms of GameplayTags?- assume
GameplayCueis 'Hey, you're supposed to do X now', andGameplayEventis 'Y just happened'
GameplayEventsare used by the AbilitySystemComponent to track when an ability should be triggered by a certain 'event' - seeGA_WeaponFirelistening for theInputTag.x- Is it though? Removing the InputTag from the GA_ doesn't affect functionality... InputTag_Bindings holds the link between the 2...
GameplayCuesare typically for the server telling the client to do some VFX/SFX thing - see theGameplayCuefor grenades - assume
- Add a PawnCosmeticComponent to
AModularPawn& have equipment attach to scene elements in that- probably fine for this to just be a part of the
EquipmentManagerComponent? - only case where it's not would be for truly cosmetic only things like character customization
- look to the
SKM_MannyInvis
- look to the
- probably fine for this to just be a part of the
- Figure out how to use AssetManager w/cosmetics etc. (Data registries?)
- Add the NotifyName for post
Activate Anim Layer and Play Paired Montageto listen for animation notify event - Lyra has the
AbilitySystemComponentoff the PlayerState, not the Pawn, where is the best location? - Make sure I'm using ALevelInstance right with
GameFeatureAction_AddLevelInstance(streaming, etc) - Add a func for
InteractableObjectsFoundinstead of just changed - Move
GA_Interaction_Activateto a C++ class- Same with
GA_Interaction_Collection
- Same with