Game Development

Do you have an idea or improvement for TB? Or you can see what others are sugesting.

Moderator: Infinity

Post Reply
Posts: 33
Joined: Sat 15 Jun, 2013 10:05 pm

Game Development

Post by count_herout » Sat 21 Dec, 2013 7:14 pm

I'm going to open a thread here to post some ideas re game development, starting here with the timing of events.

For those who don't know, the Trunzo model (the Avalon Hill board game) was designed primarily to simulate men's heavyweight boxing. It takes some time to set up the game, then run a simulation and record all the results; and, not surprisingly, the Trunzo model focuses almost exclusively on scoring events. Since boxing is the sweet science of self-defense, actual scoring in the Trunzo model occurred at widely separated intervals, and things like misses, blocks, slips, evasions, or ducking largely was ignored. Only when a fighter threw a punch so hard that missing cost him or her endurance were these things mentioned at all. That is why a typical profile might have a PL of 40 and an effective PM of only 20 (when in fact any fighter misses a lot more than he scores).

The Trunzo model works for a board game but not for a radio simulation. If you check the timing sequences in a typical bout log, the events are spaced anywhere from 4 to 15 seconds apart (occasionally more). No radio announcer would leave dead air for that long and hope to keep his job. Our commentaries reflect that by adding such "color" elements as reflections on style, the curves in a ring card girl's behind, ability to move, and even what famous person is at the fight or that one of the fighters is pulling up his pants.

Unfortunately, we never really fixed the timing sequence.

Here is how we solved the problem at the WTBA:

The original game had an 80-card deck of "action" cards which were shuffled, then separated into two 40-card "rounds." But, that doesn't give enough computer action.

Instead, I obtained extra sets of cards and created several 90-card decks, each one of which was a "round." Yes, some internal values had to be changed, but that's for another time. It is enough to say here that the general 3-card sequence for the Trunzo model becomes modified to allow for 90 cards or two seconds per card. (The timing table on the board game was replaced by another table detailing misses.) An average round then would have about 30 events in it, and I found that was pretty consistent since events which required more than three cards, e.g., knockdowns, were more than offset by 2-card events, e.g., clinching.

Making this change to the Trunzo model would improve the bout logs significantly by filling in spaces.

You therefore can put that on my Wish List for TB2015.

Next up: Ring positions.

Posts: 33
Joined: Sat 15 Jun, 2013 10:05 pm

Re: Game Development

Post by count_herout » Sat 21 Dec, 2013 8:25 pm

My computer is backing itself up. Let's take this time to move on to ring positions:

In the Trunzo model, the board had a ring depicted in which there was a vast amount of space designated "ring center." There also were six additional (and small) areas designated "A Corner," "B Corner," "near ropes," "far ropes," left neutral corner," and "right neutral corner." No action was allowed against the right or left ropes (perhaps these areas were infected, and any fighter who found him- or herself there contracted bubonic plague?).

Such a division of space was all that was needed for the scoring events in the Trunzo model. But, this is not adequate for our computer model.

And, we are still using the Trunzo model. I've been through the entire commentary .dat file, and the only action on the left or right ropes I've found is what I wrote in.

We can do better!

The WTBA substituted an overlay for the drawing of the ring in the board game, looking from above. The new ring was divided into 9 blocks, like a tic-tac-toe board. The left and right ropes are added, and now each block has an address (here left to right and top to bottom):


In the Trunzo model, ring position was determined by turning over the first card in a sequence and looking at the position designated on the card. This resulted in some weird combinations (such as action in the red corner followed immediately by action in the blue corner); but since events were so separated in the Trunzo model, this was not impossible.

Such would be impossible if one has only 4-6 seconds between events (see previous suggestion). The solution is to use the first designation for position at the opening of a round, then use the next designation as the direction of movement. E.g., action is occurring in the red corner [acor:]. The next sequence indicates that action should occur in the blue corner [bcor:]. But, action does not occur there because the fighters have to pass through ring center [rcen:] to get there. By allowing the fighters to move only one square at a time (think the king in chess), the action does not bounce all over the place but instead moves methodically only in the direction of the location indicated, one zone at a time.

