Pisces: Space Journey

"A browser tab becomes a cockpit: one ship, a field of stars, and fifteen sigils that turn every run into a different build."

Pisces: Space Journey is a space shooter built with vanilla HTML, CSS, JavaScript, and PixiJS. It runs directly in the browser and is hosted on GitHub Pages, making the game easy to open, play, and share without installation or a backend.

The Idea

The idea first took shape in late 2024, and the first beta was coded a couple of months later while still in high school. The project began with a simple goal: build a space shooter that could be played immediately from a browser link. As the game grew, the idea expanded beyond moving through space and firing at enemies. The game needed a system that could give players distinct combat directions instead of a single fixed loadout.

That direction became the zodiac sigil system. Each constellation represents an equipable build path, giving Pisces: Space Journey its own core mechanic while leaving room to grow with new sigils, skills, enemies, and bosses.

Why HTML, JavaScript, and GitHub Pages

Runs in the Browser

Players can open the game directly without downloading or installing anything.

Free Deployment

GitHub Pages provides a free place to host and share the project.

No Backend Required

The game can be delivered as a front end experience without server infrastructure.

PixiJS Rendering

PixiJS acts as the renderer adapter for drawing the game world and visual effects.

The Rookie Mistake

The first two beta versions were each built as one large HTML file. Everything lived together in an index style file: gameplay logic, rendering, effects, balance, and interface behavior. This was a natural starting point for an early project, but it became difficult to optimize and maintain once the game became larger.

January 2025

Space Shooter – Nâng Cấp Toàn Diện

MilkyWayprotecter.html and spacestest101.html

The first beta was later abandoned because its visual effects did not feel right.

November 2025

Space Shooter – Nâng Cấp Toàn Diện (FX & Balance)

Spaceshooterpro.html

The second beta improved effects and balance, but it still carried the limits of a one file structure.

When every concern lives in one file, a change in one area can make another harder to understand. Performance work becomes less direct, and adding a boss or a new sigil becomes harder than it needs to be. The project eventually required a more deliberate architecture.

From One File to a Real Architecture

In March 2026, the game was refactored into a modular structure. The first Git commit for this stage was titled Code game Space Shooter chia file, meaning the game code was split into files. The project has continued to develop from that point and now has more than 800 commits, 84 JavaScript files, and about 70,000 lines of code, including the bundled PixiJS library.

The modular design separates runtime setup, combat simulation, rendering, and static delivery. This makes the game easier to navigate and easier to extend when adding new enemies, bosses, and zodiac builds.

