{"id":49319925,"url":"https://github.com/p1xt/vitreous-gloom","last_synced_at":"2026-04-26T17:02:54.663Z","repository":{"id":353484933,"uuid":"1219553237","full_name":"P1xt/vitreous-gloom","owner":"P1xt","description":"Phaser 2D/Retro game demo for web","archived":false,"fork":false,"pushed_at":"2026-04-24T05:45:56.000Z","size":23,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-24T06:09:07.112Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/P1xt.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":"COPYRIGHT.md","agents":null,"dco":null,"cla":null}},"created_at":"2026-04-24T01:50:41.000Z","updated_at":"2026-04-24T05:46:00.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/P1xt/vitreous-gloom","commit_stats":null,"previous_names":["p1xt/vitreous-gloom"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/P1xt/vitreous-gloom","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/P1xt%2Fvitreous-gloom","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/P1xt%2Fvitreous-gloom/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/P1xt%2Fvitreous-gloom/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/P1xt%2Fvitreous-gloom/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/P1xt","download_url":"https://codeload.github.com/P1xt/vitreous-gloom/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/P1xt%2Fvitreous-gloom/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32305043,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-26T09:34:17.070Z","status":"ssl_error","status_checked_at":"2026-04-26T09:34:00.993Z","response_time":129,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-04-26T17:02:53.024Z","updated_at":"2026-04-26T17:02:54.646Z","avatar_url":"https://github.com/P1xt.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# Vitreous Gloom: The Necrotic Wardens\n\n**Vitreous Gloom** is an experimental 2D \"Post-Apocalyptic Gothic\" hybrid game. It blends high-stakes **Extraction RTS** mechanics, **Horde Defense**, and **Pattern-Matching Puzzle Crafting** into a cohesive survival loop. Built for the web using **Phaser 3** and **TypeScript**, it delivers a pixel-art horror experience with a technical focus on modularity and performant web deployment.\n\n---\n\n## 1. The Premise: Light as a Dying Resource\n\nIn the world of *Vitreous Gloom*, a necrotic fog known as \"The Gloom\" has consumed the land, turning all living matter into mindless husks. Humanity’s last bastions are the **Sanctum Cathedrals**—massive stone fortresses protected by ancient, aetherically-charged stained glass windows. These windows act as \"Warding Shields,\" but centuries of decay have cracked them.\n\nYou play as a **Vitromancer**, a specialized survivalist-artist tasked with venturing into the dead zones to extract rare \"Soul-Infused Ores.\" You must refine these minerals into glass shards and reconstruct the Great Windows before the light fails and the Cathedrals are overrun.\n\n---\n\n## 2. Core Gameplay Pillars\n\n### A. The Extraction (RTS \u0026 Horde Defense)\nTo build the glass, you need minerals. You must leave the safety of the Sanctum and enter procedural \"Gloom Zones.\"\n* **The Siphoners:** You deploy automated worker bots (reminiscent of *Starcraft* SCVs) to mine resource nodes.\n* **The Dinner Bell:** Extraction is loud. Mining noise increases a global \"Heat\" meter, attracting waves of zombies (The Arc Raiders influence). \n* **2D Tactical Defense:** You must build temporary fortifications, traps, and turrets to protect your Siphoners while they finish their collection cycle.\n\n### B. The Crafting (Sagrada Puzzle Mechanics)\nBack at the workshop, the resources you've gathered are used in a complex, grid-based crafting system inspired by the board game *Sagrada*.\n* **The Ward Grid:** Each cathedral window has a specific pattern requiring shards of specific colors (minerals) and purities (values 1-6).\n* **Aetheric Interference:** Based on Sagrada rules, shards of the same color or the same purity value cannot be placed orthogonally adjacent to one another.\n* **Volatile Crafting:** Misplacing a shard doesn't just ruin the art—it causes aetheric feedback, attracting ghosts to your base or damaging your character.\n\n### C. The Progression (Terraria-style Tiers)\n* **Tier 1 (Lead Glass):** Found in the outskirts; used for minor village shrines and basic gear.\n* **Tier 2 (Shadow Iron):** Found in infested catacombs; used to craft windows that unlock advanced alchemical weaponry.\n* **Endgame (Sun-Star Ore):** Found at the heart of the Hive; used to craft the \"Eternal Solar Window.\"\n\n---\n\n## 3. Technical Architecture: Why Phaser \u0026 TypeScript?\n\nThis project is built from the ground up for **Web Deployment**, bypassing the heavy overhead of traditional desktop engines.\n\n### Why Phaser 3?\n* **Web Native:** Phaser 3 provides an ultra-lightweight footprint (\u003c2MB engine overhead), ensuring instant-play capability in any modern browser.\n* **Lighting \u0026 Shaders:** We utilize Phaser’s `Light2D` pipeline to simulate the oppressive horror atmosphere. The game world is dark by default, with dynamic lights attached to player flares, siphoner bots, and the finished glowing windows.\n* **Pixel-Perfect Rendering:** Designed for retro aesthetics, the engine ensures crisp pixel art without blur or shimmering.\n\n### Why TypeScript?\n* **Scalable Architecture:** Managing the state between an RTS, a Puzzle, and a Base-Builder requires strict data typing. TypeScript ensures that the `Resource` type extracted in the field matches the `Shard` type required in the workshop.\n* **Modular \"Lego\" Design:** The game is built using a **Component-Based Architecture**. Each system (GridManager, ThreatManager, ConstructionManager) is a standalone TypeScript class that communicates via a central **Event Bus**.\n\n---\n\n## 4. Development Roadmap (Sprint-Based)\n\nThe project is developed in \"Lego-brick\" phases to ensure a playable prototype at every stage:\n\n1.  **Sprint 1: The Shard Grid:** Implementation of the 5x4 Sagrada grid and adjacency validation logic.\n2.  **Sprint 2: The Siphoner:** Movement AI and resource extraction logic for worker bots.\n3.  **Sprint 3: The Gloom:** Implementation of the \"Heat\" system, zombie pathfinding, and 2D lighting.\n4.  **Sprint 4: The Sanctum:** Tilemap-based base building and persistent inventory systems.\n5.  **Sprint 5: The Loop:** Connecting the resource tiers and the \"Order\" system for window patterns.\n\n---\n\n## 5. Deployment\n\n* **Primary Target:** Web (HTML5/Canvas).\n* **Secondary Target:** Progressive Web App (PWA) for offline capability.\n* **Build Tool:** Vite + TypeScript for fast hot-reloading and optimized production bundles.\n\n## 6. Project Documentation\n\nTo understand the full scope, technical architecture, and legal constraints of **Vitreous Gloom**, please refer to the following documents:\n\n| Document | Link | Description | Role in Project |\n| :--- | :--- | :--- | :--- |\n| **Legal Notice** | [COPYRIGHT.md](./COPYRIGHT.md) | Non-commercial usage terms and ownership credits. | Defines usage rights and concept attribution. |\n| **Game Design** | [game-design.md](./documentation/game-design.md) | Deep dive into theme, \"Vitromancy,\" and core gameplay loop. | The creative blueprint for the experience. |\n| **Technical Spec** | [technical-specification.md](./documentation/technical-specification.md) | System architecture and event-driven modular design. | The engineering roadmap for implementation. |\n| **Data Schema** | [data-schema.md](./documentation/data-schema.md) | Core TypeScript interfaces and JSON entity structures. | Ensures \"Lego-brick\" compatibility across modules. |\n| **UI/UX Wireframes** | [ui-ux-wireframes.md](./documentation/ui-ux-wireframes.md) | Visual layouts for the Sanctum, Extraction, and Puzzle scenes. | Defines the user flow and interface hierarchy. |\n| **Asset List** | [asset-list.md](./documentation/asset-list.md) | Comprehensive \"To-Do\" checklist for sprites, lights, and audio. | Tracks the visual and auditory production progress. |\n| **Testing Strategy** | [testing-strategy.md](./documentation/testing-strategy.md) | Unit, integration, and system test requirements for each phase. | Ensures stability and verifies crucial use cases. |\n\n---\n\n### Commitment to Quality\nThis project utilizes **Conventional Commits** and a **Sprint-Based Modular Architecture**. Each document above is a living part of the development lifecycle, ensuring that the final \"Technical Demo\" is both performant and faithful to the original concept.\n\n**Ready to explore the code?**\nHead over to the `src/` directory to see the \"Lego bricks\" in action, or start with **Sprint 1** in the [Technical Specification](./documentation/technical-specification.md).","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fp1xt%2Fvitreous-gloom","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fp1xt%2Fvitreous-gloom","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fp1xt%2Fvitreous-gloom/lists"}