I agree with the crowdfunding thing… not ready yet for that.
I’m replacing the foliage because some of them have poor quality, and other are downloaded meshes that I can’t use in the final product. Also need a lot of optimization. I’m using the runtime foliage script to create the foliage dinamically around the player, so each tree are a staticmesh actor, and these are a lot of drawcalls.
For example actually I’m using about 2000 grass and 1000 flowers. These are 3000 actors, and the flowers are one flower per actor, and with several materials. I want to make different grass with the flowers included, using only one material. This will be a 50% less of meshes and probably a 100% or 150% less drawcalls. It’s something easy to do, but I’m too lazy for this type of things…
For the framerate control, game starts with a 62 fps limit, but I have assigned a key to change the framerate to 32, 62, and uncaped, so with the uncaped I can see the framerate total in each place of the map.
I have functions to destroy all the pawns/weapons/pickups and the foliage, so I can see the impact of each thing. With no bots and foliage, only the player, the game stat are about 2 ms (3 or 4 in the editor). I have some places in the map using bookmarks, I regulary do a test in these places to see if there are some lost of performance. For example I have a place with 100 bots to see the game stat, another place in the top of a mountain to see a big portion of the landscape, to see the performance when I do changes in the landscape material, etc. If the performance are worse than the last, then that night I can’t sleep very well.
For the CPU, the most time consuming are the apex cloth and the rigid bodies. Bots disables the rigid bodies by distance, and it’s configurable by the setup menu. There are a very big improvement with them totally disabled. I’m working now in a soldier model with no rigid bodies (only when enters in ragdoll), one piece, one material… I hope to can use a lot of then at the same time, about 100.
I tried some things to improve the ticking, like this:
TickFrequency = 5
TickFrequencyDecreaseDistanceStart = 100
TickFrequencyDecreaseDistanceEnd = 300
TickFrequencyLastSeenTimeBeforeForcingMaxTickFrequency = 10
but seems to no have any effect, perhaps are not the correct settings.
I use settickisdisabled when are possible, for example to put the bots in a sleeping state. Only the controllers are using ticks then.
Also in UE4 I saw that when setting the physics asset, you can choose the bodies to interact, for example pony tail bones only collides with head and shoulders. I don’t see any simlilar in UDK, seems each rigid body collides with the entire world.
There are a lot of things to optimize, I think.