Pisces: Space Journey Architecture Browser Runtime index.html entry and UI main.js game loop input.js keys and touch config.js settings audio.js sfx and music background.js parallax sky recap.js Voyage Recap Simulation & Combat entities/core.js shared enemy logic entities/*.js bosses, elites, sentinels skills/*.js 18 skill modules sigils/core.js picker and meters sigils/*.js 15 sigil definitions timeline-distortion.js boss wave anomalies yuusha-party.js Taurus squad Rendering & UI pixi-renderer.js PixiJS adapter render/core.js shared drawing render/player.js ship and shield render/fx.js effects render/enemy-*.js 10 enemy renderers render/sigil-*.js 6 sigil scenes render/skill-*.js skills and buttons render/kanade-*.js cutscene and face Static Delivery sw.js offline.js manifest.json guide.html css/*.css assets 84 JavaScript files, about 70,000 lines, 148 sound effects, 23 music tracks

The three files named core.js remain distinct in the codebase: entities/core.js, sigils/core.js, and render/core.js.

The Core Skill System

The sigil system is the defining mechanic of Pisces: Space Journey. Each sigil gives the ship its own build direction and carries two blessings, so every run can be pushed toward a different style of play instead of a single fixed loadout.

The roster now holds fifteen sigils: the twelve Western zodiac signs, plus three drawn from the Eastern animal zodiac, Great Sage, Dawn Herald, and Umbral Serpent. The summaries below follow the in-game descriptions.

Aries · Fire

Gate of Babylon. Ally hits can open gates that fire 14 piercing blades in a fan.

Enuma Elish. Every 30 ally hits, a phantom hurls a spear through the strongest enemy's line for heavy true damage.

Taurus · Earth

Yuusha Party. Summons a squad of four Sentinels (Tank, Support, Marksman, Mage) that take hits meant for you and return 5 seconds after falling.

Squad Synergy. Every squad role fights: blade sweeps, healing, piercing arrows, and arcane zones.

Gemini · Air

Shadow Twin. Every 10th ally hit calls a phantom twin ship that fires three volleys of piercing plasma orbs.

Mirror Laser. The Overload Laser gains two mirror beams and extra damage.

Cancer · Water

Lunar Aegis. Stronger Sentinel protection, and a killer whale finishes any enemy at 8% HP or below.

Tidal Flow. Sentinels regenerate and return if all fall, and a tide meter summons whirlpools that drag enemies in.

Leo · Fire

Lion's Roar. Hits apply a stacking Burn, and a Burning enemy that dies spreads it to up to six nearby enemies.

Divine Fate. Each wave starts with every enemy petrified for 5 seconds and taking more damage. Burning kills fill a Fate meter that petrifies the field again.

Virgo · Earth

Forest Guardian. Every 6th auto volley crits for triple damage with Vulnerability, root, and silence, and a vine wrapped log sweeps the screen when five or more enemies are present.

Circuit Engineer. Tesla damage rises 30%, destroyed Coils refund Skill G charge, and debuffed enemies take 25% more damage.

Libra · Blood Sorcery

Blood Arrow. Skill A banks volleys of five piercing arrows and fires everything banked once a target is in sight. Arrows explode and apply Vulnerability.

Astral Pierce. Skill A orbs pierce through their target to the screen edge, with larger size and more damage.

Scorpio · Water

Resurrection. Gain 4 lives immediately (up to 12) and earn an extra life every 300,000 points.

Death Mark. Damage rises as enemies lose HP, up to +65% at 20% HP or below, and enemies at 5% HP are struck down by lightning.

Sagittarius · Fire

Twin Blades. Spirit slashes fire extra blades, boomerangs can multiply, and Skill F throws two boomerangs.

Arctic Chill. Boomerangs and arc slashes often slow enemies by 30% and pull them in.

Capricorn · Earth

Compound Interest. Each kill adds a stacking damage bonus, up to +40%, and every five stacks add ally fire rate.

Mountainfall. A full Ley meter drops a mountain on the densest group, then leaves rock walls that stop every enemy bullet, beam, and body for 4 seconds.

Aquarius · Air

Chain Lightning. Tesla damage over time arcs to a nearby enemy, and Skill G charges 35% faster.

Magnetic Field. While Skill G is active or fully charged, enemies within 300px are slowed 30% and take damage every second.

Pisces · Water

Dream Realm. Shift grants 2.5 seconds of immunity and marks every enemy, which then burst for part of the damage they took.

Cycle of Flow. Kills and movement cut skill cooldowns, and at 12 Flow points bubbles form a fish that swims through enemies and stuns each one.

Great Sage · Earth

Monkey (Than)

Ransacked Treasury. Skill F becomes the Ruyi Jingu Bang. Killing an Elite or stronger steals its gem, and F then unleashes a copy of that enemy's signature attack.

72 Transformations. While holding three different gems, each stolen attack hits 1.65 times as hard.

Dawn Herald · Metal

Rooster (Dau)

Daybreak Clarion. Every 10 seconds the rooster crows: a ring of light erases enemy bullets, shoves enemies back, and marks them to take more damage and lose evade.

Starfall Needles. Erased bullets return as homing golden needles, seven star needles pin the strongest enemies, and enemy skill shots the ring touches return to their caster.

Umbral Serpent · Venomancy

Snake (Ty)

Umbral Devour. A 10 second charge releases four bites and four piercing shards on the next bullet contact, even through armor or barriers.

Serpent Array. Skill S opens a seal that pulls enemies in, then erupts, while ten serpents hunt for 8 seconds and every fifth bite stacks Venom.

New sigils are built as their own build paths, while enemy and boss behavior stays separated in the combat modules. That separation is what let the roster grow from twelve signs to fifteen sigils without reworking the rest of the game.

Bosses and Elites

Enemies are grouped into tiers: the lesser Apostles, then Abnormal, Elite, and Dominator enemies, with Goliath as a Digiform boss that appears on every fifth wave. Each has a signature mechanic, summarized here from the in-game Guide.

Egregor

Elite

A psychic parasite that was rebuilt for the latest update.

  • Collective Mind: ten tentacles intercept most hits, and each lost tentacle heals and strengthens the body.
  • Mind Link: nearby enemy deaths feed rage stacks that make Egregor faster and tougher.
  • Null Slash: a 180 degree sweep that tears open a cosmic rift for 1.8 seconds, with deeper space at higher rage.
  • Psychic Tempest: a planted tentacle locks up to three targets, then giant hooked tentacles erupt from portals beneath them.

Goliath

Digiform

Arrives as an invulnerable Alpha that feeds on the wave, then transforms into its True Form. Fracture Step teleports it, Unbroken Will revives it once, and Absolute Verdict fires a piercing orb that can cost the player five lives.

Leviathan

Dominator

All for One keeps it behind an Iron Body shield until a kill quota is met. Herd Leader buffs every other enemy, Perseverance is a full 360 degree sweeping laser, and Last Rites locks nine wing plates onto targets at 1 HP.

Dargruel

Dominator

Abyssal Chains root and silence the player, and a darkened chain can cost a life. Demon Gift heals the horde at set health thresholds, and Maou Haki at 50% HP sends a screen wide shockwave that clears friendly projectiles.

Marchosias

Elite

A rotating 90 degree Arc Barrier with its own health pool. Hits on the barrier queue Swords, a fourth sword makes the barrier self detonate, and on death it splits into three Minion Robots.

Raphael

Elite, the Wisdom King

Custos Aeternus nullifies its first 20 hits while Support Aura heals and shields other enemies. Once Custos breaks, Wisdom King raises its evade, and every 80 hits landed while Custos was up fire a piercing Wisdom Orb.

Uriel

Abnormal, the Covenant King

Covenant King grants every other living enemy CC immunity and Iron Body layers. Uriel starts at 99% evade that each landed hit wears down, vanishes with Camouflage, throws a piercing Holy Sword, and leaves a barrier when it dies.

Veilshroud

Abnormal

Slips into a Phantom state with 99% damage reduction and turns the damage it absorbs into a shield. When it dies, a portal opens and births about ten Apostles before collapsing.

Thaelis

Abnormal

At zero HP it collapses into an untargetable Cocoon guarded by four Guards. Defeat enough Guards in time and it is gone for good, otherwise it climbs back out with permanent buffs. Its shots split into six homing bullets.

Game Systems

Timeline Distortion

Every fifth wave is a boss wave. It opens with a cutscene where time stops, the Administrator Kanade summons Goliath, and she casts a paired anomaly on the fight: one half favors you, one half favors the enemy. The four pairs are Stack Overflow, Spacetime Flow, Administrator's Favor, and Adaptive Counter, and a pair never repeats back to back.

Voyage Recap

Replaces the Game Over screen with a full flight log: score, wave, what shot you down, the sigils you chose in order, damage dealt and taken by source, and a battle timeline. A share image can be saved as a portrait or landscape card, with an optional callsign.

Walpurgis

Every five waves, all enemies permanently gain a stack: more Max HP, more evade up to a cap, flat damage reduction, and stronger healing and shields. Enemies already on screen are rescaled at once, so late waves keep pushing back.

Combat Scaling Rebalance

Every hostile attack and ally skill was moved onto one shared basis, either the player's ATK or the target's own Max HP or lost HP, instead of scattered flat numbers. Enemy damage reduction, healing, and shield caps were retuned, and a DPS and time to kill checking tool was added to the debug console.

Kanade Cutscene

The first boss wave a player reaches always plays Kanade's cutscene. After that first viewing it can be skipped, while the Distortion still applies. Her frozen world has its own piece of music, Fermata.

Offline Play and PWA

A service worker serves the game from cache, and Settings can download a Basic package (about 66 MB) or a Full package that adds every music track (about 219 MB). The game can also be installed like an app.

The Guide

A separate Guide page documents the sigils, skills, enemies, combat rules, and the full update log. The enemy cards include demos that run the real game renderers, and the Guide is available in English and Vietnamese.

Testing and Performance

The repository includes headless browser scripts that drive the real game in Chrome through Playwright. They load the production scripts and replace the clock with a virtual game clock, so a fight can be stepped frame by frame and the same result repeats on every run. Some of them also time the update and draw steps under fixed loads, for example with 80 enemies and 60 bullets on screen.

Performance work shows up in the update log as concrete changes: five graphics levels from High to Performance, switches in Advanced Graphics for glow, trails, and flashes, cached sprites and fixed particle pools for heavy effects, and heavy artwork built while the game is idle. Egregor's rift art is now prepared before it ever appears, which removed a freeze in its first fight.

What Changed Between the Betas

Beta One

Space Shooter – Nâng Cấp Toàn Diện was created in January 2025, while still in high school. Its visual effects did not match the direction the project needed, so the version was left behind.

Beta Two

Space Shooter – Nâng Cấp Toàn Diện (FX & Balance) was created in November 2025, improving both effects and balance while still using a single HTML file.

Beta One gameplay screenshot
Beta One: the abandoned VFX pass.
Beta Two gameplay screenshot
Beta Two: the FX and Balance pass that replaced it.
The important shift was not only visual. The later modular refactor made the game easier to reason about, optimize, and extend than either one file beta.

Screenshots

Fight against Egregor with a cosmic rift from Null Slash, Psychic Tempest tentacles rising from portals, and the Umbral Serpent sigil in play

A fight against Egregor: Null Slash leaves a cosmic rift across the arena, Psychic Tempest tentacles rise from portals, and the Umbral Serpent sigil hunts with its serpents.

Zodiac sigil selection interface showing several constellation build options Boss encounter against the Goliath enemy

FAQ

Can I play Pisces: Space Journey on mobile?

Yes, with limits. The game has touch controls with an on-screen joystick and skill buttons, a landscape HUD for phones, and its own performance tier for phones, where enemies and bosses are drawn smaller in landscape so they cover less of the screen. It is still a demanding browser game, so the experience can differ by device and browser.

Do I need to download anything?

No. The game is hosted on GitHub Pages and runs directly from a browser link. Optional offline packages can be downloaded from Settings.

Can I play offline?

Yes. The game is a progressive web app with a service worker. In Settings you can download a Basic package (about 66 MB, the app shell and every sound effect) or a Full package (about 219 MB, which adds every music track), and the game then runs without a connection.

Is it free?

Yes. It is free to play in the browser with no account, and the source code is available on GitHub under the MIT license.

What technology does the game use?

The project uses vanilla HTML, CSS, and JavaScript, with PixiJS bundled as the rendering adapter and a service worker for offline play.

Can a new sigil be added?

Yes. The modular architecture was created to make expansion easier, and it has already carried the roster from the twelve zodiac signs to fifteen sigils with Great Sage, Dawn Herald, and Umbral Serpent.

Where is player data stored?

Only settings are stored, locally in your browser through localStorage: audio volumes and chosen music, language, graphics and background options, the PC or Mobile choice, the callsign for the Voyage Recap card, and flags such as whether the Kanade cutscene was seen or skipped. There are no accounts and no backend, and the offline packages live in the browser's cache storage.

Is the project still evolving?

Yes. The project has continued to develop since the March 2026 modular refactor and has accumulated more than 800 commits.

Changelog

  • Late 2024: The idea for a browser space shooter with a zodiac sigil build system first took shape.
  • January 25, 2025: First beta, Space Shooter – Nâng Cấp Toàn Diện, created as a single HTML file while still in high school.
  • November 2025: Second beta, Space Shooter – Nâng Cấp Toàn Diện (FX & Balance), improves effects and balance.
  • March 12, 2026: The game is split into a modular multi file architecture, starting with the commit Code game Space Shooter chia file.
  • September 10 to 11, 2026 (v6.7.0): Uriel, the Covenant King, joins the roster as a new Abnormal tier boss.
  • September 15 to 16, 2026 (v6.8.0): Combat Scaling Rebalance puts every hostile attack and ally skill on one shared damage basis.
  • September 25 to 30, 2026 (v6.9.0): Timeline Distortion arrives: Kanade opens every boss wave, summons Goliath, and imposes a paired anomaly on the fight.
  • October 12, 2026 (v6.9.3): Dawn Herald, a new Metal sigil, joins the roster.
  • October 19, 2026 (v6.9.4): Capricorn is rebuilt around Compound Interest and Mountainfall, and the Voyage Recap replaces the Game Over screen.
  • October 23, 2026 (v6.9.5): The Umbral Serpent sigil arrives, and Egregor is rebuilt with Psychic Tempest and cosmic Null Slash rifts.
  • Current: More than 800 commits, fifteen sigils, and modular systems for combat, rendering, skills, sigils, audio, input, and offline delivery.