Make your SoR run faster and more reliable. An analasys and some tips.

Got a problem getting things to work? Drop us a line here and you'll find all the help you need.
User avatar
hans1976
Posts: 1346
Joined: Sat Oct 30, 2004 12:55 pm

Make your SoR run faster and more reliable. An analasys and some tips.

Post by hans1976 »

Hello all,

This topic is meant for tweaking your system in such a way Ryzom will run best. And that means Ryzom only! What I am looking for is loads of little tip, small improvements possible on every system setup that runs windows. So no partsreplacements, upgrading or whatever. A tip doesnt't really need to be a quick win, but it has to be one that won't cost me or any other homin more dappers on their system.
Also some tips can be very usefull for gaining some game stability, please let us know if you have one.
Also, tips that improve stability are welcome as well as reports on tips that have been tried. Please dont start discussing the weather here, open a new topic. I really would like to see a bit of dense information here.

Now I know it is opportune to say I have a standard system and we *could* use it as a reference point. Let's just say it helps me think. Also I mentioned the common background applications that might be active while playing Ryzom. This setup makes Ryzom *very* stable, last crash was about two weeks ago in a special spot that I refer to as "The trainers of Death". For all tips, we will assume also that sound is on. Now, my reference system is:
- Win XP sp2
- AMD Athon 2400+
- two seperate 512Mb DDR 2700 modules
- Maxtor 80Gb, 7200rpm, 8Mb disk as boot disk that holds my documents, mps3's and all applications and drivers. about 70% filled
- Maxtor 120Gb 7200rpm, 8Mb disk as seconday master that is solely for Ryzom. about 8% filled.
- Asus V9570TD, Gforce 5700, 256Mb
- Soundblaster Live! 5.1
- AGV free virusscanner (http://www.grisoft.com)
- iTunes most recent version
- msn 6.2
- Teamspeak2
- Using the WinXP build-in firewall
- in a startup state, about 170Mb memory is used.


Analyzing the resource hogger that Ryzom is:
For some reason Ryzom really eats resources, mostly on the side of system memory. The main reason for this seems to be all the graphical things that are in view for you. Think about mountains, clouds, buildings, mobs, vegetation, NPC, other chars, spells and their effects. Also for quite some of these things in view a sound is needed. Mobs go moo or graah or somthing in between, spells make a sound, digging does naghnagh (or splorx). Using EAX uses up quite some memory too. Now remember that your sound or videocard doesn't control *what* is displayed or heard, but it determines the quality, so it determines the *how* beautifull and *how* many fps. Translucent water won't cause lot of CPU load, but will cause a heavier load on the graphics card. Please remember that difference between displaying an object and displaying the sheer quality of that object.

The beautifull world and all the things you can see or hear all eat up memory. The highest peak in memory useage I have seen was before patch2, and came to about 750Mb for Ryzom alone. Now after patch 2 and some tweaking by me, usage is about 450-490Mb depending on settings and the situation / location I am in.
I am getting the feeling that Ryzom is programmed in such a way that, depending on how far you hypthetically *can* see, region information is loaded. So in wide open spaces, more region is buffered (you might turn around suddenly). And while in the forests or something, the view is blocked a lot, so less region has to be buffered.
I suspect sound behaves sort of the same. The more *possible* soundsources are around, the memory is taken by Ryzom.

In Ryzom, quite a few settings can be made with regard to the amount of buffering and where the buffering is taking place. We will get to that in the tips.

Now this memory has to be filled from somewhere and the most logical location is the harddrive where the program is stored. When moving at high speed, starting up the game or porting regions, about 500 Mb has to be read into the memory and allocated to the different functions. Then as the game opens up, lots of information is received from the server about who and what is in the vicinity, which has to be filled up in the screen and buffer too. This also takes some time.

Playing the game and walking around, turning and so on will make other parts of the region come close and others further away. Some parts come in view, animals and players make sounds, the weather might be different. Indeed, the weather changes that leads to more disk activity.
For some reason, standing still with very little things in view still keeps the disk activity high and CPU load at max. I think this is because the server will keep updating player, mob and visible source locations to the client that does constant checking and updating of said objects. The range of the objects that are tracked is simply huge! Try to stand on top of a hill, yuo can see cloppers running around up to several hundred feet off. Now that is what I call CPU usage!

We can determine as focus points to improve:
- sluggish play, aka temporary freezes at random intervals. Most of the time caused because of that enourmous chunk of memory that has to be kept up to date and has to be handled. Hardware heavily involved: CPU, Harddisk, memory.
- framerates. Constantly sluggish movements in the game. Gets worse in big steps when special effects are involved like spells or water and other stuff with environmental effects. Hardware: videocard, soundcard.
- client crashing. Also known as "I crashed again" or "cashcount for today: 8". Tends to happen when in a specific area and moving simply from a to b, very fast movement across aggro lands alone or in groups while looking around a lot. But also at seamingly random intervals (not true, I think I found out why).

To reduce small freezes, action should be taken to make sure Ryzom gains the fastest access from datafile to device possible. Either reduce the size of the swapfile ryzom creates or increase the speed these transfers are taken care of. Or do both!
My tips for less sluggish play:
- use less sound channels, 16 is fine on most soundcards. Reduces ryzomswap.
- Turn off AEX, it is very nice when you have a high-end system with some Soundblaster Platinum card, but the load on disk and memory I/O is terrible. Reduces ryzomswap
- Defrag your harddisk. Increases disk I/O.
- Try to think of ways to make you harddisk I/O faster. This can be to move your Mp3s to another location, make a directory with just a few songs you are listening to and let your music prog use only that one (or just use your non-computer sound system. Use the fastest disk in your system as Windows-swap file disk. Reduces interference with ryzom accessing your disks.
- Turn off on-access scanning by your virusscanner. Just allow it to scan mails and other network traffic. Do this after a full system scan to make sure you are virusfree to start with. Increases read/write speed.
- Reduce farclip for everything you can think of untill you think the amount of eye candy is acceptable. Reduces ryzomswap in size.
- Move your unneeded / inactive files to a diskpartition that is not included in the process of running windows or ryzom. Defrag again.
- Remove mappins you dont use. May sound silly, but works a tiny bit.
- Close all programmes you dont use, also check on background processes that are still running and are not needed. You might consider removing them from startup. The more silly icons you see in the system tray, the more memory is needlessly taken by other programs.

Framerates are (after the tips above) a bit better now. But how to make the game move smooth? Every move you make, all that moves and is rendered (which is all in this game), will put a load on your Graphicscard (GPU from now) or soundcard (sc).
- Reduce the number of polygones untill you think quality is acceptable.
- Reduce the screensize.
- turn off shadows.
- start sliding down any slider you can think of that has impact on the GPU (clouds, weather, whatever).
- Turn off EAX, I know it was said before, but you might think otherwise. Just try...
- Tell your computer that you are not using 4, 5 or more speakers. Just tell windows you have two speakers. Now your sound will not be nice and from all directions, but less CPU time is wasted on the around effect of sound.

Crashes. The dread of every team. Some people crash often, some almost don't. I am lucky to be one of that last category, but took me some tweaking.
- Turn off sound. Many bad, old or overloaded cards will cause errors.
- Increase the swapfile that Windows can use. Windows will be less nitpicking on the size of that and will likely make less troubles when things get tight.
- When using two DDR modules to get two 1Gb of memory AND you did not buy them at the same store / time (they are not *exactly* the same model, move one of the two a slot. Very likely they are next to each other and one slot is empty. Chances are your Bios is trying to get them to run dual channel, most memory cant take that reliable and will start making goof-ups. Which will cause a memory dump and a Ryzom crash. Worked like a charm for me.
- Dont run too fast (or swim) for too long at one go. The memory / disk I/O combination sometimes starts having trouble loading and dumping the parts you pass, a mistake is made easily. Ryzom is only to blaim that the loading is very heavy, they are not to blaim current hardware has troubles with that.
- If you notice you crash at the same spot all the time, try passing it from a differen angle or move the camera so you dont look at heavy graphics at the pass. You could also stop a few meters from the spot, allow Ryzom to fully load and move on.

Now, these are all very simple tips that could make your Ryzom enjoyment some levels higher. I know people out there have more tips, post them here.
I have not yet figured out what the 32Mo, 64Mo or 128Mo means in the graphics menu, I think it is gfxcard memory, but I am not sure. Post here if you know what the effect is on performence when fiddling with these.

Grtz,
Frydeswinde
Evolution member.
Founder of the Yubo Liberation Front.
Suspected long lost sister of Neun.
Ryzom Wiki

MMO's: If I wanted to play with myself, I would grab a magazine and a box of tissues.
User avatar
xenofur
Posts: 3411
Joined: Tue Sep 21, 2004 8:36 pm

Re: Make your SoR run faster and more reliable. An analasys and some tips.

Post by xenofur »

the memory settings in the config determine what kind of textures are used, low, medium, high-res, the lower the resolution the less ram and traffic on your databus necessary
Mithaldu
Server: Leanon, Gilde: Silberdrachen, der Ryzom-Squad von [G.S.M]
IRC: irc://uk.quakenet.org/gsm-community.de
Der inoffizielle Ryzom-Player-Channel: irc://irc.quakenet.uk/ryzom.de
Neu: Jetzt mit 100% mehr Phelan!
(\(\xxxxxxxxxxxxxxxxxxxxxxxxx
(^.^)
(")") *This is the cute bunny virus, please copy this into your sig so it can spread.
User avatar
kostika
Posts: 1260
Joined: Fri Sep 24, 2004 6:48 pm

Re: Make your SoR run faster and more reliable. An analasys and some tips.

Post by kostika »

Very nice set of info there. I'm sure it will help people get things running a little better. Good work :D
~Kostika
Guild Leader of The Samsara
Atys Guardian

Stand and Deliver!!
User avatar
xenofur
Posts: 3411
Joined: Tue Sep 21, 2004 8:36 pm

Re: Make your SoR run faster and more reliable. An analasys and some tips.

Post by xenofur »

some things to keep in mind:
from release to the current the cloud settings didn't have any impact, since the code was completely deactivated
ryzom framerate is highly dependant on your ping, the network code and graphics code is interleaved, meaning that if your network has to wait for something then your graphics card will have to wait for it too
maximum possible framerate is, as far as i know, set to 40 fps, this restriction is there because of the network code and the fact that the animation speed depends on your framerate(think targeting reticule in CS)
Mithaldu
Server: Leanon, Gilde: Silberdrachen, der Ryzom-Squad von [G.S.M]
IRC: irc://uk.quakenet.org/gsm-community.de
Der inoffizielle Ryzom-Player-Channel: irc://irc.quakenet.uk/ryzom.de
Neu: Jetzt mit 100% mehr Phelan!
(\(\xxxxxxxxxxxxxxxxxxxxxxxxx
(^.^)
(")") *This is the cute bunny virus, please copy this into your sig so it can spread.
User avatar
hans1976
Posts: 1346
Joined: Sat Oct 30, 2004 12:55 pm

Re: Make your SoR run faster and more reliable. An analasys and some tips.

Post by hans1976 »

the memory settings in the config determine what kind of textures are used, low, medium, high-res, the lower the resolution the less ram and traffic on your databus necessary
So using 128Mo will put heavy load on diskaccess while loading new regions, either through a tp/portal or walking / swimming. Now here is the catch: are ALL textures for a region loaded at once? So when I stay in kinda the same region (WoM, anyone ;-) , will I have less or shorter stalls when I put this setting down? I would really like to know, cause in framerates the 32, 64 or 128 doesnt make a difference.
Also, the card has 256Mb onboard mem. Now how can I make sure the card uses all this for the textures, so they are not capped at 128Mb? Maybe I should try to ask Nevrax, because I can even allocate parts of the main RAM to the gfxcard. I have about 350 unused when playing the game that I would like to be seen taken by ryzom for optimal performance.
Thinking a step further, as Ryzom eats 100% cpu, is there a setting that I can make it eat (par example) 700Mb memory? As always, the hdd is the slowest factor in my system, so when I pump the ram at once, I may be able to prevent sluggish play. I found a whole bunch of settings in client_default.cfg that I didnt recognized and I doubt are used. Maybe with these I can make my chatlogs to be written to a file I choose.
some things to keep in mind:
from release to the current the cloud settings didn't have any impact, since the code was completely deactivated
I understand the clouds, but it doesn't make sense. Clouds are a texture that is rolling by above your head. (You can derive this cause when day changes to night, a slight stall can be noticed while the texture loads.) So every time the clouds are refreshed the location of that specific texture compared to other objects will have to be recalculated. I genuinly think this will have impact on either CPU or GPU load and doesnt has anything to do with ping, but what it will do is affect fps.
ryzom framerate is highly dependant on your ping, the network code and graphics code is interleaved, meaning that if your network has to wait for something then your graphics card will have to wait for it too
maximum possible framerate is, as far as i know, set to 40 fps, this restriction is there because of the network code and the fact that the animation speed depends on your framerate(think targeting reticule in CS)
I disagree, simple as that. Just go stand on top of a hill and watch some cloppers for some time. You will see them make warp jump without you experiencing any drop in framerate. SORclient received information about the new location of the clopper and put him there, without letting the network affect your actual fps. Another way of moticing this is when you attack a mob and you wait for him to reach you, you can see him coming and while halfway, you receive damage and it took a warpgate that opened up *just* next to you. From the moment or shooting, pulling, casting, the fps stays the same, no staggering to be noticed exepct for the jumping mob.
I do believe the capped fps for the reason that you point out, but fps vs network is not likely. Ever noticed that stuff keeps moving during a stall? No network at all, but the game is not frozen.

Please continue, I like this indepth non-flaming discussion :-) I might learn a few new tricks!
Frydeswinde
Evolution member.
Founder of the Yubo Liberation Front.
Suspected long lost sister of Neun.
Ryzom Wiki

MMO's: If I wanted to play with myself, I would grab a magazine and a box of tissues.
User avatar
holstad
Posts: 76
Joined: Wed Oct 20, 2004 4:41 pm

Re: Make your SoR run faster and more reliable. An analasys and some tips.

Post by holstad »

I never experience lag anymore, after upgading from 512Mb ram to 1,5Gb.
Ryzom uses almost 700Mb ram when running.

Ishamael
---------
User avatar
geezas
Posts: 480
Joined: Tue Nov 02, 2004 7:10 pm

Re: Make your SoR run faster and more reliable. An analasys and some tips.

Post by geezas »

Nice info fry :)

some tips on speeding up your filesystem: http://www.tweakxp.com/tweak123951.aspx
User avatar
kaetemi
Posts: 1547
Joined: Tue Sep 21, 2004 6:33 pm

Re: Make your SoR run faster and more reliable. An analasys and some tips.

Post by kaetemi »

hans1976 wrote: Thinking a step further, as Ryzom eats 100% cpu, is there a setting that I can make it eat (par example) 700Mb memory? As always, the hdd is the slowest factor in my system, so when I pump the ram at once, I may be able to prevent sluggish play.
You can, if you have enough ram, create a virtual drive on your ram, copy your whole ryzom install to it, and start playing from there. You can also try to find a setting that can keep all data in RAM instead of letting it unload when unneeded.


I have in my graphics settings and sound settings everything to max. except:
Landscape Tile Near Clip: 20 meters
Landscape Quality: 100.0000
And:
OpenGL - Windowed - 1000x1500

Runs on 20-30 FPS when not moving, 10-20 FPS when moving

PC SPECS:
AMD Ath XP 2400+
nVid GF FX 5200 128MB
512 RAM
200GB HD
- Kaetemi [Kami] [Fyros] [Elder of Atys] [NeL Developer]
Rebuild the Kami faction and save Atys from the Karavan! Join the Kami Alliance! Freedom to the Players!
User avatar
xenofur
Posts: 3411
Joined: Tue Sep 21, 2004 8:36 pm

Re: Make your SoR run faster and more reliable. An analasys and some tips.

Post by xenofur »

before i start answering, i'd like to say that i'm around since pre-focus-beta and have fooled around with this game quite a bit. i might still make errors tho =)
hans1976 wrote:So using 128Mo will put heavy load on diskaccess while loading new regions, either through a tp/portal or walking / swimming. Now here is the catch: are ALL textures for a region loaded at once? So when I stay in kinda the same region (WoM, anyone ;-) , will I have less or shorter stalls when I put this setting down? I would really like to know, cause in framerates the 32, 64 or 128 doesnt make a difference.
Also, the card has 256Mb onboard mem. Now how can I make sure the card uses all this for the textures, so they are not capped at 128Mb? Maybe I should try to ask Nevrax, because I can even allocate parts of the main RAM to the gfxcard. I have about 350 unused when playing the game that I would like to be seen taken by ryzom for optimal performance.
Thinking a step further, as Ryzom eats 100% cpu, is there a setting that I can make it eat (par example) 700Mb memory? As always, the hdd is the slowest factor in my system, so when I pump the ram at once, I may be able to prevent sluggish play. I found a whole bunch of settings in client_default.cfg that I didnt recognized and I doubt are used. Maybe with these I can make my chatlogs to be written to a file I choose.
it's way more simple than you think, basically it means this: load memory pack X, Y or Z. and each of those is 32, 64 or 128 MB in size, depending on your hardware and system architecture it can affect your framerate or it can't. in my case(gf4ti4200 128mb) a setting of 32mb is beneficial for the frame rate, but i guess it#s simply the power of my gfx card. forcing it to use more ram on the gfx card is thus impossible, about forcing it to use more system ram, who knows, haven't found anything in that regard yet. what helps reduce data transfer induced lag is setting your ryzom priority to the minimum in the task manager, this gives the os higher priority for transferring the data into ryzoms memory space.
hans1976 wrote:I understand the clouds, but it doesn't make sense. Clouds are a texture that is rolling by above your head. (You can derive this cause when day changes to night, a slight stall can be noticed while the texture loads.) So every time the clouds are refreshed the location of that specific texture compared to other objects will have to be recalculated. I genuinly think this will have impact on either CPU or GPU load and doesnt has anything to do with ping, but what it will do is affect fps.
what you see currently are not clouds, it's a freaking joke, refer to this thread to see what i mean. the part of the engine that these settings should affect is simply not active, you'd notice quite a performance hit if it were.
hans1976 wrote:I disagree, simple as that. Just go stand on top of a hill and watch some cloppers for some time. You will see them make warp jump without you experiencing any drop in framerate. SORclient received information about the new location of the clopper and put him there, without letting the network affect your actual fps. Another way of moticing this is when you attack a mob and you wait for him to reach you, you can see him coming and while halfway, you receive damage and it took a warpgate that opened up *just* next to you. From the moment or shooting, pulling, casting, the fps stays the same, no staggering to be noticed exepct for the jumping mob.
I do believe the capped fps for the reason that you point out, but fps vs network is not likely. Ever noticed that stuff keeps moving during a stall? No network at all, but the game is not frozen.

Please continue, I like this indepth non-flaming discussion :-) I might learn a few new tricks!
your observations are good, but you lack understanding of the workings behind it and missed a few details. warp-mobs: ever noticed that they were doing something(sleeping, pissing, eating) and then suddenly warp to you? or when a gingo is attacking you, that he is running through you one moment to warp back in front of you suddenly, while you're already taking damage? the reason is simple and i'll explain.
ryzom's network works probably like this:

draw frame
receive packets with a certain timeframe stamp
wait a certain time until sure that all packets with that stamp have been received
calculate changes in the physics based on those
draw frame

the problem is, if you are receiving a lot of data(treks for example), or if the server is under heavy load your client will wait a bit for data to arrive and then act on it graphically. add to that the fact that ryzom tries to always complete animations and then start the next animation as per network and vary the speed of that animation so the game get's back in synch.

so if that warping yubo was just now pissing against a tree, the solution for the warp is that ryzom first completed the animation, but did not tell the server that the yubo was still busy, and then started the run to player and bite the ankles animation, while on the server the mob was already running and perhaps even attacking. same goes for the warp-back gingos, the client completed the run animation and then put it into the place where the server believed it was.

another side effect of this interleaving is the following: sometimes after a long time of being up and running the server get's clogged and it's performance drops, usually you don't notice this. but last xmas event on the german server we had about 200+ homins sitting around the kami porter in pyr. i could look at 5 of my guildmates and have low ping and nice framerates, but as soon as i turned my vision away from the wall they were standing in front of and looked at all the homins my framerate dropped to 3-5. the reaction of the gms to that realization was to reboot the server, and it really helped, my framerate when looking at the mass of people(and many more joined later on) was up in the 20ies.
another observation is quite easy to make =) make a tryker char, get into mainland, sit down in a building, watch the ground, then measure framerate and ping, now do the same when standing at the city gates and looking at the stable, trykers, trees and whatnot, you'll notice a marked difference. a last point of notice is this: make a race with friends, have them keep their client settings alweays the same, and set yours really low, run the race, you'll find you were faster than s/he, now up your settings to the max and get your framerate as low as possible, you'll now find that you are at the least slower as before, and with a bit of luck even slower thna your opponent. this is because your movement packets reach the server at a faster rate than his when your framerate is up and vice versa.

about things moving during stall: they are doing what they last did or simply going through their idle animations, that's because the client recognises a stall and changes it's waits to simple checks for new data in order to keep itself from freezing up.
Last edited by xenofur on Fri Jan 07, 2005 2:37 am, edited 1 time in total.
Mithaldu
Server: Leanon, Gilde: Silberdrachen, der Ryzom-Squad von [G.S.M]
IRC: irc://uk.quakenet.org/gsm-community.de
Der inoffizielle Ryzom-Player-Channel: irc://irc.quakenet.uk/ryzom.de
Neu: Jetzt mit 100% mehr Phelan!
(\(\xxxxxxxxxxxxxxxxxxxxxxxxx
(^.^)
(")") *This is the cute bunny virus, please copy this into your sig so it can spread.
User avatar
kaetemi
Posts: 1547
Joined: Tue Sep 21, 2004 6:33 pm

Re: Make your SoR run faster and more reliable. An analasys and some tips.

Post by kaetemi »

xenofur wrote:about things moving during stall: they are doing what they last did or simply going through their idle animations, that's because the client recognises a stall and changes it's waits to simple checks for new data in order to keep itself from freezing up.
The only thing the client software receives is specific animations (emotes, sitting, walking) and other important data (inventory, hp, locations and walkpaths of things, etc). The other animations (Idle (Looking back, changing position of sword, ...)) are only local on the client, and they are different on each client.
The client also receives the server 'time'. There is a number that goes up a few times every second. This is used to synchronise the client. When the local time is lower than the received time, it synchronises to that time. When the received time is the lower, it only plays the local animations (lag), and the local time stops going up untill a new higher time is received.
- Kaetemi [Kami] [Fyros] [Elder of Atys] [NeL Developer]
Rebuild the Kami faction and save Atys from the Karavan! Join the Kami Alliance! Freedom to the Players!
Post Reply

Return to “Technical Support”