I later went through the process more rigorously to make sure that formula I arrived at actually makes sense. I came up with the same result, but the process is interesting.
- Assume the quantity of labor-power required for full production of a unit of land is a function of that land's "rank" from best to worst (i.e., best land is used first and required work increases for inferior land)
- Assume quantity of goods produced is constant per unit land area (just a computational simplification)
- Assume rent is the difference in production between two equal areas of land given equal applied labor (Ricardo)
Using agriculture as an example and looking at two plots of land that require the same labor power to fully cultivate the same produce, we'd find that the area of the superior land would be greater than the area of the inferior land (i.e., more labor is required to cultivate each unit of the inferior land, so the same labor cultivates less inferior land than superior).
But this isn't very useful for writing rent as a function of land, as doing so would require understanding the difference in production over equal areas of land (or some other metric, but area is most useful here).
To get a view for that, we can look at equal areas and equal labor, where the superior land has exactly enough labor for full cultivation:
This can thus give a general formula for rent of any given unit of land, knowing the constant production per area, the required labor function of land, and the total amount of land in cultivation. This can arrive at a similar but slightly more complicated formula for other land uses (e.g. calculating rent on urban land used in manufacturing or something compared to agriculture).
There are other assumptions here that make it imperfect (such as how far the land "market" extends given a reference point) but for the purposes of a game simulation where performance and other restrictions are serious limitations it does the trick.
It's also worth remembering that this function doesn't define landowner behavior, it's more a description of tenant behavior; landowners just raise rents continuously until they experience vacancies, it's their tenants that are theoretically doing this calculation when they decide whether to stay or leave.