Skip to content

Commit 20ef7cf

Browse files
Add Unreal Blackholio (#3260)
# Description of Changes Closes: clockworklabs/SpacetimeDBPrivate#1925 This adds Unreal Blackholio to the demo/Blackholio folder matching the Unity version using server-rust as the default. Includes: - Leaderboard - Circle Material - wavy border - Split/Sucide/Input Lock - Parallax Background - Camera movement based on total mass # API and ABI breaking changes No changes # Expected complexity level and risk 1 - Only adds the demo has no impact elsewise # Testing I've tested this backwards and forwards against the server-rust version and played alongside the Unity client. - [ ] Run it locally for review --------- Co-authored-by: John Detter <4099508+jdetter@users.noreply.github.com>
1 parent 34d8cd4 commit 20ef7cf

113 files changed

Lines changed: 7086 additions & 0 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

demo/Blackholio/.gitignore

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,3 +36,34 @@ Temporary Items
3636
*.icloud
3737

3838
# End of https://www.toptal.com/developers/gitignore/api/macos
39+
40+
# Unreal plugin build artifacts
41+
Binaries/
42+
Intermediate/
43+
DerivedDataCache/
44+
Saved/
45+
.vs/
46+
.idea/
47+
*.VC.db
48+
*.VC.opendb
49+
*.sln
50+
*.opensdf
51+
*.sdf
52+
*.suo
53+
*.user
54+
*.userprefs
55+
*.log
56+
*.tlog
57+
*.ipch
58+
*.obj
59+
*.pch
60+
*.pdb
61+
*.idb
62+
*.aps
63+
*.ncb
64+
*.cache
65+
*.sbr
66+
*.db
67+
*.xcodeproj
68+
xcuserdata/
69+
/sdks/unreal/tests/TestClient/TestResults

demo/Blackholio/client-unreal/Config/DefaultEditor.ini

Whitespace-only changes.
Lines changed: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
1+
2+
3+
[/Script/EngineSettings.GameMapsSettings]
4+
GameDefaultMap=/Game/Blackholio.Blackholio
5+
EditorStartupMap=/Game/Blackholio.Blackholio
6+
7+
[/Script/Engine.RendererSettings]
8+
r.AllowStaticLighting=False
9+
10+
r.GenerateMeshDistanceFields=True
11+
12+
r.DynamicGlobalIlluminationMethod=1
13+
14+
r.ReflectionMethod=1
15+
16+
r.SkinCache.CompileShaders=True
17+
18+
r.RayTracing=True
19+
20+
r.RayTracing.RayTracingProxies.ProjectEnabled=True
21+
22+
r.Shadow.Virtual.Enable=1
23+
24+
r.DefaultFeature.AutoExposure.ExtendDefaultLuminanceRange=True
25+
26+
r.DefaultFeature.LocalExposure.HighlightContrastScale=0.8
27+
28+
r.DefaultFeature.LocalExposure.ShadowContrastScale=0.8
29+
30+
[/Script/WindowsTargetPlatform.WindowsTargetSettings]
31+
DefaultGraphicsRHI=DefaultGraphicsRHI_DX12
32+
DefaultGraphicsRHI=DefaultGraphicsRHI_DX12
33+
-D3D12TargetedShaderFormats=PCD3D_SM5
34+
+D3D12TargetedShaderFormats=PCD3D_SM6
35+
-D3D11TargetedShaderFormats=PCD3D_SM5
36+
+D3D11TargetedShaderFormats=PCD3D_SM5
37+
Compiler=Default
38+
AudioSampleRate=48000
39+
AudioCallbackBufferFrameSize=1024
40+
AudioNumBuffersToEnqueue=1
41+
AudioMaxChannels=0
42+
AudioNumSourceWorkers=4
43+
SpatializationPlugin=
44+
SourceDataOverridePlugin=
45+
ReverbPlugin=
46+
OcclusionPlugin=
47+
CompressionOverrides=(bOverrideCompressionTimes=False,DurationThreshold=5.000000,MaxNumRandomBranches=0,SoundCueQualityIndex=0)
48+
CacheSizeKB=65536
49+
MaxChunkSizeOverrideKB=0
50+
bResampleForDevice=False
51+
MaxSampleRate=48000.000000
52+
HighSampleRate=32000.000000
53+
MedSampleRate=24000.000000
54+
LowSampleRate=12000.000000
55+
MinSampleRate=8000.000000
56+
CompressionQualityModifier=1.000000
57+
AutoStreamingThreshold=0.000000
58+
SoundCueCookQualityIndex=-1
59+
60+
[/Script/LinuxTargetPlatform.LinuxTargetSettings]
61+
-TargetedRHIs=SF_VULKAN_SM5
62+
+TargetedRHIs=SF_VULKAN_SM6
63+
64+
[/Script/HardwareTargeting.HardwareTargetingSettings]
65+
TargetedHardwareClass=Desktop
66+
AppliedTargetedHardwareClass=Desktop
67+
DefaultGraphicsPerformance=Maximum
68+
AppliedDefaultGraphicsPerformance=Maximum
69+
70+
[/Script/WorldPartitionEditor.WorldPartitionEditorSettings]
71+
CommandletClass=Class'/Script/UnrealEd.WorldPartitionConvertCommandlet'
72+
73+
[/Script/Engine.UserInterfaceSettings]
74+
bAuthorizeAutomaticWidgetVariableCreation=False
75+
FontDPIPreset=Standard
76+
FontDPI=72
77+
78+
[/Script/Engine.Engine]
79+
+ActiveGameNameRedirects=(OldGameName="TP_Blank",NewGameName="/Script/client_unreal")
80+
+ActiveGameNameRedirects=(OldGameName="/Script/TP_Blank",NewGameName="/Script/client_unreal")
81+
82+
[/Script/AndroidFileServerEditor.AndroidFileServerRuntimeSettings]
83+
bEnablePlugin=True
84+
bAllowNetworkConnection=True
85+
SecurityToken=44F0FBC34B5D09A59F02A0AA6395FF14
86+
bIncludeInShipping=False
87+
bAllowExternalStartInShipping=False
88+
bCompileAFSProject=False
89+
bUseCompression=False
90+
bLogFiles=False
91+
bReportStats=False
92+
ConnectionType=USBOnly
93+
bUseManualIPAddress=False
94+
ManualIPAddress=
95+
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
2+
[/Script/CommonUI.CommonUISettings]
3+
CommonButtonAcceptKeyHandling=TriggerClick
4+
5+
[/Script/EngineSettings.GeneralProjectSettings]
6+
ProjectID=1CB09ED64584D03E3ED8AA86458B2D83
Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
[/Script/Engine.InputSettings]
2+
-AxisConfig=(AxisKeyName="Gamepad_LeftX",AxisProperties=(DeadZone=0.25,Exponent=1.f,Sensitivity=1.f))
3+
-AxisConfig=(AxisKeyName="Gamepad_LeftY",AxisProperties=(DeadZone=0.25,Exponent=1.f,Sensitivity=1.f))
4+
-AxisConfig=(AxisKeyName="Gamepad_RightX",AxisProperties=(DeadZone=0.25,Exponent=1.f,Sensitivity=1.f))
5+
-AxisConfig=(AxisKeyName="Gamepad_RightY",AxisProperties=(DeadZone=0.25,Exponent=1.f,Sensitivity=1.f))
6+
-AxisConfig=(AxisKeyName="MouseX",AxisProperties=(DeadZone=0.f,Exponent=1.f,Sensitivity=0.07f))
7+
-AxisConfig=(AxisKeyName="MouseY",AxisProperties=(DeadZone=0.f,Exponent=1.f,Sensitivity=0.07f))
8+
-AxisConfig=(AxisKeyName="Mouse2D",AxisProperties=(DeadZone=0.f,Exponent=1.f,Sensitivity=0.07f))
9+
+AxisConfig=(AxisKeyName="Gamepad_LeftX",AxisProperties=(DeadZone=0.250000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
10+
+AxisConfig=(AxisKeyName="Gamepad_LeftY",AxisProperties=(DeadZone=0.250000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
11+
+AxisConfig=(AxisKeyName="Gamepad_RightX",AxisProperties=(DeadZone=0.250000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
12+
+AxisConfig=(AxisKeyName="Gamepad_RightY",AxisProperties=(DeadZone=0.250000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
13+
+AxisConfig=(AxisKeyName="MouseX",AxisProperties=(DeadZone=0.000000,Sensitivity=0.070000,Exponent=1.000000,bInvert=False))
14+
+AxisConfig=(AxisKeyName="MouseY",AxisProperties=(DeadZone=0.000000,Sensitivity=0.070000,Exponent=1.000000,bInvert=False))
15+
+AxisConfig=(AxisKeyName="Mouse2D",AxisProperties=(DeadZone=0.000000,Sensitivity=0.070000,Exponent=1.000000,bInvert=False))
16+
+AxisConfig=(AxisKeyName="MouseWheelAxis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
17+
+AxisConfig=(AxisKeyName="Gamepad_LeftTriggerAxis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
18+
+AxisConfig=(AxisKeyName="Gamepad_RightTriggerAxis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
19+
+AxisConfig=(AxisKeyName="Gamepad_Special_Left_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
20+
+AxisConfig=(AxisKeyName="Gamepad_Special_Left_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
21+
+AxisConfig=(AxisKeyName="Vive_Left_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
22+
+AxisConfig=(AxisKeyName="Vive_Left_Trackpad_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
23+
+AxisConfig=(AxisKeyName="Vive_Left_Trackpad_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
24+
+AxisConfig=(AxisKeyName="Vive_Right_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
25+
+AxisConfig=(AxisKeyName="Vive_Right_Trackpad_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
26+
+AxisConfig=(AxisKeyName="Vive_Right_Trackpad_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
27+
+AxisConfig=(AxisKeyName="MixedReality_Left_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
28+
+AxisConfig=(AxisKeyName="MixedReality_Left_Thumbstick_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
29+
+AxisConfig=(AxisKeyName="MixedReality_Left_Thumbstick_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
30+
+AxisConfig=(AxisKeyName="MixedReality_Left_Trackpad_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
31+
+AxisConfig=(AxisKeyName="MixedReality_Left_Trackpad_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
32+
+AxisConfig=(AxisKeyName="MixedReality_Right_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
33+
+AxisConfig=(AxisKeyName="MixedReality_Right_Thumbstick_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
34+
+AxisConfig=(AxisKeyName="MixedReality_Right_Thumbstick_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
35+
+AxisConfig=(AxisKeyName="MixedReality_Right_Trackpad_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
36+
+AxisConfig=(AxisKeyName="MixedReality_Right_Trackpad_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
37+
+AxisConfig=(AxisKeyName="OculusTouch_Left_Grip_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
38+
+AxisConfig=(AxisKeyName="OculusTouch_Left_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
39+
+AxisConfig=(AxisKeyName="OculusTouch_Left_Thumbstick_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
40+
+AxisConfig=(AxisKeyName="OculusTouch_Left_Thumbstick_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
41+
+AxisConfig=(AxisKeyName="OculusTouch_Right_Grip_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
42+
+AxisConfig=(AxisKeyName="OculusTouch_Right_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
43+
+AxisConfig=(AxisKeyName="OculusTouch_Right_Thumbstick_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
44+
+AxisConfig=(AxisKeyName="OculusTouch_Right_Thumbstick_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
45+
+AxisConfig=(AxisKeyName="ValveIndex_Left_Grip_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
46+
+AxisConfig=(AxisKeyName="ValveIndex_Left_Grip_Force",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
47+
+AxisConfig=(AxisKeyName="ValveIndex_Left_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
48+
+AxisConfig=(AxisKeyName="ValveIndex_Left_Thumbstick_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
49+
+AxisConfig=(AxisKeyName="ValveIndex_Left_Thumbstick_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
50+
+AxisConfig=(AxisKeyName="ValveIndex_Left_Trackpad_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
51+
+AxisConfig=(AxisKeyName="ValveIndex_Left_Trackpad_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
52+
+AxisConfig=(AxisKeyName="ValveIndex_Left_Trackpad_Force",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
53+
+AxisConfig=(AxisKeyName="ValveIndex_Right_Grip_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
54+
+AxisConfig=(AxisKeyName="ValveIndex_Right_Grip_Force",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
55+
+AxisConfig=(AxisKeyName="ValveIndex_Right_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
56+
+AxisConfig=(AxisKeyName="ValveIndex_Right_Thumbstick_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
57+
+AxisConfig=(AxisKeyName="ValveIndex_Right_Thumbstick_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
58+
+AxisConfig=(AxisKeyName="ValveIndex_Right_Trackpad_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
59+
+AxisConfig=(AxisKeyName="ValveIndex_Right_Trackpad_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
60+
+AxisConfig=(AxisKeyName="ValveIndex_Right_Trackpad_Force",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
61+
bAltEnterTogglesFullscreen=True
62+
bF11TogglesFullscreen=True
63+
bUseMouseForTouch=False
64+
bEnableMouseSmoothing=True
65+
bEnableFOVScaling=True
66+
bCaptureMouseOnLaunch=True
67+
bEnableLegacyInputScales=True
68+
bEnableMotionControls=True
69+
bFilterInputByPlatformUser=False
70+
bShouldFlushPressedKeysOnViewportFocusLost=True
71+
bAlwaysShowTouchInterface=False
72+
bShowConsoleOnFourFingerTap=True
73+
bEnableGestureRecognizer=False
74+
bUseAutocorrect=False
75+
DefaultViewportMouseCaptureMode=CapturePermanently_IncludingInitialMouseDown
76+
DefaultViewportMouseLockMode=LockOnCapture
77+
FOVScale=0.011110
78+
DoubleClickTime=0.200000
79+
DefaultPlayerInputClass=/Script/EnhancedInput.EnhancedPlayerInput
80+
DefaultInputComponentClass=/Script/EnhancedInput.EnhancedInputComponent
81+
DefaultTouchInterface=/Engine/MobileResources/HUD/DefaultVirtualJoysticks.DefaultVirtualJoysticks
82+
-ConsoleKeys=Tilde
83+
+ConsoleKeys=Tilde
84+
Binary file not shown.
47.4 KB
Binary file not shown.
24.6 KB
Binary file not shown.
23.8 KB
Binary file not shown.
21.6 KB
Binary file not shown.

0 commit comments

Comments
 (0)