Browse Source

Added build option, notes, and updated TODO

master
Macoy Madson 6 years ago
parent
commit
e46e21f706
  1. 6
      Notes.md
  2. 73
      TODO.tasks
  3. 9
      src/project/galavantSublime/galavant.sublime-project

6
Notes.md

@ -8,12 +8,16 @@ Miscellaneous notes regarding working on Galavant, the code, and other random sh
you get the latest Galavant changes when using Unreal's hot reloading
- After rebuilding Unreal, you may need to delete GalavantUnreal/Binaries/* if you get 'Game Module Could Not Be Loaded' error on startup
- Even if you `make` the project, you'll still need to hit the Compile button in the editor to get Unreal to compile and hotreload your code
- I added a hack which makes the engine auto scale to my desired DPI settings. You'll probably want to change these to fit your preferences. Change the value of `FSlateApplication::Get().SetApplicationScale(1.53f)` in `AGalavantUnrealMain::AGalavantUnrealMain()` to your desired DPI (1.f is the engine default).
- I added a hack which makes the editor auto scale to my desired DPI settings. I run the command `HighDPI` in game and it'll make the editor scale for the rest of the runtime
- When exporting .FBX Skeletal meshes from Blender, ensure `Forward` is `Y Forward`, `Up` is `Z Up`, and in `Armature` settings, uncheck `Add Leaf Bones`.
### Useful Unreal Commands
- I set my standalone builds to run with these options: `-windowed -resx=1920 -resy=1080`. I have a 4K monitor which is too performance intensive in game at native, and prefer windowed while working
- `r.setRes 1920x1080f`: Set screen resolution (w = windowed, f = fullscreen, wf = windowed fullscreen)
- `'`: (Hit apostrophe in gameplay): Debug gameplay interface. Use NumPad for various views
- `stat fps`: Show FPS in corner
- `t.MaxFps`: Set max FPS (default seems to be 60)
- `stat StartFile`, `stat StopFile`: Record profiling data. Goes to the nearest `Saved` folder to the executable. Open Window > Developer Tools > Session Frontend and go to the Profiler tab to do anything useful with this data
## Comment Tags

73
TODO.tasks

@ -2,15 +2,9 @@
Todo
------------------
Soak test editor - after ~1 hour it was looking pretty glitchy
statics don't work well with hot reloading
Need some sort of system which makes it easy to tell static shit to reload?
What does agent component manager do with triggers once plan is done? How to know plan is done?
Pickups sort of working, sometimes they aren't picked up, Actors are being destroyed strangely
Possibility that pickup actor is falling through the floor (invisible other component hitting KillZ?) YES, it's KillZ
Possibility that pickup actor is falling through the floor
(invisible other component hitting KillZ?) YES, it's KillZ
Minimap
HUD Minimap is difficult to use with regards to rotation (needs better view cone)
@ -43,9 +37,11 @@ Combat System
Goal #2: Minecraft but with strategy (this can be the stopping point for now)
Goal #3: Something closer to Chivalry instead of Minecraft
Add player HUD UI - Only needs Minimap, Need bars
Debugging
Fix debug text over AgentCharacter for combat test
Make it possible to e.g. hover over agents and inspect their values as soon as the game starts up.
Fix debug text over AgentCharacter for combat test
Add player HUD UI - Only needs Minimap, Need bars
Cereal integration
@ -53,27 +49,68 @@ Goal retrying needs rethinking (goal retry status is forgotten once goal complet
After extended period of time, PlanComponentManager is constantly trying to unsubscribe things
Replaying in editor seems to do strange things with needs/timers. Are things being reset properly?
Development
Save Jamfile documentation to repository
Automatic apply UEngine patch script
Fix Agents having unpredictable Need levels on second Play In Editor (I'm guessing the above Pause
Galavant loop will help with this)
Replaying in editor seems to do strange things with needs/timers. Are things being reset properly?
Consider spawning Game Logic-only colliders which anchor to Unreal bones for combat. These colliders
could be made into ragdoll colliders on true impact or somehow tell the thing it collided what the
force and direction is so the animation can react. Here's a perfect feature for this:
https://docs.unrealengine.com/latest/INT/Engine/Animation/PhysicallyDrivenAnimation/
Need something to free mouse
AGalavantUnrealFPCharacter::ToggleMouseLock() doesn't work
------------------
Doing
------------------
Combat System
Collision detection for combat
Need to delete Galavant editor build due to assert from FPCharacter
May need to repackage due to blueprint no longer matching code
------------------
Done
------------------
Add game control keybinds
Escape closes
P toggles Galavant pause/play game time
Pause/play might not work (component managers / agents behaving strangely, maybe after resume)
Get standalone full debug game working
What does agent component manager do with triggers once plan is done? How to know plan is done?
statics don't work well with hot reloading
Need some sort of system which makes it easy to tell static shit to reload?
Just be careful, don't do static initialization without making it lazy initialization
Soak test editor - after ~1 hour it was looking pretty glitchy
This is an Ubuntu/Nvidia driver issue, I think, so I wouldn't worry about it
Save Jamfile documentation to repository
Clean way to manage Galavant -> Character interactions (e.g. how to properly handle ragdoll)
UnrealCharacterComponentManager (make something which can do Unreal character stuff via
observing Agents etc.; this also would be where debug text on hover etc. could go instead
of inside AgentCharacter)
Compile Unreal in Full Debug and see if it's usable
or, figure out how to compile the engine but not editor and run the game standalone in full debug
or just compile the GalavantUnrealLib in full debug and see if that does the trick
The best option should be Editor is compiled in development and full debug and GalavantUnrealLib
is compiled in full debug. Use regular development editor when things are going fine. Either
way, I should get the game standalone version working (if it has faster startup than unreal
engine and comparable times to hot-reloading, it'd be valuable)
For certain normal Editor GenerateProjectFiles should be DebugGame instead of Development
(development has no/shitty symbols)
https://forums.unrealengine.com/development-discussion/c-gameplay-programming/37587-debug-game-editor-and-devlopemt-editor-difference
Get standalone full debug game working
------------------
Done
------------------
Some sort of resource system
Could be something like ResourceDictionary<key, ResourceType> resources
then things could stuff in things from load or even hard coded (via resources["new thing"] = {})

9
src/project/galavantSublime/galavant.sublime-project

@ -143,12 +143,19 @@
// Unreal Engine
//
{
"name": "Unreal Engine Get Latest and Build",
"name": "Unreal Engine Get Latest and Build (No debug)",
"shell_cmd": "guake -n UnrealLatest -e \"cd /home/macoy/Development/code/3rdParty/repositories/UnrealEngine && git pull && ./Setup.sh && ./GenerateProjectFiles.sh && make\"",
"file_regex": "^([a-zA-Z\/][^:\n]*):([0-9]+):?([0-9]+)?:? (.*)$",
"syntax":"JamUnrealBuildOutput.sublime-syntax"
},
{
"name": "Unreal Engine Get Latest and Build (Also debug)",
"shell_cmd": "guake -n UnrealLatest -e \"cd /home/macoy/Development/code/3rdParty/repositories/UnrealEngine && git pull && ./Setup.sh && ./GenerateProjectFiles.sh && make UE4Editor UE4Editor-Linux-Debug\"",
"file_regex": "^([a-zA-Z\/][^:\n]*):([0-9]+):?([0-9]+)?:? (.*)$",
"syntax":"JamUnrealBuildOutput.sublime-syntax"
},
{
"name": "Unreal Engine Build",
"shell_cmd": "make",

Loading…
Cancel
Save