From cf7dc7def5e9c30a453fa3d3660439ac664ab167 Mon Sep 17 00:00:00 2001 From: nicfv Date: Sat, 8 Aug 2026 12:37:56 -0700 Subject: [PATCH 01/18] add hotkeys --- www/games/orbit-idle/index.html | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/www/games/orbit-idle/index.html b/www/games/orbit-idle/index.html index 8f7d124..1bb16f9 100644 --- a/www/games/orbit-idle/index.html +++ b/www/games/orbit-idle/index.html @@ -18,7 +18,8 @@

Orbit Idle

This game takes a new spin as the 4th game in the Revolution Idle series.

-

Controls: Mouse/click for everything. Instructions are shown in-game.

+

Controls: Mouse/click for everything. Instructions are shown in-game.

+

Hotkeys: Zoom: + and -   Save: S   Stats: A   Mute/Unmute: M   Help: H   Menu: ESC

The original game: Revolution Idle (2017)

Fan collab/remake: Revolution Idle 2 (2017)

My Unity3D remake: Idle R3volutions (2018)

From 7890de8393e13840941c9ace5153e8bcd3cafbcc Mon Sep 17 00:00:00 2001 From: nicfv Date: Sat, 8 Aug 2026 12:38:10 -0700 Subject: [PATCH 02/18] add styling for --- www/games/orbit-idle/index.css | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/www/games/orbit-idle/index.css b/www/games/orbit-idle/index.css index 164febc..6d10e88 100644 --- a/www/games/orbit-idle/index.css +++ b/www/games/orbit-idle/index.css @@ -42,4 +42,9 @@ a:hover { a:active { color: pink; +} + +kbd { + padding: 0.25rem; + background: dimgray; } \ No newline at end of file From e49a81d5037f330892128e68319cd52580bbb992 Mon Sep 17 00:00:00 2001 From: nicfv Date: Sat, 8 Aug 2026 12:40:41 -0700 Subject: [PATCH 03/18] update eslint --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index af84f80..27c925f 100644 --- a/package.json +++ b/package.json @@ -8,8 +8,8 @@ "www/**/*" ], "devDependencies": { - "eslint": "10.8.0", + "eslint": "10.8.1", "@eslint/js": "10.0.1", - "typescript-eslint": "8.65.0" + "typescript-eslint": "8.66.0" } } \ No newline at end of file From 5a025f7c28a97d2c1159bc0edfcafb3cb96d659a Mon Sep 17 00:00:00 2001 From: nicfv Date: Sat, 8 Aug 2026 13:06:08 -0700 Subject: [PATCH 04/18] start working on release script --- www/games/orbit-idle/release | 3 +++ 1 file changed, 3 insertions(+) create mode 100755 www/games/orbit-idle/release diff --git a/www/games/orbit-idle/release b/www/games/orbit-idle/release new file mode 100755 index 0000000..14670e1 --- /dev/null +++ b/www/games/orbit-idle/release @@ -0,0 +1,3 @@ +#!/usr/bin/env bash + +echo test \ No newline at end of file From de2c1f3d2e938f3fc5d6c0d2d03cbddf316c35e1 Mon Sep 17 00:00:00 2001 From: nicfv Date: Sat, 8 Aug 2026 13:09:03 -0700 Subject: [PATCH 05/18] add release files --- www/games/orbit-idle/release.css | 11 +++++++++++ www/games/orbit-idle/release.html | 17 +++++++++++++++++ 2 files changed, 28 insertions(+) create mode 100644 www/games/orbit-idle/release.css create mode 100644 www/games/orbit-idle/release.html diff --git a/www/games/orbit-idle/release.css b/www/games/orbit-idle/release.css new file mode 100644 index 0000000..66a7979 --- /dev/null +++ b/www/games/orbit-idle/release.css @@ -0,0 +1,11 @@ +@import url('https://fonts.googleapis.com/css2?family=Roboto+Mono:ital,wght@0,100..700;1,100..700&display=swap'); + +* { + box-sizing: border-box; + border-collapse: collapse; +} + +body { + margin: 0; + padding: 0; +} \ No newline at end of file diff --git a/www/games/orbit-idle/release.html b/www/games/orbit-idle/release.html new file mode 100644 index 0000000..690f020 --- /dev/null +++ b/www/games/orbit-idle/release.html @@ -0,0 +1,17 @@ + + + + + Orbit Idle + + + + + + + + + + + + \ No newline at end of file From 6aeb46b4b6392ee50bd239eb355540d0ecc90b6b Mon Sep 17 00:00:00 2001 From: nicfv Date: Sat, 8 Aug 2026 13:29:50 -0700 Subject: [PATCH 06/18] move to subdir --- www/games/orbit-idle/{release.css => released/index.css} | 0 www/games/orbit-idle/{release.html => released/index.html} | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) rename www/games/orbit-idle/{release.css => released/index.css} (100%) rename www/games/orbit-idle/{release.html => released/index.html} (85%) diff --git a/www/games/orbit-idle/release.css b/www/games/orbit-idle/released/index.css similarity index 100% rename from www/games/orbit-idle/release.css rename to www/games/orbit-idle/released/index.css diff --git a/www/games/orbit-idle/release.html b/www/games/orbit-idle/released/index.html similarity index 85% rename from www/games/orbit-idle/release.html rename to www/games/orbit-idle/released/index.html index 690f020..474ba59 100644 --- a/www/games/orbit-idle/release.html +++ b/www/games/orbit-idle/released/index.html @@ -8,7 +8,7 @@ - + From ad417f4e5dfe9dce77461d38093f11701f45c951 Mon Sep 17 00:00:00 2001 From: nicfv Date: Sat, 8 Aug 2026 13:29:56 -0700 Subject: [PATCH 07/18] run release script --- www/games/orbit-idle/release | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/www/games/orbit-idle/release b/www/games/orbit-idle/release index 14670e1..cf0992e 100755 --- a/www/games/orbit-idle/release +++ b/www/games/orbit-idle/release @@ -1,3 +1,4 @@ #!/usr/bin/env bash -echo test \ No newline at end of file +cp dist/main.js released +zip -r released.zip released From 2d02bf715aa789400385a7c7a443d02441be665a Mon Sep 17 00:00:00 2001 From: nicfv Date: Sat, 8 Aug 2026 13:33:36 -0700 Subject: [PATCH 08/18] remove close event handler --- www/games/orbit-idle/src/close-info-handler.ts | 3 --- www/games/orbit-idle/src/index.ts | 1 - 2 files changed, 4 deletions(-) delete mode 100644 www/games/orbit-idle/src/close-info-handler.ts diff --git a/www/games/orbit-idle/src/close-info-handler.ts b/www/games/orbit-idle/src/close-info-handler.ts deleted file mode 100644 index 922b556..0000000 --- a/www/games/orbit-idle/src/close-info-handler.ts +++ /dev/null @@ -1,3 +0,0 @@ -const closeInfo: HTMLElement = document.getElementById('close-info') as HTMLElement; -const gameInfo: HTMLElement = document.getElementById('game-info') as HTMLElement; -closeInfo.addEventListener('click', () => gameInfo.parentElement?.removeChild(gameInfo)); diff --git a/www/games/orbit-idle/src/index.ts b/www/games/orbit-idle/src/index.ts index f841c98..21cf460 100644 --- a/www/games/orbit-idle/src/index.ts +++ b/www/games/orbit-idle/src/index.ts @@ -1,4 +1,3 @@ -import './close-info-handler'; import { Canvas } from 'graphico'; import { ascBtn, buyType, cursor, income, menu, paused, player, shop, stats, system, tutorial, zoom } from './data/state'; import { GameData } from './data/gamedata'; From d6156126e3cc1c1e9ce2edbf0296746bac9066b2 Mon Sep 17 00:00:00 2001 From: nicfv Date: Sat, 8 Aug 2026 13:33:59 -0700 Subject: [PATCH 09/18] inline js --- www/games/orbit-idle/index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/www/games/orbit-idle/index.html b/www/games/orbit-idle/index.html index 1bb16f9..e8c38ed 100644 --- a/www/games/orbit-idle/index.html +++ b/www/games/orbit-idle/index.html @@ -16,7 +16,7 @@