In the Trunzo model, most of the "action" cards were designated "ring center." The new designations would have to be more evenly distributed (maybe a slight preference for rcen:, but essentially everything equal). This does not affect pinning or cornering, which is a different function that I'll address next.

Posts: 33
Joined: Sat 15 Jun, 2013 10:05 pm

Re: Game Development

Post by count_herout » Wed 25 Dec, 2013 11:08 pm

In the Trunzo model, there is no actual movement in the game. The corners and (half) the ropes exist solely for pinning or cornering. Pinning or cornering affects control factor for the duration of the pin. Other than this, action occurs primarily in the vast wasteland of "ring center."

As mentioned in the previous post, the WTBA eliminated this by redesigning the ring to look like a tic-tac-toe board and imposing the rule of the king in chess that the fighters can move only one square at a time. So, if the action is occurring in the left neutral corner [lcor:], it cannot immediately transfer to the right neutral corner [rcor:] because, in moving that direction, it first must stop in ring center [rcen:}.

Pinning and cornering
are not affected by this. In the Trunzo model, the essence of pinning or cornering lies in (a) the elimination of the defender's movement until the pin is released, and (b) the change made to the attacker's control factor. The pin or release was established by a separate "check" mark on eight of the cards (four selected from the "ring center" cards and four selected from the remainder).

This was inadequate because there are eight ring locations which are not ring center and because the assignment of control-factor modifications was backward.

The 90-card deck (two Trunzo decks together plus 10 special cards) solved the first problem by doubling the number of pin-check cards (not ring center) to eight (2X4=8). This however quadrupled the chances a fighter would be pinned (and quadrupled the chances that he or she could get away -- doubling the number of cards per round and doubling the chances of pinning per round quadruples the pinning/escape chance).

The WTBA did not find this modification so compelling that anything needed to be changed (it's fantasy boxing anyway, so who's to say whether the girls can corner each other more often?). The change could affect results in the simulation of a real fight (Louis/Marciano), so before implementing it, this would have to be tested.

I doubt it would make much difference for Raht's computerization.

The other modification which had to be made involved how the control factors were modified. In the Trunzo model, carried over to the Raht computerization, the "in corner/on ropes" factor was added to the control factor of the pinning fighter. But, that is upside down. It should, instead, be subtracted from the CF of the fighter who is pinned.

To understand why, refer to the original board-game instructions and its explanation of control factor. In effect, since a fighter must be in control to score, CF is the magnifier by which all of the other factors are expressed. The game modifies the CFs on the profile cards about the "10" axis of the CF array. The CF array is a random integer from 1-20, which the computing agent compared with the CF from the card of the fighter already in control (initial control is determined by the "aggression" factor). To prevent a simulation of nothing but counterpunching, the individual CFs were modified to be as close to 10/10 as possible. (At CF1/CF2 set for 10/10, each fighter will be in control half the time.) So, if Jana Jensen has a CF of 6/6 and Evelyn LeGriffin a CF of 4/4, in a bout between them, the CFs move to 10/8. Jensen will be in control 11/20ths of the time and LeGriffin 9/20ths, without the control simply bouncing back and forth.

Now assume Jensen pins LeGriffin (whose in-corner/on-ropes factor is 1). In the Trunzo model, carried over by Raht, the 1 is added to Jensen's 10 to give her a temporary CF of 11. This makes no difference when scoring is all that counts but can generate long periods of one fighter wailing on the other when the focus shifts to action.

The correct way to do it is to subtract the 1 from LeGriffin's 8, giving her a temporary CF of 7. By this modification, Jensen remains in control the same amount of time while the percentage of control exercised by LeGriffin becomes reduced. Another way of saying this is that Jensen yields control at her same rate while LeGriffin yields control at a faster rate.

