The Tech Pulse

September 27, 202516 min read
Tags
  • Code
  • Vscode
  • Gpt
  • Gpt5
  • Codex
  • Demo
  • Visualstudiocode
  • Softwaredeveloper
  • Developer
  • Developercommunity
  • Microsoft
Share

VS Code - Let it Cook with GPT-5-Codex

One Sentence Summary:

The video showcases real-time AI-powered game development using OpenAI models within VS Code, emphasizing workflows and model capabilities.

Main Points:

  1. Introduction to new AI models like GPT-5 Codeex and their improvements.
  2. Using GPT-5 Codeex for coding workflows in VS Code enhances code quality.
  3. Models trained on real-world tasks excel at refactoring, bug detection, and code review.
  4. The importance of planning and breaking down ideas before coding with AI assistance.
  5. Demonstration of building a 2D game prototype with AI-generated levels and mechanics.
  6. The role of prompts, prompt tuning, and model selection in AI-driven development.
  7. UX considerations for AI models, including thinking traces and interaction design.
  8. Managing multiple AI chat sessions and integrating version control for projects.
  9. The potential of AI to automate game testing and level design iteration.
  10. Future features like subtasks, parallel workflows, and better memory management.

Takeaways:

  1. Use structured planning and breaking down tasks to maximize AI productivity.
  2. Experiment with different models and prompt configurations for optimal results.
  3. Incorporate AI-generated code and assets early to validate core game mechanics.
  4. Manage chat sessions and version control to streamline iterative development.
  5. Provide user feedback to improve AI UX, such as auto-expanding or collapsing responses.


Summary

This transcript demonstrates a live “vibe-coding” workflow in VS Code Insiders using GitHub Copilot Chat (Agent mode) with the GPT-5 model family—specifically GPT-5 Codex—to ideate, plan, and implement a small web game (“PinkPuff Quest”, a Jigglypuff-inspired 2D side-scroller). It highlights practical model selection (reasoning vs mini), emergent UX behaviors (thinking traces, to-dos, chat sessions), and a real end-to-end loop: prompt → generate files → run dev server → playtest → iterate → commit → publish to GitHub → delegate issues to coding agent.

Primary technologies/tools: VS Code Insiders, GitHub Copilot Chat (Ask/Edit/Agent modes), GPT-5, GPT-5 Codex, Three.js (orthographic 2D-like), Node.js tooling (npm run dev, npm run build), GitHub Pull Requests extension, Copilot coding agent (cloud), and project hygiene files like .gitignore and copilot-instructions.md.


Detailed Step-by-Step Breakdown

1) Model selection & environment setup inside VS Code

  1. Open VS Code Insiders (they explicitly use insiders build).
  2. Use GitHub Copilot Chat and choose a model:
    • GPT-5 (reasoning) for ideation + planning
    • GPT-5 Codex for agentic coding workflows (multi-file edits, refactors, implementation)
  3. Enable/inspect “thinking” output:
    • In Settings, search thinking style (experimental).
    • Options shown include behaviors like expanded, collapsed, fixed scrolling, etc.
    • Motivation: improves perceived responsiveness by showing the model is “thinking” instead of just “working”.

Implementation detail:

  • They discuss two latency concepts:
    • Time to first token
    • Time to first effective token (when user sees something meaningful)

2) Create a game idea doc with a reasoning model

  1. In Copilot Chat, use GPT-5 (reasoning model).
  2. Prompt it to generate an idea doc (game concept, mechanics, audience, tone).
  3. Review the generated idea and prune scope if it’s too big.

Key output types created during planning:

  • Idea doc (high-level concept: Jigglypuff side-scroller, sleep mechanics, enemies, collectibles)
  • Next they ask for a simplified MVP.

3) Scope down to an MVP

  1. Ask the model to produce an MVP spec:
    • Single level
    • Two enemy types
    • No custom art (simple geometric placeholders)
    • No audio
  2. Save that into MVP.md.

MVP details mentioned (examples):

  • Basic movement: left/right, jump
  • Signature ability: sleep pulse that converts enemies into temporary safe states/platforms
  • Simple HUD (lives/collectibles)
  • Basic level endpoint

