Im looking to learn about the limitations of unity. I have been playing around with a few variables in my game and realised how much they affected the FPS. I really want a guide which will tell me what a realistic number of objects in a game is; how the size of terrain affects performance, the effect of model detail etc. This really effects how I make my game.
ok one very first thing is you need to make sure that you have very few materials, perhaps only one or two materials.
secondly when you’re dealing with 10s thousands of things, that’s not going to be the scene - one way or another you’ll only be drawing and operating on a limited set within a certain range. for this you’ll need a whole range of techniques from LOD meshes and culling at the level of your own game logic, as well as the full range of culling offered by unity.
one tiny piece of knowledge that comes to mind which you’ll have to really understand from top to bottom is using Pools in video games,
additionally large world games are database driven, so you’ll need to become expert with mysql etc.
What about if you quickly make a few small video game titles (perhaps even 2D) to learn about these concepts. (2D will serve you well as you have to deeply learn about drawcalls, materials etc in unity)
once you have a few titles like that on the app store you could then tackle a full 3D environment games (like a race game, shooter-in-a-castle or whatever) Finally you can work up to full open-world type games as you describe, I’d say
note that (again this is just one “random thought” from dozens) when you do a “huge game” like that you need a staggering amount of test equipment to constantly explore performance limits, so get ready to start buying every iOS device ever made on ebay!!
yet another random thought that comes to mind, you mention “terrain”, if you mean the built-in terrain system which unity offers. it’s an impressive and admirable system but it’s more a prototyping or test system. it’s perhaps fair to say it is not used in big production games that much. i believe, it’s very likely that if you were making a huge-world title as you describe then unity’s built-in terrain system would be totally irrelevant, I think
note that at the moment your question is “extremely general” (i.e. you mention threading in passing)
I dunno if there’s anything very specific anyone can help you with here. i would suggest closing out this question and asking new specific questions and very specific issues. this could range from “threading” to LOD to culling to database to rendering issues (materials, sharing, generating textures on the fly, mesh generation, etc etc)