Skip to content

v2.0.0-beta.9

Latest
Compare
Choose a tag to compare
@github-actions github-actions released this 26 Dec 00:27
· 23 commits to main since this release
v2.0.0-beta.9
f3b954a

Another year of KS development finally concludes today. Beta 9 is ready and it's a big one.

Last year, there was a lot of talk about settings profiles, and how we imagine them to play a major role in the future of KS. This did not come true.

We also imagined that we would make big strides with "Kitten Engineers", which would finally resolve some long-standing pain points with KS. Kitten Engineers did happen, but it was a complete failure, in regards to the original plans. If you were hoping for any solutions in this area, you will be disappointed.

However, KS has improved core behaviors, and gives users a lot more control. We also changed the default settings of KS to incentivize exploration and experimentation, instead of giving the impressions that the default settings are a good default - they never were.

Noteable Changes

  1. New UI

    The user interface of KS has gone through several iterations in this release cycle. We know that UI changes are never something users really look forward to, unless the UI was horrible to begin with.

    We noticed that different themes make the KS UI layout very unpredictable, and often produces undesirable results. The verbose UI of KS often caused excessive line breaks, which caused confusing UI, or made it aesthetically unpleasing. We rewrote almost the entire UI code to use more modern layout options, and replace text with icons. We understand that this is a thin line to walk. Some of the UI changes are confusing. You will need some time to adjust.

    Sometimes trigger buttons will just be the regular old lightning icon, sometimes they display their trigger value next to them. There is no pattern when we do show the value and when not. It's mostly random, depending on what "feels right".

    Sometimes you have a limit value right next to a trigger, which is entirely different from a trigger that also displays its value. There are very subtle visual hints to help you distinguish the individual cases, but this is non-obvious to long-term users especially.

  2. Many sections now allow their individual items to be triggered by their own individual trigger, instead of just having a single trigger for the entire section.

    The triggers on the section itself still exist, but they are now the default trigger for builds, unless the builds have their own trigger set. This is more confusing to explain than to experience. Just try out clicking on the new buttons, and let yourself be guided.

  3. The default settings are now complete garbage.

    While this sounds like a step backwards, we hope to encourage users to find the settings that are correct for them, instead of blindly enabling options with default settings, because they might feel like a good idea. Make educated decisions. KS will perform your tasks, but it does not play the game for you.

  4. Experimental purchasing mechanics.

    While we are aware that this new approach has bugs, we still hope that it is an improvement over the previous purchasing algorithm. Ultimately, a lot of purchasing decisions in KS are deferred to a single component. This component makes decisions on purchasing that often felt not ideal. We tuned this behavior to allow more constructions, with more even distribution of spending the available budget.

    There are still a lot of known issues with this approach, but it seems to provide better results as-is in real gameplay. That's why this half-cooked change is now in the mainline stable build. We hope that most users will feel the benefits, and don't notice the edge case bugs.

  5. Eco Mode

    The "Limited" option in KS has always been confusing. We now renamed it to "Eco Mode" to make it more abstract, and prevent people from forming an idea of what the feature should be. Forget everything you know about "Limited Mode". The new thinking is: Either you want to craft the thing as much and as fast as possible, or you want to take a more conservative approach, whatever that means.

    Until we solidify what Eco Mode actually is, we hope that users will feel more comfortable with the less descriptive option, that just provides an acceptable feeling of aggressive vs conservative investment.

  6. Kitten Analysts

    During this development cycle, an excessive amount of energy has been poured into Kitten Analysts, which contribute exactly zero to your KG gameplay as a regular user. So what is Kitten Analysts, if we invested so much time into something so useless?

    Kitten Analysts is the component that elevates Kitten Scientists from a single game extension to the actual Kitten Science framework we're aiming for long-term. Kitten Analysts only works in environments where you run the entire game directly on your own computer. If you're a bookmarklet, or a userscript user, Kitten Analysts will not and never will work for you. If you've previously used our "devcontainer" setup, Kitten Science is the replacement for that.

    Kitten Analysts provides a Prometheus exporter for game data, allowing you to track long-term progress, and compare strategies. Additionally, it contains a container-based background-play solution, which should allow you to have your game be played on a remote system while you're offline.

    We consider this work substantial for future development of KS, but we are aware that very few users will be able to benefit from this work directly. Feel free to reach out on GitHub if you want to get your own Kitten Science setup started. The documentation on this subject will be limited for quite some time, to also not confuse users with excessive information on edge cases.

