protected override void Initialize() { _spriteBatch = new SpriteBatch(GraphicsDevice); var random = new Random((int)DateTime.Now.Ticks); _steeringTarget = new SteeringTarget(Vector2.Zero); _seekBehaviour = new SeekBehaviour(_steeringTarget); _fleeBehaviour = new FleeBehaviour(_steeringTarget); _currentSteeringBehaviour = _seekBehaviour; for (var i = 0; i < 3000; i++) { var entity = new Entity(this, _spriteBatch, new Vehicle { Position = new Vector2(random.Next(GraphicsDevice.Viewport.Width), random.Next(GraphicsDevice.Viewport.Height)), // Todo if you like: // Tweak these values to see how they affect the steering behaviours. MaxSpeed = 500, MaxForce = 350, Mass = 1f }); entity.SetSteeringBehaviour(_seekBehaviour); Components.Add(entity); } base.Initialize(); }