4) Decide tech stack & write a technical plan

  1. Ask the model to recommend a stack before generating the technical doc.
  2. Model recommends:
    • Three.js with an orthographic camera to emulate 2D while using 3D rendering.
    • Optional fallback: 2D canvas
    • UI/HUD: HTML overlay (instead of doing HUD in Three.js)
  3. Then ask it to write a technical plan in technical.md.

Pitfall shown: The model “overspecifies” (generates lots of files/tests/architecture).

  • They respond: “keep it simple” and explicitly avoid unnecessary complexity (e.g., no tests).

5) Switch to GPT-5 Codex and implement the game (“slash implement” style)

  1. Start a new chat for implementation (important workflow point):
    • Avoid re-sending huge prior chat context.
    • Provide the markdown docs (MVP.md, technical.md) as the key artifacts.
  2. Use GPT-5 Codex in Agent mode.
  3. It generates many files and scaffolds the game.

Observed behavior of GPT-5 Codex in VS Code:

  • Less verbose step-by-step narration; more “just do it”.
  • Takes longer per turn but produces larger coherent chunks.
  • Often yields fewer “Problems” after edits (claimed benefit vs other models).

6) Run and playtest locally

They repeatedly run typical Node-based dev workflows:

  • npm run dev (to start dev server)
  • npm run build (to compile / validate build)

They also used “let’s run it” as a natural-language prompt, but practically it maps to the commands above.

Gameplay controls implemented:

  • Move: Arrow keys / A/D
  • Jump: Space / Up
  • Sleep ability: Shift or X
  • HUD shows: lives, sleep cooldown/charge, collectibles (“notes/stars”)

Immediate iteration found via playtesting:

  • Jump behavior issues (wanted double jump, fixed movement/jump logic)
  • Spacing/geometry and collision behavior (collectibles stuck in geometry)
  • End-of-level logic broken after adding multi-level system

7) Evolve MVP into multi-level + boss + pickups

They ask for:

  • “Implement the next few levels”
  • Add a “boss mode”
  • Add health/life pickups

Codex refactors:

  • Introduces a levels system
  • Adds pickups (hearts/health)
  • Adds checkpoint logic per level
  • Adds a cooldown for sleep (prevents spam)
  • Updates README documentation as it changes implementation

Notable engineering point: Codex goes back and updates docs to keep them aligned with code (avoids “plan drift”).


8) Source control + GitHub integration

  1. They publish repository to GitHub (named PinkPuff Quest).
  2. They create .gitignore (delegated to a smaller model / separate chat; good use of parallelism).
  3. They note a real pitfall:
    • Do not commit mid-agent turn.
    • They committed while Codex was still editing, causing git status confusion (agent started inspecting tracked/untracked changes unexpectedly).

GitHub Copilot coding agent enablement:

  • After repo is on GitHub, VS Code shows “delegate to coding agent” UI.
  • Requires GitHub Pull Requests extension for some agent/session views.

9) Multi-chat workflow & parallelization tactics

They describe multiple parallel patterns:

  • Open multiple chats via Chat Sessions view
  • Use one chat running in Agent mode, another in Ask mode for ideation
  • You can emulate Ask/Edit/Agent by removing tools (agent has all tools)

They also discuss future concepts:

  • Subtasks / parallel execution inside a single “turn”
  • Better integration with git worktrees (one chat per branch)

Key Technical Details

Tools, products, and extensions explicitly mentioned

  • VS Code Insiders
  • GitHub Copilot Chat
    • Modes: Ask, Edit, Agent
    • “Auto” model routing (capacity/performance oriented)
  • Models:
    • GPT-5
    • GPT-5 mini
    • GPT-5 Codex (optimized for agentic coding, refactoring, code review)
    • Mentions Claude Sonnet 4 (comparison point)
  • Extensions/UI:
    • VS Code Pets
    • VS Code Pokemon extension
    • Catppuccin icons (they call it “Cappuccino icons”, but context strongly implies Catppuccin icon theme)
    • GitHub Pull Requests and Issues extension (required for some agent/session features)

Game tech choices & architecture elements

  • Rendering: Three.js with orthographic camera (2D feel)
  • UI: HTML overlay HUD
  • Data structures implied:
    • Level definitions (platform geometry, enemy spawn points, pickups)
    • Enemy “kinds” (e.g., patrol/bob behavior)
    • Collectibles (“notes/stars”) + goal/end gate
  • Controls & mechanics:
    • Sleep pulse ability with cooldown
    • Lives/health and hearts as pickups
    • Checkpoint per level
    • “Coyote time” / jump forgiveness (mentioned)

Commands and workflows shown

  • npm run dev
  • npm run build
  • git status-driven agent behavior (Codex invoked it when it detected unexpected state)

Pro Tips

  • Use reasoning models (GPT-5) for:
    • ideation
    • MVP scoping
    • technical planning
  • Use agentic coding models (GPT-5 Codex) for:
    • multi-file implementation
    • refactoring
    • code review-like improvements
  • Start a new chat per feature and feed it the current specs (e.g., MVP.md, technical.md) instead of dragging entire chat history.
  • Add explicit instruction like “keep it simple” / “no tests” when you want a prototype; otherwise models may over-engineer.
  • While an agent run is in progress, parallelize safe tasks:
    • e.g., generate .gitignore in another chat using a mini model.
  • Keep a “queue” of next tasks in a file like ideas/next.txt if the UI doesn’t support prompt queuing.
  • Enable “thinking” UI to reduce “it’s slow” feeling and improve steering (you can stop earlier if it’s going off-rails).

Potential Limitations/Warnings

  • Mid-turn commits break agent assumptions: committing while Codex is still editing can cause the agent to get stuck doing git status reconciliation.
  • Overspecification risk: planning prompts can lead to too many files/abstractions. Counter with explicit constraints (prototype-level).
  • UX quirks observed in insiders:
    • To-do rendering / old to-dos appearing in a new session
    • Weird overlay/refresh behavior in chat UI
    • Thinking panels sometimes expand/collapse in undesirable ways
  • Testing games is hard: they explicitly question how to automate tests for gameplay; most validation is manual playtesting. (Some unit tests are possible for pure logic, but “feel” requires humans.)
  • Dependency on extensions: some session/agent features require GitHub Pull Requests extension; without it the view may not appear.

Assumption: Standard/Typical Setup (not specified in transcript)

  • A local environment with:
    • Node.js + npm
    • A web build toolchain (likely Vite or similar, implied by npm run dev)
    • Browser for playtesting
  • A GitHub-authenticated VS Code environment for:
    • publishing repo
    • enabling coding agent delegation

Recommended Follow-Up Resources

  • Create a project-level instruction file:
    • copilot-instructions.md (they explicitly intend to generate it)
    • Include constraints like “prototype first, minimal files, no tests unless asked”
  • Convert feature ideas into GitHub Issues and delegate to:
    • GitHub Copilot coding agent (cloud) for background PR creation
  • Add lightweight “game QA” tooling:
    • An in-game debug overlay (FPS, collision boxes)
    • Deterministic level seeds for reproducibility
  • If you want automation:\
    • Scripted input playback (keyboard events) + snapshotting game state for regression checks (they discussed this conceptually)


Summary

Below is a reproducible spec → tasks → GitHub issues breakdown based strictly on what’s described in the transcript, plus an implied minimal file tree that matches the “Three.js + HTML HUD + levels data + MVP docs” workflow they built.


Detailed Step-by-Step Breakdown

1) Implied minimal file tree (what you’d expect in the repo)

This is “implied” from the transcript (they mention Three.js, HTML HUD, levels, README, MVP.md, technical.md, .gitignore, and an ideas/next.txt queue). Names may vary, but this is the smallest clean structure consistent with what they described.

