Typically games like this have a disk cache for things like character models (since they are dynamically generated) as well as environment caches (since they are so large.) Video games have a strict memory limit to uphold and this is bypassed by disk caching.
Last edited by Slynk; 09-06-2013 at 09:50 PM.
Ah I see your logic, but no, like in FFXI all characters are rendered on the fly (or at least if they are cached, it's only in memory), there's definitely no disk caching involvedSame for the environments, it loads enough of what's around you into RAM (explaining the ~1GB the game can use at times) and I believe it loads/releases more as you move around.
It does however write out the character data to disk every time your change your gear (and possibly when the condition degrades) to the My Games\FINAL FANTASY XIV - A REALM REBORN folder, although this data is pretty tiny and compared to the amount of writes Windows itself does (especially when it uses the pagefile), this game isn't really anything to worry about.
I'm not entirely sure it's rendered on the fly. If it is, they could see a big performance boost from cacheing the models. That would make sense why, on my girlfriend's computer, the game comes to a screeching halt during large fates with lots of players participating. There's also the LOD cache that does exist (it's in the options) but I don't know if it's memory or disk cache.Ah I see your logic, but no, like in FFXI all characters are rendered on the fly (or at least if they are cached, it's only in memory), there's definitely no disk caching involvedSame for the environments, it loads enough of what's around you into RAM (explaining the ~1GB the game can use at times) and I believe it loads/releases more as you move around.
It does however write out the character data to disk every time your change your gear (and possibly when the condition degrades) to the My Games\FINAL FANTASY XIV - A REALM REBORN folder, although this data is pretty tiny and compared to the amount of writes Windows itself does (especially when it uses the pagefile), this game isn't really anything to worry about.
That processor is probably your biggest bottleneck:
http://www.cpubenchmark.net/cpu.php?...45+%40+2.90GHz
Possibly, but it's not that complicated to put a character together. They've got the basic engine already built for "assembling" characters so it's really just "character 1, head 5, skin 32, weapon 18,..." etc. And with the amount of gear changes in this game, how often are you likely to run into the same person with exactly the same gear?
The fate performance issue you mentioned is most likely graphics card related (can't cope with the amount of things going on) and I know people that have had that issue and they've said turning down the graphic settings have helped, I don't know if it'll help here, but worth a try?
That's interesting what you said about LOD cache, I hadn't noticed that until you said, although there's definitely no disk caching going on, so it must all be RAM based.
You're forgetting all the transforms to the gear based on character size (height plus natural stature.) It's not a costly calculation for 1 character but when there are 20 on the screen, spawning particle effects, bogging down the audio engine, and causing network lag... that mesh cache could shave quite a few operations from the pipeline. *shrug* If they don't have it already, they'll probably write it in the future when they don't have as many pressing issues to tackle lol.Possibly, but it's not that complicated to put a character together. They've got the basic engine already built for "assembling" characters so it's really just "character 1, head 5, skin 32, weapon 18,..." etc. And with the amount of gear changes in this game, how often are you likely to run into the same person with exactly the same gear?
The fate performance issue you mentioned is most likely graphics card related (can't cope with the amount of things going on) and I know people that have had that issue and they've said turning down the graphic settings have helped, I don't know if it'll help here, but worth a try?
That's interesting what you said about LOD cache, I hadn't noticed that until you said, although there's definitely no disk caching going on, so it must all be RAM based.
I mean you no disrespect, but I seriously doubt they will. They never did for FFXI and we had all the same things for that (different character styles and augmented gear - gear with different stats from the base gear) and that was designed for computers 10 years older.
With current day processors assembling a character into an engine built for generating characters really isn't that complicated, even with 50+ on the screen at a time. I honestly can't see it being the cause of much network lag either, since again each person is just component parts which are assembled on the client. The persons "name" is probably one of the biggest parts about the character data and assuming they're using a compression algorithm the whole random character as you go by is going to really tiny.
But if they cache the character then when the person ran by instead of saying "Here's X and his gear" you'd be querying the server and saying "I've got version 8 of Scott Pilgrim, what's the current version?" "Current version is number 10 here's the data for him" (sending it anyway). It's just messier and people change their gear so often, you can't cache that which is dynamic.
The graphic issues you speak of aren't anything to do with the character generation, that's literally down to graphics settings on the clients. It doesn't matter if I have 50 points in mind, or 300, my cure animation will look exactly the same regardless. Same for audio issues , I'm not exactly sure of what you're referring, but if you're saying the computer is having issues rendering graphics AND audio when there's only 20 people on the screen, might be worth turning down the graphics options and/or investing in a better CPU/graphics card (which I know no one ever wants to hear, but there isn't much else you can really do there).
(Bottom up response because I'm too lazy to individually quote things to respond to XD)I mean you no disrespect, but I seriously doubt they will. They never did for FFXI and we had all the same things for that (different character styles and augmented gear - gear with different stats from the base gear) and that was designed for computers 10 years older.
With current day processors assembling a character into an engine built for generating characters really isn't that complicated, even with 50+ on the screen at a time. I honestly can't see it being the cause of much network lag either, since again each person is just component parts which are assembled on the client. The persons "name" is probably one of the biggest parts about the character data and assuming they're using a compression algorithm the whole random character as you go by is going to really tiny.
But if they cache the character then when the person ran by instead of saying "Here's X and his gear" you'd be querying the server and saying "I've got version 8 of Scott Pilgrim, what's the current version?" "Current version is number 10 here's the data for him" (sending it anyway). It's just messier and people change their gear so often, you can't cache that which is dynamic.
The graphic issues you speak of aren't anything to do with the character generation, that's literally down to graphics settings on the clients. It doesn't matter if I have 50 points in mind, or 300, my cure animation will look exactly the same regardless. Same for audio issues , I'm not exactly sure of what you're referring, but if you're saying the computer is having issues rendering graphics AND audio when there's only 20 people on the screen, might be worth turning down the graphics options and/or investing in a better CPU/graphics card (which I know no one ever wants to hear, but there isn't much else you can really do there).
You have a finite amount of "oomph" to get everything done in the game before the next render tick, or you'll see an fps drop. 20 characters spawning 20 audio effects to play on top on all the audio effects the mobs are spawning on top of the bgm, *does* have an impact on the CPU which is doing the audio processing. You gotta think about this from a big picture perspective. There are so many subsystems working together and they are all using the same hardware to get their stuff done in time.
On the topic of caching characters, I'm going to assume you don't know what a hash map is, so I apologize if this comes off as condescending. But the rendering pipeline doesn't ask the server what to draw. The network updates the game state, and the redering happens on its own. The renderer says for each entity in the state, draw it. When it draws it, it first would look for a cached model to work (most likely using a hashmap to lookup which model to use), and then if it doesn't have one (called a cache miss), it makes one.
Network lag: Every player on the screen has to update the other players on the screen of what they are doing. Movement, moves they are executing, items they are using. They also have to all tell the server what they are doing so that it knows who should get aggro, who's hit by that AOE, are their attacks hitting? When 20 characters are affecting the state of a battle in the same area it *will* create lag.
Last edited by Slynk; 09-06-2013 at 10:59 PM.
Just a quick rundown of rendering. Assuming you have your fps capped at 60fps, that means there are 60 render iterations every second. Rendering a character without caching goes something like this:Possibly, but it's not that complicated to put a character together. They've got the basic engine already built for "assembling" characters so it's really just "character 1, head 5, skin 32, weapon 18,..." etc. And with the amount of gear changes in this game, how often are you likely to run into the same person with exactly the same gear?
1. Compile head mesh based on any mesh changes (chin, and nose are probably the only options)
2. Apply height transform.
3. Apply rotation + translation based on current animation
3. Render with appropriate textures for eyes, face paint, etc.
4. Load appropriate hair mesh.
5. Apply transforms
6. Render with appropriate color texture.
7. Load appropriate armor meshes.
6. Apply transforms based on size, stature, position, rotation, and animation offset.
7. Render with appropriate textures.
With caching you apply size and stature transforms once, and cache it in vram (graphics card memory.) And then just apply animation transforms to the cached mesh. It cuts out 2-3 operations per mesh (there's a mesh for the head, the hair, and every armor slot other than rings and soul crystal.) That's what, 10~ meshes to render? That saves any where from 20-30 operations per character rendered per render tick. Or roughly 1200 - 1800 operations per second per character. XD
Rendering pipelines are all about optimizations. That's why it would be surprising if they don't already cache these things.
|
![]() |
![]() |
![]() |
|
Cookie Policy
This website uses cookies. If you do not wish us to set cookies on your device, please do not use the website. Please read the Square Enix cookies policy for more information. Your use of the website is also subject to the terms in the Square Enix website terms of use and privacy policy and by using the website you are accepting those terms. The Square Enix terms of use, privacy policy and cookies policy can also be found through links at the bottom of the page.