feat: faster initial spawn, slower increase

This commit is contained in:
Krzysztof kuhy Rudnicki 2026-01-18 15:55:48 +01:00
parent 84779217f8
commit 2908867626
14 changed files with 9400 additions and 15 deletions

View File

@ -2,6 +2,6 @@
"BuildId": "37670630",
"Modules":
{
"BulletHellCPP": "libUnrealEditor-BulletHellCPP-8844.so"
"BulletHellCPP": "libUnrealEditor-BulletHellCPP-6941.so"
}
}

View File

@ -0,0 +1,28 @@
"/home/kuhy/praca_magisterska/games/unreal/BulletHellGame/BulletHellCPP/Intermediate/Build/Linux/x64/UnrealEditor/Development/BulletHellCPP/STGPawn.gen.cpp.o"
"/home/kuhy/praca_magisterska/games/unreal/BulletHellGame/BulletHellCPP/Intermediate/Build/Linux/x64/UnrealEditor/Development/BulletHellCPP/STGEnemy.gen.cpp.o"
"/home/kuhy/praca_magisterska/games/unreal/BulletHellGame/BulletHellCPP/Intermediate/Build/Linux/x64/UnrealEditor/Development/BulletHellCPP/STGFixedCamera.gen.cpp.o"
"/home/kuhy/praca_magisterska/games/unreal/BulletHellGame/BulletHellCPP/Intermediate/Build/Linux/x64/UnrealEditor/Development/BulletHellCPP/STGHUDManager.gen.cpp.o"
"/home/kuhy/praca_magisterska/games/unreal/BulletHellGame/BulletHellCPP/Intermediate/Build/Linux/x64/UnrealEditor/Development/BulletHellCPP/STGEnemySpawner.gen.cpp.o"
"/home/kuhy/praca_magisterska/games/unreal/BulletHellGame/BulletHellCPP/Intermediate/Build/Linux/x64/UnrealEditor/Development/BulletHellCPP/STGProjectile.gen.cpp.o"
"/home/kuhy/praca_magisterska/games/unreal/BulletHellGame/BulletHellCPP/Intermediate/Build/Linux/x64/UnrealEditor/Development/BulletHellCPP/STGGameDirector.gen.cpp.o"
"/home/kuhy/praca_magisterska/games/unreal/BulletHellGame/BulletHellCPP/Intermediate/Build/Linux/x64/UnrealEditor/Development/BulletHellCPP/STGGameMode.gen.cpp.o"
"/home/kuhy/praca_magisterska/games/unreal/BulletHellGame/BulletHellCPP/Intermediate/Build/Linux/x64/UnrealEditor/Development/BulletHellCPP/BulletHellCPP.init.gen.cpp.o"
"/home/kuhy/praca_magisterska/games/unreal/BulletHellGame/BulletHellCPP/Intermediate/Build/Linux/x64/UnrealEditor/Development/BulletHellCPP/BulletHellCPP.cpp.o"
"/home/kuhy/praca_magisterska/games/unreal/BulletHellGame/BulletHellCPP/Intermediate/Build/Linux/x64/UnrealEditor/Development/BulletHellCPP/STGHUDManager.cpp.o"
"/home/kuhy/praca_magisterska/games/unreal/BulletHellGame/BulletHellCPP/Intermediate/Build/Linux/x64/UnrealEditor/Development/BulletHellCPP/STGProjectile.cpp.o"
"/home/kuhy/praca_magisterska/games/unreal/BulletHellGame/BulletHellCPP/Intermediate/Build/Linux/x64/UnrealEditor/Development/BulletHellCPP/STGEnemySpawner.cpp.o"
"/home/kuhy/praca_magisterska/games/unreal/BulletHellGame/BulletHellCPP/Intermediate/Build/Linux/x64/UnrealEditor/Development/BulletHellCPP/STGFixedCamera.cpp.o"
"/home/kuhy/praca_magisterska/games/unreal/BulletHellGame/BulletHellCPP/Intermediate/Build/Linux/x64/UnrealEditor/Development/BulletHellCPP/STGPawn.cpp.o"
"/home/kuhy/praca_magisterska/games/unreal/BulletHellGame/BulletHellCPP/Intermediate/Build/Linux/x64/UnrealEditor/Development/BulletHellCPP/STGGameDirector.cpp.o"
"/home/kuhy/praca_magisterska/games/unreal/BulletHellGame/BulletHellCPP/Intermediate/Build/Linux/x64/UnrealEditor/Development/BulletHellCPP/STGEnemy.cpp.o"
"/home/kuhy/praca_magisterska/games/unreal/BulletHellGame/BulletHellCPP/Intermediate/Build/Linux/x64/UnrealEditor/Development/BulletHellCPP/STGGameMode.cpp.o"
"/home/kuhy/praca_magisterska/games/unreal/BulletHellGame/BulletHellCPP/Intermediate/Build/Linux/x64/UnrealEditor/Development/BulletHellCPP/PerModuleInline.gen.cpp.o"
-soname="libUnrealEditor-BulletHellCPP-6941.so"
-rpath="${ORIGIN}/../../../../../../../aur/unreal-engine-bin/Engine/Plugins/EnhancedInput/Binaries/Linux"
-rpath="${ORIGIN}/../../../../../../../aur/unreal-engine-bin/Engine/Plugins/FX/Niagara/Binaries/Linux"
-rpath-link="/home/kuhy/praca_magisterska/games/unreal/BulletHellGame/BulletHellCPP/Binaries/Linux"
-L"/home/kuhy/aur/unreal-engine-bin/Engine/Binaries/Linux"
-L"/home/kuhy/aur/unreal-engine-bin/Engine/Plugins/EnhancedInput/Binaries/Linux"
-L"/home/kuhy/aur/unreal-engine-bin/Engine/Plugins/FX/Niagara/Binaries/Linux"
--start-group
--end-group

