agones icon indicating copy to clipboard operation
agones copied to clipboard

Autoscaling Fleet base on Player Count

Open markmandel opened this issue 6 years ago • 9 comments

Dependent on #1033

Is your feature request related to a problem? Please describe. For persistent worlds, its common to have multiple copies of the same world for each player to join.

Therefore, a Single fleet could represent a single world, and we would want to scale it based on how close to being full of connected players it currently is.

Right now, we need to track this ourselves, and/or provide a webhook implementation to the Agones autoscaler. It would be nice if we didn't have to.

Describe the solution you'd like A configuration option on the FleetAutoscaler CRD that works for player count. Something like this would potentially work, which works similarly to the GameServer buffer strategy - but with empty player slots (I'm not sold on the naming, but to have a sacrificial draft):

apiVersion: "autoscaling.agones.dev/v1"
kind: FleetAutoscaler
metadata:
  name: fleet-autoscaler-example
spec:
  fleetName: fleet-example
  policy:
    # type of the policy. for now, only Buffer is available
    type: PlayerCount
    # parameters of the playercount policy
    playerCount:
      # Size of a buffer of empty player slots that are available in the Fleet.
      # it can be specified either in absolute (i.e. 5) or percentage format (i.e. 5%)
      playerSlots: 5
      # minimum number of player slots is be set by this FleetAutoscaler. 
      # if not specified, the actual minimum slots will be playerSlots
      minSlots: 10
      # maximum number of players slots that can be set by this FleetAutoscaler
      # required
      maxSlots: 20

Describe alternatives you've considered

Once we have #1033 we could force people to use the webhook autoscaling for this, but it seems like a lot of work for what seems like a useful feature.

Additional context N/A at this stage.

markmandel avatar Sep 04 '19 17:09 markmandel

Any updates or news on this feature?

Is the only way of implementing it currently via webhook?

deathlyrage avatar Aug 28 '20 07:08 deathlyrage

No news at this stage. Likely needs a slight redesign to align the naming with the player tracking naming.

Would you be interested in working on this?

markmandel avatar Aug 28 '20 15:08 markmandel

Just wanted to see how far out it is and what options there were. Was looking at hiring a developer to work on a pull request for it. Otherwise going to see if we can get similar functionality via webhook.

Ideally would work on it myself but super busy working on game projects itself.

deathlyrage avatar Aug 28 '20 15:08 deathlyrage

Some of this naming should probably reviewed, and aligned more with the current naming on player tracking. But I think the design is sound?

markmandel avatar Sep 24 '20 16:09 markmandel

Hello; I reopen the topic if this solution will be dev? or if not a new development is in progress. We are looking to export agones to minecraft but it is complicated in the current state

MonDoudou avatar Jun 30 '21 22:06 MonDoudou

Hello; I reopen the topic if this solution will be dev? or if not a new development is in progress. We are looking to export agones to minecraft but it is complicated in the current state

It's coming, but hasn't been started yet.

Always looking for contributors though 😄

markmandel avatar Jun 30 '21 22:06 markmandel

A freelancer is not available :D My company is willing to finance this issue, quite important to us

MonDoudou avatar Jun 30 '21 22:06 MonDoudou

Any updates on this feature?

BennyDeeDev avatar Aug 23 '22 17:08 BennyDeeDev

I have a design I'm still working on that I need to post to revamp all of player tracking - hopefully get it out this week. We'll see how it lands.

markmandel avatar Aug 23 '22 17:08 markmandel

'This issue is marked as Stale due to inactivity for more than 30 days. To avoid being marked as 'stale' please add 'awaiting-maintainer' label or add a comment. Thank you for your contributions '

github-actions[bot] avatar May 01 '23 10:05 github-actions[bot]

I think we can close this, as now we have tracking work in #2716 ?

markmandel avatar May 01 '23 18:05 markmandel

'This issue is marked as Stale due to inactivity for more than 30 days. To avoid being marked as 'stale' please add 'awaiting-maintainer' label or add a comment. Thank you for your contributions '

github-actions[bot] avatar Jun 15 '23 10:06 github-actions[bot]

I'm going to close this as wontfix, since nobody objected to my comment above.

markmandel avatar Jun 15 '23 17:06 markmandel