diff -ruN a/about.html b/about.html --- a/about.html 2026-11-08 17:48:13.248776717 -0300 +++ b/about.html 1969-12-31 21:00:00.000000000 -0300 @@ -1,102 +0,0 @@ - - - - - - - - - - About | micropolisJS - - -
-
-

micropolisJS

-
- -
-
-
-
-

Support micropolisJS

-

This is just the beginning. Please support micropolisJS. Allow me to develop it further and make it better! Let's make it the best old-school-retro-but-really-running-on-modern-open-web-technologies city simulator™ anywhere!. Edit: Mar 7, 2022: I no longer need donations to keep this alive, and can't promise to get back to it any time soon. However, if it entertained you then a donation to Refuweegee, a charity that does great work assisting refugees in Scotland, would be welcomed.

-

Oh, and you absolutely should donate to One Laptop Per Child too.

-
-

Welcome to your city!

-

- micropolisJS is a handmade port of Micropolis to Javascript. (Micropolis is the open-source release of a commercial game once sold by Electronic Arts). The aim is to grow your city, balancing the various competing demands. Use the buttons in the toolbox to select the various zones and buildings, and then click on the desired location to build. -

- -

Tips

-

- If you're starting to run out of money, use the budget tool to modify the tax rate, and funding for various city services. Don't cut things too much, or things will start to fall apart!

-

- The evaluation tool can provide insight into the opinion of the city's inhabitants, and the query tool offers finer-grained insight. -

-

Disasters

-

- Some people just want to watch the world burn. If you're one of them, then the disasters button on the left hand side will give you the matches. Choose one of the options to unleash mayhem! -

- -

Settings

-

- You will find assorted helpful controls by clicking the settings button on the left. -