View File

@ -0,0 +1,14 @@
#!/bin/sh
# Automatically generated by UnrealBuildTool
# *DO NOT EDIT*
set -o errexit
"/home/kuhy/aur/unreal-engine-bin/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v23_clang-18.1.0-rockylinux8/x86_64-unknown-linux-gnu/bin/clang++" --driver-mode=g++ -fuse-ld=lld -Wl,--compress-debug-sections=zlib -rdynamic -shared -Wl,--gdb-index -Wl,-rpath='${ORIGIN}' -Wl,-rpath-link='${ORIGIN}' -Wl,-rpath='${ORIGIN}'/.. -Wl,-rpath='${ORIGIN}'/../../../Engine/Binaries/ThirdParty/Qualcomm/Linux -Wl,-rpath='${ORIGIN}'/../../../Engine/Binaries/ThirdParty/PhysX3/Unix/x86_64-unknown-linux-gnu -Wl,-rpath='${ORIGIN}'/../../../Engine/Binaries/ThirdParty/Intel/Embree/Embree2140/Linux/x86_64-unknown-linux-gnu/lib -Wl,--disable-new-dtags -Wl,--as-needed -Wl,--hash-style=gnu -Wl,--build-id -target x86_64-unknown-linux-gnu --sysroot="../Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v23_clang-18.1.0-rockylinux8/x86_64-unknown-linux-gnu" -B"../Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v23_clang-18.1.0-rockylinux8/x86_64-unknown-linux-gnu/usr/lib" -B"../Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v23_clang-18.1.0-rockylinux8/x86_64-unknown-linux-gnu/usr/lib64" -L"../Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v23_clang-18.1.0-rockylinux8/x86_64-unknown-linux-gnu/usr/lib" -L"../Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v23_clang-18.1.0-rockylinux8/x86_64-unknown-linux-gnu/usr/lib64" -o "/home/kuhy/praca_magisterska/games/unreal/BulletHellGame/BulletHellCPP/Binaries/Linux/libUnrealEditor-BulletHellCPP-6941.so" -Wl,@"/home/kuhy/praca_magisterska/games/unreal/BulletHellGame/BulletHellCPP/Intermediate/Build/Linux/x64/UnrealEditor/Development/BulletHellCPP/libUnrealEditor-BulletHellCPP-6941.so.rsp" -Wl,--start-group -lpthread -ldl -lUnrealEditor-Slate -lUnrealEditor-SlateCore -lUnrealEditor-Engine -lUnrealEditor-Core -lUnrealEditor-CoreUObject -lUnrealEditor-InputCore -lUnrealEditor-EnhancedInput -lUnrealEditor-UMG -lUnrealEditor-Niagara -Wl,--unresolved-symbols=ignore-in-shared-libs -Wl,--end-group -lrt -lm -nodefaultlibs -LThirdParty/Unix/LibCxx/lib/Unix/x86_64-unknown-linux-gnu/ ThirdParty/Unix/LibCxx/lib/Unix/x86_64-unknown-linux-gnu/libc++.a ThirdParty/Unix/LibCxx/lib/Unix/x86_64-unknown-linux-gnu/libc++abi.a -lm -lc -lpthread -lgcc_s -lgcc
"/home/kuhy/aur/unreal-engine-bin/Engine/Binaries/Linux/dump_syms" -c -o "/home/kuhy/praca_magisterska/games/unreal/BulletHellGame/BulletHellCPP/Intermediate/Build/Linux/x64/UnrealEditor/Development/libUnrealEditor-BulletHellCPP-6941.so.psym" "/home/kuhy/praca_magisterska/games/unreal/BulletHellGame/BulletHellCPP/Binaries/Linux/libUnrealEditor-BulletHellCPP-6941.so"
"/home/kuhy/aur/unreal-engine-bin/Engine/Binaries/Linux/BreakpadSymbolEncoder" "/home/kuhy/praca_magisterska/games/unreal/BulletHellGame/BulletHellCPP/Intermediate/Build/Linux/x64/UnrealEditor/Development/libUnrealEditor-BulletHellCPP-6941.so.psym" "/home/kuhy/praca_magisterska/games/unreal/BulletHellGame/BulletHellCPP/Binaries/Linux/libUnrealEditor-BulletHellCPP-6941.sym"
"/home/kuhy/aur/unreal-engine-bin/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v23_clang-18.1.0-rockylinux8/x86_64-unknown-linux-gnu/bin/llvm-objcopy" --strip-all "/home/kuhy/praca_magisterska/games/unreal/BulletHellGame/BulletHellCPP/Binaries/Linux/libUnrealEditor-BulletHellCPP-6941.so" "/home/kuhy/praca_magisterska/games/unreal/BulletHellGame/BulletHellCPP/Intermediate/Build/Linux/x64/UnrealEditor/Development/libUnrealEditor-BulletHellCPP-6941.so_nodebug"
"/home/kuhy/aur/unreal-engine-bin/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v23_clang-18.1.0-rockylinux8/x86_64-unknown-linux-gnu/bin/llvm-objcopy" --only-keep-debug "/home/kuhy/praca_magisterska/games/unreal/BulletHellGame/BulletHellCPP/Binaries/Linux/libUnrealEditor-BulletHellCPP-6941.so" "/home/kuhy/praca_magisterska/games/unreal/BulletHellGame/BulletHellCPP/Binaries/Linux/libUnrealEditor-BulletHellCPP-6941.debug"
"/home/kuhy/aur/unreal-engine-bin/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v23_clang-18.1.0-rockylinux8/x86_64-unknown-linux-gnu/bin/llvm-objcopy" --add-gnu-debuglink="/home/kuhy/praca_magisterska/games/unreal/BulletHellGame/BulletHellCPP/Binaries/Linux/libUnrealEditor-BulletHellCPP-6941.debug" "/home/kuhy/praca_magisterska/games/unreal/BulletHellGame/BulletHellCPP/Intermediate/Build/Linux/x64/UnrealEditor/Development/libUnrealEditor-BulletHellCPP-6941.so_nodebug" "/home/kuhy/praca_magisterska/games/unreal/BulletHellGame/BulletHellCPP/Binaries/Linux/libUnrealEditor-BulletHellCPP-6941.so.temp"
mv "/home/kuhy/praca_magisterska/games/unreal/BulletHellGame/BulletHellCPP/Binaries/Linux/libUnrealEditor-BulletHellCPP-6941.so.temp" "/home/kuhy/praca_magisterska/games/unreal/BulletHellGame/BulletHellCPP/Binaries/Linux/libUnrealEditor-BulletHellCPP-6941.so"
chmod 644 "/home/kuhy/praca_magisterska/games/unreal/BulletHellGame/BulletHellCPP/Binaries/Linux/libUnrealEditor-BulletHellCPP-6941.debug"

