Jump to content

Training queue design


Recommended Posts

I was looking a bit at training queues, particularly the batch training concept, and it'd be useful to get some ideas or clarifications. We don't need to make final decisions now, and it'll probably change when we do gameplay testing, but it'd be useful to have answers to direct an initial implementation.

Question: How should players be made aware of the resource costs and the batch discounts? It needs to be clear to players that batching is significantly useful, not simply a shortcut that's equivalent to creating five units individually.

Perhaps it could be done with a tooltip on the training button which initially says:

| Hoplite

| 75 wood, 5 metal

| Shift-click to train 5 with 20% discount

i.e. it costs 75*5*0.8=300 wood, 5*5*0.8=20 metal for a batch of 5, and when you shift-click the tooltip changes to say

| Hoplite

| 75 wood, 5 metal

| Shift-click to train 5 with 40% discount

i.e. it costs an extra 75*5*0.6=225 wood etc to add an extra 5 to the existing batch. If you start a new batch then it'll fall back to the original 20% discount for the new batch. I hope that would be obvious enough for players, so they discover and understand that there's an advantage to making large batches. Are there better ways of doing this?

Is it necessary to tell the player how much time the training will take? Seems like possible information overload, and not really required, so hopefully we don't need to add it into these tooltips.

Question: If it's meant to take 20 seconds to train a batch of 5, and 30 seconds to train a batch of 10, and you start a batch of 5 then wait 19 seconds then increase it to a batch of 10, how long should it take? Should it finish 30 seconds after you first started the batch (the same as if you made a batch of 10 right at the start), or should you be penalised for changing it later? (If there's no penalty, micromanaging the production queue would give you an advantage by letting you use the extra 225 wood for 19 seconds for free - I don't know if that's something we want to encourage or discourage or not care about.)

Question: If you train a batch of 30 units, what exactly happens when the batch finishes? Should they all spawn instantaneously spread around the building, or should they all trickle out of the front of the building at a rate of e.g. one per second to avoid a giant pileup?

Question: Are all units going to use this same system?

I can imagine things like ships and siege weapons might be unbatchable, because you'll rarely want lots and it'd be a big mess if 30 of them spring into existence at the same time. Should batching be disabled for them, or for other units, or never disabled?

Question: What happens when you remove an item from the queue? I presume the resource cost gets taken away as soon as you add an item to the queue, and if you remove it before it's reached the front of the queue then you get those resources back. Do you also get the full resources back if it's reached the front of the queue and 99% training progress before you cancel it?

I think it's good to let players freely undo their actions when possible, so if they accidentally start training a unit and (at some point before it's finished) realise it was the wrong one and cancel it then they ought to get all their resources back. Are there any reasons not to allow that?

Question: What happens when the building is destroyed? Do you lose all the resources that were put into its training queue? Or is it equivalent to manually removing everything from the queue so you get all your resources back?

That's probably enough for now (y)

Link to comment
Share on other sites

The discount can follow a nice gentle S-curve and start to level off around 20-30 units.

A discount in "training time" means...

Let's say a soldier takes 20 seconds to train and you train 20 soldiers individually, that's 400 seconds in order to pump out 20 soldiers. But let's say you train those 20 soldiers in a BATCH, the train time could be 16 seconds a piece or 320 seconds for the batch. There is a time there where you are not pumping out individual units and may be vulnerable to attack, but in the end you get more troops out of the barracks quicker with the batch and its training discounts.

About the cost discount, it looks like you have a good idea there. I never thought about displaying the discount in the tooltip or whatever.

I'd say all organic units could use the batch system, while mechanical units are stuck with the plain old queue. (y)

For simplicity sake I think once you create a batch, then you can't "add to it." You have to make a new batch. The moment you release the shift key is when the batch is locked into the queue.

Question: If you train a batch of 30 units, what exactly happens when the batch finishes? Should they all spawn instantaneously spread around the building, or should they all trickle out of the front of the building at a rate of e.g. one per second to avoid a giant pileup?

This depends upon the implementation of formations. I envisioned the troops emerging from the barracks in a box or line formation, or at least filing outward towards the rally point and then forming a formation. Either way any units trained in a batch would be auto-grouped.

Question: What happens when you remove an item from the queue? I presume the resource cost gets taken away as soon as you add an item to the queue, and if you remove it before it's reached the front of the queue then you get those resources back. Do you also get the full resources back if it's reached the front of the queue and 99% training progress before you cancel it?

I think the standard RTS convention is to deduct the full cost of the unit upon queuing, and then refund the full cost of the unit if its training is canceled at any point.

Question: What happens when the building is destroyed? Do you lose all the resources that were put into its training queue? Or is it equivalent to manually removing everything from the queue so you get all your resources back?

I think the player should lose all resources invested in whatever is in the queue at the time of the building's destruction.

Edited by Mythos_Ruler
Link to comment
Share on other sites

About the cost discount, it looks like you have a good idea there. I never thought about displaying the discount in the tooltip or whatever.

I see where you are comming from, but in the long run I don't think the players need to know the concrete algorithms on discount amounts or any information like that, it will turn the game into balancing a spreadsheet in the mind of the player, when all they need to know as the strategist is that training in batch is faster. I guess its a difference in design ideas of how technical we want the game to get with numbers. In my experience and belief these things detract from immersion.

