Commodity trading
Buying goods where or when they're cheap and selling them where or when they're expensive, against prices that vary by place and time.
On this page
Commodity trading is buying goods where or when they are cheap and selling them where or when they are expensive. Prices vary by place, by day, or both. The player carries a limited load from market to market, and each trip costs time. Many trading games add a debt that grows with interest, a bank, and random events that move a price or rob the player. In Drug Wars, the player has 30 days1 to trade drugs across New York while a loan shark’s debt grows 10% a day, rounded down2.
#How it works
A game repeats one visit after another:
start with cash, a debt, a capacity, and day 1
on arriving at a market:
for each good g:
price[g] = base(g, place) + swing # a new random draw
maybe a price event: one price × k or ÷ k # bust, glut, shortage
maybe a risk event: mugging, police, pirates
buy and sell, within cash and capacity
travel to another market:
day = day + travel time
debt = floor(debt × (1 + i))
bank = floor(bank × (1 + j))
at the last day, score cash + bank − debt
With buying price , selling price , capacity , and cash , one trip carries units and earns . The debt compounds at rate per day, , so a slow start costs more each day it lasts.
The common parts differ from game to game:
- Prices. A price is a base plus a random swing. Drug Wars draws whole steps of a fixed size, the same in every place3. dopewars draws uniformly from each drug’s range on every arrival4. Elite adds a term for the system’s economy, so a good is cheap in one type of system and expensive in another5.
- Price events. An event scales one price. Drug Wars multiplies by 5 or divides by 5 or 7, at most once a day6; dopewars multiplies or divides by 4, up to three times a visit7,8.
- Capacity. Drug Wars and dopewars start the player with a trench coat that holds 100 units9,10. Star Trader’s ships carry up to 30 tons11.
- Travel. Each jet in Drug Wars and dopewars takes a day1,12. Star Trader’s ships travel about 2 light-years a week11.
- Debt and the bank. Both drug games charge 10% a day on the loan shark’s debt and pay interest on deposits2,13,14,15. Star Trader’s banks pay 5%11.
- Risk. Drug Wars sends the police only after a player who carries drugs16. dopewars rolls for an encounter on every arrival, more often for a richer player17.
#Implementations
| Drug Wars (1984)18 | dopewars (1999)19 | Elite (1984)20 | |
|---|---|---|---|
| Goods | 6 drugs21 | 12 drugs22 | 17 goods23 |
| Price | random steps, plus another drug’s price from the day before3,24 | uniform in the drug’s range4 | base + masked random byte ± economy × factor5 |
| Does the place matter? | no3 | only for what is on sale25 | yes, through the economy26 |
| New prices | every day3 | every arrival4 | every arrival in a new system27 |
| Events | ≤ 1 a day; × 5, ÷ 5, ÷ 76 | 0–3 a visit; × 4, ÷ 48,7 | — |
#Drug Wars
John E. Dell’s Drug Wars survives only as a compiled MS-DOS program, so the atlas measured it in an emulator. Every day each drug gets a random whole number of steps, the same in all six places3. Cocaine, heroin, and weed also add another drug’s price from the day before24. Since the place doesn’t matter, the trade is in time: buy on a cheap day, sell on an expensive one. On about one day in five an event multiplies one price by 5 or divides it by 5 or 76. The loan shark lends up to twice the cash in hand, less $5028, and the debt grows 10% a day, rounded down2.
#dopewars
Ben Webb’s dopewars derives from Drug Wars by way of an MS-DOS Dope Wars29, and its source is public. Each arrival draws every price on sale uniformly from the drug’s range4. The place sets how many of the 12 drugs are on sale30 and how often the police attack31. A visit brings zero to three events with probabilities 0.30, 0.42, 0.266, and 0.0148. An event drug costs a quarter or four times a normal price7.
if (brandom(0, 100) < 70)
NumEvents = 1;
if (brandom(0, 100) < 40 && NumEvents == 1)
NumEvents = 2;
if (brandom(0, 100) < 5 && NumEvents == 2)
NumEvents = 3;#Elite
In Elite, the place sets most of a price. Each good has a base price, an economic factor, and a fluctuation mask32, and its price is 5 tenths of a credit. One random byte, drawn on arrival in a new system, sets the swing for the visit27. A negative factor makes a good cheapest in poor agricultural systems, a positive one in rich industrial systems; Food runs 7.6–8.0 credits a tonne in the richest industrial systems and 2.0–2.4 in the poorest agricultural ones, and Computers the other way round, 61.6–62.8 and 100.8–102.026. That gradient makes trade routes. The arithmetic is 8-bit, and only Narcotics overflows it, so its price can land at 1.2 credits in a system where it otherwise costs about 10033. Mark Moxon’s documented source makes this code readable.
LDA QQ26
AND QQ23+3,X
…
ADC QQ23,X
…
ADC QQ19+3
…
SBC QQ19+3
…
JSR GC2LDY QQ28
…
ADC QQ19+2#Koei’s Genghis Khan games
In Genghis Khan, three merchants travel their own routes, and the player trades with one only while it is in the country34,35. Prices follow a market rate that changes every season36, and each merchant also has a rate of his own37. Genghis Khan II keeps the rate38 and adds specialty items whose value follows supply and demand and varies by area39.
#History
The earliest known traded good with a moving price is land, bought and sold at a yearly random price, in Doug Dyment’s FOCAL Sumer Game, which DECUS listed in November 196940,41, and in David Ahl’s BASIC version, Hamurabi42.
Star Trader, which People’s Computer Company printed in January 1974, is the earliest known game here whose markets differ by place43,44. Its players captain merchant ships between star systems43. They haggle with local merchants45, carry up to 30 tons, travel about 2 light-years a week, and bank at 5% interest11. The systems grow over the years and their needs change; the newsletter advises buying raw materials, such as uranium or metals, in less developed, newer systems44.
John E. Dell said he wrote Drug Wars after playing a game at a friend’s house about buying and selling goods at fluctuating prices; he couldn’t name it but thought it likely Taipan46. Drug Wars carries a 1984 copyright18, and Elite came out the same year20. An MS-DOS Dope Wars credits Dell’s game47, and Ben Webb’s dopewars followed in 199919.
#Variants and combinations
- Prices by time only: Drug Wars, where the trade is in waiting3.
- Prices by place: Elite’s economy gradient, which makes fixed trade routes26.
- Availability by place: dopewars, where a place sells only some drugs each day30.
- Haggling: Star Trader45.
- Growing economies: Star Trader’s systems develop as they trade44.
- Compound interest: the debt that sets the pace in both drug games2,13.
Games
| Game | Year | How | Note |
|---|---|---|---|
| Hamurabi | 1973 | land at 17 to 26 bushels per acre, one price a year for buying and selling | |
| Star Trader | 1974 | six goods priced by each system's stock or need, and haggling over every lot | |
| Drug Wars | 1984 | six drugs, six places, 30 days; a fresh random price every day, at most one price event | |
| Elite | 1984 | ||
| Nobunaga's Ambition | 1986 | merchants trade rice and arms at a market price; the computer original sets a base rate each spring that trades then move | |
| Genghis Khan | 1987 | three merchants and 17 goods; one market rate that changes each season | |
| Genghis Khan II: Clan of the Gray Wolf | 1992 | four merchants; prices depend on a rate shown beside the season | |
| dopewars | 1999 | 12 drugs, 8 places (6 in antique mode), 31 days; a uniform price per drug on each arrival, 0–3 events at ÷4 or ×4 | |
| Animal Crossing | 2001 | turnips bought on Sunday and sold to the shop on a weekday, before they spoil |
Every claim about this mechanic, by game (77)
References
- ^ abEach jet takes a day, and the jet out of 1/3/84 ends the game after 30 days of trading, with no 12/31 on the calendar.Our researchDrug Wars (1984), played in emu2
How we know
the DATE field, day by day · archived copy ↗ Measured by a script. It fails if the result disagrees with the claim.
Checked against the evidence by its author, an AI model, 2026-10-20.
Checked by a second AI model, 2026-10-21.
- ^ abcdThe debt grows 10% a day, rounded down to the dollar, so $5,500 left unpaid is $87,198 on the last day.Our researchDrug Wars (1984), played in emu2
How we know
the DEBT field, day by day · archived copy ↗ Measured by a script. It fails if the result disagrees with the claim.
Checked against the evidence by its author, an AI model, 2026-10-20.
Checked by a second AI model, 2026-10-21.
- ^ abcdefEach day every drug gets a new price, a random whole number of steps: cocaine 15 to 28 × $1,000, heroin 5 to 12 × $1,000, acid 10 to 44 × $100, weed 3 to 7 × $100, speed 7 to 24 × $10, and ludes 1 to 5 × $10.Our researchDrug Wars (1984), played in emu2
How we know
the day's prices, every day of the passive games · archived copy ↗ Measured by a script. It fails if the result disagrees with the claim.
Checked against the evidence by its author, an AI model, 2026-10-20.
Checked by a second AI model, 2026-10-21.
- ^ abcdEach drug on sale gets a fresh price on every arrival, drawn uniformly from at least its MinPrice to below its MaxPrice; a price event then divides or multiplies one drug's price.Verifieddopewars source
How we know
810 * Returns a random price not less than bot and less than top. ⋮ 814 return (price_t)((float)(top - bot) * rand() / (RAND_MAX + 1.0)) + bot;
src/dopewars.c lines 809–815 at d8bb8ee · upstream ↗ 3248 To->Drugs[i].Price = prandom(Drug[i].MinPrice, Drug[i].MaxPrice);src/serverside.c lines 3245–3250 at d8bb8ee · upstream ↗ 2411 SendDrugsHere(To, TRUE); ⋮ 2417 SendDrugsHere(To, TRUE);
src/serverside.c lines 2400–2417 at d8bb8ee · upstream ↗ Measured by a script. It fails if the result disagrees with the claim.
The numbers come from the run; its author, an AI model, checked the script measures what the claim says, 2026-10-20.
Checked by a second AI model, 2026-10-27.
- ^ abcdeEach good's price is tenths of a credit, from its base price , a random byte masked by , the system's economy (0 to 7), and the good's economic factor , all in 8-bit arithmetic.CodeElite source (BBC Micro cassette) · Moxon, Elite market prices
How we know
LDA QQ26 AND QQ23+3,X … ADC QQ23,X … ADC QQ19+3 … SBC QQ19+3 … JSR GC2
1-source-files/main-sources/elite-source.asm#L20485-L20535 · upstream ↗ LDY QQ28 … ADC QQ19+2
1-source-files/main-sources/elite-source.asm#L20785-L20822 · upstream ↗ price = (base_price + (random AND mask) + economy * economic_factor) * 4
· archived copy ↗ Measured by a script. It fails if the result disagrees with the claim.
Checked against the evidence by its author, an AI model, 2026-10-20.
Checked by a second AI model, 2026-10-27.
- ^ abcOn about one day in five a price event moves one drug; a cocaine bust or heroin addicts multiply its price by 5, cheap heroin, acid, or weed divide it by 5, and cheap ludes divide it by 7.Our researchDrug Wars (1984), played in emu2
How we know
COPS MADE A BIG COKE BUST !! PRICES ARE OUTRAGEOUS !!
the event messages and the day's prices · archived copy ↗ Measured by a script. It fails if the result disagrees with the claim.
Checked against the evidence by its author, an AI model, 2026-10-20.
Checked by a second AI model, 2026-10-21.
- ^ abcA price event picks a random drug that can turn; a cheap drug costs a quarter of a normal price, and an expensive one four times.Verifieddopewars source
How we know
3227 To->Drugs[i].Price = prandom(Drug[i].MinPrice, Drug[i].MaxPrice) 3228 * Drugs.ExpensiveMultiply; ⋮ 3233 To->Drugs[i].Price = prandom(Drug[i].MinPrice, Drug[i].MaxPrice)
src/serverside.c lines 3221–3237 at d8bb8ee · upstream ↗ 753 N_("Cops made a big %tde bust! Prices are outrageous!"), 754 N_("Addicts are buying %tde at ridiculous prices!"), 755 4, 4
src/dopewars.c lines 751–756 at d8bb8ee · upstream ↗ Measured by a script. It fails if the result disagrees with the claim.
The numbers come from the run; its author, an AI model, checked the script measures what the claim says, 2026-10-20.
Checked by a second AI model, 2026-10-27.
- ^ abcdEach visit has no price event with probability 0.30, one with 0.42, two with 0.266, and three with 0.014.Verifieddopewars source
How we know
3214 if (brandom(0, 100) < 70) 3215 NumEvents = 1; 3216 if (brandom(0, 100) < 40 && NumEvents == 1) 3217 NumEvents = 2; 3218 if (brandom(0, 100) < 5 && NumEvents == 2) 3219 NumEvents = 3;
src/serverside.c lines 3213–3219 at d8bb8ee · upstream ↗ Measured by a script. It fails if the result disagrees with the claim.
The numbers come from the run; its author, an AI model, checked the script measures what the claim says, 2026-10-20.
Checked by a second AI model, 2026-10-27.
- ^A game starts on 12/4/83 in the Bronx with $2,000 cash, a $5,500 debt to the loan shark, and a trench coat that holds 100 units.Our researchDrug Wars (1984), played in emu2
How we know
first day of every game · archived copy ↗ Measured by a script. It fails if the result disagrees with the claim.
Checked against the evidence by its author, an AI model, 2026-10-20.
Checked by a second AI model, 2026-10-21.
- ^A dopewars game starts on 1 December 1984 with $2,000 cash, a $5,500 debt, and a trenchcoat that holds 100.Codedopewars source
How we know
114price_t StartCash = 2000, StartDebt = 5500;src/dopewars.c line 114 at d8bb8ee · upstream ↗ 87 1, 12, 1984src/dopewars.c lines 86–88 at d8bb8ee · upstream ↗ 882 NewPlayer->CoatSize = 100;src/dopewars.c line 882 at d8bb8ee · upstream ↗ Checked against the evidence by its author, an AI model, 2026-10-20.
Checked by a second AI model, 2026-10-27.
- ^ abcdStar Trader's ships carry up to 30 tons of cargo and travel about 2 light-years a week, and banks, found only in Class I and Class II systems, pay 5% interest.PublisherPeople's Computer Company, Jan. 1974revised
How we know
YOUR SHIPS CAN TRAVEL ABOUT TWO LIGHTYEARS IN A WEEK AND CAN CARRY UP TO 30 TONS OF CARGO. ONLY CLASS I AND CLASS II STAR SYSTEMS HAVE BANKS ON THEM. THEY PAY 5% INTEREST
p. 4 · archived copy ↗ Checked against the evidence by its author, an AI model, 2026-10-20.
Revised after a check by a second AI model, 2026-10-21.
- ^Each jet to another location takes one day, and asking to jet on the 31st turn ends the game, so a game has 31 days of trading.Codedopewars source
How we know
226int NumTurns = 31;src/dopewars.c line 226 at d8bb8ee · upstream ↗ 452 if (NumTurns > 0 && Play->Turn >= NumTurns ⋮ 462 Play->Turn++; 463 g_date_add_days(Play->date, 1);
src/serverside.c lines 452–463 at d8bb8ee · upstream ↗ Checked against the evidence by its author, an AI model, 2026-10-20.
Checked by a second AI model, 2026-10-27.
- ^ abEach jet multiplies the loan shark's debt by 1.10, in integer arithmetic, so $5,500 left unpaid grows to $95,917 over 30 jets.Verifieddopewars source
How we know
108int DebtInterest = 10, BankInterest = 5;src/dopewars.c line 108 at d8bb8ee · upstream ↗ 464 Play->Debt = Play->Debt * (DebtInterest + 100) / 100;src/serverside.c line 464 at d8bb8ee · upstream ↗ Measured by a script. It fails if the result disagrees with the claim.
The numbers come from the run; its author, an AI model, checked the script measures what the claim says, 2026-10-20.
Checked by a second AI model, 2026-10-27.
- ^The bank pays 5.5% a day, rounded down, but the status box can show the balance from before the day's interest until something redraws it.Our researchDrug Wars (1984), played in emu2
How we know
the BANK field after a $2,000 deposit, and a withdrawal on day three · archived copy ↗ Measured by a script. It fails if the result disagrees with the claim.
Checked against the evidence by its author, an AI model, 2026-10-20.
Checked by a second AI model, 2026-10-21.
- ^Each jet multiplies the bank balance by 1.05, so $2,000 deposited grows to $8,614 over 30 jets.Verifieddopewars source
How we know
108int DebtInterest = 10, BankInterest = 5;src/dopewars.c line 108 at d8bb8ee · upstream ↗ 466 Play->Bank = Play->Bank * (BankInterest + 100) / 100;src/serverside.c line 466 at d8bb8ee · upstream ↗ Measured by a script. It fails if the result disagrees with the claim.
The numbers come from the run; its author, an AI model, checked the script measures what the claim says, 2026-10-20.
Checked by a second AI model, 2026-10-27.
- ^Officer Hardass and one to three deputies chase a player who carries drugs and never one who carries none.Our researchDrug Wars (1984), played in emu2
How we know
OFFICER HARDASS AND … OF HIS DEPUTIES ARE CHASING YOU · archived copy ↗ Measured by a script. It fails if the result disagrees with the claim.
Checked against the evidence by its author, an AI model, 2026-10-20.
Checked by a second AI model, 2026-10-21.
- ^On arrival, dopewars rolls for an encounter, 24 in 100 below $1 million net worth, 39 in 115 above it, and 54 in 130 above $3 million.Codedopewars source
How we know
2315 if (Money > 3000000) 2316 i = 130; 2317 else if (Money > 1000000) 2318 i = 115; 2319 else 2320 i = 100; 2321 if (brandom(0, i) > 75) {
src/serverside.c lines 2315–2321 at d8bb8ee · upstream ↗ Checked against the evidence by its author, an AI model, 2026-10-20.
Checked by a second AI model, 2026-10-27.
- ^ abThe title screen reads “Drug Wars, a game based on the New York drug market, by John E. Dell, copyright (1984)”.Our researchDrug Wars (1984), played in emu2
How we know
DRUG WARS A GAME BASED ON THE NEW YORK DRUG MARKET BY JOHN E. DELL COPYRIGHT (1984)
title screen · archived copy ↗ Measured by a script. It fails if the result disagrees with the claim.
Checked against the evidence by its author, an AI model, 2026-10-20.
Checked by a second AI model, 2026-10-21.
- ^ abBen Webb's first GPL release of dopewars, version 1.4.0, came out on 27 April 1999.Developerdopewars source
How we know
17327th April 1999 174 First GPL release of dopewars (1.4.0)
NEWS lines 173–174 at d8bb8ee · upstream ↗ Checked against the evidence by its author, an AI model, 2026-10-20.
Checked by a second AI model, 2026-10-27.
- ^ abElite came out in 1984.WikidataWikidata
How we know
+1984-09-20T00:00:00Z
Q55815, publication date (P577), as data/catalog/games.json records it · archived copy ↗ The quote matches our archived copy.
- ^The instructions list six drugs with their prices per unit: cocaine 15,000–30,000, heroin 5,000–14,000, acid 1,000–4,500, weed 300–900, speed 70–250, and ludes 10–60.Our researchDrug Wars (1984), played in emu2
How we know
The prices of drugs per unit are: COCAINE 15000-30000
instructions screen · archived copy ↗ Measured by a script. It fails if the result disagrees with the claim.
Checked against the evidence by its author, an AI model, 2026-10-20.
Checked by a second AI model, 2026-10-21.
- ^dopewars has 12 drugs, each with a price range, from Ludes at 11–60 to Cocaine at 15,000–29,000. Acid, Hashish, Ludes, and Weed can turn cheap; Cocaine, Heroin, Opium, and Speed can turn expensive.Verifieddopewars source
How we know
719 {N_("Cocaine"), 15000, 29000, FALSE, TRUE, ""},src/dopewars.c lines 714–734 at d8bb8ee · upstream ↗ 257 price_t MinPrice, MaxPrice; 258 gboolean Cheap, Expensive;
src/dopewars.h lines 255–260 at d8bb8ee · upstream ↗ Measured by a script. It fails if the result disagrees with the claim.
The numbers come from the run; its author, an AI model, checked the script measures what the claim says, 2026-10-20.
Checked by a second AI model, 2026-10-27.
- ^Elite's station markets price 17 goods afresh in every star system and stock all but the last, alien items, whose availability
varsets to 0.CodeElite source (BBC Micro cassette)revisedHow we know
32542.QQ23 ⋮ 32544 ITEM 19, -2, 't', 6, %00000001 \ 0 = Food ⋮ 32560 ITEM 53, 15, 't', 192, %00000111 \ 16 = Alien items
1-source-files/main-sources/elite-source.asm lines 32542–32560 at 6ba1c7f · upstream ↗ 20798 LDA #0 \ Set AVL+16 (availability of alien items) to 0, 20799 STA AVL+16 \ setting A to 0 in the process
1-source-files/main-sources/elite-source.asm lines 20798–20799 at 6ba1c7f · upstream ↗ Checked against the evidence by its author, an AI model, 2026-10-27.
Revised after a check by a second AI model, 2026-10-27: Alien items are priced but never stocked.
- ^ abThree prices carry another drug's price from the day before, so cocaine adds the previous day's weed price, heroin adds 4 × the previous day's speed price, and weed adds the previous day's ludes price.Our researchDrug Wars (1984), played in emu2
How we know
the day's prices, every day of the passive games · archived copy ↗ Measured by a script. It fails if the result disagrees with the claim.
Checked against the evidence by its author, an AI model, 2026-10-20.
Checked by a second AI model, 2026-10-21.
- ^The eight locations differ in police presence and in how many drugs are on sale, from Manhattan (police 90, 4–9 drugs) to the Ghetto (police 5, 8–11 drugs).Verifieddopewars source
How we know
743 {N_("Manhattan"), 90, NUMDRUG / 2 - 2, NUMDRUG - 2},src/dopewars.c lines 738–748 at d8bb8ee · upstream ↗ 250 int PolicePresence; 251 int MinDrug, MaxDrug;
src/dopewars.h lines 248–252 at d8bb8ee · upstream ↗ Measured by a script. It fails if the result disagrees with the claim.
The numbers come from the run; its author, an AI model, checked the script measures what the claim says, 2026-10-20.
Checked by a second AI model, 2026-10-27.
- ^ abcA negative factor makes a good cheapest in poor agricultural systems and a positive one in rich industrial systems, so Food costs 7.6–8.0 credits a tonne at economy 0 and 2.0–2.4 at economy 7, and Computers 61.6–62.8 and 100.8–102.0.CodeElite source (BBC Micro cassette)
How we know
LDA QQ19+1 BMI TT155
1-source-files/main-sources/elite-source.asm#L20502-L20520 · upstream ↗ * 0 = Rich Industrial … * 7 = Poor Agricultural
1-source-files/main-sources/elite-source.asm#L3036-L3047 · upstream ↗ Measured by a script. It fails if the result disagrees with the claim.
Checked against the evidence by its author, an AI model, 2026-10-20.
Checked by a second AI model, 2026-10-27.
- ^ abOne random byte, drawn on arrival in a new system, sets every good's fluctuation for that visit.CodeElite source (BBC Micro cassette)
How we know
20931.GVL1-source-files/main-sources/elite-source.asm lines 20931–20935 at 6ba1c7f · upstream ↗ JSR GVL
1-source-files/main-sources/elite-source.asm#L21185 · upstream ↗ Checked against the evidence by its author, an AI model, 2026-10-20.
Checked by a second AI model, 2026-10-27.
- ^The loan shark lends at most twice the cash in hand, less $50; with $2,000 he lends $3,950 and refuses $3,951.Our researchDrug Wars (1984), played in emu2
How we know
the loan shark's HOW MUCH TO BORROW question · archived copy ↗ Measured by a script. It fails if the result disagrees with the claim.
Checked against the evidence by its author, an AI model, 2026-10-20.
Checked by a second AI model, 2026-10-21.
- ^dopewars's credits say it derives from an MS-DOS game of the same name by an unknown author, which was based on John E. Dell's MS-DOS game Drug Wars.Developerdopewars source
How we know
1dopewars is derived from the MS-DOS game of the same name (author unknown). ⋮ 3This is turn was based upon the MS-DOS game "Drug Wars", by John E. Dell.
AUTHORS lines 1–3 at d8bb8ee · upstream ↗ 44based upon the MS-DOS game of the same name, in turn derived from "Drugdoc/index.html lines 43–45 at d8bb8ee · upstream ↗ Checked against the evidence by its author, an AI model, 2026-10-20.
Checked by a second AI model, 2026-10-27.
- ^ abEach visit puts a random number of drugs on sale, from the location's MinDrug to one less than its MaxDrug; the rest have no price that day.Verifieddopewars source
How we know
3239 NumRandom = brandom(Location[To->IsAt].MinDrug, 3240 Location[To->IsAt].MaxDrug);
src/serverside.c lines 3239–3251 at d8bb8ee · upstream ↗ Measured by a script. It fails if the result disagrees with the claim.
The numbers come from the run; its author, an AI model, checked the script measures what the claim says, 2026-10-20.
Checked by a second AI model, 2026-10-27.
- ^An encounter is an offer, a random event, or a police attack, and a location's police presence raises the share of attacks. Half of all offers are a helper who carries drugs, or a bigger trenchcoat in antique mode; the rest offer a gun, unless the game is sanitized or has no guns, the player already carries two more guns than helpers, or the drawn gun won't fit the coat, and then nothing is offered.Codedopewars sourcerevised
How we know
2443 i = brandom(0, 80 + Location[To->IsAt].PolicePresence); ⋮ 2449 else ⋮ 2451 if (i < 33) { 2452 return (OfferObject(To, Force == FORCEBITCH)); 2453 } else if (i < 50) { 2454 return (RandomOffer(To));
src/serverside.c lines 2441–2459 at d8bb8ee · upstream ↗ 3164 if (brandom(0, 100) < 50 || ForceBitch) { 3165 if (WantAntique) { ⋮ 3167 text = dpg_strdup_printf(_("YN^Would you like to buy a bigger " ⋮ 3172 text = 3173 dpg_strdup_printf(_ 3174 ("YN^Hey dude! I'll help carry your %tde for a " ⋮ 3181 } else if (!Sanitized && NumGun > 0 3182 && (TotalGunsCarried(To) < To->Bitches.Carried + 2)) { ⋮ 3185 if (Gun[ObjNum].Space > To->CoatSize) 3186 return 0;
src/serverside.c lines 3163–3186 at d8bb8ee · upstream ↗ Checked against the evidence by its author, an AI model, 2026-10-22.
Revised after a check by a second AI model, 2026-10-27: The gun offer has conditions, and when they fail nothing is offered.
- ^The table gives each good a base price, an economic factor from −9 (Furs) to +29 (Narcotics), and a fluctuation mask from 1 (Food) to 120 (Narcotics).CodeElite source (BBC Micro cassette)
How we know
32550 ITEM 235, 29, 't', 8, %01111000 \ 6 = Narcotics1-source-files/main-sources/elite-source.asm lines 32544–32560 at 6ba1c7f · upstream ↗ Measured by a script. It fails if the result disagrees with the claim.
Checked against the evidence by its author, an AI model, 2026-10-20.
Checked by a second AI model, 2026-10-27.
- ^Narcotics' sum can pass 255 and wrap around, so in a rich industrial system its price is either 94.0–100.4 or 1.2–39.6 credits.CodeElite source (BBC Micro cassette)
How we know
CLC ADC QQ23,X STA QQ24
1-source-files/main-sources/elite-source.asm#L20491-L20493 · upstream ↗ Measured by a script. It fails if the result disagrees with the claim.
Checked against the evidence by its author, an AI model, 2026-10-20.
Checked by a second AI model, 2026-10-27.
- ^Three merchants trade in Genghis Khan, Chinese, Islamic, and Uighur, each working independently along its own sales routes.ManualKoei, Genghis Khan NES manual
How we know
There are three types of merchants: the merchants from China, Islam and Uighur. These three types work independently of each other, with different sales routes.
p. 15, Command <Trade> · archived copy ↗ The quote matches our archived copy.
Checked by a second AI model, 2026-10-27.
- ^When a merchant is in the country, the player can sell food and specialty items for gold, buy food, specialty items, and weapons, or hire mercenaries, at the current market rate; weapons raise the arms value and cannot be resold.ManualKoei, Genghis Khan NES manual
How we know
If one or more of these merchants is in the country you wish to trade in, you may deal with him at the current market prices. … b) Buy: You may buy food, specialty items, or weapons from the merchant. Weapons will raise your troops' arms value, but they may not be resold.
p. 16, Command <Trade> · archived copy ↗ The quote matches our archived copy.
Checked by a second AI model, 2026-10-27.
- ^The Famicom manual says the base market rate changes every season and governs the merchants' trading rates, so a high base rate means high prices and a low one low prices.ManualKoei, Genghis Khan Famicom manual (JP)
How we know
季節ごとに変動する基本相場。基本相場は商人との取り引きレートに影響し、高いときは物価が高く、低いときは物価が安いことを意味します。
p. 18 (PDF p. 20), main display, item 7 · archived copy ↗ The quote matches our archived copy.
Checked by a second AI model, 2026-10-27.
- ^The Famicom manual says each merchant has his own trading rate, merchants are not always present, trades follow the market rate of the moment, and the Sell and Buy screens show a table of rates.ManualKoei, Genghis Khan Famicom manual (JP)
How we know
商人には中国商人・イスラム商人・ウイグル商人がおり、それぞれ独自の取引レートを持っています。国に商人がいるときには、食糧・特産品の売買と武器の購入、兵士の雇用ができますが、商人はいつもいるわけではありません。取引はそのときの相場にしたがっておこなわれ、⑴売、⑵買では相場の一覧表が表示されます。
p. 28 (PDF p. 30), 5. 商人 · archived copy ↗ The quote matches our archived copy.
Checked by a second AI model, 2026-10-27.
- ^Selling food or specialty items and buying food, arms, or specialty items both happen at prices that depend on the rate.ManualKoei, Genghis Khan II SNES manual
How we know
Sell food or specialty items. Price depends on the rate. … Buy food, arms, or specialty items. Price depends on the rate.
p. 30, Sell; Buy · archived copy ↗ The quote matches our archived copy.
Checked by a second AI model, 2026-10-21.
- ^Each specialty item's value is based on supply and demand and varies by area.ManualKoei, Genghis Khan II SNES manual
How we know
The value (based on supply-demand) of each specialty item varies depending on the area
p. 18, Specialty Items · archived copy ↗ The quote matches our archived copy.
Checked by a second AI model, 2026-10-21.
- ^DECUS's November 1969 catalog lists The Sumer Game, FOCAL-5, by Doug Dyment of Digital Equipment of Canada, "a simulation program/game which will run on a minimal PDP-8 system".PublisherDECUS catalog, November 1969
How we know
This is a simulation program/game which will run on a minimal PDP-8 system. The economy of a Sumerian city in the year 3000 B.C. is simulated in the fashion of a modern-day "business game."
p. 18-A, DECUS No. FOCAL-5 · archived copy ↗ Checked against the evidence by its author, an AI model, 2026-10-20.
Checked by a second AI model, 2026-10-21.
- ^Dyment's land costs 17 plus a roll of 1 to 5, so 18 to 22 bushels per acre, which matches his write-up's average of "one acre for 20 bushels of grain".CodeDECUS FOCAL8-5 source · DECUS FOCAL8-5 write-up
How we know
03.10 D 6;D 8;S Y=C+17;T "THIS YEAR, LAND MAY BE TRADED FOR 03.20 T Y," BUSHELS PER ACRE;";S C=1
f0005.fc#L18-L19 · archived copy ↗ 08.10 S C=FITR(5*FABS(FRAN()))+1
f0005.fc#L54 · archived copy ↗ The price varies from year to year, but averages one acre for 20 bushels of grain.
p. 1, Abstract · archived copy ↗ Checked against the evidence by its author, an AI model, 2026-10-20.
Checked by a second AI model, 2026-10-21.
- ^Each year land trades at bushels per acre for a random in [0, 1), a whole number from 17 to 26.Codecoding-horror/basic-computer-games · Ahl, BASIC Computer Games (1978)
How we know
22310 C=INT(10*RND(1)): Y=C+17 23312 PRINT "LAND IS TRADING AT";Y;"BUSHELS PER ACRE."
43_Hammurabi/hammurabi.bas lines 22–23 at 5301155 · upstream ↗ the price will vary between 17 and 26 bushels per acre
p. 78 · archived copy ↗ Checked against the evidence by its author, an AI model, 2026-10-20.
Checked by a second AI model, 2026-10-21.
- ^ abStar Trader, which People's Computer Company printed in January 1974, has each player captain trading ships between star systems, buying and selling merchandise.PublisherPeople's Computer Company, Jan. 1974
How we know
YOU WILL TRAVEL FROM STAR SYSTEM TO STAR SYSTEM, BUYING AND SELLING MERCHANDISE.
p. 4 · archived copy ↗ The quote matches our archived copy.
Checked by a second AI model, 2026-10-21.
- ^ abcStar Trader's systems grow over the years and their needs change, and the newsletter's advice is to buy raw materials, such as uranium or metals, in less developed, newer systems.PublisherPeople's Computer Company, Jan. 1974revised
How we know
AS TIME GOES ON, EACH STAR SYSTEM WILL SLOWLY GROW, AND ITS NEEDS WILL CHANGE. … You buy your raw materials (like Uranium or Metals) on the less developed, newer star systems.
p. 4 · archived copy ↗ The quote matches our archived copy.
Revised after a check by a second AI model, 2026-10-21.
- ^ abIn Star Trader the player trades with the merchants and haggles over prices.PublisherPeople's Computer Company, Jan. 1974revised
How we know
You trade with the merchants and haggle over prices.
p. 4 · archived copy ↗ The quote matches our archived copy.
Revised after a check by a second AI model, 2026-10-21.
- ^Dell said he had recently played a game at a friend's house that involved buying and selling goods at fluctuating prices, and that it was likely Taipan.InterviewHuffman, Wired (2021)
How we know
He said that he had recently played a game at his friend’s house that involved buying and selling goods at fluctuating prices. Dell said he could not remember which game, but that it could have likely been Taipan.
· archived copy ↗ The quote matches our archived copy.
Checked by a second AI model, 2026-10-21.
- ^An MS-DOS Dope Wars opens by calling itself based on John E. Dell's Drug Wars and credits the Happy Hacker Foundation.Our researchDope Wars (MS-DOS, Happy Hacker Foundation), played in emu2 · BBS Documentary library, Dopewarsrevised
How we know
Based on John E. Dell's old Drug Wars game, Dope Wars is a simulation of an imaginary drug market. … Dope Wars has been brought to you courtesy of the Happy Hacker Foundation.
opening screen · archived copy ↗ The program recieved an update from the "Happy Hacker Foundation" with the release of "Dope Wars"
· archived copy ↗ Measured by a script. It fails if the result disagrees with the claim.
Checked against the evidence by its author, an AI model, 2026-10-20.
Revised after a check by a second AI model, 2026-10-27: The start figures come from our run (hhf-start, with the probe); the opening screen stays T2.
- ^The student rules Lagash in Sumer, about 3500 B.C., as Luduga I, and each season divides the grain among food, seed, and storage.PaperWing et al. 1967
How we know
He then assumes the role of Luduga I, priest-ruler of Lagash
pp. 13–14 · archived copy ↗ (1) food for the people, (2) seed for next season's planting, (3) inventory for future needs.
p. 14 · archived copy ↗ Checked against the evidence by its author, an AI model, 2026-10-20.
Checked by a second AI model, 2026-10-21.
Sources
Code
- Webb, Ben. 2026. “dopewars source code.” Commit d8bb8ee. benmwebb/dopewars @ d8bb8ee · licence, all uses
- Bell, Ian, David Braben, and Mark Moxon. 2026. “Elite source code (BBC Micro cassette version), fully documented.” Commit 6ba1c7f. markmoxon/elite-source-code-bbc-micro-cassette @ 6ba1c7f · licence, all uses
- Dyment, Doug. n.d. “The Sumer Game, FOCAL source (DECUS FOCAL8-5).” Digital Equipment Computer Users Society (DECUS). svn revision 6211. original · archived · licence, all uses
- Atwood, Jeff and basic-computer-games contributors. 2026. “BASIC Computer Games, updated for 2022 (coding-horror/basic-computer-games).” Commit 5301155. coding-horror/basic-computer-games @ 5301155 · licence, all uses
Primary
- Advance, Frame. 2026. “Drug Wars (1984), DRUGWAR.EXE played in the emu2 emulator.” Version drugwars.zip, holding DRUGWAR.EXE: 49,792 bytes, sha256 3f43f9ec88b9379c9ffa22718612bc715bd4c2b4350665ff0e94476e3239c61c. original · archived · licence, all uses
- Kaufman, Dave. 1974. “Star Trader.” People's Computer Company, vol. 2, no. 3, pp. 4–5. People's Computer Company. original · archived · licence, all uses
- Corporation, Koei. 1990. “Genghis Khan: Instruction Manual (NES-GX-USA).” Koei Corporation (Burlingame, California). original · archived · licence, all uses
- Koei. 1989. “蒼き狼と白き牝鹿・ジンギスカン 取扱説明書 (Aoki Ōkami to Shiroki Mejika: Genghis Khan, Famicom manual, KOE-GX).” Koei (光栄). original · archived · licence, all uses
- Corporation, Koei. 1993. “Genghis Khan II: Clan of the Gray Wolf, Super NES instruction manual.” Koei Corporation (Burlingame, California). original · archived · licence, all uses
- 1969. “DECUS Program Library Catalog, November 1969.” Digital Equipment Computer Users Society (DECUS). original · archived · licence, all uses
- Dyment, Doug. n.d. “The Sumer Game: DECUS Program Library Write-up, FOCAL8-5.” Digital Equipment Computer Users Society (DECUS). original · archived · licence, all uses
- Ahl, David H. and Steve North. 1978. “BASIC Computer Games: Microcomputer Edition.” Creative Computing; Workman Publishing (trade edition). original · archived · licence, all uses
- Huffman, Zack. 2021. “The Wild Spread of Drug Wars, From Your Calculator to Your Phone.” Wired. Condé Nast. original · archived · licence, all uses
- Advance, Frame. 2026. “Dope Wars (Happy Hacker Foundation, MS-DOS), DOPEWARS.EXE played in the emu2 emulator.” Version dopewarsd.zip, holding Dopewars.exe: 66,416 bytes, sha256 7bbd1056163c257b37fe774bedc0e0e7f8ae4f2f52fe55f9f2dec0cf1bcd8983, file date 4 May 1991. original · archived · licence, all uses
- Wing, Richard L., Mabel Addis, Walter Goodman, Jimmer Leonard, and William McKay. 1967. “The Production and Evaluation of Three Computer-Based Economics Games for the Sixth Grade: Final Report.” U.S. Office of Education, Cooperative Research Project 2841 (ERIC ED014227). Board of Cooperative Educational Services, First Supervisory District, Westchester County, New York. original · archived · licence, all uses
Secondary
- Moxon, Mark. n.d. “Market item prices and availability.” elite.bbcelite.com (deep dive). original · archived · licence, all uses
- Wikidata contributors. 2026. “Wikidata.” Wikimedia Foundation. original · licence, all uses
- Scott, Jason. n.d. “Programs: Doors: Dopewars.” The BBS Documentary Library. original · archived · licence, all uses