public void NextTick()
        {
            foreach (var baseMapObject in MapObjects)
            {
                baseMapObject.NextTick();
            }

            for (var i = 0; i < Interactables.Count; i++)
            {
                for (var j = i + 1; j < Interactables.Count; j++)
                {
                    if (i == j)
                    {
                        continue;
                    }

                    if (Interactables[i].IsIntersect(Interactables[j]))
                    {
                        Interactables[i].Intersect(Interactables[j]);
                        Interactables[j].Intersect(Interactables[i]);
                    }
                }
            }

            var objectToRemove = MapObjects.Where(a => a.ObjectState == MapObjectState.RemovalCandidate).ToList();

            foreach (var mapObject in objectToRemove)
            {
                RemoveMapObject(mapObject);
            }
        }