# These references are out of date so I hope you’ll bear with me. Why is it games like Watchdogs 2 can have a whole citty full of NPC’s each with mostly unique profiles and interactable (you can hack almost everyone, you can physically interact, etc). But something like Yandere simulator struggles with keeping a frame rate with not even 200 NPC’s. The models in Watchdogs 2 are also more hyper realistic so I don’t know if that means more framerate impaction?

What you're seeing are the programming principles of optimization and scalability in effect. These two principles are more than the sum of their parts, they are multiplicative in their effectiveness (or lack thereof). Thus, if there's a situation where we need to optimize at scale, the results are very pronounced. When we talk about performance, it helps to think of it as costs to do things. We spend system resources (CPU time, GPU time, system memory, etc.) to perform tasks (load a dude, draw a dude, animate a dude). Optimization is being clever about not wasting our resources doing unnecessary things. This lowers the cost of performing these tasks. Scalability is the other factor - the number of things there are multiplies their overall costliness. This should make intuitive sense.

Let's have an example - imagine that you need cupcakes for a party. The cupcakes cost \$5 each and there's a \$20 flat delivery fee. We need five cupcakes for a party, so the cost is \$20 (delivery) + \$25 (5 cupcakes x \$5) for a total of \$45. Optimization is our way of reducing the individual costs. We can optimize either the cost of the cupcakes or the cost of the delivery fee. Maybe we can optimize the delivery fee down to \$10 but can only optimize the cupcake cost down by \$1 each. We only have time to choose one optimization. In this case, optimizing the delivery fee results in a better overall cost reduction - 5 cupcakes x \$5 apiece + \$10 delivery is \$35, while 5 cupcakes x \$4 apiece + \$20 delivery is \$40.

Now think about what happens if the numbers change. Instead of needing five cupcakes for the party, let's say we need a thousand cupcakes. 1,000 cupcakes x \$5 apiece + \$20 delivery = \$5,020. If we optimize the delivery fee, the cost becomes 1,000 cupcakes x \$5 + \$10 delivery = \$5,010. Here, optimizing the cupcake price is a much better deal than optimizing the delivery fee! If we reduce the price per cupcake by \$1, we get 1,000 cupcakes x \$5 apiece + \$20 delivery fee = \$4,020.

Bringing this back to games, it should make sense now. Ubisoft spent a lot of engineering time optimizing the cost of each NPC (cupcake) down as much as possible because they knew that they would have a huge number of them in their game world. Yandere Simulator did not spend as much time optimizing their NPCs, so their NPCs are more costly than the WatchDogs NPCs.