Halo 5 Forge presented us with an unprecedented level of enhanced customization options. Fog density, dynamic lighting, coloring objects, applying textures. Things we couldn't manipulate in the past are now under our precise control. We also have 1600 objects to use at our disposal, which raised our ceiling and increased the threshold for our levels of curiosity and ambition. While we cut our cloth, we want to ensure that we're good tailors because sometimes we leave the sleeves too long or the waist too tight. If you're experiencing performance issues on your map, we'd like to help guide you to alleviate them.
(Insert flash of lightning)
Everyone who has played Halo 5 over the past few month has encountered framerate issues at least once. Whether it be first hand through trouble with performance drops on maps or through interaction in custom games. It is uncertain whether or not these issues will be resolved at some point and it is in our best interest to handle them the best we can for the time being.
If you're having performance issues on your map then you've come to the right place! We would like to inform you on thoroughly tested causes of performance loss as well as helping you to alleviate it. I cannot guarantee your issues will be resolved each time. However, by overwhelming majority, the fixes and methods suggested in this article so results.
If by the end of this piece, you have questions or are unsatisfied, please feel free to share because it is an important part of dealing with this obstacle.
Before we start...
There are some important things to keep in mind as we go forward. Unfortunately, this is not a cut and dry issue. There are several, very uncontrollable aspects that go into the rise of framerate issues and I'll highlight some of the tested and agreed upon ones now.
- Framerate issues are not universal among players. One players can see drops and another player may not.
- There is no easy fix. Resolving framerate issues can be a long tedious process of trial and error. Be prepared to put in some work.
- Not all the issues and solutions here are set in stone. I've done my best to build this article based off of well tested, agreed upon cause and effect. That means there is still room for other issues to arise of for solutions to fail.
----------------------------------------------------------------There are a variety of situations that can result in framerate issues (framedrop). Long story short, the performance of the game decreases and the frames-per-second drops in a typically very noticeable way. This can sometimes be confused for lag but is not internet connection related at all. There is also very strong evidence that framedrops can occur at any point in a build, but most often they tend to be related with piece count/ piece usage.
What Causes Framerate Issues
Most often, drops occur when a map approaches a piece count of 1400. However, drops have been noted to occur at even lower counts and sometimes even around 1200. Like mentioned before there are several things that go into this.
I'll often use the phrase "too many". This doesn't define a singular number because of how unpredictable the issues can be. Typically, "too many" will imply several hundred pieces within a certain area, roughly a 256x256 unit space.
I'll list the well known and tested causes of framedrop below:
- Too many pieces being in a compact area. This is noted to be an issue around 1100-1200 pieces. Once you pass 1400 objects, you are well within the threshold for framedrop based solely the total object count, regardless of whether or not they are in a compact area. The probability of these issues will be escalated by the amount of high polygon and large natural objects on the map.
- Too many complex polygon items, ie. accents, props etc in one spot and/or overall.
- Too many large natural pieces being in view at once.
- Too many trees/foliage pieces being on screen at once.
- The large patches of grass are well known to cause issues.
- Too many lights being in one spot, interacting with each other, chiefly large area lights. This is noted to occur starting around 16 large interacting lights.
-Too many lights being cast onto glass. This worsens with the amount of glass and the amount of lights. This seems to vary depending on the canvas.
- Too much glass being on the screen at once is known to cause issues.
- Several glass items phasing into other glass can cause issues.
- Too many FX being in one spot. Most often, the FX will begin to deteriorate in quality as well and in some cases, the FX will stop working.
- An object on normal physics that cannot fully return to it's original position can cause issues potentially but this is most often unpredictable.
- When several, normal physics objects are moved from their spots in a way that forces them to interact with other normal physics objects, framedrop can occur until the objects settle out.
- Grouped/Welded items with high item counts (150+ roughly) can cause issues when interacted with in Forge. In extreme cases, they can cause continuous drops outside of Forge.
- On Tidal, high object count maps (1200+) that are close to and/or are interacting with the water are noted to experience issues prematurely.
- It is believed that the high intensity weather effects ie. Snow, Rain, Dust, etc can cause drops on high item count maps (1100+).
Other Noted Performance Issues
This is a short list of performance issues that can be experienced that may not directly result in framerate issues, but that are still good to keep in mind.
- Grouped/Welded objects will often fail to cast permanent/detailed shadows, causing a flickering shadow effect. This can be fixed by simply ungrouping the object and baking your light again.
- On Depths, the lightmap increases extremely quickly. Most objects will contribute 1%+ to lightmap with the exception of some primitive:simples and other scattered objects. On that same note, lightbake has very little effect on objects on Depths and you can disable lightbake on almost all pieces with no visible change in shading/lighting.
- On Depths, the draw distance on lights is dramatically reduced.
- On Tidal, the "Stormy" skybox settings is noted to have a major issue. When the lightning on the skybox flashes, some objects can become brightly illuminated for extended periods of time. This is noted to resolve itself over time, but seemingly only if the object isn't actively in sight.
- On Tidal, there are scattered spots where the lighting is broken and a small spot of permanent light is visible regardless of the time of day or cast shadows.
- On Alpine, there are pockets where the lighting is broken and objects become extremely dark, regardless of time of day or cast shadows.
- On Barrens, the game seems to reject changes to the near-fog when using the "Duststorm" skybox setting. This includes the fog type and color.
- On Glacier, the Out-of-bounds zones are slightly larger than the mountains they are set on. Moving an object through these spots that seem very much playable, can result in the object being placed way outside the playable area.
How to Combat Framerate IssuesSo like I mentioned before, this isn't a cut and dry issue. I cannot guarantee anything I suggest will fix performance issues on maps. However, this is advice that I often give when asked how to tackle performance issues and by majority, these are the things that seem to work the most.
Additionally, the suggestions below are meant to be taken more as rules of thumb when building a map. It is just as important to actively combat the issues listed above as well. Doing these two things in tandem should produce results.
I'll list the common approaches:
- For 4v4 (or 8 player maps), try to keep the total piece count below 1400. When you subtract invisible pieces such as lights, spawns, gamemode pieces, etc, this should put you physical item count around 1300.
- For 8v8 (or 16 player maps), try to keep your piece count below 1300. When you subtract invisible pieces (see above), this should put your physical piece count around 1200. Because these maps are typically larger than 8 player maps, there is going to be a strong possibility that larger more detailed pieces will be on the screen at once.
- Be savvy with your lighting. Avoid layering too many lights in one place to do a job one light could do.
- Use Primitive:Simple pieces if and where you can. These pieces are super easy on the performance of the game. A map built primarily of Primitive:Simples can actually reach an object count of 1400+ with no issues in majority. These pieces are also extremely easy on the lightmap.
- Avoid using a large amount of foliage in one spot, especially the large grass patches. In fact, the grass is almost like directly asking for issues.
- Be mindful of the sightlines on your map. If a player can reach a point where they can see the greater majority of the map at once, they could experience isolated framedrops. This seems to be dictated by the 180-270 degree angle the player POV can achieve. This makes the corners/opposite sides of the map most vulnerable to this issue.
- Avoid having many detailed pieces in a compact area. Chiefly I'm referring to Accent pieces.
Things to Keep in Mind Moving ForwardFor the third time, framerate issues are not simple. Thus dealing with them is not simple. There are a couple things you've got to ask yourself when working on a map.
What do you want to do with that map?
Is this just a casual build meant for relaxed play with friends or even customs browser players? If so, you may not have to work so hard to resolve these issues. In fact it is solely up to you and your friends. Is it intended to be a serious project that you wish to hopefully propel into matchmaking? If so, you're going to have to take steps to maximize the performance of your map. It is a requisite and it'll be on you to meet it.
Framerate issues typically aren't universal between players. If you want to get a gauge of whether or not your map has issues, bring a variety of players into the map and ask if they noticed performance issues. You'll have to ask yourself if one persons performance is more valuable than another's as well as what you are willing to make changes as the author to resolve any issues that arise.
I wish you luck fellow forgers. This is a major hurdle to overcome in Halo 5 forge and you are not alone in your battle against it. Use this as a resource to exchange findings, ideas and theories. Don't be afraid to ask questions either.