We just word it differently. Discount sounds kind of odd.

so my view... It just says "shift click to train in batch for improved efficiency" and the appropriate resources or time (as balance will dictate) are adjusted for. If we have techs or anything that raises the efficiency and we need to communicate that, we still dodge numbers by updating the tooltip to: "shift click to train in batch for [researched tech name] improved efficiency". Michael what do you think?

Is it necessary to tell the player how much time the training will take? Seems like possible information overload, and not really required, so hopefully we don't need to add it into these tooltips.

I think the gameplay will speak for itself if we end up wanting that to happen. For now I think no just to keep it simple and because the more numbers a person is looking at the more they are balancing spreadsheets instead of playing with strategy.

Edited by Aeros
Link to comment
Share on other sites

For simplicity sake I think once you create a batch, then you can't "add to it." You have to make a new batch. The moment you release the shift key is when the batch is locked into the queue.
Hmm, I hadn't thought of it that way - I was assuming it'd be more incremental, but that sounds a much better idea.

(One technical difficulty is that when the player wants to add something to the queue, it actually has to send a network message and wait maybe 300ms before the simulation responds to the player's input (so that all the players in multiplayer games respond simultaneously to the same input) and then it might discover that the player no longer has sufficient resources. That means there's ~300ms where the simulation and the GUI might be inconsistent, which makes it hard to do fast sequences of gameplay-altering actions - it's best if we can, uh, batch the user inputs into a single 'create a batch of size 25' command to minimise those problems.)

I envisioned the troops emerging from the barracks in a box or line formation
Aren't box and line formations likely to be wider than the barracks? I just can't visualise how they would "emerge" from it.

I guess this is a partially similar situation to ungarrisoning lots of units at the same time, where there needs to be a way to make them come out of the building in a relatively orderly fashion without trampling each other or getting stuck inside other nearby buildings. How do other games handle that?

or at least filing outward towards the rally point and then forming a formation.
If they file out gradually, what happens if the building is destroyed while there's still a dozen units waiting to file out of it? (Do the units get destroyed, or perhaps dumped onto the ground in the area where the building was, or something else?)
I don't think the players need to know the concrete algorithms on discount amounts or any information like that, it will turn the game into balancing a spreadsheet in the mind of the player, when all they need to know as the strategist is that training in batch is faster
I'm happy with not telling the player any numbers about time (since I think it's not a scarce resource for most of the game for most players, and I don't remember any other games showing numbers for that). But resource numbers seem much more important - usually I'll have used up all my spare resources so I'll have approximately 0 wood, and then I really care about the difference between spending 300 wood and 225 wood. If the game doesn't tell me, I expect I'd want to look it up in a strategy guide or try to measure it myself by watching the resource counter carefully and doing some mental arithmetic, which turns it into more complex spreadsheet balancing and I'd never quite trust the answers. Saying something like "20% discount" tells the player the rough scale of the benefit, and enough information to reliably compute the precise benefit if they want, but only adds one extra number to the UI. (I definitely don't want to display e.g. a 4-column 6-row table of resource costs vs batch size, since that would be too spreadsheety (y). A single number seems a better balance to me.)
Link to comment
Share on other sites

I seem to think that just a faster training time is enough too. If there was a resource discount, NO ONE would train in any other way other than batch training, since if they didn't they would lose to the person who did.

I'm okay with saying 20% discount too, its not a major detail.

I guess this is a partially similar situation to ungarrisoning lots of units at the same time, where there needs to be a way to make them come out of the building in a relatively orderly fashion without trampling each other or getting stuck inside other nearby buildings. How do other games handle that?

We really could just not worry about it right now and have the whole squad pop into existance right outside the barracks. If this is tremendously easier thats what we should do and worry about polishing it later. I'm not sure our buildings are even scale enough to pull off units emerging from within them. Maybe one by one, but batch training would totally break that.

I know some games where units are very small, they can emerge as a formation out of the door. All the units clip through eachother at the door but then spread out once on the ground, it looks convincing enough from the default game view.

Another way of doing it is having the units generate at the back of the building away from view and then walk to the front or the rally point. I kind of like this idea.

My preference is for the easiest to impliment option, these aren't killer features here that we can brag about (y)

Edited by Aeros
Link to comment
Share on other sites

When I said they should "file out" I mean they just all mob out and assemble at the rally point in a nice box formation. I have no illusions that we'll make it like Battle for Middle Earth II where the units all filed out the front door nice and neatly. What they did if the building was destroyed as they were filing out is that all the units just continued to run out through the smoke and debris like nothing had happened. It looked fine. But yeah, in our game they can all just pop out. They dont have to march out through a door or gate or something.

Edited by Mythos_Ruler
Link to comment
Share on other sites

Okay, all sounds sensible (y)

Current primitive implementation: the game checks about 32 equally-spaced points around the building's footprint, starting from the front and spreading outwards, until it finds a free space, and if it doesn't find any space then it places the unit in the middle of the building where they'll probably be stuck forever (since they're not allowed to walk over tiles that are occupied by buildings).

Still need to add batch support to the GUI - I guess I'll stick with the simple approach for now of not displaying any discount information, and just silently apply some time discount to batches, and it'll be straightforward to change later. Should have this working tomorrow, I hope.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...