- -
-
- - - diff -ruN a/css/style.css b/css/style.css --- a/css/style.css 2026-11-08 17:48:13.250067218 -0300 +++ b/css/style.css 2026-11-08 17:48:13.320363847 -0300 @@ -11,8 +11,6 @@ * */ -@import url(https://fonts.googleapis.com/css?family=Open+Sans:400,300,600,300italic,400italic); - * { padding: 0; margin: 0; @@ -306,8 +304,11 @@ } .nameLicense { - margin-top: 1em; - margin-bottom: 0.5em; + margin-top: 0.4em; + margin-bottom: 0.3em; + font-family: sans-serif; + font-size: 12px; + line-height: 1.3; } #budgetForm > div:nth-child(9) { @@ -802,7 +803,7 @@ } } -@media (max-height: 582px) { +@media (max-height: 520px) { #tooSmall[data-hasscript=true] { display: block; } diff -ruN a/index.html b/index.html --- a/index.html 2026-11-08 17:48:13.244488422 -0300 +++ b/index.html 2026-11-08 17:48:13.315585718 -0300 @@ -1,6 +1,10 @@ - - - - - - - Micropolis Public Name License | micropolisJS - - -
-
-

micropolisJS

-
- -
-
-
-

Micropolis Public Name License

-

- Version 1, October 1st, 2024. Copyright (C) 2024 Micropolis GmbH. -

-

- The name/term "MICROPOLIS" is a registered trademark owned by and - exclusively licensed to Micropolis GmbH (Micropolis Corporation, the - "licensor"). It is here (upstream) licensed to the authors/publishers of - the "Micropolis" city simulation game and its source code (the project or - "licensee(s)"). -

-

- Your use of the GPL'ed source code under the name "MICROPOLIS" makes you a - subsequent (downstream) licensee of the trademarked term "Micropolis" and - binds you to the same terms as the original upstream authors/publishers - of the project. These terms are: -

-
    -
  1. - Give proper attribution. Copying, forking and or using the source code - of the city simulation game under the name "Micropolis" requires you to - include a trademark attribution on the main source code "welcome" page or - on an obverse title page and in "credits" or wherever you acknowledge - other trademarks and copyrights. This attribution requirement also - applies when you use the original name in variation, with suffixes, - prefixes or addenda (e.g., "MicropolisX", "Ymicropolis" or "Micropolis - Z"). Attribution is also required when the trademark is used in works - where the Micropolis project is covered, for example in blogs, online - texts, scientific works etc. -
    -
    - A preferred attribution would be: "Micropolis is a registered trademark - of Micropolis Corporation (Micropolis GmbH) and is licensed here as a - courtesy of the owner under the Micropolis Public Name License." - Where possible, activate this attribution with a link to - https://www.micropolis.com and optionally to the license text. -
    -
    - Appropriately propagating the source code of the game requires the - licensee to keep intact all notices stating that this agreement is in - effect and give all recipients a copy of this license along with the code. -
  2. -
  3. - Acknowledge that the name "MICROPOLIS" is a commercial registered - trademark. While the use of the bare source code is governed by GPL, - the name of the open source project is a trademark owned by a single - company within the community and the owner grants a revocable license - for the name "MICROPOLIS" to you, the user, for non-commercial use in - relation with the source code and game. -
    - This fact doesn't restrict software freedom or what you can do with - the open source code. It only limits the use of the brand identifier. - This is in order to enable co-existence under this name, separating the - commercial realm from a free and open source city building game community - and its activities. -
  4. -
  5. - Do not use the name "MICROPOLIS" in a way that creates confusion - among consumers. Use of the name must remain closely related to the - source code of the game. Its use must not disparage the licensor in - its projects, e.g. through untruthful advertising, false or misleading - promotional materials, etc. Do not use "MICROPOLIS" more prominently - than your own company, product or service name. Do not use "MICROPOLIS" - on posters, brochures, signs, websites, or other marketing materials to - promote your events, products or services without written permission from - the licensor. Do not refer to a product or service as being certified by, - associated with or claim endorsement of, for or by the licensor. Do not - attempt to claim or assert any ownership rights in the mark "MICROPOLIS" - and do not attempt to register the term as a trademark, trade name, - domain name, or "doing business as" name, alone or in combination with - your own trademarks or addenda. -
    -
    - Apart from giving credit via the courtesy string wherever possible, the - licensee agrees that use of the mark "MICROPOLIS" is done in a way that - helps to mitigate confusion among consumers between the city simulator - game and the licensor's products. -
  6. -
  7. - Usage in publishing. Do not use the term "MICROPOLIS" on the cover - of a book or magazine without written permission from the licensor. You - may not use the term "MICROPOLIS" in your own domain names, subdomains - or as prominent account name on Internet platforms. This requirement - also applies when you use the original name in variation, with suffixes, - prefixes or addenda (e.g., "MicropolisX", "Ymicropolis" or "Micropolis - Z"). You acknowledge that the use of the project's trademarked term - "MICROPOLIS" in such a way is generally not "nominative fair use." -
  8. -
  9. - Trademark dilution bailout. In order to assess a possible future - trademark dilution, the licensee agrees to cease use of the trademark in - case the open source game project contributes, according to the opinion - in public proceedings or in court, to a loss in distinctiveness of the - licensor's mark. -
  10. -
  11. - Dispute resolution and jurisdiction. Court of jurisdiction is the - Netherlands. Dispute resolution is favored to be handled through the - European Union's dispute resolution board. -
    - Notwithstanding the immediate effect of this licensing document, a grace - period of 90 days from the date of issuance is granted to all prior - users of the "MICROPOLIS" trademark to achieve compliance with the terms - and conditions herein. -
  12. -
-

- For more details, to request approvals or for explicit permissions, - please contact the licensor, [Micropolis](https://www.micropolis.com/). -

-

- Amsterdam on October 1st, 2024. -

-
-
- - - - diff -ruN a/src/gameCanvas.js b/src/gameCanvas.js --- a/src/gameCanvas.js 2026-11-08 17:48:13.288031867 -0300 +++ b/src/gameCanvas.js 2026-11-08 17:48:13.363738125 -0300 @@ -658,7 +658,7 @@ }; -GameCanvas.DEFAULT_ID = 'MicropolisCanvas'; +GameCanvas.DEFAULT_ID = 'CityCanvas'; export { GameCanvas }; diff -ruN a/src/messages.ts b/src/messages.ts --- a/src/messages.ts 2026-11-08 17:48:13.290831244 -0300 +++ b/src/messages.ts 2026-11-08 17:48:13.366778793 -0300 @@ -90,7 +90,7 @@ export const TRAFFIC_JAMS = "Traffic jams reported"; export const TRAIN_CRASHED = "Train crashed"; export const VALVES_UPDATED = "Valves updated"; -export const WELCOME = "Welcome to micropolisJS"; +export const WELCOME = "Welcome to Cityforge"; export const DISASTER_MESSAGES = [ EARTHQUAKE, diff -ruN a/src/storage.js b/src/storage.js --- a/src/storage.js 2026-11-08 17:48:13.310245298 -0300 +++ b/src/storage.js 2026-11-08 17:48:13.386741681 -0300 @@ -69,7 +69,7 @@ Object.defineProperty(Storage, 'CURRENT_VERSION', MiscUtils.makeConstantDescriptor(3)); -Object.defineProperty(Storage, 'KEY', MiscUtils.makeConstantDescriptor('micropolisJSGame')); +Object.defineProperty(Storage, 'KEY', MiscUtils.makeConstantDescriptor('cityforgeGame')); Object.defineProperty(Storage, 'canStore', MiscUtils.makeConstantDescriptor(window.localStorage !== undefined)); diff -ruN a/src/text.js b/src/text.js --- a/src/text.js 2026-11-08 17:48:13.308648547 -0300 +++ b/src/text.js 2026-11-08 17:48:13.385003847 -0300 @@ -124,7 +124,7 @@ messageText[Messages.NEED_STADIUM] = 'Residents demand a Stadium'; messageText[Messages.ROAD_NEEDS_FUNDING] = 'Roads deteriorating, due to lack of funds'; messageText[Messages.POLICE_NEEDS_FUNDING] = 'Police departments need funding'; -messageText[Messages.WELCOME] = 'Welcome to micropolisJS'; +messageText[Messages.WELCOME] = 'Welcome to Cityforge'; messageText[Messages.BLACKOUTS_REPORTED] = 'Brownouts, build another Power Plant'; messageText[Messages.EARTHQUAKE] = 'Major earthquake reported !!'; messageText[Messages.EXPLOSION_REPORTED] = 'Explosion detected '; diff -ruN a/webpack.config.js b/webpack.config.js --- a/webpack.config.js 2026-11-08 17:48:13.253559345 -0300 +++ b/webpack.config.js 2026-11-08 17:48:13.324481224 -0300 @@ -96,12 +96,8 @@ } function getBuildId() { - // Technically don't need to use the webpack plugin, as not passing it to Webpack... - const gitPlugin = new GitRevisionPlugin({ - commitHashCommand: `log -1 --pretty=format:'%h' main` - }); - - return gitPlugin.commithash().slice(0, 12); + // Fixed identifier: the build must not depend on a git checkout. + return 'f13a1624d111'; } function commonOptions() { @@ -126,8 +122,6 @@ cleanUpLeftovers(), copyStaticAssets(), injectBundleIntoHTML(buildId), - injectBuildIdIntoAbout(buildId), - injectBuildIdIntoNameLicense(buildId), ], };