Features (76/+12 unlisted)

  • Auto-save settings (f897e27)
  • Backport KA improvements from KE branch (fe715a6)
  • Configuration approach for KA connection (651615a)
  • Drop internally managed GitHub Action Workflow (50405bb)
  • Drop snapshots/schemata (765c3bc)
  • Enable Chiral interaction in Kitten Science (8febf9e)
  • Identify client type in metrics (34cd602)
  • Improved location tracking (1691548)
  • Include pseudo resources in resource pool metrics (83115c9)
  • Integrate into KGNet in all injected contexts (f6382d5)
  • Kitten Data and Analytics #598 (1f22c6d)
  • More versatile snapshot analyzer UI (96d105a)
  • Operators #624 (8d29d47)
  • Protocol cleanup (5b0630f)
  • Rebuild socket liveliness checks (4b61aa4)
  • Remove automatic-releases action from repo (caee3c1)
  • Remove commit validator CI action from repo (13d63fd)
  • Remove randomness from purchasing strategy (866afc4)
  • Track game instances through telemetry GUID (346ccd2)
  • Track technologies (adc6b9c)
  • Update savegames in KGNet (a181e2a)
  • Validation (5a555d7)
  • api: Add array object of Game type #544 (b7f5308)
  • api: Tracked the latest KG #551 (c4fd7e7)
  • bonfire: Add option to turn on reactors (82ad544)
  • container: Make it easier to run Kitten Science (11e1bb4)
  • core: Ability to .unload() KS (fa3568a)
  • core: Auto-load auto-saved settings (6f2f6fd)
  • core: Backport improved typedefs from KE branch (9a8db48)
  • core: Entirely remove index documents (e2de2fb)
  • core: Establish neutral default settings (6bef8bb)
  • core: Implement new bulk purchase strategy #591 (9f8a25f)
  • core: Individual triggers for build items #744 (5766d34)
  • core: Lift state loader restrictions (515b162)
  • core: Unload existing KS instances on load (16486f9)
  • devcontainer: Alternate repo selection (90e713f)
  • i18n: Additional options translate (97d006b)
  • i18n: Elect leader (bf01cb3)
  • i18n: Elect Leader traits and job #518 (ffce853)
  • i18n: Ignore overheat (ccf8c6f)
  • i18n: Internals (b6781c1)
  • i18n: Locale-native percentage rendering (7146369)
  • i18n: Log Filter KG log #518 (27ba92c)
  • i18n: Migrate to full locale specifier (8244832)
  • i18n: Move translations into subfolder (7dea515)
  • i18n: New Crowdin translations by GitHub Action #695 (b3d0f67)
    10 similar commits not listed: fd59422, 3d5d302, fa3cd1a, b066dbb, f546789, 9855897, 705859c, 32c50d8, 7ab4315, 963f883
  • i18n: New Crowdin updates (#582) (f78a697)
  • i18n: State Management: Compress data (21bc0a5)
  • i18n: Store current input prompt (717e5fe)
  • i18n: Time to Load stored state #518 (9c34d3b)
  • i18n: Update l10n data (97418e2)
  • i18n: Update translation files (d1bdba0)
  • i18n: Update translations (7738750)
    2 similar commits not listed: d6fcef5, b28b66d
  • religion: Bulk process Ziggurats resources #590 (c208990)
  • science: Individual triggers for technologies #781 (a58bbaa)
  • settings: Execute validateGame on Crafts #551 (3e63daf)
  • time: Active Heat Transfer (dcd1ea4)
  • time: Active Heat Transfer to Get temporalFlux (2953e93)
  • time: Remove Chrono Furnace automation #777 (6b65326)
  • ui: Add cycle symbols to planets (2411eef)
  • ui: Align upgrade selections (93d2edd)
  • ui: Beta 9 Polish #792 (934d482)
  • ui: Dialogs #756 (abceaa5)
  • ui: Dim inactive sections (c5ebc53)
  • ui: Hide "observe sky" area (9e0f896)
  • ui: Hide building category selection (584fff9)
  • ui: Implement more consistent UI #716 (8102d10)
  • ui: Move version into Internals section (1f7a700)
  • ui: Only IW displays exclusive resources #551 (ca9c15a)
  • ui: Overhaul state management, entire UI #685 (1a0b904)
  • ui: Rebuild l10n for numeric values (73d73fc)
  • ui: Rename states/games in state management (3f7f2dd)
  • ui: Shown in the fourth column #545 (bd1892e)
  • ui: Sort upgrades in auto-reset UI (60ec7b0)
  • village: Leader can join any job #551 (7c5f8e9)
  • workshop: New crafting mechanics #785 (ef29b9a)

Bug Fixes (74/+2 unlisted)

  • beta8 release info missing (dcb8a47)
  • Breaking changes #529 (1b6765a)
  • Changelog preset integration (ce74fcc)
  • Deprecations (33bf180)
  • Devcontainer regressions (8138089)
  • GitHub Actions tests #364 (147419f)
  • Import core only as type (f53f6d9)
  • Import paths #595 (0b536c2)
  • Lint #600 (978c6f9)
  • Long save labels (8446878)
  • Networking in compose (638db65)
  • Redundant type information (802422c)
  • Redundant type params #606 (3d8b731)
  • Release version determination (0349150)
  • Save data handover unstable (a81238f)
  • Semver ranges (9ad1122)
  • Sourcemaps no longer aligned (a7a59fa)
  • Unnecessary expression #465 (86f98f3)
  • Update import order #586 (ecbd7ed)
  • Version not bumped (c943d04)
  • api: Remove expectations from loader input (9834b9c)
  • bonfire: Deprecated method usage (73dc5a9)
  • bonfire: Upgraded buildings are unlimited by default (7608f65)
  • ci: Host KS bookmarklet directly (a92e33e)
  • container: Containers don't shutdown cleanly (cb62d99)
  • core: Catch errors during script constructions (539b262)
  • core: CSS not unloaded during .unload() (3166497)
  • core: Import treated as destructive action (80026b1)
  • core: Inconsistent trigger handling #631 (9860bf2)
  • core: Invalid userscript metablock (3041a48)
  • core: Load auto-save on UI construction (e33174e)
  • core: Max value defaults to infinity (8bdd540)
  • core: Savegame manager not unloaded (824267c)
  • core: Subsection trigger handling (fc26e23)
  • i18n: Enable/Enabled inconsistencies in log messages (eefc674)
  • i18n: HTML entities in translation file (972af2a)
  • i18n: Slightly better wording (ec757a7)
  • i18n: Typo (fa0fc92)
    2 similar commits not listed: 0b1ae15, 39a15cb
  • i18n: Typo in literal (2fdc473)
  • log: KG log messages not hidden from the log (d2cb601)
  • religion: Opinionated trigger default values (1ea22ed)
  • religion: Order of the Sun items not built (bb34d6b)
  • religion: Trigger values are not handled correctly (b4158aa)
  • religion: Triggers always parsed as percentage (cb2eea5)
  • schema: Missing gatherCatnip property (9fdf79e)
  • settings: avoid sharing references with engine #561 (41329dd)
  • settings: ksColumn Setting load #545 (69a802e)
  • time: daysPerSeason increases the number of temporalParadox days (dbe6027)
  • time: Ensure that the Temporal Flux obtained each time the Combust TC is greater than the time required for Heat Transfer (c4deee2)
  • time: Maximum amount of time allowed to be skipped during active HeatTransfer (e979be0)
  • time: Reserve 10 days for TemporalFlux (68c2ed2)
  • time: Save activeHeatTransferStatus (2e56f37)
  • time: Skip to the beginning of the Cycle (59501a8)
  • trade: Traded Blackcoin amount not normalized as expected (7c719c6)
  • ui: Best unicorn UI is inconsistent (a4e50d8)
  • ui: Buttons trigger their action twice (92cb2a7)
  • ui: Delete redundant #ksColumn #545 (d922f62)
  • ui: Footer links layout (7d83c02)
  • ui: Game translation button conflict (a2bd179)
  • ui: Move upgrade settings (3babc6b)
  • ui: Partially revert 7146369 (978893e)
  • ui: Read-only elements sometimes not rendered correctly (dd7da47)
  • ui: Require only 1 label input on import (8f22a2c)
  • ui: Revert setting a fixed font-size for KS (2e27dc4)
  • ui: Section without checkbox are dimmed (44f81cb)
  • ui: Tempus Fugit toggle has wrong status message (5a7984a)
  • ui: Triggers not behaving as expected (8b3576e)
  • ui: Typos, layout regressions (045c328)
  • ui: Weird transition when collapsing panels (fd6978c)
  • village: Leader election is broken (f03f3e9)
  • village: Leader election still broken (631ab1e)
  • workshop: Eco mode not enabled by default (0f76103)
  • workshop: Excessive crafts (cdd2879)
  • workshop: Trigger not evaluated correctly (55c380c)

Documentation (24)

  • Add example compose file to run KS DNA (4282ecc)
  • Add pointer towards development docs (06560df)
  • Add revision dates (e749ab1)
  • Add status badges (f817423)
  • Beta 9 updates (99e964f)
  • Clarify version bump process (c2cc4d1)
  • Clean up installation instructions (7aa560d)
  • Clean up installation split (469d4bd)
  • Clean up start page (58ad609)
  • Explain section triggers (a5a257a)
  • Fix broken links, add version banner (9870b7a)
  • Fix deployment pipeline (6652217)
  • Fix site name (8249051)
  • Hint at more science (04a5e01)
  • Prepare for versioned documentation #687 (351e676)
  • Restructure installation (2ba7aa1)
  • Restructure main areas (80e5c19)
  • Set correct versions in beta.8 docs (57cef65)
  • Slightly clearer layout (6ff60f2)
  • Store beta.8 documentation #687 (2c31666)
  • Update CHANGELOG (55d8c98)
  • Update Grafana dashboard (271bb24)
  • Use revised version of beta8 docs (942fa64)
  • time: Active Heat Transfer document (9c891fc)

Code Refactoring (13/+1 unlisted)

  • Extract user script loader into discrete component (95ce4b9)
  • Improve type safety #586 (fa7ef99)
  • Unify singular/plural naming for data structures #544 (072186a)
  • settings: Use loops to replace lengthy code #544 (9c15af0)
  • ui: Build TranslatedString using `` #551 (52af0e1)
  • ui: Optimize array generation #544 (06d7bb3)
  • ui: Replace br with span #545 (7aa64bb)
  • ui: Resource control excludes some resources #544 (bce673e)
  • ui: Sequence(Same as KG) of KG items in Chinese language #551 (7e88f0e)
  • ui: Use .load instead of localStorage #545 (b7e11a6)
  • ui: Use KG array as index and directly use KG label #544 (6498b79)
  • ui: Use loops to replace lengthy code #544 (0a8021f)
    1 similar commit not listed: 7ccecdf
  • ui: Use the Array build in types #544 (a32070d)

Performance Improvements (1)

Continuous Integration (62)

  • Add release pipeline (c7dbe4f)
  • Allow manual QA (5221114)
  • Attest SBOM (e002a01)
  • Bump commit validation (172ee65)
  • Cleanup releases (d8ad51a)
  • Consolidate changelog settings (090979d)
  • Consolidate QA jobs (859541b)
  • Create publishing artifacts for OCI (5761d08)
  • Disable Renovate automerge (5b5694f)
  • Do less work on dependency upgrades (ebce51e)
  • Don't mark release as pre-release (e80f799)
  • Don't publish development builds for dependency upgrades (529baca)
  • Dry-run pre-releases (beafef0)
  • Dry-run releases (b4d2059)
  • Ensure redirects exist in stable (e7a5306)
  • Fix action version (bb0db9b)
  • Fix bookmarklet cache settings (808d02d)
  • Fix bookmarklet content-type (c0cc4e3)
  • Fix container build (7a09af5)
  • Fix invalid release info path (b667e77)
  • Fix missing permissions for nightly builds (c5c4075)
  • Fix NodeJS versions (f69eed3)
  • Fix pre-release concurrency (796fb79)
  • Fix QA check not running (a56ace8)
  • Fix QA not running (3dbcad4)
  • Fix release channel for stable build (f540011)
  • Fix Renovate automerge behavior (2e24b93)
  • Fix script locations (61c4f9a)
  • Fix unmaintained versions (0743582)
  • Improved preview tags (f06bb97)
  • New pre-release pipeline (7f2c957)
  • Only create development release on-demand (7cff99e)
  • Override release tag (71306f3)
  • Publish Devcontainer (d890b6e)
  • Publish into beta.9 distribution (25b03d6)
  • Publish minified scripts (551060a)
  • Push containers (f3305b3)
  • Rebuild nightly, add more containers (c3bc331)
  • Reduce active workflows (5c3a80f)
  • Reduce build complexity for OCI (061baa6)
  • Reduce cache time for unstable builds (bbc9e71)
  • Release experiment (d832c33)
  • Release info not generated nightly (dc0ac5c)
  • Remove redundant attestation (f17f5b7)
  • Remove SBOMs (8d8b664)
  • Remove useless CodeQL BS (d730bf9)
  • Skip QA for Renovate PR (0545d9d)
  • Sync Crowdin on-demand (354a36d)
  • Try attestation (e4e7555)
  • Try external label manager (73319d9)
  • Try upgrading devDeps less often (1020145)
  • Update release contents (06a8dcb)
  • Update validation (e20d9ce)
  • Upload release-info.json properly (bc8f6a3)
  • Use new parameter names (0c64d34)
  • Use tagged release (8d989a0)
  • Use upstream action (795e3af)
  • Use upstream commit validator (bd8c4e1)
  • Validate commit message first (9a22956)
  • i18n: Add Crowdin pipeline (b484d65)
  • i18n: Fix missing permissions (6bdf5e6)
  • i18n: Fix pipeline not triggering checks (6f51a66)

Chores (15)

  • Align container base images (24bc233)
  • Align Node typedef versions (7327f65)
  • Bump version v2.0.0-beta.9 (d2649c6)
  • Don't maintain dependencies in contrib (f6b34ad)
  • Don't track changes to example savegames (3ec2e81)
  • Fix prettier lint #466 (583d032)
  • Fix tsconfig again #480 (59625bc)
  • gitattributes not set correctly (4806698)
  • Remove redundant dependency uuid (84b46c8)
  • Update container build context (71cd746)
  • Update Renovate preset (4449319)
  • i18n: Delete untranslated locales (67d3c48)
  • i18n: Update Crowdin configuration file (3a258e3)
  • i18n: Update translation (570bf3a)
  • i18n: Update translations (6767885)

Dependency Changes

Bug Fixes (25/+32 unlisted)
Chores (98/+540 unlisted)

Commits without convention (2/+1 unlisted)

  • Revert "chore(deps): update eslint to v9.15.0 (#791)" (6e07216)
  • Update Crowdin configuration file (8f5fd3a)
    1 similar commit not listed: efc0e4c