Sam Gilson

Lowballer

Game

Lowballer is a 2D game that runs in a browser, set on a made-up neighbourhood marketplace called Curbside. Each of three screens shows six listings: a toaster, a signed jersey, a 2011 Civic, a monstera, a kayak. You make an offer on five and skip one. Every seller has a lowest price they will take, which you never see. Offer at or above it and you keep the difference between asking and your offer; offer below it and you get nothing, but the offer still counts as one of the five. At the end the game adds up what you saved as a share of the asking prices of everything you bid on.

Each seller has one hidden temperament, and everything they write follows from it. A stubborn seller writes "Price is firm" and "No lowballers", a flexible one "Make an offer!" and "Moving soon, need this gone!". On each screen you can inspect two seller profiles and message two sellers, but not both on the same listing. A profile shows the seller's bio, reviews from past buyers, how fast they reply, and what their recent sales went for. A message gets a reply in the seller's own voice, sometimes with a price they would take. How long the item has been listed matters too: a month-old listing gives more than one posted an hour ago. The tone of the listing is a strong clue but not a guarantee.

Every rule runs in a Rust core in integer maths, compiled to WebAssembly, and the page draws what the core returns. Each game is dealt from a seed: the seller's temperament sets the tone of the listing, the profile, the reply and, with the listing's age and some noise, the hidden minimum. The item pictures and the menu art are drawn in TikZ.

Playing it

Click a listing to open it. Inspect Profile and Message Seller each work twice per screen. Type an offer or drag the slider, then send it. After your fifth offer the screen ends and shows which offers were accepted and what the skipped seller would have taken.

Checked in Chromium, Firefox and WebKit.

Open the project · Source code

All tools and games