Research by Max · Feb 20 2026 · n=10 sources · Confidence: Medium-High
Net cost is ~$2, not $7. That's actually great news — it makes the mechanic much more achievable. At ~200 rewarded video ads = 1 net, an engaged daily player can fund a net every 1–2 months. The design challenge is keeping them entertained in between. There are proven mechanics for that. On platforms: Unity is the safest bet for a Farmville-style mobile game. Godot is the scrappier, free alternative if team or cost is a factor.
Source: AMF directly (againstmalaria.com)
"The most frequently distributed nets are large, family-sized nets which typically cost between US$2 and US$3. The average price of a net is now about US$2.00."
AMF's first nets in 2005 cost $5. They've driven the price down to ~$2 through bulk buying and competition.
Confirmed by: Effektiv Spenden — "$4 protects two people for 3 years" = $2/net
| Figure | Source | Confidence |
|---|---|---|
| $2.00/net (average LLIN) | AMF directly | High |
| $2–$3/net (large family nets) | AMF directly | High |
| $7/net | GAME_DESIGN.md | ❌ Incorrect — update this |
Action needed: Update $7 figure in GAME_DESIGN.md to $2. Also revisit the "600 nets = 1 child's life saved" stat — see note below.*
*GiveWell estimates $3,000–$8,000 to statistically avert one death from nets (it's a probability across a population, not a direct 1:1). The 600-net milestone is a simplification — fine for game framing, but the sourcing should be verified against current AMF/GiveWell data before public-facing use.
Format: Rewarded video (player chooses to watch for in-game reward — highest eCPM, highest completion rate)
| Metric | Value | Source |
|---|---|---|
| US iOS eCPM (Q4 2024) | $19.63 | Yango Ads |
| US Android eCPM (Q4 2024) | $16.49 | Yango Ads |
| Average US rewarded video eCPM | ~$13 | Bidscube 2025 |
| Completion rate | >95% | Industry standard |
| Ad network cut | ~30–40% | Standard (AdMob, AppLovin) |
| Developer's effective eCPM | ~$8–$13 | After network cut |
| Revenue per single ad view | ~$0.009–$0.013 |
Working number: $0.01 per rewarded ad view (conservative US, after network cut)
At $2/net and $0.01/ad:
| Scenario | eCPM | Ads per net | Days at 5 ads/day |
|---|---|---|---|
| Optimistic (high eCPM, US iOS) | $0.013/ad | 154 ads | 31 days |
| Base (average US, after cut) | $0.010/ad | 200 ads | 40 days |
| Conservative (lower eCPM, mixed geo) | $0.007/ad | 286 ads | 57 days |
Working model: ~200 rewarded ads = 1 net funded.
At 5 rewarded ads per session, daily play: - 1 net every ~40 days (~6 weeks) per engaged daily player
At 10 rewarded ads per session (heavy user): - 1 net every ~20 days (~3 weeks)
This is workable. A village-builder with good retention can get 5–10 rewarded ad watches per session naturally (speed up a build, unlock a reward, get a resource). The key design problem is: what keeps people coming back for 6 weeks when they haven't funded a net yet?
The gap between "ad watched" and "net funded" is the retention problem. Here's how to solve it with proven mechanics:
Every ad view fills a visible "Net Fund" bar. The bar shows exactly where the player stands: - 0–50 ads: "Gathering materials" (in-game framing) - 50–100 ads: "Nets on order" - 100–150 ads: "Nets arriving" - 150–200 ads: "Net delivered" 🎉
Small visible movement every single session = dopamine every session, not just at the milestone.
Decouple gameplay rewards from the impact milestone. Ads earn Seeds (in-game currency) that buy village improvements independently of the net fund. So every ad does two things: fills the net fund AND earns Seeds.
Players are always building something. Village upgrades (new homes, draining a pool, planting crops) happen on a faster cadence than nets — one small build every 1–3 sessions.
As the village grows, families appear and get named. Each household has 4–6 characters. Players watch them go about their day, see them sleep at night (when mosquitoes are active), feel the stakes. The moment a net is funded, those specific families get the net — personalized to the player's village.
| Milestone | Trigger | Reward |
|---|---|---|
| First pool drained | Action in village | "1 family sleeping safer tonight" badge |
| 25% to first net | 50 ads watched | Unlock new building type |
| 50% to first net | 100 ads | Named family elder + lore unlock |
| 75% to first net | 150 ads | Special night-mode visual (stars, sounds) |
| First net funded | 200 ads | Full celebration screen + real AMF impact counter |
| 5 nets total | 1,000 ads | "Village Champion" title |
| 10 nets total | 2,000 ads | Unlock new village biome |
Live global counter: "CHORUS players funded 847 nets this week." Updates daily. Makes the player feel part of something bigger, especially on slow personal progress days.
Time-limited events tied to real malaria patterns: - Rainy season event (April–June in Sub-Saharan Africa): mosquitoes more active in game, special "storm drain" building, double ad reward for 2 weeks - Harvest festival: Village celebration, limited decorations, bonus impact opportunity
For a Farmville-style village builder (2D, mobile-first, timers, multiple objects, push notifications, ad SDK integration):
| Engine | Cost | Language | Best for | Mobile | Ad SDK support | Hiring pool |
|---|---|---|---|---|---|---|
| Unity | Free (Personal/Plus) | C# | Full-featured mobile games, village builders | ✅ Excellent | ✅ AdMob, AppLovin Max, Unity Ads, all major SDKs | ✅ Huge |
| Godot 4 | Free (open source) | GDScript (Python-like) | Indie, 2D games, zero licensing cost | ✅ Good | ⚠️ Growing (fewer native SDKs, needs wrappers) | ⚠️ Smaller but growing fast |
| Flutter + Flame | Free | Dart | Lightweight casual games, cross-platform | ✅ Good | ⚠️ Limited native game ad SDKs | ⚠️ Flutter devs common, Flame game devs rare |
| Defold | Free | Lua | 2D mobile, lightweight, used by King (Candy Crush) | ✅ Excellent | ✅ Good (has AdMob plugin) | ❌ Small, niche |
| Cocos Creator | Free | JS/TS | Casual/hyper-casual, popular in Asia | ✅ Good | ✅ Good | ⚠️ Smaller in US |
Unity: - Largest asset store → village builder templates, character packs, UI kits available day 1 - Best ad monetization SDK support — AdMob and AppLovin Max have native Unity plugins, critical for CHORUS's revenue model - Easiest to hire experienced mobile game developers for - Unity Ads is its own ad network, which could be relevant later - Licensing: after the 2023 runtime fee controversy, Unity walked back most of it. Personal/Plus tiers are free for games under $200K/year revenue — more than enough for early CHORUS
Godot: - 100% free, no licensing risk ever - Great for 2D specifically (better than Unity in some ways) - Growing fast — more developers choosing it post-Unity controversy - Ad SDK integration requires more custom work (no native AppLovin/AdMob Godot plugins — need Android/iOS bridge) - Smaller hiring pool but passionate community - Best if: you're building with a small indie team that values open-source and wants zero licensing risk
Skip: Unreal (overkill), Flutter+Flame (wrong tool for this genre), Cocos (US hiring is hard)
These are strategic — need your call before anyone builds anything:
Replace the $7/net figure in all docs with:
Sources: AMF (againstmalaria.com/dollarspernet), Effektiv Spenden, GiveWell (givewell.org/charities/amf), Yango Ads (eCPM Q4 2024), Bidscube (2025 ad revenue benchmarks), Tenjin Ad Monetization Benchmark Report 2025, itch.io engine comparison, Keewano (best engines 2025), Genieee (Flutter+Flame 2025), segwise.ai (retention mechanics) Confidence: High on net cost ($2 confirmed by AMF directly). Medium-High on ad revenue (industry benchmarks, not CHORUS-specific). Medium on "ads per net" (depends on audience, eCPM achieved, network cut negotiated).