Orbit Idle

- +

This game takes a new spin as the 4th game in the Revolution Idle series.

Controls: Mouse/click for everything. Instructions are shown in-game.

Hotkeys: Zoom: + and -   Save: S   Stats: A   Mute/Unmute: M   Help: H   Menu: ESC

From b93b21b01502b1b8250d29e6a46fe09a7041a298 Mon Sep 17 00:00:00 2001 From: nicfv Date: Sat, 8 Aug 2026 13:34:18 -0700 Subject: [PATCH 10/18] copy over mp3 files --- www/games/orbit-idle/release | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/www/games/orbit-idle/release b/www/games/orbit-idle/release index cf0992e..ca833de 100755 --- a/www/games/orbit-idle/release +++ b/www/games/orbit-idle/release @@ -1,4 +1,4 @@ #!/usr/bin/env bash -cp dist/main.js released +cp dist/main.js ./*.mp3 released zip -r released.zip released From 74d650e8a9ced38f458e1f15f59369c86554e760 Mon Sep 17 00:00:00 2001 From: nicfv Date: Sat, 8 Aug 2026 13:35:24 -0700 Subject: [PATCH 11/18] build with prod and clean files after --- www/games/orbit-idle/release | 2 ++ 1 file changed, 2 insertions(+) diff --git a/www/games/orbit-idle/release b/www/games/orbit-idle/release index ca833de..40f72cd 100755 --- a/www/games/orbit-idle/release +++ b/www/games/orbit-idle/release @@ -1,4 +1,6 @@ #!/usr/bin/env bash +bun start prod cp dist/main.js ./*.mp3 released zip -r released.zip released +rm -r released/*.js released/*.mp3 From 1b3cac7cc60c3e749d171f4dee782b2ee8596e2d Mon Sep 17 00:00:00 2001 From: nicfv Date: Sat, 8 Aug 2026 13:35:53 -0700 Subject: [PATCH 12/18] fix broken css path --- www/games/orbit-idle/released/index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/www/games/orbit-idle/released/index.html b/www/games/orbit-idle/released/index.html index 474ba59..1ed1363 100644 --- a/www/games/orbit-idle/released/index.html +++ b/www/games/orbit-idle/released/index.html @@ -7,7 +7,7 @@ - + From 9b1c0a4ea4d37618992ebdddb72605ff1adea8f1 Mon Sep 17 00:00:00 2001 From: nicfv Date: Sat, 8 Aug 2026 13:36:06 -0700 Subject: [PATCH 13/18] ignore zip --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 1825673..1d2c904 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ node_modules package-lock.json bun.lock dist +*.zip From 37339afb75b7ab2c5e67a56b1d33b89938c669e3 Mon Sep 17 00:00:00 2001 From: nicfv Date: Sun, 9 Aug 2026 15:03:50 -0700 Subject: [PATCH 14/18] v1.0.0 --- www/games/orbit-idle/src/data/state.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/www/games/orbit-idle/src/data/state.ts b/www/games/orbit-idle/src/data/state.ts index be68c6b..617a42e 100644 --- a/www/games/orbit-idle/src/data/state.ts +++ b/www/games/orbit-idle/src/data/state.ts @@ -12,7 +12,7 @@ import { Tutorial } from '../form-controls/tutorial'; import { Zoom } from '../ui/zoom'; // Global constants -export const version = 'v1.3.0-alpha'; +export const version = 'v1.0.0'; // UI elements export const cursor: Cursor = new Cursor(); From f25b27905f3b695627e306bf4c3eb1c1a5d3df22 Mon Sep 17 00:00:00 2001 From: nicfv Date: Sun, 9 Aug 2026 15:22:39 -0700 Subject: [PATCH 15/18] increase ascension cost increase --- www/games/orbit-idle/src/game/orbit.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/www/games/orbit-idle/src/game/orbit.ts b/www/games/orbit-idle/src/game/orbit.ts index d01788d..cd7d1db 100644 --- a/www/games/orbit-idle/src/game/orbit.ts +++ b/www/games/orbit-idle/src/game/orbit.ts @@ -56,7 +56,7 @@ export class Orbit extends SaveLoad implements Drawable { this.maxSpeedLevel = 100; this.baseCost = 10 ** index; this.costIncrease = 1.02 + 0.02 * index; - this.ascCostIncrease = 2.25 + 0.05 * index; + this.ascCostIncrease = 3.25 + 0.25 * index; } public load(data: Partial = defaultOrbitData): void { this.data.angle = SMath.clamp(data.angle ?? defaultOrbitData.angle, 0, Orbit.TAU); From 2c9d31bb5c0a89d3285e6b7356678b99203d545a Mon Sep 17 00:00:00 2001 From: nicfv Date: Sun, 9 Aug 2026 15:25:50 -0700 Subject: [PATCH 16/18] show version in stats --- www/games/orbit-idle/src/data/stats.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/www/games/orbit-idle/src/data/stats.ts b/www/games/orbit-idle/src/data/stats.ts index 2d83f55..6c74b17 100644 --- a/www/games/orbit-idle/src/data/stats.ts +++ b/www/games/orbit-idle/src/data/stats.ts @@ -1,7 +1,7 @@ import { Drawable } from 'graphico'; import { Label } from '../form-controls/label'; import { Color } from 'viridis'; -import { player } from './state'; +import { player, version } from './state'; import { N, SaveLoad } from './lib'; import { SMath } from 'smath'; @@ -21,7 +21,7 @@ export class Statistics extends SaveLoad implements Drawable { super(data); this.visible = false; this.title = new Label('Orbit Idle: Statistics', new Color(255, 255, 255), 2, true, 'center', 'bottom', 0, Label.fontSize * 16); - this.headers = new Label('Started on\nSolar system size\nTotal earned\nTotal spent\nTotal planetary years\nSpeed levels purchased\nAscensions purchased\n\nCredits\n\n\nDisclaimer', new Color(255, 255, 255), 1, false, 'right', 'top', 0, Label.fontSize * 18); + this.headers = new Label('Started on\nSolar system size\nTotal earned\nTotal spent\nTotal planetary years\nSpeed levels purchased\nAscensions purchased\n\nCredits\n\n\nDisclaimer\n\n\n\nVersion', new Color(255, 255, 255), 1, false, 'right', 'top', 0, Label.fontSize * 18); this.content = new Label('', new Color(255, 255, 255), 1, true, 'left', 'top', 0, Label.fontSize * 18); } public load(data: Partial = defaultStats): void { @@ -53,7 +53,7 @@ export class Statistics extends SaveLoad implements Drawable { graphics.fillStyle = Statistics.shade.toString(); graphics.fillRect(Label.fontSize * 15, Label.fontSize * 10, graphics.canvas.width - Label.fontSize * 30, graphics.canvas.height - Label.fontSize * 20); // Set content - this.content.value = `${new Date(this.data.startTime).toLocaleString()}\n${N(player.getNumOrbits())} planets\n$${N(this.data.moneyEarned)}\n$${N(this.data.moneySpent)}\n${N(this.data.orbitsCompleted)} orbits\n${N(this.data.speedLevelsPurchased)}\n${N(this.data.ascensionsPurchased)}\n\nNicolas Ventura\nnicfv.com\n\nGenerative AI was used for\n30-second looping audio but\nnot for game design or code`; + this.content.value = `${new Date(this.data.startTime).toLocaleString()}\n${N(player.getNumOrbits())} planets\n$${N(this.data.moneyEarned)}\n$${N(this.data.moneySpent)}\n${N(this.data.orbitsCompleted)} orbits\n${N(this.data.speedLevelsPurchased)}\n${N(this.data.ascensionsPurchased)}\n\nNicolas Ventura\nnicfv.com\n\nGenerative AI was used for\n30-second looping audio but\nnot for game design or code\n\n${version}`; // X-center all labels this.title.x = graphics.canvas.width / 2; this.headers.x = (graphics.canvas.width - Label.fontSize) / 2; From 525fada99d293f33c8f1d8de5a4d665adeef846c Mon Sep 17 00:00:00 2001 From: nicfv Date: Sun, 9 Aug 2026 15:35:49 -0700 Subject: [PATCH 17/18] add longer description and add link to GJ --- www/games/orbit-idle/index.html | 3 +++ 1 file changed, 3 insertions(+) diff --git a/www/games/orbit-idle/index.html b/www/games/orbit-idle/index.html index e8c38ed..9eac1bd 100644 --- a/www/games/orbit-idle/index.html +++ b/www/games/orbit-idle/index.html @@ -18,12 +18,15 @@