View File

@ -455,7 +455,7 @@ ThumbnailCaptureSettings=(CaptureFrameLocationRule=CurrentFrame)
LastLevel=/Game/BulletHellLevel
[ModuleFileTracking]
BulletHellCPP.TimeStamp=2026.01.18-14.41.46
BulletHellCPP.TimeStamp=2026.01.18-14.54.19
BulletHellCPP.LastCompileMethod=Runtime
StorageServerClient.TimeStamp=2025.02.05-21.35.34
StorageServerClient.LastCompileMethod=Unknown

View File

@ -110,15 +110,10 @@ float ASTGEnemySpawner::CalculateSpawnInterval()
return STG::Spawner::FinalRushInterval;
}
// EXPONENTIAL CURVE: Slow start, rapid acceleration
// Using x^3 curve for aggressive late-game scaling
// At 0%: 1.0^3 = 1.0 (base interval)
// At 50%: 0.5^3 = 0.125 (already pretty fast)
// At 90%: 0.1^3 = 0.001 (nearly min interval)
float InverseProgress = 1.0f - GameProgress;
float ExponentialFactor = InverseProgress * InverseProgress * InverseProgress; // x^3 curve
float Interval = FMath::Lerp(STG::Spawner::MinSpawnInterval, BaseSpawnInterval, ExponentialFactor);
// LINEAR PROGRESSION: Steady acceleration throughout the game
// At 0%: BaseSpawnInterval (0.25s - already fast!)
// At 100%: MinSpawnInterval (0.08s)
float Interval = FMath::Lerp(BaseSpawnInterval, STG::Spawner::MinSpawnInterval, GameProgress);
return FMath::Max(Interval, STG::Spawner::MinSpawnInterval);
}

View File

@ -148,8 +148,8 @@ namespace STG
// ===== SPAWNER SETTINGS =====
namespace Spawner
{
constexpr float BaseSpawnInterval = 1.2f; // Start slow
constexpr float MinSpawnInterval = 0.08f; // Very fast at end
constexpr float BaseSpawnInterval = 0.25f; // Aggressive from start (was 1.2)
constexpr float MinSpawnInterval = 0.08f; // Fast at end
constexpr float FinalRushInterval = 0.03f; // Insane for last 5 seconds
constexpr float FinalRushDuration = 5.0f; // Last 5 seconds = chaos
constexpr int32 MaxSimultaneousEnemies = 200; // Allow more enemies