So, Saints Row The Third. Nice game, eh? In terms of style it feels like juvenile GTA. But that is not what I'm going to talk about. I wanted to talk about sandbox design and its implementation. I played GTA long time ago but I think it applies to this series as well. How can you implement a world that feels alive but does not require a lot of resources? Cities in sandbox games are big and I always wondered how devs can pull this off on consoles with limited performance.
I have pretty simple model in my head. Your hero has a boundary box around him. When objects leave that box they vanish from the world. I.e. if you leave your car few blocks away and return to it you can notice it. It does not apply to quest items though. Every now and then game generates situations in your box like cars moving on the left and right sides so you can move between them, traffic accidents, police talking to people about stuff. You think that it's cheap when the game does that only for your box while the rest of the world is kind of empty? Well it's not. Imagine how much resources game would take if it would calculate movement of every car, npc in the world every frame. A lot of resources. Does it affect you? Does it produce meaningful interactions? Some times it does, but in most case it does not. So from design standpoint it's ok to do that. Your box just loads objects you can interact with and if it produces meaningful interactions I can't see what is so bad about it. In other words it's a game, it's not a fully simulated world.
Another restriction - you cannot shoot every small object in the game. And there is a reason for it. Performance reason. If you want to manipulate every single object like shooting billiard balls in a club you need to apply physics to them, render them in isolation from big objects like tables. Do you remember gothic 3? You can touch every single object in that game and it requires a lot of resources. Every NPC has it's own waypoints and the game stores this state in memory and operates on it even when your character is far away. It makes the world more believable. That's what world simulation should be like. That's what I feel like I'm missing from gta style games. To realize that the world is real I need to be able to track every person from his home to his work. Otherwise I'm going to feel something is wrong. My brain will notice it and will not apply the same level of intimacy to in-game objects.
I have pretty simple model in my head. Your hero has a boundary box around him. When objects leave that box they vanish from the world. I.e. if you leave your car few blocks away and return to it you can notice it. It does not apply to quest items though. Every now and then game generates situations in your box like cars moving on the left and right sides so you can move between them, traffic accidents, police talking to people about stuff. You think that it's cheap when the game does that only for your box while the rest of the world is kind of empty? Well it's not. Imagine how much resources game would take if it would calculate movement of every car, npc in the world every frame. A lot of resources. Does it affect you? Does it produce meaningful interactions? Some times it does, but in most case it does not. So from design standpoint it's ok to do that. Your box just loads objects you can interact with and if it produces meaningful interactions I can't see what is so bad about it. In other words it's a game, it's not a fully simulated world.
Another restriction - you cannot shoot every small object in the game. And there is a reason for it. Performance reason. If you want to manipulate every single object like shooting billiard balls in a club you need to apply physics to them, render them in isolation from big objects like tables. Do you remember gothic 3? You can touch every single object in that game and it requires a lot of resources. Every NPC has it's own waypoints and the game stores this state in memory and operates on it even when your character is far away. It makes the world more believable. That's what world simulation should be like. That's what I feel like I'm missing from gta style games. To realize that the world is real I need to be able to track every person from his home to his work. Otherwise I'm going to feel something is wrong. My brain will notice it and will not apply the same level of intimacy to in-game objects.
No comments:
Post a Comment