The Redcoat App: Part 2

Eli Huebner
3 min readApr 30, 2021

This is a series about making a game/interactive app simulating a company of British Light Infantry during the American Revolution. It will be used for education purposes by the reenacting group portraying the 4th “King’s Own” Regiment of Foot, and available for others to use as well. It is still in the whiteboarding stage while I decide upon what language and frameworks to use to build it. In the previous post in the series, I wrote about some of the basic methods needed for the Soldier class in the app, as well as what child classes might need in addition.

Today, I am going to put some of that together and discuss how to make the company form (i.e. place the sprites). To understand what we need to do, we need to understand how a company of Light Infantry was formed and how they behaved. For now, I am not going to bother with officers and NCO’s, although they will probably be implemented later. At the battle of Lexington and Concord, the Light Company of the King’s Own had 32 privates, which appears to be within the normal range for a Light Company. Those 32 soldiers would be formed in two ranks, one about 2 feet behind the other, and each soldier shoulder to shoulder with their neighbors. If we consider each rank as an array, indexed from the right, the soldiers at frontRank[0] and rearRank[0] should be the two at the farthest to the right of the entire company, and form a “file”. the other file pairs would be ([frontRank[1], rearRank[1]], [frontRank[2], rearRank[2]]…[frontRank[15], rearRank[15]]). Each pair sticks with their partner at all times, so it is helpful to think of pairs rather than individuals.

With this in mind, we can lay out our sprites. The rearRank soldiers can have their positions paired with their frontRank partner. They will always be behind them when in line, so relative positioning is most appropriate. Whatever was defined as a “step”, that should be the distance. A company usually formed dressed from the right (0 index farthest right), so everyone else’s basic position would be index * stepLength from that rightmost pair.

A basic maneuver of British Light Infantry was to “extend X paces to the right/left” or “from the center”. For ease, I’ll only talk about doing it to the left. When extending to the left, the rightmost pair (pair[0]) stays put, and everyone else faces to the left. They all move forward with the rearmost pair (pair[1]) counting paces. When they reach X, they say “mark”, halt, and face front. The new rearmost pair (pair[2]) begins counting, halting when they reach X and face front. This continues for each pair until there is a distance of X paces between each pair. For our program, we are not distinguishing between a pace and a step (a pace is two steps). To extend to the right, the same procedure is followed but with pair[15] as the marker which doesn’t move and everyone walking to the right. Extending from the center sees one pair defined as the center (pair [8]), and everyone else turning away from that pair and counting paces. For ease, I am only worried about extending to the left.

To do this, we can start by creating an array of frontRanks. Remember that rearRank[i] is positioned relative to frontRank[i], so moving frontRank[i] will move both sprites. The array will contain everyone except frontRank[0], who doesn’t move. Everyone in the array moves X steps to the left, the front member (array[0]) gets popped off and halts, and the process repeats. Once the last member has been popped off, they should be extended. To reform at close order, they can all simply turn left, move forward (right relative to the company front) index*X steps, where index is their frontRank index, and they will be back in place.

I hope this was interesting. This project is still on the backburner while I teach myself C++ so I don’t know how long it will be until I actually start writing code. If I haven’t started by the next entry in this series, I will write about how to implement firing procedures for British Light Infantry. Until next time!

--

--

Eli Huebner

I taught high school history for 4 years, before pivoting to software development in search of something more creative.