Skip to content

Conversation

@PhlexPlexico
Copy link
Owner

This merge includes a new system that is controlled through redis to create queues on the fly.

These queues will hold a max of user defined limits, which should later be changed to allow an absolute max to avoid potential abuse.

After the queues are created and 10 people join a queue, the queue should "pop" and go to either a system of selecting captains, and choosing teammates, or randomly select people. The initial feature will most likely be using HLTV rating to balance teams so that it isn't too stacked during a queue.

After teams are created, a match will be spun up with either an available server provided, or a server ID of none where a user will be able to update the match and assign a server.

As for now, the rough layout of the redis queue should be sufficient enough to work, but will need to catch all the edge cases. There is still quite a bit of work to be done, but best to get this into a draft to ensure that it can still be merged (if at all).

This class will handle all queueing and checking if users are in queues via redis.
TODO: Add in event streams to notify of new queues and list queues.

TODO: Upon max queue creation, begin team selections, this will require changing the data of the queue.

TODO: Upon team creation, create a match with no server, or a publically available one. Allow users to update as needed.
This should allow us to hit the max player limit and automatically remove the queue descriptor and start bringing in team arrays.

For now, let's just assume teams are randomized always with no captains.
At max players create a team from the queue that is inserted into the database.
Roughed in some general logic for game server acquisition as well, have yet to test so will leave commented out.
@PhlexPlexico PhlexPlexico mentioned this pull request Nov 26, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants