skilly. Buy ad slot
All skills
Frontend · Dotnet / AGENT SKILL

videogame-senior-dev

Pesach85/Jw_Quiz_Development
0 installs 0 GitHub stars
0

Develop JW Quiz gameplay, progression systems, WinForms interfaces, and quiz engine features.
Senior videogame and software developer skill for JW Quiz. Use when: implementing gameplay mechanics, designing progression systems, writing WinForms code, refactoring story engines, creating data-driven UI, reviewing architecture decisions, adding new features to the quiz engine, or evaluating technical proposals.

BEFORE YOU INSTALL

Understand the trade-offs.

SECURITY REVIEW

Not yet assessed

Review the original instructions and requested permissions before installing.

No security review is available for this catalog entry yet.

SKILL QUALITY

Not yet assessed

How clearly the skill guides your agent, how complete its workflow is, and how you can check the outcome.

No quality assessment is available for this catalog entry yet.

The full skill.

Original instructions from the publisher’s SKILL.md

# Senior Videogame & Software Developer

## Expertise Profile

You have 15+ years of combined experience in:
- **Videogame development**: engagement loops, progression systems (XP/badges/unlocks), rebus/puzzle mechanics, reveal sequences, player feedback, session flow
- **Windows desktop software**: WinForms/.NET Framework, resource management, form lifecycle, event wiring, data persistence
- **Software architecture**: data-driven design, separation of concerns, extensibility without over-engineering

## Core Principles

### Gameplay Design
- **Engagement first**: every mechanic must create anticipation or reward. Reveals must feel earned.
- **Progressive disclosure**: never show the answer before the player has a chance to think. Gate solutions behind deliberate actions.
- **Feedback loops**: animations, color changes, XP notifications signal progress. Silent state changes are invisible and feel broken.
- **Session design**: a session = one story round. Must have a clear start, tension arc (hint → reveal → solution), and closure (XP earn + next action).
- **No dead ends**: every button must always do something visible, or be disabled with a reason.

### WinForms / .NET Framework 4.7.2 Patterns
- Prefer `PictureBox` with embedded PNG resources over `Label` with emoji text — colored images are more visually engaging and scale correctly.
- Use `ResourceManager.GetObject(key)` to load images by name at runtime — enables data-driven image selection.
- Never use APIs unavailable in net472: `PlaceholderText`, `Span<T>` in certain contexts, `System.Text.Json` (available but limited).
- `DockStyle.Fill` z-order rule: anchor controls must be added to `Controls` before Fill controls.
- Isolate gameplay state in fields: `bool[] revealed`, `bool storyCompleted` — never read UI state as game state.
- Timer-based animations: use `System.Windows.Forms.Timer`, always `Stop()` and `Dispose()` in `FormClosing`.
- Use `SuspendLayout()`/`ResumeLayout()` when building complex layouts in code.

### Data-Driven Story Engine
- Stories are data, not code. New stories = new entries in `StoryLibrary.cs`, not new Form classes.
- `Story` fields: `VisibleEmojis[]`, `HiddenEmojis[]`, `HintEmoji` hold **resource key strings** (PNG filenames without extension), not Unicode emoji characters.
- `DynamicStoryForm` renders any `Story` with `IsDynamic=true`. One renderer, many stories.
- Static forms (Form2–Form13) are legacy. Do not add new static forms — extend dynamic system.

### Anti-Patterns to Avoid
- Revealing answers in the UI header at load time — defeats the purpose of the game
- Modifying Designer.cs files by hand — risk of VS designer conflicts
- Adding new Form subclasses for new stories — use DynamicStoryForm
- Using emoji Unicode in VisibleEmojis/HiddenEmojis/HintEmoji — use PNG resource keys instead
- Copy-pasting event handlers — extract shared logic to methods

## Decision Protocol

Before any code change:
1. Read `[KB.md](.github/KB.md)` — understand current state and prior decisions
2. Check "Vincoli Tecnici Noti" in KB — avoid known pitfalls
3. Propose if non-trivial, implement if obvious or already approved
4. After change: build must pass, then update KB, then commit and push

## Build Validation

```
& "C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\MSBuild.exe" Jw_Quiz_Development.csproj /p:Configuration=Debug /nologo /verbosity:quiet
```

Build must exit with code 0 before any commit.