Please explain me about multiplayer matchmaking with new rooms process

Let’s put that I’m making a moba game. Whenever there are 10 players queuing, a new game room (instance) will be created and they will be sent into that new game room just like a typical online game. So if there are 30 concurrent players, there will be a total of 3 game rooms running. right?

Can someone pls explain me in general how the process of creating a new room (instance) and putting the players there works. I’m struggling to find tutorials online as most of the tutorials are about client => host connections.

Here is my idea. Please clarify me if the idea is right or wrong. There will be a lobby server to which all the players will connect to queue the game. If the queue has reached 10 players, a new game instance with gameplay scene loaded will be run with some command line arguments, a new server connection will start there and the 10 players will be removed from lobby server connection and will have to connect to the new instance’s connection.

What did I miss in EXPLAIN that hinted at server crippling loads?

In trying to address a query performance problem, I reviewed the explain analyze output and found a couple subqueries were scanning the whole table. This is done to get only the most recent record in those tables related to an appointment. After some research, I decided that it would be reasonable to use a lateral join on those subqueries to dramatically reduce the amount of data scanned. Explain analyze suggested the cost of the whole query with lateral joins would be about a quarter of the original. So we proceeded. Within two hours of deploying the query change, our DB server was maxed out at 100% and basically unresponsive. Reverting the query to use subqueries scanning the tables restored the CPU usage to something sane. Our DB is running in AWS RDS for PostgreSQL using a t2.xlarge. Performance insights showed a substantial increase in ClientWrite. See database load graph.

The query using subqueries along with the explain output: https://explain.depesz.com/s/wES6.
The query using lateral join along with the explain output: https://explain.depesz.com/s/B2vp.

So it is obvious to me I did not understand what the explain output was telling me about the queries. What did I miss that could have told me the DB load would be higher with the lateral join query despite a lower cost?

What are the circumstances of Traxigor’s transformation and do they explain how he retained his magical abilities as an otter?

Traxigor is an Archmage with a rather unique morphology, who is encountered during Baldur’s Gate: Descent into Avernus:

Traxigor was polymorphed into an otter years ago, and decided he preferred the new form to his original one (that of a wizened old man). His otter form was made permanent by a wish spell. He uses the archmage stat block, but is a Tiny beast with a Strength of 3.

What exactly happened here? Are the circumstances of this transformation recorded in any official source material (from any edition)?

This answer establishes that (in D&D 5e) the spell polymorph would not allow a spellcaster to retain their spellcasting abilities while polymorphed into a beast, and this answer establishes the same for true polymorph. On the surface, this seems like an inconsistency (which wouldn’t be surprising), but do the circumstances of Traxigor’s transformation into an otter resolve this inconsistency somehow?

Where in the rulebook does it explain how to use Wises?

In Why I Love the Burning Wheel, at about 39 minutes in the author explains that Wises can be used either to ask for information about the world or to make stuff up wholesale.

Consulting the rulebook, I can see on page 309 that Wises are described as skills through which a character can call upon their knowledge of the world, but I can’t find any reference to the skill allowing you to actually help shape that world.

Can someone direct me to the part of the rulebook that goes into that? Thanks!

How to explain to AD&D player that items that increase Armor Class in DnD5e are overpowered?

Context: I have recently started a campaign with a new player that comes from AD&D background. He wishes to convert and import his character to the campaign. We do that once, I help him with the conversion and checked his stuff, he got 2 magical items lvl3 a bit much but I didn’t mind they were not game-breaking (ring of immunity to poison and mobility boots(longer jumps and a bit of speed up)? His character died, He asked to bring another character this time I let him do, I ask him for his stuff and he says that he has a magical sword and a giant strength belt (lvl6) this is IMO very strong, but again not game-breaking I tweaked a bit the encounter and it went fine.

The thing is that I give him a full plate armour and then he says that his armour class was 23. I was surprised because Max AC without magic is 20 – 21 (with defence combat style (which he has)). So I asked how His sword is :

The Items magical sword +2 attack bonus, magical damage, +2 fire damage, +2 AC.

IMO At this level having a CA of 23 (25 with "shield of faith" he plays a paladin) is game-breaking most monster exception the strongest get attack bonus of +4 +6, Meaning that he will only get hit on crit by most monsters, or that I have to send powerful monsters (that is maybe not fine for other players). The first question is that True? is this AC game-breaking at level 6?

I started to talk about this. and it went bad. He says that it is only 8 % increase of AC and did do much and that he gains his sword on a very deadly quest etc…. Maybe it is a good computation in AD&D setting but in 5e I feel it is not. Does it exist any rational arguments about this?

For now, I come up with the following arguments:

  • AC doesn’t scale the same, and 21 is already the maximum you should expect to be. A venerable red dragon AC is 22.
  • AC increase is extremely costly, with non-magical means they are only two ways: combat style and feats (heavier armour type or the Medium Armor Master feats (+3 dex))

Does there are other arguments? Or maybe I wrong?

AWS RDS is showing very high wait/synch/mutex/sql/ values and EXPLAIN statements in performance insights

I’m running a CRON script which checks the database for work and executes anything that needs to be done. It does this across ~500 customers per minute, but we are using AWS RDS with a 16 vCPU machine which, until recently, has been plentiful to keep it happy (normally plugging along under 20%).

This weekend we updated customers to the latest version of the code and implemented some tooling, and since then we’ve started seeing these huge waits: enter image description here

Further I’m seeing that about half of our busiest queries are EXPLAIN statements, somewhere illustrated here: enter image description here

Nowhere in our code base is an "EXPLAIN" performed (though we are using AWS RDS performance insights, ProxySQL and New Relic for monitoring). I did notice that in the past week our number of DB connections was previously baselined around 10 and is now closer to 90. enter image description here

Any ideas on where I should be digging to find the cause of these waits and explain statements? And if they could justify the large number of open connections?