Usually how many instantiated objects a RPG or RTS game will have before the game performance goes downhill, using today’s average PC (say, with Windows 7)?
There’s really no way to answer that. You have to define what an “average PC” is, but more importantly it depends on what those objects are actually doing.
–Eric
I just want an rough estimation, average PC is the average PC used today by gamers. I think every development team will have to estimate this “average PC” for game development. Or else they may have produced a game which average joes may not be able to play. And objects in a RPG or RTS games are usually items and mobiles which, again, will have an average estimation.
Similarly, there are polygon control estimations on, say, player toons based on frame rate of an “average PC”.
I don’t think the question is really answerable, per se. Even on an ‘average PC’, it could be 10, or it could be 1000, depending on the game.
Do you have a mid-range PC to test on? If so, could you just spawn a bunch of entities of the type you have in mind and see how the engine handles it? (It still wouldn’t give you an exact answer, but it might at least give you an idea of what to expect.)
var DuplicateObject : GameObject;
var AmountToDuplicate : int ; //How many (total) do you want spawned
var AmountPerFrame : int ; //How many (per frame) do you want spawned
private var TrueAmount : int ; //math related, ignore
var FramesToPass : int ; //How many frames must pass before another batch is spawned.
var TotalSpawned : int; //Total game objects spawned
function Update () {
var newgameobject : GameObject;
if (AmountToDuplicate > 0){
TrueAmount += (AmountToDuplicate * FramesToPass);
AmountToDuplicate = 0;
}
//Must activate whenever FramesToPass have passed. This means we basically repeat it?
if (Mathf.Repeat(TrueAmount, FramesToPass + 1) == FramesToPass){
for (i = 0 ; i <= AmountPerFrame ; ++i){
TotalSpawned += 1;
newgameobject = Instantiate (DuplicateObject);
newgameobject.transform.position = Vector3(Random.Range(5,2048), Random.Range(5,1024) , Random.Range(5,2048)); //This is where they are spawned.
}
}
if (TrueAmount > 0){
TrueAmount -= 1;
}
}
This will let you spawn gameobjects pretty easily and thus test yourself. The more you spawn the more the game does slow down.