Re: Monster Arena: who goes first?
Sam, on host 24.34.45.177
Thursday, May 8, 2008, at 21:42:10
Monster Arena: who goes first? posted by Morka on Monday, May 5, 2008, at 08:58:11:
> Ok, I've been playing Monster Arena for a few months now, and understand many concepts. One thing still completely eludes me: who goes first? Which character acts first in a battle? > > I've seen battles where the first was the highest Agility, another one where the first was the highest Agility vs his opponent Agility, and other ones where it was the one with the highest HP! > Is it totally random?
It's never random, but in rare cases it can be arbitrary.
Agility is the main determining factor of turn order. The way it works is, a battle takes place over one or (usually) more "cycles." Your agility is the number of turns you get per cycle. If you disregard agilities over 30 for a moment, you can think of a cycle as a series of 30 potential turns. If your agility is 30, you get to move on every potential turn. If it's 5, you only get to move on potential turns #1, #7, #13, #19, and #25. If your agility is 6, you get to move on potential turns #1, #6, #11, #16, #21, and #26. If you have an agility over 30, you actually get to make two moves within one potential turn.
So basically a battle loops through potential turns #1 through #30, over and over until one side is completely dead. Just to add some unpredictability without adding randomness, battles usually start at some different point mid-cycle. I can't remember how that algorithm works exactly, but it's probably that the first battle of a tournament starts at potential turn #1, the second battle starts at #2, and so on. So the tenth battle would start at potential turn #10, go up to #30, and only then wrap back around to #1.
So let's say there was a battle with six non-agile characters, no two of which ever got to move on the same "potential turn." The determination of which character would get to move first would be based ENTIRELY on what the first potential turn was for that particular battle. Characters with higher agility would have a higher *probability* of getting to move before those with lesser agility, but it's by no means a sure thing. On the other hand, it's really not random, either. If you knew the exact algorithm, you could predict who goes first exactly.
The reality, though, is that there will always be multiple characters who get to move on the same "potential turn," and then the question becomes, what order do they get to move in? Let's say you had characters with agilities 2 and 4.
Agility 2 gets to move on potential turns #1 and #16. Agility 4 gets to move on potential turns #1, #9, #16, and #24.
That means that on turns #1 and #16, the game engine has to make a decision which of the two characters gets to move first within that turn.
The first tiebreaker is agility. Within the same potential turn, a character with agility 4 always gets to move before a character with agility 2.
If agilities are equal, then *unenhanced* agility is compared. Let's say you had two characters with agility 4, but one has a "natural" agility 4, and one has a natural agility of 3 and a +1 agility bonus from some piece of equipment. The natural 4 agility gets to go first.
If natural agility is also tied, strength is compared. If that's tied, natural strength is compared. If that's tied, constitution is compared. If that's tied, natural constitution is compared.
If all those things are tied, position within the party is compared. If somebody's #2 character is tied with the opposing team's #3 character, then the #2 character will go first.
If that's tied too, then the tie is finally broken with a cryptic, arbitrary calculation based on the match number and the character number. I can't remember exactly what it is, but it's something like taking the match number and adding it to the character number (1-3) and figuring out if that sum is odd or even.
Characters with an agility over 30 introduce an additional complication in that they can move twice during some potential turns. The rule there is that all characters who move within a single potential turn ALL get to move before ANY character gets their *second* move for that turn. For multiple characters moving twice within a turn, the order of their second turns is determined by the same tiebreaking rules as the order their first turns are determined.
(Also note that tournaments 1-5 had slightly different tiebreaking rules as the ones used now, but the general idea was the same.)
The point is, I go to ridiculous extremes to make the ordering as dependent upon character stats as possible, and, when not possible, to make it arbitrary but never random. That makes it completely fair. A random number generator will never be your downfall. And perfect repeatability of every battle is paramount. It never would have come out differently if replayed. In fact, internally, I don't even *save* the battle sequence. The only data that gets stored is the character data and match number. Every time you call up a battle sequence page, the battle sequence is recalculated from that data. So it has to come out the same way every time.
99% of the time, the stat-based tiebreakers are sufficient.
|