Introduction IsManuallyUpdated controls whether the object created by loading a given file is manually updated. By default this value is false, indicating that objects are (by default) automatically updated by the engine. Setting this value to true can improve the runtime performance of your game, especially if your file contains a large number of objects.[…]


Introduction WriteAutomaticallyUpdatedObjectInformation provides information about the automatically updated objects in the FlatRedBall Engine. Including a large number of automatically updated objects can be a common performance problem in FlatRedBall games, so this method is very useful in helping you diagnose and solve these problems. Usage The WriteAutomaticallyUpdatedObjectInformation can be called at any point in your[…]


Introduction The ConvertToManuallyUpdated method allows for the conversion of an automatically updated object to a manually updated object. Objects can be made manually updated so that they are still rendered by the engine, but automatic updates won’t be performed. This can be done to improve performance. At the time of this writing, the following types[…]

Glue:How To:Render an Entity to a Texture

Introduction This tutorial will show you how to take any Glue entity and render it to a single Texture. This tutorial will use render targets, multiple FlatRedBall cameras, and modification to Game1.cs, so it does require more-advanced programming. Why render to a texture? You may want to render an Entity to a texture for a[…]

CustomActivity Performance

Introduction This section discusses CustomActivity and its potential impact on performance. Although CustomActivity can have an impact on performance, more often than not performance problems are a result of having too many managed objects in the engine. Therefore, you should always check this first before looking at your custom code for performance problems. For information[…]


HELP! My game runs slow! So you’re working on a FlatRedBall game and you’re having performance problems? Don’t worry, it happens to almost everyone. Performance issues can happen at any point throughout the development process. Fortunately, many methods exist for diagnosing. If you’re having any problems with performance, or if you’d like to take some[…]

03 – Measuring Sprite Automatic Updates

Introduction This section will walk you through identifying how many Sprites you have in your game, and how you can reduce this number to improve performance. If you haven’t yet, you should first read the article about measuring all PositionedObjects. This article can be found here. If Sprites are the majority If you’ve used WriteAutomaticallyUpdatedObjectInformation[…]

02 – Measuring Automatic Updates

Introduction Automatic updates can take a significant amount of time every frame if your game includes a large number of automatically updated objects. The first step in improving the performance of your game is measure the number of objects your game contains. This article will discuss how to do this. Requirements This article assumes that[…]


Introduction If you have never used the AddManualSprite method, then you have most likely worked with “automatically updated” Sprites. In fact, most objects which are added to managers are automatically updated, so the concept of whether something is updated or not may not have even been a consideration. While automatic updating or “management” is very[…]