Hunting Lodge
The Hunting Lodge sends hunters into the wilderness to kill wild prey — ostriches, antelope, and waterfowl — and returns the carcasses as game meat stored in the lodge until a cartpusher delivers the load to a Granary.
It is one of the first food production buildings available in the campaign, unlocked in mission 0 (Nubt) once the city population reaches 150. Hunting is reliable early-game food but is limited by herd size — it cannot sustain a large city alone.
Game meat is one of two animal foods (the other being ranch meat). It does not require any input resource, only proximity to prey animals on the map.
Stats
- Cost (Normal)
- 25 Db
- Cost by difficulty
- VE 5 · Easy 10 · Normal 25 · Hard 40 · VH 60
- Output
- Game meat
- Labor category
- Food Production
- Fire risk
- Medium (5)
- Damage risk
- Low (2)
Overview
In ancient Egypt, hunting was both a food source for ordinary people and a prestige sport for the elite. The Pharaoh and noblemen hunted from chariots in the desert, pursuing lions, wild cattle, and oryx. Ostriches were hunted for their feathers and eggs as well as meat. Egypt's marshlands teemed with waterfowl, and papyrus thickets sheltered hippopotamuses, crocodiles, and countless bird species. Wall paintings in New Kingdom tombs frequently depict hunting scenes, suggesting the activity carried strong cultural and symbolic weight beyond mere subsistence.
In the game, the Hunting Lodge abstracts this into a reliable but bounded food source. Each herd supports roughly 2 000 people at full capacity — enough for small and mid-sized cities but insufficient on its own for large populations.
Mechanics
A fully staffed lodge dispatches three hunters simultaneously. Hunters walk from the lodge, locate the nearest prey herd, kill an animal, and carry the carcass back. Each successful trip yields 100 units of game meat, deposited directly in the lodge's internal store (max 500 units).
Hunter dispatch rate depends on staffing level:
| Staffing | Dispatch interval | Approx. output |
|---|---|---|
| 100 % | Every game tick | Maximum throughput |
| 75 % | Every 5 ticks | ~⅓ of maximum |
| 50 % | Every 10 ticks | ~¼ of maximum |
| 25 % | Every 15 ticks | ~⅙ of maximum |
| < 25 % | Every 30 ticks | Minimal |
Once the lodge's 500-unit storage is full, hunters stop going out until a cartpusher clears the stock. If every nearby Granary is also full, the cartpusher has nowhere to go and hunting stalls completely — always ensure Granary space is available.
Prey herds
Prey animals are placed on the map by the mission script at fixed positions and roam within a defined radius. Their total population is finite: each herd can support roughly 2 000 citizens at full lodges. Killing prey at a high rate does not replenish the herd faster — overhunting will simply reduce the available population over time.
A Temple Complex dedicated to Osiris increases herd size. The Altar of Min add-on further boosts it. Conversely, Bast's Temple Complex can reduce how much food citizens need, making the same herd support more people effectively.
Trade value
Game meat sells for 34 Db per 100 units. This is among the higher food trade values, but hunting volume is too low to make it a reliable export. It is better consumed locally.
Placement
Place the lodge as close to the prey herd as possible. Hunters walk on foot — a long trip means fewer hunts per unit of time and slower food throughput. Use the Animals overlay to see the herd's roam zone and place the lodge at the edge of it or inside it.
The lodge is undesirable (−4 at the building tile, fading over 4 tiles). Keep it away from housing you want to evolve beyond Sturdy Hut. Clustering it with other undesirable food buildings (Granary, Bazaar) on the city's outskirts is a clean layout strategy.
Road access is mandatory — hunters and cartpushers both need a connected road network to reach the lodge and the Granary.
Tips
- Two lodges are usually sufficient for a small city of 300–600. One lodge per ~700–800 citizens at full staffing is a reasonable rule of thumb.
- If hunters are idle (standing at the lodge and not walking out), either the herd is depleted or the lodge storage is full. Check the Granary — it may need more space or a Special Orders instruction to accept game meat.
- On maps where the herd is far from any sensible city location, consider supplementing with a Fishing Wharf or importing grain instead of relying on hunting.
- In the early campaign missions (0–3), hunting is the primary food source. Prioritise placing the lodge before worrying about housing desirability.
- Fire risk is medium (5). An Firehouse patrol route should cover the lodge, especially once it is surrounded by other wooden structures.
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_hunting_lodge.js
The entire building definition lives in one file: src/scripts/building_hunting_lodge.js
building_hunting_lodge {
labor_category : LABOR_CATEGORY_FOOD_PRODUCTION
output { resource : RESOURCE_GAMEMEAT }
building_size : 2
min_houses_coverage : 100 // needs 100% of nearby houses to be in range to be "active"
cost [ 5, 10, 25, 40, 60 ] // VeryEasy … VeryHard
desirability { value[-4], step[1], step_size[2], range[4] }
laborers [6]
fire_risk [5] // 0=none, 1=low … 10=extreme
damage_risk [2]
// Hunter dispatch interval by staffing tier (in game ticks)
spawn_delay_100_percent : 1
spawn_delay_75_percent : 5
spawn_delay_50_percent : 10
spawn_delay_25_percent : 15
spawn_delay_default : 30 // < 25% staffing
flags { is_food: true }
}
To tune food output, adjust spawn_delay_* values — lower = faster hunter dispatch. To change placement cost per difficulty, edit the cost array (index 0 = Very Easy, 4 = Very Hard).
The desirability gradient: starts at −4 at the building, increases by 2 every tile (step_size), over a radius of 4 tiles. At 4 tiles out, the effect reaches 0.
Prey placement — src/scripts/mission_*.js
Prey animals are not hardcoded to the building — they are placed by each mission's script via event_register_mission_animals. Example from mission 0 (Nubt):
// src/scripts/mission_0_nubt.js — line 80
[event=event_register_mission_animals, mission=mission0]
function mission0_register_animals(ev) {
city.remove_animals()
city.add_animals_point(
0, // group index
40, 60, // map coordinates (x, y)
FIGURE_OSTRICH,
4 // count
)
city.set_animals_area(0, 16) // roam radius in tiles
}
To move the ostrich herd, change the x, y coordinates. To adjust herd size, change the count. To change the roam zone, change the radius. Each mission that uses hunting lodges has its own event_register_mission_animals handler.
Game messages — src/scripts/game_messages_en.js
| Key | Line | When shown |
|---|---|---|
message_building_hunting_lodge |
4053 | Building info panel (right-click on lodge). Contains the full in-game description including food chain explanation and game meat trade value. |
message_tutorial_food_or_famine (ID 239) |
3047 | Tutorial popup in mission 0 when population reaches 150 — introduces Hunting Lodge, Granary, and Bazaar together. |
The building's meta field in the script (help_id:90, text_id:154) maps to these message IDs. text_id is the in-game building name string; help_id points to the extended help panel.
Graphic animation — how the building displays stored meat
The building has a dedicated gamemeat animation layer defined in the script:
animations {
preview { pack:PACK_GENERAL, id:176 }
base { pack:PACK_GENERAL, id:176 }
work { pos:[20, -15], pack:PACK_GENERAL, id:176,
offset:1, max_frames:18, duration:3 }
gamemeat { pos:[61, 14], pack:PACK_GENERAL, id:205 }
}
The gamemeat layer (sprite pack GENERAL id 205) is drawn at position (61, 14) relative to the building tile and represents the pile of carcasses visible when the lodge has stored food. The work animation (frames 1–18 of sprite 176) shows the hunter doing target practice in the yard when the lodge is active.
The graphic update is controlled by the JS event handler at the end of the script:
[es=(building_hunting_lodge, update_graphic)]
function building_hunting_lodge_on_update_graphic(ev) {
var building = city.get_building(ev.bid)
var animkey = building.can_play_animation ? "work" : "none"
building.set_animation(animkey)
}
can_play_animation is true when the building is staffed and active. An empty or understaffed lodge shows the static base frame.