What's coming to Chalk Lines — and what's already shipped.
Pick a world flavor before you start: Archipelago (island hopping by ship), Mountain Divide (tunnels and passes), River Valley (bridges everywhere), and Open Plains (rail heaven).
Like rocks, but bigger and impassible. Will force players to carefully route around them. Amount varies by map type.
Full control over map generation: size, water level, mountain density, number of towns and industries, river frequency, and a shareable map seed.
Local saves, more slots, more information on saves visible on load screen.
Host controls in the lobby: starting money, start era, game speed, map type & customization, AI opponents, and win conditions — all visible to players before ready-up.
Multiplayer games survive the host leaving
Guided walkthrough of water transport: docks, ship routes, and claiming offshore oil wells and fishing grounds.
Guided walkthrough of rail: laying track, placing stations and depots, composing trains, and using signals & waypoints.
A fourth transport mode for long-distance passengers
Post-tutorial in-game tips that surface when a mechanic is first encountered (signals, transfers, maintenance, town opinions).
A fresh dev-curated challenge map every week with its own leaderboard, announced in-game — keep players coming back and competing.
Replace the synthesized placeholder SFX, ambience and vehicle calls with recorded chalk-style sound files and a music playlist.
Once polished in browser and on mobile: a desktop Steam build with achievements, cloud saves, and community scenario sharing.
Play scenarios with friends: scenario worlds in the lobby (done), shared goal races with a live race board (done), then editor upgrades: duplicate, test-play, per-scenario era and cash.
Rail gets the depth it deserves. Shipped (Part 1): four era-gated track classes with speed caps, per-class build cost & upkeep, an Upgrade Track tool, sound barriers (1980) with town-reputation effects, class-specific bridges. Shipped (Part 2): real level crossings with crossbucks and barrier arms (1935). Shipped (Part 3): parallel-track snapping for double-track mains, plus modular station artwork that follows the real platform tracks. Shipped (Part 4): the depot train builder — reorderable rakes, bulk car adds, cargo filtering, per-cargo capacity breakdown and saved rake templates. Next: final polish pass on rail signalling feedback.
Industries level up when served, decline when neglected
Stock market, subsidies, and per-town economies
GA4 traffic & engagement analytics: page views, game starts per mode, shares and supporter purchases.
New hand-drawn chalk sprites for every vehicle. Shipped: temporary simple distinct sprites for all rail car families, specialized trucks, tanker ships, and steam locomotives. Remaining: New hand drawn sprites and animations.
Chalky sound effects (train whistles, ship horns, cash register) and a lo-fi background soundtrack, with volume controls in settings.
Native iOS & Android builds of Chalk Lines. Done so far: app-shell behavior (no pull-to-refresh, no tap highlight), safe-area handling for notches, installable PWA with offline play, mobile bottom tab bar and bottom-sheet drop-downs everywhere, hardware back-button navigation, route-level code splitting for a small initial download, phone-wide 44px touch and 14px text floors, screen-reader labels and visible focus rings, system dark-scheme declaration, explicit refresh buttons on list screens. App Store readiness scan: all categories passing. Next: store packaging and native push/deep links.
Replace the entity-record sync (GameAction / GameSnapshot rows plus an unfiltered realtime subscription) with a real socket transport. Done: one Transport contract in the game page; a per-lobby GameRoom actor over WebSockets is the default wire — one-hop order relay, per-lobby isolation, server-stamped sender companies, roster-checked join handshake, server-side host handover, chunked snapshots for big maps, last-snapshot replay for late joiners, and in-game chat relayed by the room (persisted server-side for history). Remaining: retire the GameAction/GameSnapshot records once the actor wire has proven itself in live games.
Two game kinds: Server-hosted (the GameRoom runs the authoritative world, all players are clients, no host migration) and Browser-hosted (a player's tab runs the world as today, capped at fewer players for FPS). The core is being mirrored into base44/shared/sim — 24 of ~40 modules done (incl. economy, traffic, road graph, vehicle catalog, markets, AI personalities/watchdog, stats, industry evolution, parallel snap). Next: world generator, then infrastructure engine, cargo flow, rail upgrades, station modules, game engine.
OpenTTD-style monthly graphs comparing every company: value, balance, profit, cargo moved, fleet size, and road/rail network length — shipped in v0.36.0.
Phase 1 (v0.42.0): towns fill their street grids — streets sized to the buildable radius, center-outward fill, exit roads, streets split at water, empty streets pruned. Phase 2 (v0.43.0): layout style by settlement size & terrain, shoreline-aligned coastal towns, arterial main streets, parcel-based frontages with a commercial high street. Phase 3 (v0.44.0): towns-only highway trunk with loop links, road class by traffic carried, terrain-cost routing with bridges/tunnels only where cheapest, town bypasses, and dirt spurs to every industry.
AI rivals monopolize profitable lines (profit ledger, contested-line reinforcement, cargo-chain extension), react to the player's network via Compete / Avoid / Adaptive stances, two new personalities (Cartel Freight Syndicate, Quicksilver Haulage), five skill tiers from Passive to Tycoon, Rivals-panel intel log, and a shared rival editor with presets, random picks, and stance overrides in both singleplayer setup and the multiplayer lobby. Shipped in v0.41.0.
Rendering & input pass: camera decoupled from React re-renders, hover updates only on change, always-visible batched town streets, batched highway strokes with bounding-box culling, spatial-grid terrain doodles, cached chalk grain and reused terrain cache canvas. Shipped in v0.40.1.
Balance & performance pass: monthly infrastructure upkeep to stop late-game money snowballing, trimmed long-haul payout cap, doubled loan interest, AI fleet reinforcement on profitable lines, difficulty-scaled AI action speed, and a major stutter fix (throttled UI refresh + persistent render loop). Shipped in v0.40.0.
Bug/performance pass: stale routing-network and catchment caches after demolish+rebuild, AI reusing incompatible stations, breakdowns toggle silently disabling depot servicing, and a large-map catchment performance fix. Shipped in v0.39.4.
All in-game management windows (Finances, Routes, Vehicles, Income, Stocks, Rivals, station/depot/town/info panels) restyled onto the slate-green chalkboard palette with chalk-line borders. Shipped in v0.39.3.
Service worker for instant repeat loads and full offline singleplayer, restored + hardened PWA install manifest (categories, maskable icon), with multiplayer sync traffic always live. Shipped in v0.39.2.
Keyboard shortcuts (Space pause toggle, 0-3 speed), singleplayer auto-pause on background, chalk theming across all floating management panels and mobile drawers, and touch/pen dragging for panel windows on Windows touchscreens. Shipped in v0.39.1.
PWA install manifest fixed (installable on phones & desktop), mobile app-shell hardening (no pull-to-refresh mid-game), chalk theming across the in-game HUD/menus, in-game audio sliders, negative-balance warning, and multiplayer send-retry + host sync warnings. Shipped in v0.39.0.
Driveways rendered as real dirt roads that vehicles actually drive; no more cross-terrain shortcuts through stations; side-aware placement snapping; edge-snapping station module expansion with tighter collision checks. Shipped in v0.38.9.
Itemized live cost popup while building roads, rails, stations, and depots — base cost, demolition, level crossings, overpasses, and catenary priced separately with an affordability check. Shipped in v0.38.8.
Rail snapping, stations, depots, and train pathfinding are strictly per-company: trains route only over their owner's rails, road vehicles never shortcut along railways, AI opponents verify their rail builds, and rival lines can be crossed with costly grade-separated overpasses so nobody can wall off the map — shipped in v0.38.5–0.38.7.
Straight & curved build modes with smooth mouse-following curves, automatic curve smoothing when snapping to existing roads/rails, chained building, and rail stations that snap to track ends and act as drive-through track.
Report bugs from the pause menu; the full session action log (player orders + AI plans/moves) is uploaded automatically for admin review and cheat detection.
Admin view of scenario completion rates and where cargo delivery runs stall
Unique industry names from nearby towns and geographic features; growth tied to sustained service over consecutive half-years; expanded industry info panel with growth tracker, stock bars, market prices, and supply warnings.
Denser, more varied towns; rural hamlets served as interstitial bus stops; organic town growth respecting player/AI infrastructure; town politics with per-company reputation and permits; settlement tiers (Village→Metropolis) with staged cargo demands and growth requirements; varied initial layouts and sizes.
Station Builder mode with modular expansions across road, rail, and water: extra platforms, platform extensions, loading bays, piers, and storage yards — plus live minimum-curve warnings in the rail builder.
Hand-drawn chalkboard art style across the whole game
World generation sliced into stages that yield to the browser, with a chalk progress bar and live-count stage labels, so the page never hangs. Highway avoidance zones rasterized into the cost field (only near each route), O(n²) trunk planning, reused pathfinding scratch arrays, spatial grids for every placement check, and a nature-first order (forests, water, boulders before towns, industries and roads). Town/industry sliders uncapped; the 42-name infinite loop that froze big maps is fixed. Shipped in v0.48.0–v0.48.1.
Comprehensive desync audit: pause-safe host broadcasting, town growth sync to guests, late-join company id fixes, host-side order validation, and multiplayer save/load guards.
Comprehensive audit of engine speed: 6-minute game years, slower vehicles, unified fast-forward that accelerates the whole simulation, and a hard AI actions-per-minute cap — tuned for a 1-2 hour game.
Lobbies, late-join, chat, host-authoritative sync
Town street grids stay visible at all zoom levels like highways; buildings still unload on far zoom-out for performance.
Fixed-map goals with public rankings
Select and remove individual road/rail segments, stations, and depots with partial refunds — connected platforms, signals, and waypoints are removed along with the track.
Games start in 1900 with a renamed, era-authentic vehicle roster. Diesel and electric are time-gated; electric locomotives require catenary, built along with track or added via the Electrify upgrade tool.
Browse and join open public multiplayer games in one click; hosts pick public or private visibility when creating a lobby and can toggle it live.
Transport Fever-style road snapping: stations/depots near a road connect via driveway stubs; bus stops and truck lay-bys are pass-through roadside stops, terminals are dead-end loops.
Server-side data protection for admin/purchase records, O(V²) traffic checks replaced with a spatial grid, route lookup maps, and input polish. Balance tuning pass planned as follow-up.
Strict placement rules, roadside snapping, driveway routing, unified road depot, full rail station roster, and era-gated road classes (shipped in v0.38.0). Part 2 adds visually placed station modules.
Dedicated admin-only page to triage bug reports: status workflow, fix notes, fixed-in version tags, and inline review of the session action log attached to each report.
Distance-based pay for all cargo, passengers with destinations who change lines at stations, feeder bus economics, and per-stop transfer instructions. Includes station passenger insight panels with a destination flow map overlay.
Per-route income reporting: profit margins, revenue vs. real operating costs, passenger/cargo volumes, and best/worst line rankings.
Vehicles lose efficiency over time and need depot servicing to stay profitable. Host-toggleable at game setup, with Low/Standard/High maintenance cost difficulties.
One-time $4.99 purchase: a supporter heart badge on the main menu and our thanks for keeping the chalk dust flying. Secure checkout via Base44 Payments.
Ocean oil wells and fishing grounds with exclusive/open contracts, ships docking directly offshore, a doubled ship roster (trawlers, reefers, ore carriers, cruise liners), modular docks with harbor cranes, and fixed sea naming. AI opponents compete offshore too — opening ship routes to platforms and claiming exclusive contracts.
One-tap share button, rich social link previews, and search engine discoverability.
Thirteen selectable naming themes for world generation — Classic, Chalky (chalk puns), Goofy (memes), North American, Northeast US, The Carolinas, European, Russian, Japanese, Chinese, Mexican & Latin, Brazilian and Pirate. Each set carries 100+ base names plus its own prefixes and hamlet suffixes so big maps never run dry. Pickable in Singleplayer setup, the multiplayer lobby and the Scenario editor. Shipped in v0.49.0.
Cleared the open bug queue: vehicles no longer straight-line cross-country when a leg is unreachable, town street grids are no longer fragmented by boulders, cash is rounded to the cent and shown in whole dollars, floating-panel X buttons close again, and AI companies always get a unique id in multiplayer.
Load Game from the main menu, ten IndexedDB device slots, account (cloud) saves, and downloadable .chalk save files with a compact gzipped format that handles gigantic maps.
Bordering town grids tied together with several border streets, highway tie-ins for grids beside passing highways, direct straight-corridor routing between close towns, relaxed loop closing for neighbours, and short trunk links laid as streets.
Removed the deprecated elevation system's influence on gameplay: highway slope penalty and hill road surcharge dropped, legacy downhill-steering road router deleted, fake town elevation readout replaced with growth rate, and the height map no longer stored in saves. Height/moisture now exist only as generation-time blueprints.
In-game panel showing each AI company's live script status, line/fleet counts and full thought-and-action log, with a host-only restart for stuck rivals. Audit fixes: deterministic decision cadence (was a per-tick coin flip), self-repair of disconnected lines, AI loans when cash-starved, rollback of orphaned routes, and downloadable AI logs for tuning.
Full in-game UI overhaul to an OpenTTD / Cities Skylines 2 style bottom bar: full-width chalkboard dock with build categories and trays, company stats strip, and all management window toggles. Top bar reduced to menu, balance and time controls. Left tool sidebar and mobile tab bar removed; one responsive layout for phone and desktop.
Industry spurs now connect to the nearest existing road (including other industries' spurs) instead of each cutting its own line to the highway, and shared spurs are upgraded to gravel/paved by the traffic they carry — ending the parallel-spur spaghetti in dense industrial areas.
Shipped in v0.33.0–0.35.0: company valuation, share floating, trading and dividends; industry stakes tied to service, growth and decline with AI investors; hostile takeovers at majority control with AI raiders and elimination.
Town street trimming now preserves network coherence: plot-less through streets that link two surviving streets are kept whole, and trimmed streets extend to the nearest junction instead of ending mid-block. Junction detection uses a coarse spatial hash for zero generation cost.
Shipped in v0.32.0: 8-step interactive "First Line" walkthrough in a real game world, with highlighted controls, auto-advancing steps, and a first-visit prompt.
Singleplayer games autosave every 2 minutes and on tab hide/close into a 3-slot rotating IndexedDB ring, with a Continue button on the main menu, an Autosaves tab in Load Game, and a reload confirmation guard. Encodes only when the sim advanced, so there is no cost to framerate.
A dropped or departing host no longer ends the session: remaining clients deterministically elect the earliest-joined player, who claims the crown with a write-then-verify check and takes over the authoritative sim, speed control and order handling. Old hosts that reconnect demote themselves to guest. Rides on the existing snapshot-freshness timer, so there is no added network cost.
Delta snapshots (network/routes/depots only when changed), 1s beat, immediate publish after orders, in-flight guard, guest-side path preservation and position easing, missed-delta resync. Guests see their orders land in one round trip and vehicle motion no longer stutters on every beat.
Shipped in v0.31.0: design custom maps & rules, share codes, community publishing with review, and scenario leaderboards.
Town/industry name tags scaled up ~20%; population readout switched to amber chalk with dark outline for contrast over white roads.
Per-industry production/demand history chart with bottleneck callouts in the industry window, plus a network-wide Cargo tab graphing monthly deliveries broken down by company, cargo type and destination. Monthly sampling only, synced with price histories.
In-game Chains board showing raw producers → processors → town demand with per-map counts, cargo tracing, and click-through from an industry type to a list of those industries on the map (camera jump + industry window).
Company-coloured chalk badges with bus/truck/train/ship glyphs replace the tiny sprites when zoomed out, with separate toggles for own and rival fleets.
Page-wide UI taps, open/close cues, camera-following ambient layers (wind, water, engine rumble) and vehicle one-shots (whistles, horns, brakes) plus birds and gulls — all synthesized, ready to be swapped for real recordings.
Largest map size doubled to 4096 tiles a side with area-scaled town/industry caps; generator scans that grew with the square of the sliders moved onto spatial grids, memory footprint trimmed.
Part 1 (v0.60.1): host-side sender verification for multiplayer orders, admin-only deletion of lobby/snapshot/chat/order records, checkout return-URL hardening, background polling stopped, minimap lookup fix. Part 2 (v0.60.2): bounding-box + staggered train track scans, nightly server-side purge of stale orders, dead lobbies, snapshots and chat.
Recurring deep passes over the whole codebase. Audit Pass II (v0.30.2): multiplayer snapshot slimming (no more full vehicle paths over the wire), sandbox zero-AI fix, station demolition & bankruptcy cleanup rules, spatial pathfinding index, and cached station catchments. v0.30.3: lobby join race mitigation (verify-and-retry) and guaranteed-unique company colors across humans and AI.
Design custom challenge maps: guaranteed industries, required towns, map preview with placement pins, and money, score, cargo and town-growth goals.
Search visibility pass: sitemap + robots rules, per-page titles/descriptions/canonicals, richer structured game data, custom chalk favicon, and noindex on admin pages.
The authoritative simulation (engine, infrastructure, economy, AI, cargo, stock market, world generator, sync) runs with no browser, React or platform SDK: headless entry point (initGame / advance / applyAction / hashState / replayCheck), seeded RNG on the game state, determinism fingerprint, lint-enforced purity boundary. The whole core tree lives self-contained in src/core/sim behind forwarding stubs at the old paths — eight batches, 28 modules, zero outward links. Ready for the dedicated-server / actor-hosted authoritative world.