1. A computer implemented method of loading virtual objects in a graphically simulated virtual environment divided into a plurality of cells, wherein the method is implemented by a computing system having a processor and memory having stored computer-executable instructions which, when executed by the processor, implement the method, and wherein the method comprises: an object manager of the computing system identifying a plurality of discrete and separate loaders which are managed by the object manager, wherein each loader loads a corresponding type of object, and wherein each loader has a corresponding priority level and a corresponding loading radius; determining a current camera position within the virtual environment; upon determining that the current camera position is different than a previous camera position, resetting a current priority level that is used by the object manager to determine when to send notifications to one or more of the plurality of loaders to load or unload corresponding objects; the object manager checking a database that maintains data for each cell within the virtual environment and determining whether there are any incoming cells and whether there are any outgoing cells for any loaders based on the loading radius corresponding to each loader, wherein an incoming cell for a corresponding loader is a cell within the loading radius of the corresponding loader based on the new current camera position, and which was not within the loading radius of the corresponding loader based on the previous camera position, and wherein an outgoing cell for a corresponding loader is a cell which is outside of the loading radius of the corresponding loader based on the new current camera position and which was previously within the loading radius of the corresponding loader based on the previous camera position; and performing the following for a plurality of different priority levels: the object manager sending, to each loader that has a priority equal to the current priority, a load notification instructing each loader to load the object corresponding to that loader into any incoming cell associated with that loader and to unload the corresponding object associated with that loader from any outgoing cell associated with that loader; and the object manager adjusting the current priority level to a value of one of the plurality of different priority levels.