スキル一覧に戻る
CookSaw

pixel-art-game-builder

by CookSaw

0🍴 0📅 2026年1月22日
GitHubで見るManusで実行

SKILL.md


name: pixel-art-game-builder description: > Expert skill for building pixel art idle/incremental games with procedural sprite generation, React/TypeScript/Zustand architecture, and contemplative game design. Use when creating pixel art games, implementing idle game mechanics, generating procedural sprites via Canvas API, building collection-based games, or implementing incremental game economies. Triggers on requests for pixel art, idle games, sprite generation, incremental games, collection games, or contemplative game experiences.

Pixel Art Game Builder

Expert guide for architecting and building pixel art idle/incremental games with procedural sprite generation.

Quick Navigation

NeedGo to
Start a new projectQuick Start
Copy working codetemplates/
Understand patternspatterns/
See full exampleexamples/
Deep referencereferences/
CSS/Tailwind setupassets/

Core Design Philosophy

Three pillars: Minimal. Luminous. Contemplative.

  • Constraint = Creativity: Limited palette (12 colors), low resolution (16×16 sprites)
  • Space speaks: Dark backgrounds, few elements = immensity feeling
  • Light guides: Important elements glow (higher rarities shine more)
  • Movement breathes: Slow, organic animations (minimum 500ms cycles)
  • Zero pressure: NO timers, NO deadlines, NO FOMO, NO negative messages

Quick Start

npm create vite@latest my-idle-game -- --template react-ts
cd my-idle-game
npm install zustand immer
npm install -D tailwindcss postcss autoprefixer
npx tailwindcss init -p

Then copy files from assets/ for CSS and Tailwind config.

Critical Implementation Rules

Pixel Art Sprites (16×16)

// MANDATORY for pixel-perfect rendering
ctx.imageSmoothingEnabled = false;
/* CSS for any sprite element */
.sprite { image-rendering: pixelated; }
  • 4 colors max per sprite: base, highlight, shadow, outline
  • 12×12 usable zone (2px margin for glow effects)
  • Scale 4× when displaying (16×16 → 64×64)
  • NO antialiasing, NO gradients

Color Palette (12 colors only)

const PALETTE = {
  deepBlack: '#0a0a0f',      // Main background
  spaceGray: '#1a1a2e',      // Panels
  borderGray: '#2d2d44',     // Borders
  neonCyan: '#00fff5',       // Primary actions, RARE
  softMagenta: '#ff6bcb',    // Notifications, EPIC
  cosmicGold: '#ffd93d',     // Rewards, LEGENDARY
  validGreen: '#39ff14',     // Success, UNCOMMON
  alertRed: '#ff4757',       // Alerts (rare use)
  mysteryPurple: '#6c5ce7',  // Hidden/secret
  mainWhite: '#e8e8e8',      // Body text, COMMON
  secondaryGray: '#a0a0a0',  // Disabled
  interactiveCyan: '#7fefef' // Links
};

const RARITY_COLORS = {
  common: PALETTE.secondaryGray,
  uncommon: PALETTE.validGreen,
  rare: PALETTE.neonCyan,
  epic: PALETTE.softMagenta,
  legendary: PALETTE.cosmicGold,
};

Game Loop Pattern (100ms tick)

useEffect(() => {
  const interval = setInterval(() => {
    const now = Date.now();
    const delta = (now - lastTick) / 1000;

    // Update resources
    addCredits(incomePerSecond * delta);
    regenerateEnergy(delta);

    setLastTick(now);
  }, 100);
  return () => clearInterval(interval);
}, [incomePerSecond, lastTick]);

State Management (Zustand + Immer)

import { create } from 'zustand';
import { persist } from 'zustand/middleware';
import { immer } from 'zustand/middleware/immer';

const useGameStore = create<GameState>()(
  persist(
    immer((set, get) => ({
      credits: 0,
      energy: 100,
      addCredits: (amount) => set((s) => { s.credits += amount }),
    })),
    { name: 'game-save' }
  )
);

Templates (Copy & Use)

Ready-to-use code in templates/:

TemplateDescription
game-loop.tsxHook for 100ms game tick with delta time
save-system.tsZustand persist pattern with migration
progression.tsScaling formulas (exponential costs, diminishing returns)
sprite-renderer.tsxCanvas component with pixel-perfect rendering

Patterns (Understand & Adapt)

Conceptual guides in patterns/:

PatternDescription
resource-system.mdStructure currencies, caps, regeneration
upgrade-tree.mdLinear upgrades, skill trees, prestige unlocks
prestige-loop.mdReset mechanics, meta-progression, permanent bonuses
procedural-sprites.mdGenerate varied sprites from seeds

Examples

Working code in examples/:

ExampleDescription
minimal-idle-game.tsxComplete ~150 line idle game with resources, upgrades, save

Deep References

Detailed documentation in references/:

ReferenceWhen to use
architecture.mdFull project structure, types, stores
sprite-system.mdCanvas API, color derivation, caching
game-mechanics.mdEconomy, scanning, progression formulas
ui-patterns.mdComponents, layouts, animations
content-structure.mdData structure for items, sectors, upgrades

Design Pillars (Non-Negotiable)

  1. Immediate Clarity: Every button has text label, max 3 actions visible
  2. Progressive Depth: New content unlocks over time
  3. Emotional Collection: Every item has narrative description ≤140 chars
  4. Zero Pressure: NO timers, NO deadlines, NO FOMO
  5. Mobile First: Touch targets ≥44px, breakpoints 320/768/1024px

Writing Style

  • Voice: Calm, melancholic, subtle humor
  • Rules: ≤140 chars, NO "!", NO CAPS, NO imperatives

Templates:

  • Funny: "[Object]. [Absurd observation]. [Punchline]."
  • Tender: "[Object]. [Human detail]. [Universal truth]."
  • Weird: "[Object]. [Strange property]. [Acceptance]."

Performance Targets

MetricTarget
Bundle size<200KB gzipped
FPS idle≥30
Memory<100MB

DO's and DON'Ts

DO ✓

  • Pixel-perfect rendering (imageSmoothingEnabled = false)
  • 4-color sprites maximum
  • 12-color palette only
  • ≥44px touch targets
  • Cache generated sprites
  • Support reduced-motion

DON'T ✗

  • Antialiasing on sprites
  • Gradients in pixel art
  • Icon-only buttons
  • Stats in item descriptions
  • Timers or countdowns
  • Negative failure messages
  • Nested modals

スコア

総合スコア

50/100

リポジトリの品質指標に基づく評価

SKILL.md

SKILL.mdファイルが含まれている

+20
LICENSE

ライセンスが設定されている

0/10
説明文

100文字以上の説明がある

0/10
人気

GitHub Stars 100以上

0/15
最近の活動

3ヶ月以内に更新がある

0/10
フォーク

10回以上フォークされている

0/5
Issue管理

オープンIssueが50未満

+5
言語

プログラミング言語が設定されている

+5
タグ

1つ以上のタグが設定されている

0/5

レビュー

💬

レビュー機能は近日公開予定です