Skip to main content

Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines

My specs are: 

 Intel(R) Core(TM) i7-2600 CPU @ 3.40GHz   3.40 GHz

RAM 16.0 GB

GeForce GTX 1050 Ti (4 GB)

I tried lowering texture resolution by using dividetexturesize=2 command. Also added the systemmemorycapoff=1  command to avoid potential crashing on load. The game mode is on, the drivers are up to date. I play at 1080 resolution.  The game runs off SSD.

I've taken a look at some textures, they seem fine in terms of size, so the issue might be in game meshes, complex shaders or the number of materials  used in the scene. I'm no Game Guru expert but it's usually optimized by occlusion culling, shadow culling, terrain chunk culling, object distance culling, delayed shadow rendering, disabling unused objects collision, compressing textures (yours are okay I think), using less complex shaders, etc.. I heard this engine loads the whole game at once without streaming assets which severely affects performance, especially if you have the same model copied over and over throughout the level (the cars, wall modules for example).  The less is loaded at once, the better performance, so one of the ways out would be splitting the game into more lightweight levels and merging repeating objects into one mesh or a number of groups which could be culled by distance. The spawns seem to load on trigger only which is good (the number of enemies is quite heavy though, the football team of monsters spawning all at once on each pickup makes everyting lag (I also avoid some monsters to save my ammo, which increases the number of them chasing me around the streets), also breaks the immersion). 

All in all, I think you could use profiler like Optick to see what's going on with the game. I've also found this optimization tutorial, might come in handy. I know it's a lot of work for you being an active developer, optimization is crucial, otherwise every project will have someone like me complaining.

(+1)

Thanks for the info. Your PC is a bit low for big map in GameGuru MAX because it loads everything at once. If I cut the map into smaller parts, lower the enemies, and maybe reduce some assets, it might run better. Also, this is GameGuru MAX not the old GameGuru Classic engine. I remember making this game when I had a 3060, and it ran fine on my PC back then

(4 edits)

It seems the same steps are valid for Max version as well. Someone even used 1050 for a benchmark here https://thegamecreators.com/post/gameguru-max-performance-improvements

After some thinking, the single level approach is definitely the culprit. This is probably the first time I've seen someone do this as every other game was split into progressive story levels. 

I also tried lowering shader settings as follows:

visuals.shaderlevels.terrain=2

visuals.shaderlevels.entities=2

visuals.shaderlevels.vegetation=2

visuals.VegQuantity=60

visuals.VegWidth=35

visuals.VegHeight=35

visuals.CameraFAR=200000

visuals.TerrainLOD1#=3000

visuals.TerrainLOD2#=4000

visuals.TerrainLOD3#=5000

visuals.DistanceTransitionStart#=2500

visuals.DistanceTransitionRange#=300

visuals.BloomEnabled=0

visuals.DepthOfFieldIntensity#=0

visuals.MotionIntensity#=0.3

visuals.FXAAEnabled=1

visuals.WaterWaveIntensity=80

visuals.WaterReflection=0.2

visuals.WaterSparkleCol=1.0

visuals.SkyCloudScale=40000

visuals.SkyCloudThickness=50000

visuals.SkyCloudCoverage=0.9

visuals.ShadowSpotCascadeResolution=256

visuals.SAOIntensity=0.3

No result whatsoever, which means the single level is so huge it doesn't fit into 4GB of video memory. 3060 has 12 GB of VRAM which allows it digest less optimized games better. 

I'm just saying, I was able to run games like Cyberpunk, Witcher 3, RDR2 and so on. Those were able to run because modern engines use streaming assets plus splitting into levels to make the maps fit into that 2-4GB VRAM bill. As Game Guru MAX can't do that, your biggest task would be to split everything into levels.

You can join in Blender or attach in 3DS max the cars that use the same material and texture together, the same goes for decorative elements, walls, windows, doors if they are separate to create chunks of similar meshes that will be loading and unloading by distance. In other words, each level should contain only meshes that are used by it. It will reduce your drawcall count as each separate piece of mesh takes another drawcall to be rendered. 

Optimizing your projects will save you tons of issues and attract wider audience as not everybody can afford better PC these days. That also will improve your skills as a game developer. Thanks for listening, I appreciate you taking time to fix everyting.