制作者的介绍仅有上面的一句话。 更多详情请阅读仓库 README。 仓库 README ↗
正在加载完整 README。
查看完整 README ↗A deep Hollywood studio simulation and tycoon engine. Run a major film studio, navigate box office wars, build transmedia franchises, manage streaming platforms, and broadcast linear television networks.
Play in Browser | Download Android APK v41.2 | License: MIT
Captured from the v41.2 build (headless Chrome, a career simulated to year 3). Regenerate with node scripts/capture-store-screenshots.cjs.
| 2D studio lot | Executive command desk |
| Box office | Development |
| Empire — franchises and divisions | Library — the studio catalogue |
Phone layout at 844 × 390 — the Android build is landscape-locked.
Box Office War is an offline-capable Hollywood studio management simulation built entirely on client-side web standards. Players manage every dimension of an entertainment empire from a single production lot:
All simulation mechanics execute client-side with zero dependencies, zero microtransactions, and instant local storage persistence.
The interface had accumulated four palettes that disagreed (--cd-t*, --ts-*, --bow-*, plus ~960 raw hex) across 10,456 lines of CSS in 12 layers. system/ is now the single source of truth: tokens.css (palette, type and spacing scales, density), components.css (normalisation plus the ui-* set), and a generated legacy-map.css that re-points all 333 legacy variables at semantic tokens — so the existing CSS adopts the new palette without being edited. system/styleguide.html is the living reference (developer only, not shipped in the APK).
Landscape phones also stop scrolling: a phone held sideways leaves ~310px under the shell and the dashboard was using 627px. The shell is a fixed-height flex column and the deck takes exactly the remaining space, so the command desk fits one screen.
The Android build is landscape-locked, but the mobile layout switched at max-width: 760px — and a phone held sideways is 640–940px wide with only 360–430px of height. Landscape phones therefore got the desktop shell inside a viewport barely taller than the header: at 844×390 the chrome alone ate 219px of 390, the 12-tab bar was cut off mid-word, and the section nav stacked into two rows.
landscape-phone.css now keys off viewport height (untouched on tablets and desktop) and compacts the shell:
Verified at 667×375 through 932×430. The APK also stopped shipping the store screenshots (10 MB of art the game never loads), dropping from 21 MB to 19 MB.
The Studio HQ Next Wave desk turns several existing foundations into connected, actionable workflows:
See the Next Wave desk for detailed in-game instructions. Existing Industry Systems, Creative Lab, awards, festivals, territory licensing, legacy and accessibility controls remain available.
A new Studio → Industry command desk links 24 studio systems in one place and adds playable production-side investments for sustainability, press relations, ratings, legal clearance, localization and production labels. Existing systems remain on their specialist desks: series and live TV, the production calendar, talent chemistry and rewrites, finance/IPO and M&A, guilds, franchises and parks, rival studios, executive hiring, story campaigns, seeded challenges and the career Hall of Fame.
New decisions have real save-backed effects: ESG programs earn up to 10% shoot credits; press campaigns improve awareness, opening buzz and reviewer standing; specialist imprints can lift matching releases; chain-of-title audits reduce litigation exposure; ratings recuts trade a small critic penalty for a wider audience; and territory localization shifts the international gross mix. Browser, offline PWA and Android bundle all include the new desk.
The studio can now take a lease on a theatre and produce live musicals. It is a new
Empire sub-tab (stage-division.js, ~900 lines) with its own economy, its own risk
profile and its own trophy — and it touches nothing that already existed.
G.stage and is created on first touch, so old saves
load without a migration step.earn()/spend() under a new stage category,
mapped in the Treasury desk (revenue → Franchise, parks & merch, costs → Studio & empire builds).test/stage-division.mjs (11 regressions), the headless smoke harness and the
full balance/scenario suites.The v33.0 release is a full-app visual overhaul. Every screen is rebuilt on one locked design system ("Arcade Hollywood"), the studio lot became a living 24-hour world, and a motion engine animates every tab, sub-tab and chart.
bow-restyle.css, 1,450 lines)prefers-reduced-motion support.lot-life.js)studio-lot-2d.js)bow-motion.js)lot-feel.js): trauma-based screen shake (trauma² sampled from layered sines so it decays smoothly instead of buzzing), squash-and-stretch pops, and tiered feedback hooked into the game's own toast / confetti / advanceWeek events — by decoration, never by modification.apk/build-www.js was silently shipping a stale UI: its hardcoded file list was missing ui-v33.css entirely, plus every new presentation layer. Any new root-level .css/.js must be added to that list or the APK will not change. All five layers now ship.._* sidecars had accumulated untracked, and two were being read as pack indexes, which corrupted the repository ("non-monotonic index"). They are now backed up, removed from .git, and ignored. core.fileMode was disabled to stop 602 permission-only diffs.The v32.13 release delivers a major 2D visual and mechanical overhaul, synthesizing deep simulation features from benchmark reference titles (Kairosoft Game Dev Story, Social Dev Story, Idle Sports Stadium Tycoon, and Box Office Sim 2) alongside persistent 2D simulation staging and landscape orientation locking:
studio-lot-2d.js, kairo-theme-suite.js)box-office-sim-2-cast.js)gamestudio-gdd-engine.js)social-viral-network.js)sports-stadium-deals.js)sensorLandscape mode.Box Office War is structured into 36 decoupled simulation modules operating on an event-driven weekly tick loop:
| Module File | Simulation System | Core Mechanics |
|---|---|---|
engine.js | Core Simulation Loop | 52-week calendar, weekly financial clearing, talent availability, box office decay, rival studio AI turns. |
data.js | Industry Data & Balance | Talent pool (actors, directors, writers, producers), genres, archetypes, themes, awards, and historical milestones. |
ui.js | Executive Interface | Responsive dashboard, wizard modals, tabs navigation, glassmorphic HUD chips, keyboard shortcuts (Cmd+K). |
studio-facilities.js | Studio Lot & Soundstages | 4 facility tiers (Soundstage Complex, LED Volume, Atmos Mixing, Historic Lot), quality buffs, rival lot rental income. |
syndication-tv.js | Television Syndication | Linear broadcast monetization (Primetime 26w, Matinee 39w, Cable 52w), catalog rights, advance fees. |
talent-contracts.js | Multi-Picture Deals & Quirks | 3-picture and 5-picture talent retention pacts, 6 psychological quirks (method_actor, crowd_puller, award_magnet). |
bond-market.js | Corporate Debt & Bonds | AAA to CCC corporate credit rating engine, 52-week securitized debt issuance, weekly interest service. |
clash-analytics.js | Release Clash Radar | Opening weekend cannibalization analysis, audience overlap calculations, counter-programming bonuses. |
cinematic-universe.js | Shared Cinematic Universes | Multi-franchise IP bibles, crossover event multipliers (+65% buzz), lore consistency tracking, fatigue control. |
location-scouting.js | International Production Hubs | Global production locations (London, Atlanta, Iceland, Tokyo, New Zealand) providing tax rebates and quality bonuses. |
production-insurance.js | Completion Bonds | Risk mitigation policies (Overrun Shield, Key Cast Indemnity, Full Completion Bond) against budget spikes. |
awards-campaign.js | FYC Lobbying Campaign | For Your Consideration trade advertising, screener mailings, voter receptions, and guild momentum tracking. |
Box Office War synthesizes gameplay systems from classic business simulations into a coherent, modern framework:
Box Office War runs directly in any modern web browser without dependencies or build steps:
# Serve locally using any static web server
python3 -m http.server 8080
# Open http://localhost:8080 in Chrome, Safari, Firefox, or Edge
BoxOfficeWar-41.2.apk, 19 MB.minSdk 24).Prerequisites: Node.js 18+, JDK 21, and Android SDK command-line tools.
# 1. Prepare web bundle into apk/www
node apk/build-www.js
# 2. Synchronize web assets with Capacitor Android
cd apk
npx cap sync android
# 3. Compile release APK with Gradle
cd android
./gradlew assembleRelease --no-daemon
# The signed release APK will be generated at:
# apk/android/app/build/outputs/apk/release/app-release.apk
The project enforces automated test coverage across headless economic simulations, full UI state verification, and long-range scenario balance:
# Execute entire test suite
npm test
# Run individual test harnesses:
npm run test:engine # Headless 5-year economy simulation (smoke.js)
npm run test:ui # Full UI click-through & modal interactions (ui-test.mjs)
npm run test:balance # Economy invariants across 6 seeds x 120 weeks (balance.js)
npm run test:scenarios # Automated 200-week playthroughs for all 5 scenarios (scenario-playthrough.mjs)
npm run test:library # Catalog and M&A bulk action validations (verify-library.mjs)
npm run validate:slots # Save slot structural validation (validate-slots.js)
design-tokens.css).G, validated via schema migrations (migrateSave), and serialized to browser localStorage and IndexedDB.Cmd+K / Ctrl+K), arrow-key grid navigation, and comprehensive keyboard shortcuts for high-speed management.role="status", role="alert"), system motion preference detection (prefers-reduced-motion), and English / Hindi / Marathi localization dictionaries.MIT License. Open source for modification, study, and distribution.
board-targets.js | Board of Directors Mandates | Quarterly board directives, studio confidence index (0-100%), executive bonuses, and austerity budget caps. |
fan-conventions.js | Convention Fan Showcases | Comic-Con Hall H and Worldwide D23 presentations, studio fan club membership tiers, opening buzz spikes. |
test-screenings.js | Test Screenings & Reshoots | Focus group audience cards, pacing ratings, tracking legs estimation, and post-production emergency reshoots. |
studio-espionage.js | Covert Intelligence Desk | Clandestine surveillance, rival slate infiltration, talent contract expiration theft, counter-PR media leaks. |
merch-licensing.js | Franchise Merchandising | Product lines (Toys, AAA Video Games, Apparel, Theme Parks), upfront licensee advances, weekly royalties. |
territory-licensing.js | Foreign Pre-Sales Desk | International territory distribution deals, minimum guarantees, regional box office royalty sharing. |
custom-sandbox.js | Sandbox & Holiday Engine | Custom studio, talent, and rival creator tools, 52-week holiday corridors, custom release calendars. |
v31-features.js | Crisis PR & Agency Packaging | Crisis PR containment desk (4 response protocols), elite agency packaging (CAA/WME/UTA) with packaged discounts. |
finance-tools.js | Corporate Finance Suite | Detailed weekly P&L ledgers, 12-week cashflow forecasting, mezzanine debt facilities, and CSV financial exports. |
challenge-leaderboard.js | Seeded Challenge Engine | Deterministic weekly scenario seeds, standardized challenge scoring, and shareable studio performance codes. |
theater-chains.js | Theatrical Exhibition Networks | Independent exhibitor relations, premium format splits (IMAX, Dolby Cinema), and concession revenue sharing. |
dynamic-soundtrack.js | Adaptive Audio Atmosphere | Synthesized Web Audio soundtrack that responds dynamically to studio cash solvency, box office hits, and crises. |
dynasty-legacy.js | Multi-Generational Legacy | Post-retirement dynasty bonuses, family trust fund generation, heirloom studios, and generational succession. |
bow-shorts.js | Short-Form Digital Media | Episodic streaming shorts, viral digital content, social platform monetization, and rising talent discovery. |
talent-agency.js | In-House Agency Operation | Establish a proprietary studio talent agency, manage client rosters, collect commission fees, and train stars. |
studio-lot-2d.js | 2D Kairosoft Studio Rooms | 6 interactive 16-bit studio departments with animated workers, live status synchronization, and responsive room switcher. |
kairo-theme-suite.js | 16-Bit Theme & Scene Art | Retro pixel art styling, department header micro-animations, CRT scanlines, and animated marquee bulb borders. |
box-office-sim-2-cast.js | BOS2 Talent & Ability Matrix | 72 species, 121 character abilities, and 4,000+ talent names extracted from Box Office Sim 2 reference data. |
gamestudio-gdd-engine.js | GameStudio GDD Engine | Topic x Genre synergy matrix, target audience weighting, custom engine builder, 4 gaming reviews, and GameCon booths. |
social-viral-network.js | Social Viral Network | 4 digital social platforms, algorithmic trend velocity, 6 viral campaigns, and creator ambassador endorsement deals. |
stage-division.js | Broadway Stage Division | Theatrical houses, musical greenlights, previews & retools, weekly runs, recoupment, national tours, cast albums, staging licences, Tony season. |
sports-stadium-deals.js | Sports Stadium Megadome | Stadium tier upgrades, corporate naming rights, and exclusive live sports streaming broadcast rights packages. |
industry-expansion-suite.js | Industry Systems Desk | 24-system directory, green production & ESG shoot credits, press office, chain-of-title clearance, ratings recuts, localization, studio labels, international gross map. |
studio-nextwave-suite.js | Next Wave Studio Systems | Episode-level series production, production calendar, rival strategy, territory rights terms, awards prestige, consequential incidents, franchise lifecycle, campaign editor, content packs, New Game+. |