Orbit Idle

This game takes a new spin as the 4th game in the Revolution Idle series.

+

In Orbit Idle, grow a interplanetary idle economy by speeding up planets, ascending orbits, and compounding income from each revolution. Manage your solar system, zoom into individual planets, and watch your earnings explode even while the tab is hidden.

Controls: Mouse/click for everything. Instructions are shown in-game.

Hotkeys: Zoom: + and -   Save: S   Stats: A   Mute/Unmute: M   Help: H   Menu: ESC

+

The original game: Revolution Idle (2017)

Fan collab/remake: Revolution Idle 2 (2017)

My Unity3D remake: Idle R3volutions (2018)

Fun fact: Idle R3volutions was available on Android/Google Play for a short time!

+

Orbit Idle is also available on GameJolt.

From c8ecc6c8b42b68b0098ca822a25601593281f894 Mon Sep 17 00:00:00 2001 From: nicfv Date: Sun, 9 Aug 2026 15:51:44 -0700 Subject: [PATCH 18/18] add itchio link --- www/games/orbit-idle/index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/www/games/orbit-idle/index.html b/www/games/orbit-idle/index.html index 9eac1bd..74b9aa8 100644 --- a/www/games/orbit-idle/index.html +++ b/www/games/orbit-idle/index.html @@ -26,7 +26,7 @@

Orbit Idle

Fan collab/remake: Revolution Idle 2 (2017)

My Unity3D remake: Idle R3volutions (2018)

Fun fact: Idle R3volutions was available on Android/Google Play for a short time!

-

Orbit Idle is also available on GameJolt.

+

Orbit Idle is also available on GameJolt and Itch.io.