At what point does a game have excess parts?

Currently my development team is working on a new game, in the end it will probably be around 100k parts. The game has decently high detail, but is spread out around a decently large map.

Do you think that 100k parts will present an issue towards the games loading and functionality once it is scripted with (hopefully) high quality scripts?

I also want to know what the “max” of parts would be considered before the client cannot run the game smoothly anymore.

3 Likes

Your game has excess geometry/effects when it fails to perform at 60FPS (or whatever target you choose) for the lowest performing device that you intend to support, or i.e. takes too long (determine what is “too long”) to load said geometry. It’s not possible to give you an exact number with any meaning because it depends on what your supported devices are and how complex each individual part in your geometry is. (a mesh is much more complex than an individual part, and many parts that use the same mesh are easier to render than many parts that each render a different mesh)

The only way to find out for sure is to test, test, test and check the performance profiler and memory views to see where your bottlenecks are and if you are hitting your performance targets.

14 Likes

The lag depends on the players device and whether they are on a high-end / low-end device. One way to ensure that all devices can play without much lag is using streaming enabled it might not make your game look amazing and might have parts loading in less smoother than without but it helps with lag for higher part counts.
http://wiki.roblox.com/index.php?title=Network_streaming

I have done this before, i used to have an apartment of 20k bricks, i used a placer model Plugin to spread it around a baseplate and i could spread around 80 or up to 100 if i was lucky of those apartments with constant 60 fps until Roblox defenitely crashed.

Try to find a the placer plugin and try to spread a really high count part Building and make your tests, dont fear about burning your PC, but keep in mind studio will crash at some point.

1 Like

buildthomas’ answer was spot on.

100k in my experience is definitely going to be demanding, though, regardless.

This really depends on what kind of computer your players have. Having a huge amount of parts will be very taxing on the RAM and CPU, and also the GPU if there are a lot of parts in view of the camera.

You also need to consider network bandwidth and how loading in hundreds of thousands of parts even on a gaming PC is going to be too slow.

If you are creating a game that you want everyone to be able to play, 100k studs is probably too many especially considering the fact that there are a lot of younger users on Roblox with average or below average computers.

Another thing to consider: If your computer is spending the bulk of it’s processing time handling hundreds of thousands of parts, scripts will run slower and you will have much less headroom.

Like the others said, it depends on the device the user is using and the statistics on it.

Depending on the type of game it is, you could always make a script that will teleport the player to other places from start place. (Not sure if that was worded correctly.)

Hope this helps.

It really varies by game. As others have stated before me, some judge it by how easily a certain type of device can handle the game. But certain showcases, and games state that their project is only meant to be played on higher quality computers. So it is at your discretion but I would try and aim for 60fps at a relatively low load time for whatever your targeted device might be.

It mainly depends on the device and statistics of said device user is using, and their WiFi connection and such, like others said, however it may be a good idea to try doing some unions to lower the part count a considerable amount.

It really depends on how concentrated the parts are in an area, in my experience. My game has 200,000 parts but runs smoothly because everything is very spread out and we use a custom visual chunk loader that reduces far distance rendering demand.