MC-AGANG/AgSTG
43.3
Weak · 1 October 2026
10.7k
lines of production code
VB.NET
primary language
2
measurements over time
What this system is
AgSTG is a .NET 10-based shoot-'em-up game engine designed for creating and playing Touhou-style bullet hell games. It provides a complete framework for game development, including a core engine with high-precision timing, replay recording, and a keyboard-driven UI system. The system supports modular content through resource packs and includes a fully implemented example project featuring six stages with distinct backgrounds, enemy patterns, and boss spell cards.
How it got here
2023 — AgSTG engine initial release
6 changes.
This period marks the initial release of the AgSTG shoot-'em-up engine, establishing the core game architecture, dialogue systems, and boss UI components. The work involved migrating the project to .NET 10, integrating the ManagedBass audio library, and implementing a new resource management system for game assets. It also included the development of Stage 6 with its associated boss battles and animated backgrounds.
2026 — TH07 game implementation
11 changes.
This period focused on building the core infrastructure and initial content for the Touhou 7 (TH07) game module. It involved establishing the application shell, keyboard-driven UI controls, and core systems for timing and replay, alongside implementing the first five stages with their respective backgrounds, enemies, and boss battles.
Features
Add Stage 1 with 3D background and boss spell cards
Introduces the first playable stage, featuring a 3D scrolling background with snow particle effects and a boss encounter that includes three distinct spell card patterns.
Stage1 · high confidence
Add Stage 2 gameplay and background visuals
Introduces the second stage of the game, including the Stage2 class that manages enemy spawning patterns (butterflies, fairies, ghosts, and bosses) and the Stage2bg component which renders the scrolling 3D background and particle effects.
Stage2 · high confidence
Add Stage 3 gameplay and background
Introduces the third stage of the game, including its background rendering logic (scrolling visuals and music cue for "Romantic Children") and the full enemy wave script. The stage features waves of Youkai (Yin-Yang Orbs, Fairies) and Mid-Birds, culminating in the boss encounter at tick 6150.
Stage3 · high confidence
Add Touhou 7 (TH07) resource pack for images and sounds
The ResourcePack.TH07 module now provides the visual assets and audio data for the Touhou 7 game. This includes a new \Textures\ class that loads background images, boss sprites, UI buttons, and stage titles from embedded resources, as well as a \Sounds\ class that exposes music and effect audio handles via the ManagedBass library. The underlying \MyResource\ files have been added to store the binary image data and configure the resource manager.
ResourcePack.TH07 · high confidence
Added Stage 4 with boss battles and background effects
This change introduces the complete content for Stage 4, including the stage logic, enemy spawn patterns, and boss spell cards (S4B5, S4B6). It adds a new background implementation featuring 3D viewport effects, particle systems (snow/cherry), and music cues, along with the necessary assembly metadata and project configuration files to support this new level.
Stage4 · high confidence
Added Stage 5 with boss battle and spell cards
Introduced the fifth stage of the game, featuring a new background, music track (mu10), and a boss encounter. The stage includes three distinct spell card patterns ('Human Wisdom Sword: Heavenly Return', 'Sakura Sword: Scattering Blossoms', and 'Severing Thought Sword: Vegetation Becomes Buddha') with unique bullet behaviors and visual effects, along with the necessary assembly metadata and project configuration files to support this new content.
Stage5 · high confidence
Added Stage 6 with boss battle and animated background
This change introduces the complete code and assets for Stage 6, including the stage logic, a boss enemy with three distinct spell cards ("Instinct 'Superego'", "Spirit Element 'Approaching Victor'", and "Life Instinct, Death Desire"), and a 3D-animated background featuring scrolling trees and particle effects. The stage initializes with a fade-in effect, plays the music track "After All", and handles the transition to the next stage upon boss defeat.
Stage6 · high confidence
Added Visual Basic .NET application configuration for ResourcePack
The ResourcePack project now includes an Application.myapp configuration file that defines the application entry point as Form1, enables visual styles, and configures the application to allow multiple instances and save settings on exit.
ResourcePack/My Project · high confidence
Added new dialogue resources for TH07 resource pack
New dialogue CSV files have been added to the ResourcePack.TH07/Resources directory, introducing new conversational content and story segments for the game. These files define character interactions, including specific dialogue lines and metadata for scenes involving characters such as the player, enemies, and specific entities like Haniyasushin Keiki.
ResourcePack.TH07/Resources · high confidence
Initial application shell and core UI screens for TH07
This change introduces the foundational application structure and user interface screens for the TH07 game module. It adds the WPF application entry point (Application.xaml/vb) which handles startup and resource loading, and a Launcher window allowing users to select display mode (fullscreen/windowed) and character (Reimu/Marisa). The main window (MainWindow.xaml/vb) provides the game rendering area, FPS counter, and keyboard input handling. Additionally, it implements the core navigation screens: TitlePage (with Start, Replay, and Quit options), PausePage, ClearPage, and FailPage, each containing specific logic for game state transitions, replay saving/loading, and resource management.
TH07 · high confidence
Initial project release with .NET 10 migration and embedded platform support
The repository has been initialized with the AgSTG project, a VB-based STG game engine that has been migrated to the .NET 10 platform to improve performance. The solution now includes a new example project based on Touhou Youyoumu (April Fools version) covering all six stages, replacing the previous Touhou Kishinju example. The project structure has been reorganized to separate core classes and add a control library, and it now supports embedded platforms via a dedicated branch while continuing to release Windows versions in the main branch.
(repo-wide) · high confidence
Initial release of the AgSTG shoot-'em-up engine with dialogue and boss UI
This commit introduces the core AgSTG application, establishing the foundational game engine and user interface. It adds a dialogue system allowing for character interactions with speaker identification and illustration support, as well as a boss UI component that displays the boss name and remaining spell-card count with animated star indicators. The update also includes the CardLabel for displaying spell-card names and scores, an HPBar for health visualization, and the base GameObject class which serves as the parent for all game entities like bullets and enemies.
AgSTG · high confidence
Introduction of AgSTG.Controls library with keyboard-driven UI components
A new control library has been added to the project, providing a set of keyboard-operated UI components including a base Control class, a Page container with activation events, a GamePage layout for the main game area, a Button with sound effects, and a GroupBox for managing button selection. This change introduces the structural foundation for the game's user interface, enabling keyboard navigation and interaction within the application.
AgSTG.Controls · high confidence
New core modules for replay recording and high-precision timing
The AgSTG.Core library now includes dedicated classes to support game replay functionality and precise frame timing. ReplayFile and Replay handle the serialization and deserialization of stage data (including property and key states) to and from binary files, while KeyState manages the encoding of input actions into a compact byte format. Additionally, MediaTimer provides a high-precision, asynchronous timer that executes workloads at a specified TPS and exposes the time taken per tick (MSPT), enabling stable game loops and performance monitoring.
AgSTG.Core · high confidence
Behavioural changes
Added application manifest files for Visual Basic projects
The application manifest files (Application.myapp) have been added for the ResourcePack.TH07, Stage6, and TH07 projects. These files define the application entry point (Form1), enable visual styles, and configure the application to allow multiple instances and save settings on exit.
ResourcePack.TH07/My Project, Stage6/My Project, TH07/My Project · high confidence
New ResourcePack with expanded bullet assets and ManagedBass integration
The ResourcePack module has been replaced with a new implementation that loads game assets (textures, icons, enemy sprites) via a strongly-typed resource manager and exposes them as ImageBrushes for rendering. This update introduces support for two new bullet types ('large jade' and 'point弹') by adding corresponding asset arrays and resource entries. Additionally, the audio subsystem has been switched to use the ManagedBass library, as indicated by the new import statement in the code.
ResourcePack · high confidence
Dependencies
Migration to .NET 10 and adoption of ManagedBass audio library
The project has been upgraded to target .NET 10 (net10.0) across its core, controls, and application components, replacing the previous framework version. Additionally, the audio subsystem has been switched to use the ManagedBass library, with the native bass.dll binary now automatically copied to the output directory to ensure runtime availability.
(dependencies) · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Score
- CAI 43 → 43 (+0.1)
- Rubric changed (rubric-2026.09.11 → rubric-2026.09.18) — scores are not directly comparable.
Lenses
- Code Health 82 → 82 (+0.0)
- Architecture 98 → 98 (+0.9)
- Maturity 31 → 31 (+0.2)
- Readiness 24 → 24 (+0.0)
- Security 100 → 100 (+0.0)
Resolved (9)
- Documentation: no installation or build instructions (README.md)
- Documentation: no usage examples (README.md)
- Hotspot: AgSTG/Bullet.vb (AgSTG/Bullet.vb)
- Hotspot: AgSTG/Item.vb (AgSTG/Item.vb)
- Hotspot: AgSTG/Player.vb (AgSTG/Player.vb)
- Hotspot: Stage1/Stage1.vb (Stage1/Stage1.vb)
- Hotspot: Stage3/Stage3.vb (Stage3/Stage3.vb)
- Hotspot: Stage4/Stage4.vb (Stage4/Stage4.vb)
- Hotspot: Stage5/Stage5.vb (Stage5/Stage5.vb)
New (3)
- Documentation: no installation or build instructions (Readme.md)
- Documentation: no project overview (Readme.md)
- Documentation: no usage examples (Readme.md)
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
MC-AGANG/AgSTG was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 1 October 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit fd0e4f497abde47f9fdf2ea8218146d91ad83fe7 — the exact code this score is about.
- Scored under rubric-2026.09.18 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-e569280dd5e2.