pinkpuff-quest/
  README.md
  MVP.md
  technical.md
  copilot-instructions.md          # they planned to add this
  .gitignore

  ideas/
    next.txt                       # “queue” of next ideas

  public/
    index.html                      # or equivalent entrypoint

  src/
    main.ts                         # bootstraps the game (or main.js)
    game/
      Game.ts                       # core loop + orchestration
      input.ts                      # keyboard mapping: arrows/A-D, jump, sleep
      hud.ts                        # HTML overlay HUD (lives, cooldown, collectibles)
      physics.ts                    # movement, collisions, coyote-time, jump caps
      entities/
        Player.ts
        Enemy.ts
        Pickup.ts
        Collectible.ts              # “notes/stars”
      levels/
        index.ts                    # exports levels list + helpers
        LevelTypes.ts               # types for platforms/spawns/pickups
        level1.ts                   # “Dreamy Cliffs” / first level
        level2.ts
        level3.ts
        boss.ts                     # boss arena / boss logic (if implemented)
      rendering/
        renderer.ts                 # Three.js renderer/camera setup (orthographic)
        sprites.ts                  # placeholder geometry/materials
    styles/
      hud.css                       # minimal HUD styling

2) Spec → tasks decomposition (what to build next, in order)

This maps to the transcript’s evolution:

  1. MVP foundation
    • One level
    • Two enemy archetypes
    • No custom art/audio
    • Basic movement + jump + sleep pulse
    • HUD: lives + sleep indicator + collectibles
    • End gate / win condition
  2. Iteration pass
    • Fix jump behavior (double jump / jump cap / coyote time tuning)
    • Ensure collectibles don’t spawn inside geometry
    • Make end-of-level logic reliable
  3. Content expansion
    • Add multiple levels
    • Add checkpoints per level
    • Add health pickups (hearts)
    • Add boss mode
  4. Repo hygiene + workflow
    • .gitignore
    • copilot-instructions.md
    • “ideas queue” file
    • Issues-based workflow so the coding agent can take tasks

Key Technical Details

Core mechanics inferred from transcript

  • Movement: left/right + jump (they later want double jump)
  • Coyote time: jump forgiveness (explicitly mentioned)
  • Sleep pulse: converts enemies into temporary safe state/platform
  • HUD: lives/health + sleep cooldown/charge + collectible counter
  • Levels system: platforms + enemy spawns + pickups + collectibles
  • Checkpoints: restart at checkpoint instead of full restart
  • Build/run
    • npm run dev
    • npm run build

Pro Tips

  • Cut issues so each one is small + testable by manually playing for 30–60 seconds.
  • Add “acceptance criteria” that is observable in-game (not just “refactor”).
  • Avoid committing while an agent is mid-turn; finish turn → then commit.

Potential Limitations/Warnings

  • File names and exact folder layout may differ from the repo they generated; the tree above is a clean minimal structure consistent with the transcript.
  • “Boss mode” is underspecified in the transcript; expect at least one design pass before implementing mechanics.
  • Automated testing is not covered; assume manual playtesting for gameplay behavior.

Recommended Follow-Up Resources

  • Convert each issue below into GitHub Issues and delegate them to the Copilot coding agent once repo is published.
  • Keep ideas/next.txt updated and periodically convert it into issues.

GitHub Issues Pack (titles + descriptions + acceptance criteria)

Below are ready-to-paste issues. I’m listing them in a good execution order.


1) Fix end-of-level trigger (multi-level progression)

Type: Bug Description: End-of-level / gate progression is inconsistent after introducing multiple levels. Ensure reaching the goal reliably advances to the next level. Acceptance Criteria:

  • When the player collides with the level end gate/goal, the level completes within 0.5s.
  • The next level loads (different platform layout/spawns).
  • HUD resets only what’s intended (e.g., collectibles per level, not total lives unless designed).
  • If final level is complete, show a simple “You Win” screen and a restart button.

2) Prevent collectibles (“notes/stars”) from spawning inside geometry

Type: Bug Description: Collectibles sometimes overlap platforms/walls or appear unreachable. Add spawn validation or adjust placement. Acceptance Criteria:

  • On each level load, all collectibles are reachable from at least one walkable platform (basic heuristic is OK).
  • No collectible intersects any platform collider bounding box.
  • If a collectible is invalid, it is repositioned automatically to a nearby valid location.

3) Add double-jump with clear tuning parameters

Type: Feature Description: Implement double jump; keep parameters configurable. Acceptance Criteria:

  • Player can jump once in air after leaving ground.
  • Double jump resets upon landing.
  • Jump state is stable with coyote time (no triple jumps).
  • Expose tuning constants in one place (e.g., MAX_JUMPS=2, COYOTE_MS=120, etc.).

