Optimization Checklist

A checklist on how to decrease possible area lag in VR sandbox universe Anyland.

☑  Decrease Part Counts

When Things have many Parts that are unmerged, the frame rate in the area may start to drop. Only unmerged parts increase lag. To see that number, context-laser a Thing in the area and turn around the dialog that pops up.

To see the placements with most parts in your area, open the Area dialog (the Mountain + Sun icon on the main dialog) and click "Highlight" on the backside. In the Highlight dialog, click "Top 25 by part count" (and "Top 25 around by part count") to see the placements with most parts highlighted.

The Highlight dialog is generally a great place to hunt down different types of objects in your area, from Lights to Video Screens.

Parts cannot be merged if they contain animations or scripts, certain attributes like liquid, or if they use different colors. Same-color shapes without such scripts or attributes merge into one once you saved the creation, though. (When a Thing's "..." → More options are set to "Disable Thing merging", it will also prevent merging.)

☑  Check Bodies

Sometimes it might not be your area setup, but the complex bodies of people joining the area (or a high amount of people joining) which creates lag.

To see how many body parts someone has, and how many script messages per second their body sends, tick "Find Optimizations" in your Me → "..." settings. This also shows a red "-" emit from high-message frequency Things.

Strictly synchronized parts can increase messages per second, like those using variables, the "Persist States" attribute, text-setting commands, turn commands, state names via "call me", placed browsers, the attract/ repel commands, or movement of placed sub-things.

The backside of one's profile dialog if you context-laser them also contains info on their unmerged body part and strict-sync part counts.

☑  Decrease Collisions of Holdables

When an item is set to be "Holdable", and it's picked up in Non-"Change Things" mode (or is emitted and thrown), it becomes a physical object, which can be slower. To improve the performance of holdables, you can decrease the number of colliders (the parts which check for collisions with the environment) by using specific individual dedicated colliders.

To create a dedicated collider, context-laser the holdable and hit Edit Clone. Now you can create some simple new shapes, like one or two boxes, which you put over the areas you want to register collisions for. Then context-laser these boxes and from the "..." menu, pick "Dedicated collider". It will ensure that when saving, all colliders except these dedicated ones are disabled.

If someone else throws or emits high-part objects, you can also quickly clean them using tools which emit or contain liquid (water washes away temporary objects).

☑  Decrease Synchronization lag

Some settings, like a Thing's "..." → "Stricter physics syncing", can cause additional synchronization need in the area. This may add lag if there's a lot of those objects around, and there's other people in the area.

A Thing Part's "..." → "Persist states" setting may also increase syncing need. Use these options with care and try not to apply them to too many objects.

☑  Remove Collisions & More of Placements

As collision checks can add lag, you can remove them for area placements which don't need them – like a far away decorative tower, which one isn't meant to come near in any case. Just context-laser a placement to open the Thing dialog, and on its backside click "Enabled". In the dialog that shows, untick "Collisions". You can also untick "Scripts & States" in that dialog, or some of the other features like Light or Particles, if you don't need those.

☑  Check the Lights settings

Lights, in particular the shadows of lights, can cause area lag. However, Anyland's automatic optimizer ensures only the closest lights around you will show in any case.

To optimize even more, you can in addition consider to tick the "Light omits shadow" setting in a Thing Part's "..." → More settings. Also, you can go to the Area dialog (the Mountain + Sun icon) and click "..." → "Sun omits shadow".

You may also want to replace lights using the spotlight material (which points into a specific direction, like a flashlight) with the more optimize point lights (which shine all around). And if you don't need the light to actually shine, you can also use the "inner glow" material instead of a light.

Note emitted lights work-around the light count optimization limit, so try reduce those if there's too many around.

☑  Remove Camera Streams

Cameras placed in the area, which stream to either a placed screen or your desktop, create the need for another rendering, which can cause a lot of lag. Try to only use those cameras where needed.

Note if you use tuned settings in the Me → Camera dialog, it also creates a secondary camera rendering, so the fastest speed is always if you don't adjust that dialog (or click "Reset" if you already did).

☑  Enable Lower Quality & Disable Extra Effects

If you want to improve your individual speed, click Me → "..." → "Enable Lower Quality Graphics". This decreases quality settings like shadows, lights, or the amount of things shown nearby. (Note this is a personal setting, so it won't help other visitors to your area.)

For even more settings, have a look at the Me → "..." → More → "Nearby Limits". Also ensure you don't have "Extra Effects in VR" ticked on that page, as bloom and edge shade (ambient occlusion) can lag you when in VR. (Desktop mode is generally much faster; you can enter into it by hitting Esc or WASD on the keyboard.)

To observe your current frame rate, click Me → "..." → More → "Show Frame Rate". 90 FPS (Frames per Second) is optimal.

☑  Use Sub-Areas

If your area is growing large, you can try optimizing it by breaking it up into individual areas, which you can then optionally turn into sub-areas. A sub-area is like a child area, belonging to another parent main area. Whether or not you use sub-areas for it, splitting areas into multiple ones can keep your loading time and object count in areas smaller.

To create a sub-area, first create the new area, by going to Areas → Created → "Create Area". Now go back to your main area, and open its Area (Mountain + Sun icon) dialog. Click on the sub-area icon in the middle right, and at the bottom of the dialog, look for your newly created area, and add it. You can then create teleporters between the two areas using e.g. scripts like "When neared then send nearby to [area name]".

☑  Close other apps

You may also be able to increase your individual graphics performance by closing other Windows apps you have running, like screen-recording software, external voice chat software and so on.

You can additionally hit Alt+Enter on the Anyland desktop window to minimize it (or go to Me → More → "Windowed Mode") to check if that helps speed.

☑  Look for unusual objects

There's many other miscellaneous object settings, particles or textures which may add lag in specific situations. Try to hunt those down and change where possible. Often, a good way to find lagging objects is to keep waving your hand in front of you sideways, while looking into different directions – when your hand display starts flickering & causing what looks like swirly air, you might be looking at some laggier objects.

If you want to do large-scale tests, like by removing many objects of a certain kind to see if it helps speed, you can also first make an area backup so you have something to later revert it. To make such a backup, click on the Area dialog (Mountain + Sun icon), then the Copy & Paste button in the middle. Hit Copy. Now make a new Area (via Areas → Created → "Create Area"), and delete the starting rock by context-lasering it and pressing delete on your controller; a Delete button pops up on the dialog, which you can press. Now go to that new area's Copy & Paste dialog again, and hit Paste. You may want to additionally make that backup area private (and define it to be a sub-area of your main one).

→ Feedback & Questions? Please post in our forum!

>> Home

This page is in the Public Domain.