cardinal-fall_ue5/Documents/Notes.txt

224 lines
No EOL
20 KiB
Text

Bugs from Unreal 5:
(Indent on a bug denotes already fixed or placed in the issue tracker.)
The HostGame widget in \Cardinal\MainMenu\Blueprints\UI\PlayGamePanels\HostGame is blank inside the editor.
The Unreal 4 key re-binding system doesn't work on Unreal 5. A new implementation is needed.
The interaction popups aren't visible in the game when run in-editor.
The physics on thrown items slides across the level too easily.
The puddle on the ground where the players spawn is too opaque.
There's a white flash when the intro video starts.
The text for the keypad entry bounces on any keypress except enter.
The ending credits are visible on the bottom third of the screen, they scroll too fast, and they stop scrolling too soon.
The packaged build size is more than double now at 7gb. Are the not used assets being packaged now in UE5? Check into this.
Bugs from Unreal 4:
To do after releasing the demo v1.0...
Bug: The game still "stutters" on first playthrough despite having the shader compilation plugin. Look into the plugin's settings. Consider chaing the method and having the player's view fly around the level during the black screen of the intro.
Feat: Implement a level streaming system that works with multiplayer. (To decrease loading times and to work around the <341 reflection captures limitation.)
Feat: Create an audio settings test where multiple audio types play at the same time (such as voice and music) so the player can set the audio levels more easily. This is useful for TVs with bad speakers because often the dialogue is loud but the music seems quiet.
Feat: Change how the punch and kick works to allow for more consistant hits by doing damage to any actor within a certain distance instead of on component overlap.
Feat: The weapon lasers were disabled. They should detect collision so the laser doesn't shine through walls and the laser effect should fade out as the laser shines instead of ending abruptly.
Feat: Add the ability for specific items to be spawned near the player's body instead of returning to their original spot when they die.
Feat: Ladders were limited to one player for forgotten reasons. Look into allowing multiple players on one ladder again.
Feat (AI Rework): Completely rework the Security AI and make sure it will function correctly if the player is in first person as well.
Feat (AI Rework): Security AI needs suspicious patrol behavior tree logic when the Blackboard Key EnemyIsVisible? is set to no when a player hides from the AI in the catwalks using crouch. Si`mple audio promps instead will help.
Feat (AI Rework): Security AI needs audio promps like enemy seen, enemy lost, enemy down, and so on which are called and managed locally in the player character so the audio promps don't repeat.
Feat (AI Rework): Security AI temporarily uses hearing perception for the stealth mechanic to detect the player without line of sight on the catwalks. This temporarily allows the AI to shoot through solid objects. It needs fixed. Use line traces to detect collision types?
Feat (AI Rework): Security AI needs more montages to make the AI seem more realistic.
Feat: The audio volume settings need a larger range of increasing the maximum audio.
Feat: Add the ability to move the cargo "crane" above the security station using a console. Also stimulate physics on the platform when the player jumps onto it.
Feat: Add elevator movement lighting effects to simulate the elevator is passing by when it is called.
Feat: Make the elevator move to a floor before destroying the player's character at the end of the demo so the other players don't see the character disappear.
Feat: Make Lorna in Enum_ObjectiveCharacters and put her in the switch in Widget_ObjectiveViewer.
Feat: Make a "DisableInput?" variable in BP_Character that is checked before inputs are used. Then character inputs can be disabled without setting Input Mode UI Only, which disables all inputs.
Feat: Add more ambient sounds in the level design.
Feat: Polish the "key cards" system for the elevator so each player gets access to a different level/floor depending on what reclamation chute they spawn out of.
Feat: Make pickups able to call an objective when picked up for the first time. For example, to run the tutorial when you pick up the pistol for the first time.
Feat: On the bottom of the map before the player gets to power control and the electrical arc section, make an obstacle puzzle that slows the player down.
Feat: Implement the ability for players to set toggle crouch.
Feat: Make a mesh for dropped access cards. Right now SM_Phone is used with a grey material as a placeholder.
Bug: Tossing an item on the stairs in the locked storage closet can cause the item to bounce to a place where the player cannot pick it up. Implement a method to keep the items on the X axis like it's done for the player character.
Bug: The audio trigger on the tall ladder in reclamation can be re-triggered if the player decides to change directions. There is an un-used trigger to delete the audio triggers. Did that trigger cause a problem with different loading/death scenarios?
Bug: When returning from in-game to the main menu, the screen is black for a second until the loading video becomes visible. (The video's audio can be heard.) Did this happen after the map size was greatly increased?
Bug: All missions are marked as active/white on multiplayer clients. Listen server hosts and local games work as intended.
Bug: Datapad objectives are ordered with the newest at the bottom for Velma. Is it more intuitive for them to be ordered the other way around?
Bug: Support more graphics options such as maximized windows. They were disabled due to a bug in Windows 10 where the gamma was too bright.
Bug: Jump stopped working twice after a respawn on the client when running on very old hardware that runs the game at less than 10fps. Was this a one off issue?
Bug: Security AI's walking animation is slightly off sync where the model's feet appear to slide as the character walks. Changing the walking speed up or down does not help this.
Bug: Security AI has a bug where they no longer see the player when an enemy type (zombie) was closer and killed by security and the player goes barely out of sight/screen range.
Bug: Security AI needs a check to stop shooting if player is in an elevator with a fully closed door. (Changed elevator doors from BlockChannel to WorldDynamic becaues block channel was blocking shooting horizontally across the level. Was this fixed?)
Bug: Zombie AI has a navigation problem on ExampleMap but doesn't appear in the main level. Tried to reproduce in Nadir but wasn't able to. Tried modifying collisions and adding blueprint objects that were nearby, but this did not appear to reproduce.
Bug: Hud displays over screenfadeout. Create a full screen black widget that has animation slowly raise opacity from 0 to 1 instead. (The widget was created, but hasn't been implemented in all fade outs.) (Was this fixed?)
Bug: Interaction selection popup widget is able to be focused on by the mouse when it shouldn't be possible. (Was this fixed?)
Bug: Crouch collision capsule size shrinks while jumping. (the top of the character goes through meshes when jumping and crouching)
Bug: Make the sticky note material appear a similar brightness as surrounding materials. It is too dark in the world but too bright as a popup.
Bug: The editor's message log has various asset errors that need fixed such as wrapping or overlapping UVs.
Bug: The mesh Floor_Grate_3 doesn't light correctly. In dark areas, the mesh has bright glowing "highlights" around some the edges when the similar mesh Floor_Grate_1 does not.
Bug: Some metallic materials have an issue with the "wet material" rendering looks wrong (e.g: M_ScrewMainHull_Metal02_RK that uses ML_UNV_Wet01. They look like they've got too high of a specular value.
Bug: The material MaglevKitbash02 on the mesh SM_MetalRailing1 has an incorrect looking specular? shine to it. This was likely caused by an engine upgrade similar to the "wet" materials.
Bug: Some meshes / materials have a flicker in game such as on Floor_Grate_3. This was possibly caused by an engine upgrade using newer anti aliasing methods. It's possibly a similar cuase for the "wet" materials.
Bug: BP_Item scienst head mesh is visible before the spawning effect takes place. See the ExampleMap.
Bug: The laser on AI's guns shut off when they lose sight of the player and it doesn't turn back on when they see the player again. This was temporarily fixed by disabling the laser.
Bug: BP_Character's CollisionBlockPlayer component using the custom collision channel BlockPlayer doesn't block collisions.
Bug: PIE clients set to auto connect to server on Nadir (when BP_GameState's IsGameDebug? is set to false) loads the popup "server is full | disconnecting" Fix the cause and/or add a "Close/X" so you can escape of the popup since the disconnect never happens.
Bug: Graphics native fullscreen makes game look "white and washed out" when changing to non-native resolutions. Wrong gamma? Tried current nvidia driver and �Frame Buffer Pixel Format� "10bit""8bit" and "float" but they didn't work.
Bug: The "Generate Clone" umg buttons are not working on standalone games. This bug exists in 4.26 and 5.x and it's unknown as to why. Full rebuild doesn't fix it. Perhaps a new clone from source will.
Packaging Project:
We are using Shipping builds.
For shipping builds, the config and game save files are stored in the C:\Users\{UserName}\AppData\Local\Cardinal folder. The first start gamma settings won't load if /Saved/Savegames/MenuGameSettings.sav is present.
Make sure these save files are deleted when the game in uninstalled otherwise the gamma settings and shader compilations won't run on that machine's first startup.
To release on steam, see the instructions in the Steamworks folder.
Releases:
To release the project files for download:
First, copy the game files from a freshly CLONED repo copy below: (build may have to come from a current project)
Build
Config
Source
Then paste a copy of the CURRENT Content folder along with the ReadMe and Credits file
Then paste a copy of the Epic Laucher 4.26 built version of Cardinal.uproject, and the Plugins / Binaries folder (so it's alread compiled)
To update a simple release of the project files for download that only changes the content:
Unzip the previous release to a folder and then replace the content directory with the current build
Editor Tips:
To stop the Epic launcher from loading with the UE4 editor, add PerforceBuild.txt file to {EngineDir}\Engine\Build and then in the editor's preferences disable "Enable Shared Data Cache Performance Notifications"
Meshes: Set light map resolution to 32 or higher, try setting light map coordinate index if model is dark or black.
Create Static Mesh: Light map dark or black? Under Static Mesh Settings, set Light Map Resolution to 64 or higher and set the Light Map Coordinate Index to 1.
Weird Lighting On Static Mesh: Light map too bright? Try enabling "Use Two Sided Lighting"
Convert Brush to Mesh: Use the "Persistent Level" and either "Touch" all material coordinates so alignment is applied or move the brush to a position where the default material location aligns how you want it to. (otherwise the materials look off)
Set Brush Pivot Point: Select the brushes, then go to "Brush Editing" Mode and select the Vertex. then Right Click and "Set as Pivot Offset", then in the panel press "Create Static Mesh"
Temporal AA TAA jittering is caused by r.TemporalAASamples 8. Retting it to 4 in the console reduces the jitter.
Editor Fixes/Glitches:
If the particle system doesn't show in game, check the LOD settings and bounds by clicking on the black space in the emitters box.
Lighting: When using candelas, setting "use inverse squared falloff:on" and then "off" will break the light's units, try using lumens instead.
Meshes: If the lighting is black, check "General Settings" > "Light Map Coordinate Index" = "LOD 0" > "Destination Lightmap Index" + Ensure UV 1 (or 2) is built and set for lighting.
If "struct" is unknown in a blueprint, click "File" > "Refresh All Nodes" in the offending blueprint. (Full Rebuild in project settings does not fix this.)
If a new game doesn't start with the cutscene, this is likely caused by the string "No GameSaveDate Time Set" not being set in "GameSaveData" when the game loads. To fix, set set the struct "NewGameSettings" variable "TimeSaved" to "No GameSaveDate Time Set" in \Cardinal\MainMenu\Blueprints\UI\PlayGamePanels\SavedGames. Also, set this in the BP_GameInstance variable LoadedSavedGame.
UE4 Benchmarks: (framerate at the starting spawn on 1080p)
GTX 660 Ti 55fps (Passmark 4,411)
GTX 680 79fps (Passmark 5,609)
GT 1030 38fps (Passmark 2,417)
RX 550 33fps (Passmark 2,673)
Unreal 4.27 Upgrade
Audio doesn't work on the Bink video plugin for Linux? Could not get it to work.
The editor has less GUI bugs on Linux than 4.26 did.
Has a 10-15% performance hit on Linux. >5% and <10% performance hit on Windows.
The gameplay and plugins were not fully tested but it packages and runs on Linux and Windows.
Steam session joining tested as working on Windows.
Unreal 5.0 Upgrade
Tested Working:
5.1, 5.2 (5.2 has rendering issues on older hardware, try to stick with 5.1)
5.1, 4.26 linux dedicated server build compiles and works, spawn broken level blueprint not passing transforms
Log Data for failed spawn on linux:
[2024.03.26-08.49.55:982][252]LogScript: Warning: Accessed None trying to read property Spawn Location
BP_GameState_C /Game/Cardinal/Maps/Nadir.Nadir:PersistentLevel.BP_GameState_C_2147482470
Function /Game/Cardinal/Blueprints/BP_GameState.BP_GameState_C:ExecuteUbergraph_BP_GameState:1C40
[2024.03.26-08.49.55:984][252]LogScript: Warning: Script call stack:
Function /Game/Cardinal/Blueprints/BP_GameState.BP_GameState_C:ExecuteUbergraph_BP_GameState
Function /Game/Cardinal/Blueprints/BP_GameState.BP_GameState_C:SpawnSequencerLoop
Function /Game/Cardinal/Blueprints/BP_GameState.BP_GameState_C:ExecuteUbergraph_BP_GameState
Function /Game/Cardinal/Blueprints/BP_GameState.BP_GameState_C:BeginBP_SpawnSequence
Function /Game/Cardinal/Blueprints/BP_GameState.BP_GameState_C:ExecuteUbergraph_BP_GameState
Issues:
5.1 Generate Clone Menu umg buttons or the game's intro are not working on a standalone game. This bug also exists in 4.26 and it's unknown as to why. We tried a new clone of the project with a full rebuild.
5.2 PlayGameSubpanel widget has two HostGame variables, one is in "desinger" and other is incorrectly manually created. Unset variable in designer and delete the manual one and reset pin
5.3 has issues with online sessions, stick with 5.2 or 5.1
5.2 has rendering issues with running on older hardware
5.4 is untested, reported to be the last stable point for static lighting
5.5 is reported to be 30% slower than 5.4, also this is the last known version to work reliably with static lighting but it is more "fragile" than previous versions
Unreal 5 cannot bake lighting using lumen thus requires higher system specs as lumen outputs 1/4th the fps compared to baked lighting, baking requires using raytracing and gpu lightmass plugin
5.6 the swarm manager for lighting is broken, static lighting is no longer the focus of the engine, also steam sessions are reported to be broken
5.7 also has problems with the swarm manager
Plugins that compile: AdvancedSessions, LoadingScreen, PathFollow, Varest, VictoryPlugin
Plugins with issues: PingPlugin, GamepadUMG
Solution: Use new methods for pings and control bindings from the sample UE5 project
Did not test linux client build
Steps For Migration:
Plugins Disabled and Removed From Cardinal.uproject:
GamepadUMG
PingPlugin
MeshEditor
Test UE5-1 Stand Alone Game, Crashes With
Assertion Failed: IsInGameThread()
5.1 Release Engine\Source\Runtime\HeadmountedDisplay\Public\IHeadMountedDisplayModule.h
Tried New Video Drivers, Haven't Tried Rebuild Source, Haven't Tried Video Plugin
Fixed by having only one intro video
UE5.0 FPS 45% slower
UE5.1 FPS 45% slower
UE5.2 FPS 35% slower
UE5.3 FPS 47% slower
Did not check if it is using Shader Model 5 and DX11. This could be why the performance was worse.
Unreal 5.2 Migration
Missing Plugins: GamepadUMGPlugin, PingPlugin, ShaderCompilationScreen
Copied the plugins from "CF_UE5_Moded_Copy52_Redo" but "CF_UE5_Moded-Copy52" has plugins that seem to be newer than them. If there are issues, look into this.
Downloading ShaderCompilationScreen.
These Blueprints caused the error: Assertion failed: NewOperatorInputA ... K2Node_CummutativeAssociativeBinaryOperator.cpp
This was caused by Victory Plugin's Append Multiple Node.
\Content\Cardinal\MainMenu\Blueprints\UI\Submenus\SettingsSubMenu.uasset
\Content\Cardinal\MainMenu\Blueprints\UI\Submenus\PlayGameSubMenu.uasset
\Content\Cardinal\MainMenu\Blueprints\UI\Elements\GammaPopup.uasset
UE5: Needs new method for input controls and pings from the sample UE5 project. Use the new UE5 Shootergame example?
Linux on Unreal 4.26:
If you want VictoryBPLibrary to compile and package on linux:
Modify Line 27 In \Plugins\VictoryPlugin\Source\VictoryBPLibrary\Public\VictoryBPFunctionLibrary.cpp
#include "HAL/PlatformFilemanager.h" to #include "HAL/PlatformFileManager.h"
Add Linux to the PlaftformAllowList in the VictoryBPLibrary.uplugin
The "now" blueprint node causes linux to crash in Unreal 4.26 on this project but does not crash on a new project. Reason unknown. Fixed by bypassing "Now" in linux. This removes timestamps from game saves.
Videos are bypassed in linux due to terrible playback quality. To fix, migrate to 4.27 and use Bink video. 4.27 was tested in Linux. No audio on videos? Plus the video seemed slow. Did not test higher compression levels.
Android (untested):
UE4.26 https://docs.unrealengine.com/4.26/en-US/SharingAndReleasing/Mobile/Android/Setup/AndroidStudio/
Android Studio 4.0 https://developer.android.com/studio/archive
After install, under configure, sdk-manager, sdk-tools, uncheck hide obsolete and check show package details, install build-tools 29.0.3 and NO OTHERS
build-tools 30.0.3 Project Settings: target sdk 30 , minimum sdk" 30, sdk api level android-29
Delete C:\Users\User7\.gradle\caches and C:\Users\User7\.gradle\daemon and I:\Unreal Projects\CardinalFall_March2021_04-2024-Android\Intermediate\Android\armv7\gradle
PLATFORMS_VERSION=android-29 (Android 10.0 (Q))
BUILDTOOLS_VERSION=30.0.3
CMAKE_VERSION=3.10.2.4988404
NDK_VERSION=21.4.7075529
Allow large obb files.
Disable verify obb on first start/update.
Mac (untested):
A forum post about VictoryBP Plugin not working on Mac: "To anyone that�s willing to help with this issue, is there a way to compile this plugin for Mac? I�ve been unable to successfully compile this plugin for Mac as Xcode ends up giving an error, even in blank projects.
I�ve modified the VictoryBPLibrary.uplugin to include Mac as a supported platform but haven�t had success with it running. First it�ll give an error of: cannot initialize return object of type �UStaticMesh *� with an rvalue of type �bool� on line 286 and 366. I change their return values to nullptr. But then I�m greeted with /Users/Shared/Epic Games/UE_5.2/clang:1:1 linker command failed with exit code 1 (use -v to see invocation)
Thing is I can�t see the log due to it failing the build so quickly that Xcode doesn�t log it.
To anyone that experienced a similar issue and was able to find a solution, can you please share your solution? Or is this a case of this plugin being exclusively for Windows and Linux?
Edit: The error specifically is: Undefined symbols for architecture arm64:
�UE::Geometry::FDynamicMesh3::~FDynamicMesh3()�, referenced from:
FCreateMeshObjectParams::~FCreateMeshObjectParams() in Module.VictoryBPLibrary.cpp.o
Edit: Fixed! I had to remove all references of DynamicMesh3, create mesh etc. Just keep chipping away at removing these until the errors are gone, this is more of an engine error rather than plugin. Great work Rama!"