4) Polish jump feel: coyote time + jump buffer

Type: Enhancement Description: Fine-tune jump responsiveness (coyote time already exists; add jump buffer if missing). Acceptance Criteria:

  • If jump is pressed up to X ms before landing, the jump triggers on landing (jump buffer).
  • Coyote time works reliably (press jump shortly after leaving ledge still jumps).
  • No “sticky” mid-air jump triggers beyond buffer window.

5) Ensure sleep pulse has consistent cooldown + visual HUD feedback

Type: Enhancement Description: Sleep pulse exists with cooldown; ensure HUD reflects cooldown and ability availability. Acceptance Criteria:

  • HUD shows ability available/unavailable state.
  • Cooldown cannot be bypassed by spamming inputs.
  • Cooldown timing matches HUD (no desync).
  • Sleep pulse radius/impact is consistent per level.

6) Enemy archetypes: patrol + bob (two clear behaviors)

Type: Feature Description: Standardize two enemy behaviors mentioned: “patrolling” and “bobbing” with simple parameters. Acceptance Criteria:

  • Patrol enemies move between two points at a configurable speed.
  • Bob enemies oscillate vertically with configurable amplitude/period.
  • Both respond to sleep pulse (enter sleep state; become safe platform/harmless).

7) Implement health pickups (hearts) with cap and feedback

Type: Feature Description: Hearts restore health/lives depending on game system. Add pickup feedback. Acceptance Criteria:

  • Pickups are collectible; removed after collecting.
  • Player health/lives increases but does not exceed a max cap.
  • HUD updates immediately.
  • Pickup cannot spawn inside geometry (reuse validation from Issue #2).

8) Add checkpoints per level

Type: Feature Description: Add checkpoint positions. On death, respawn at latest checkpoint. Acceptance Criteria:

  • Checkpoint activates when player touches it (visual indicator).
  • On death, respawn at last activated checkpoint with brief invulnerability (e.g., 1s blinking).
  • If no checkpoint activated, respawn at level start.

9) Level system cleanup: remove “legacy single level” paths

Type: Refactor Description: The code has “legacy single level” handling and new levels system; consolidate to one clean path. Acceptance Criteria:

  • Only one level loading pipeline exists.
  • No unused “legacy” level references remain.
  • README updated to reflect current structure.

10) Add 3–5 levels with distinct layouts and difficulty ramp

Type: Content Description: Create multiple level definitions with increasing complexity. Acceptance Criteria:

  • At least 3 unique levels exist (platforms, enemy placement, collectibles).
  • Difficulty ramps by either enemy count, platform gaps, or timing challenges.
  • Completing final level shows win screen.

11) Boss mode: simple boss encounter (MVP boss)

Type: Feature Description: Add one boss level: a single enemy with predictable pattern and a win condition. Acceptance Criteria:

  • Boss has at least 2 attack patterns (e.g., charge + projectile OR stomp + minion spawn).
  • Player can win by meeting a clear condition (e.g., land N hits).
  • On win, show “Boss Defeated” and proceed/end.

12) Add .gitignore appropriate for Node + Three.js web project

Type: Chore Description: Add .gitignore so builds/deps aren’t committed. Acceptance Criteria:

  • Ignores node_modules/, build output (dist/ or equivalent), logs, OS junk.
  • Repo status is clean after install/build.

13) Add copilot-instructions.md for the project

Type: Chore Description: Add a project-level Copilot instructions file to keep changes consistent. Acceptance Criteria:

  • Includes: “keep it simple”, no tests unless requested, TypeScript preference, file structure expectations, how to run, coding style, and gameplay constraints.
  • Mentions not to commit mid-agent turn.
  • Mentions using existing level data types and spawn validation.

14) Add ideas/next.txt and document the “queue” workflow

Type: Chore Description: Add a lightweight “next ideas” file and explain the workflow in README. Acceptance Criteria:

  • ideas/next.txt exists with a few example next tasks.
  • README explains how to convert ideas into issues and delegate.

Related reading

Get New Posts

Follow on your preferred channel for new articles, notes, and experiments.

Related Posts