LeGriffin doesn't just stand there and let Jensen hit her. Instead, to the extent she can, she fights back.

Posts: 33
Joined: Sat 15 Jun, 2013 10:05 pm

Re: Game Development

Post by count_herout » Thu 26 Dec, 2013 12:32 am

In the Trunzo model, punching is scored per a 3-card sequence we did not change. The first card (the "CF card") established control; the second card (the "RN card") generated the random number (1-80); and the third card (the "result card") generated the result. If a fighter's PL were 1-40, that meant that, for every time he or she was in control, about half the time he or she would score a punch. The "result card" provided the window dressing re what the punch was, and a number associated with the result, e.g., R-45, allowed one to determine how much the punch was worth (2 or 3 points).

The only modification made to this was creation of the 10 special cards needed to round out the 90-card deck (a Trunzo deck is only 80 cards). Trunzo allowed only for combinations of two punches. The 10 special cards allowed for 3-punch (6), 4-punch (3), and 5-punch (1) combinations (which had special rules attached to them relating to women's hitting power -- more on that later).

Misses were an entirely different matter.

In the first place, in the Trunzo model, only some misses even are mentioned. These are the misses which detract from endurance. The idea here was that some punches are more tiring when the fighter misses than when she scores. So, at the end of a round, the endurance of a fighter was reduced by the "value" of the punches landed against her plus the number of punches she, herself, missed.

Since for scoring purposes, it did not matter what kind of punch was missed, the original rules implied (but never actually stated) that the "missing" card sequence needed only two cards (the CF and RN card). One did not have to play it that way (the "result" card still could be played for the record), but that is what the rules implied, and playing the "result" card needlessly reduced the number of remaining cards in the "round," potentially changing the stats or even the result.

But, with the focus on action, the result card does have to be played because we need a better description of what is happening. And, this does appear to be a modification which also was made in the Raht computerization (the commentary .dat file does describe some misses).

We still can improve by one level. Essentially there are six ways for a fighter to miss a punch: The defender can slip the punch, evade the punch (by leaning backward or stepping inside it), block the punch, or duck the punch. In addition, a punch can be spent for being thrown from too far away or just plain missed (catching air). (One also could add any punch landing outside the scoring zone, e.g., behind the stripe.) Since we no longer were using the game board's timing table, I devised a new table which divided the RNs (result card) about equally among these six possibilities, and thereafter only actual misses counted fully against endurance (a blocked punch does not count against endurance, nor would one landing outside the scoring zone, and a spent punch counted half rounded upward).

There remains the problem of most missed punches, which is that they are merely missed; but, the current game already appears to have that problem in mind. When a fighter scores a punch in the Raht model, you should notice that the Stats numbers actually increase by several punches including the one which actually makes it into the log. There therefore is a ready solution, which is to use a hex editor to modify the commentary 'dat file to include these punches. There is more than enough additional room to change, e.g., "Louis sticks a jab," to "Louis sticks a jab -- like having a light bulb busted in your face! --; Marciano blocks the right and moves away." But, N.B.: Don't get too wordy -- there is an average of six seconds between each log entry in the WTBA modification. Keep the editing crisp and compact!

There is one final modification which can be made here, and that is to increase the RNs from 80 to 90 (using the 10 special cards). Currently, the normal Action array for a typical profile card might be PL=1-40; PM=41-60; CL=61-70; RM=71-78. ("79" was for fouls, and "80" was for injuries.) To get additional missed punches, simply insert the RNs for the 10 special cards into that portion of the Action array most likely to involve missing, viz., PL=1-40; PM=41-70; CL=71-80; RM=81-88 (the Foul card now is 89, the Injury card 90). This would change the balance slightly in terms of hits, misses, and movement; but, if the computer be programmed correctly, increased misses which affect endurance will be countered by removal of misses which are blocked or land outside the scoring zone.

Post Reply