Farms
Common stats — all farm types
- Size
- 3×3
- Cost (Normal)
- 15 Db VE 8 · Easy 10 · Normal 15 · Hard 20 · VH 50
- Workers (meadow)
- 10 — own labor pool
- Workers (floodplain)
- none — supplied by Work Camp
- Desirability
- −2, fading over 2 tiles
- Fire / damage risk
- None — farms are fire-proof and damage-proof
- Labor category
- Food Production
Farms are Egypt's primary source of food and several important raw materials. There are eight crop types, each available in two variants: a floodplain farm that works only during the growing season and depends on Work Camp labor, and a meadow farm that operates year-round on irrigated meadow land using its own workforce. The two variants produce identical crops from the same building footprint, but differ significantly in how they are managed.
Overview
Egyptian agriculture was inseparable from the Nile. Every year the river flooded, depositing rich dark silt across its banks. When the waters receded, that soil could sustain extraordinary yields — but for one season only. The Egyptians mastered this rhythm over millennia: they timed their planting to the receding flood, harvested before the next inundation, and organized large gangs of peasant laborers to work the fields during the growing season. Beyond the flood plains, patches of green meadow land could be cultivated year-round with the help of irrigation.
The three great Egyptian seasons were akhet (inundation), peret (emergence/growing), and shemu (harvest). Most of the campaign's food comes from floodplain farms in peret and shemu. Industrial crops — barley for beer, flax for linen, henna for paint — also grow on both terrain types and feed the city's workshops.
The Nile flood cycle
The game models the Nile flood through six states that advance each year. Floodplain farms are only active during FARMABLE; they are submerged and locked during all other states.
| Flood state | What happens on farms |
|---|---|
| FARMABLE | Growing season — Work Camp laborers walk to farms; progress accumulates |
| IMMINENT | Harvest trigger — farms with progress > 0 and road access spawn a cartpusher to deliver the crop |
| FLOODING | Water rising — farms are submerged; no activity |
| INUNDATED | Peak flood — full submersion; floodplain tiles reset fertility |
| CONTRACTING | Water receding — tiles re-emerging |
| RESTING | Ground drying — farms can be (re)built; no production yet |
The exact month of the inundation varies slightly each year. A Temple Complex dedicated to Osiris improves the quality of the flood, which increases farm yields. In years of weak inundation, soil fertility is lower and harvests are smaller.
Floodplain farms
Floodplain farms occupy fertile land along the Nile banks. They have no permanent building on site — structures on the floodplain are swept away by the annual flood. Because of this, they cannot employ workers directly. Instead, they rely entirely on peasant laborers dispatched from a nearby Work Camp.
The farm's progress counter (0–2000) advances while a laborer is present. Progress represents the three farming phases visible on the field — tiling, seeding, and harvesting — which are animated as the counter rises. At the start of the IMMINENT flood state, any farm with progress > 0 dispatches a cartpusher to deliver the harvest, then resets to zero to await the next cycle.
Labor cycle
When a laborer arrives from a Work Camp, the farm gains a num_workers value (2–10) based on how far the Work Camp is from the farm — closer camps grant more effective workers. The laborer works the farm for roughly 96 game days (~6 months). When the farm reaches the halfway point of the laborer's term, it flags itself as needing a new worker — this pre-emptive request allows the Work Camp to send a replacement before the farm goes idle.
Without a Work Camp within walking distance, a floodplain farm will produce nothing regardless of how fertile the soil is.
Meadow farms
Meadow farms sit on the lighter green meadow tiles away from the Nile banks. Unlike floodplain farms, they have a permanent building (farm house) on site, employ their own workers, and are never flooded. They harvest multiple times per year at fixed calendar months.
Meadow farms need road access and draw workers from the city's labor pool like any other building. They harvest on specific months (see the crop table below) — the cartpusher only appears on day 1–2 of the harvest month. Because meadow land is less fertile than floodplain land, meadow farms yield less per harvest than a well-serviced floodplain farm in a good flood year.
Irrigation
Meadow tiles farther from the Nile are drier and less fertile. Building Irrigation Ditches across meadow terrain, fed by a Water Lift at the riverbank, increases those tiles' fertility and raises farm output. The denser the yellow vegetation tufts on a tile, the more fertile it is — always check the terrain before placing a meadow farm.
All crop types
Food crops
| Crop | Output | Floodplain harvests | Meadow harvests | Downstream use |
|---|---|---|---|---|
| Grain | grain + straw (1:10) | January, May | January, May | grain → Granary → food; straw → Cattle Ranch, Brickworks, Zoo |
| Lettuce | lettuce | April | April | Food variety for housing evolution |
| Chickpeas | chickpeas | April | April | Food variety for housing evolution |
| Pomegranates | pomegranates | June, November | June, November | Food variety; two harvests per year |
| Figs | figs | September | September | Food variety for housing evolution |
Industrial crops raw material
| Crop | Output | Floodplain harvests | Meadow harvests | Downstream use |
|---|---|---|---|---|
| Barley | barley | February, August | February, August | Brewery → beer (for housing, Senet House, festivals) |
| Flax | flax | December | December | Weaver → linen (for Mortuary, housing evolution) |
| Henna | henna | December | December | Paint Workshop → paint (for Royal Burial Tombs) |
Industrial crops deliver to workshops rather than Granaries. A cartpusher from a Barley Farm will walk to the nearest Brewery; a Flax Farm sends flax to the nearest Weaver. If no workshop can accept the goods, they go to a Storage Yard. Industrial crops do not satisfy hunger — they cannot be stored in Granaries and are not distributed by Bazaars as food.
Fertility and yield
Floodplain tiles have an inherent fertility value (0–100) based on their proximity to the Nile and the quality of the most recent flood. The farm tile's visual darkness reflects this — dark brown silt = high fertility, pale tan = low fertility. Eight visual levels are rendered based on the fertility index.
At harvest, the yield formula is:
// modifier = 1 + produce_multiplier/100 (Osiris blessing doubles yield: modifier = 2)
// floodplain: ready_production = progress × fertility / 100
A farm at 100% progress (2000) on 100% fertile soil with no blessings delivers the theoretical maximum. In practice, partial harvests are common — a farm whose laborer arrived late in the growing season will have lower progress and deliver less.
Soil depletion
Every harvest depletes the soil: tile fertility drops significantly after a crop is taken. The next flood naturally restores fertility — so floodplain farms that experience a strong inundation start the next season with good fertility regardless of the previous harvest. Conversely, if the flood is weak, tiles may still be depleted from the prior year, and yields will be lower. Osiris worship is the primary tool for ensuring strong floods.
Osiris blessing
An active Osiris blessing (from a Temple Complex of Osiris) doubles the harvest modifier. This is the single largest yield multiplier in the game. Even a partially-progressed farm under an Osiris blessing can outperform a full-progress farm without one.
Placement
Placement allows a farm as long as at least 4 of the 9 tiles (3×3 footprint) sit on valid terrain (floodplain or meadow). The remaining tiles may be on non-farmable ground — the ghost preview highlights invalid tiles in red so you can see exactly what you are getting.
For floodplain farms, position matters in two ways:
- Fertility: tiles close to the Nile bank are more fertile. Place farms as close to the water as the terrain allows.
- Distance to Work Camp: the closer the Work Camp, the more effective workers the laborer grants (up to 10 at short range, minimum 2 at 20+ tiles). Effective workers directly affect yield. Keep the Work Camp within 10–15 road tiles.
For meadow farms, place them on the darkest, most dense meadow tiles visible. Connect them to a road — without road access, the cartpusher cannot leave. Irrigation Ditches running from a Water Lift along the river can increase fertility of tiles that are far from water.
All farms are fire-proof and damage-proof — no Firehouse or Architect's Post coverage is needed.
Tips
- Floodplain farms produce only one crop per year. Build enough Granaries to store the entire harvest before placing farms — if all Granaries are full when the cartpusher arrives, the food is lost.
- Pomegranates and Barley each harvest twice a year (floodplain and meadow). They are efficient crops when your Nile has a long growing season.
- Grain farms produce straw as a free byproduct at a 10:1 ratio. If you have Cattle Ranches or Brickworks, a single Grain Farm can supply a small amount of straw without dedicated effort.
- Industrial crops (Barley, Flax, Henna) go directly to workshops, not Granaries. Build the workshop before the farm, or the first harvest cartpusher will wander looking for a destination and end up at a Storage Yard.
- One Barley Farm can typically supply two Breweries at full output. Scale proportionally.
- Meadow farms are more consistent than floodplain farms in poor-flood years — they are never affected by inundation quality. Use them for industrial crops if your Osiris mood is unreliable.
- Flax and Henna both harvest in December — if you need linen and paint, their cartpushers will compete for road space at the same time. Plan your road network accordingly.
- The Bazaar distributes food from Granaries to housing. Make sure the Bazaar's Special Orders accept the food types your farms produce — by default some food types may be disabled.
In the original game
Screenshots from Cleopatra: Queen of the Nile (Impressions Games, 2000).
Developer reference
All paths relative to the repository root.
Building config — src/scripts/building/farm.js
All 16 farm variants are defined in src/scripts/building/farm.js. Each entry follows the same structure; here is the floodplain grain farm as a representative example:
building_farm_grain {
output { resource: RESOURCE_GRAIN, resource_second: RESOURCE_STRAW }
output_resource_second_rate : 10 // 1 straw per 10 grain
building_size : 3
month_harvest : [MONTH_JANUARY, MONTH_MAY]
progress_max : 2000
fire_proof : true
damage_proof : true
labor_category : LABOR_CATEGORY_FOOD_PRODUCTION
cost [ 8, 10, 15, 20, 50 ] // VeryEasy … VeryHard
desirability { value:[-2], step:[1], step_size:[1], range:[2] }
laborers[10], fire_risk[0], damage_risk[0]
meta { help_id:89, text_id:112 }
tile_offsets : building_floodplain_farm_tile_offsets
}
Meadow variants use building_meadow_farm_tile_offsets (5-tile layout) instead of the 9-tile floodplain layout. The month_harvest array controls when meadow farms dispatch their cartpusher — the check fires on day 1–2 of each listed month.
Harvest month reference (both variants):
| Crop | Harvest months | Harvests/year |
|---|---|---|
| Grain | January, May | 2 |
| Lettuce | April | 1 |
| Chickpeas | April | 1 |
| Pomegranates | June, November | 2 |
| Figs | September | 1 |
| Barley | February, August | 2 |
| Flax | December | 1 |
| Henna | December | 1 |
Note: for floodplain farms the month_harvest values are not the trigger — harvest is triggered by FLOOD_STATE_IMMINENT regardless of month. The month_harvest field is only used by meadow farms.
Farm C++ class — src/building/building_farm.cpp
All farm types share the building_farm base class in src/building/building_farm.cpp. Key methods:
// Yield calculation at harvest (floodplain):
int farm_fertility = map_get_fertility_for_farm(tile()); // 0–100
d.ready_production = d.progress * farm_fertility / 100;
int yield = expected_produce();
// expected_produce() = (progress / 2.5) * modifier
// modifier = 1 + produce_multiplier/100 (or 2.0 under Osiris blessing)
// Placement rule: 4 of 9 tiles must be TERRAIN_FLOODPLAIN | TERRAIN_MEADOW
// Soil depletion after harvest:
void building_farm::deplete_soil() {
// reduces each tile's fertility malus proportional to progress
int new_fert = map_get_fertility(offset, FERT_WITH_MALUS) * 0.2f;
int malus = new_fert - map_get_fertility(offset, FERT_NO_MALUS);
map_soil_set_depletion(offset, malus);
}
The fertility tile image is chosen from 8 frames based on clamp(fert_average / 12, 0, 7) — so a fertility of 96+ shows the darkest, most fertile tile, and 0–11 shows the palest.
Worker animation — src/scripts/building/farm.js
The JS update handler in src/scripts/building/farm.js maps progress to a visual farm worker position. For floodplain farms (progress 0–2000):
| Progress range | Worker action | Position |
|---|---|---|
| 0 – 399 | hidden | — |
| 400 – 999 | tiling | moves across 6 tiles |
| 1000 – 1199 | seeding | 3 tiles |
| 1200 – 2000 | harvesting | 8 tiles progressively |
Meadow farms use a simpler 5-step layout with coarser progress thresholds (0/100/400/800/1200/1600).
Flood states — src/city/city_floods.h
The flood state enum is defined in src/city/city_floods.h:
enum e_flood_state {
FLOOD_STATE_IMMINENT = 1, // harvest trigger for floodplain farms
FLOOD_STATE_FLOODING = 2,
FLOOD_STATE_INUNDATED = 3, // full flood; fertility restored by Nile
FLOOD_STATE_CONTRACTING = 4,
FLOOD_STATE_RESTING = 5,
FLOOD_STATE_FARMABLE = 6, // Work Camp laborers dispatched; progress grows
};
g_floods.state_is(FLOOD_STATE_FARMABLE) is checked in src/building/building_work_camp.cpp before dispatching a laborer. FLOOD_STATE_IMMINENT is checked in building_farm::time_to_deliver() to trigger the cartpusher.
In-game help messages — src/scripts/game_messages_en.js
| Key | ID | Covers |
|---|---|---|
message_building_grain_farm | 89 | Grain Farm — straw byproduct, Cattle Ranch and Brickworks supply |
message_building_fruit_vegetables_farm | 90 | All food fruit/veg farms — lettuce, chickpeas, pomegranates, figs |
message_building_barley_flax_henna_farm | 91 | Industrial farms — barley, flax, henna; downstream workshops |
message_farming | 150 | History — akhet/peret/shemu seasons, corvée labor, field of reeds |