@iamnishankhan/opencode-kit-grok 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/cli.js +46 -0
- package/kit/.opencode/AGENTS.md +392 -0
- package/kit/.opencode/README.md +71 -0
- package/kit/.opencode/USAGE.md +405 -0
- package/kit/.opencode/agents/backend-specialist.md +278 -0
- package/kit/.opencode/agents/code-archaeologist.md +114 -0
- package/kit/.opencode/agents/database-architect.md +233 -0
- package/kit/.opencode/agents/debugger.md +234 -0
- package/kit/.opencode/agents/devops-engineer.md +252 -0
- package/kit/.opencode/agents/documentation-writer.md +111 -0
- package/kit/.opencode/agents/explorer-agent.md +83 -0
- package/kit/.opencode/agents/frontend-specialist.md +606 -0
- package/kit/.opencode/agents/game-developer.md +169 -0
- package/kit/.opencode/agents/mobile-developer.md +385 -0
- package/kit/.opencode/agents/orchestrator.md +213 -0
- package/kit/.opencode/agents/penetration-tester.md +197 -0
- package/kit/.opencode/agents/performance-optimizer.md +194 -0
- package/kit/.opencode/agents/product-manager.md +120 -0
- package/kit/.opencode/agents/product-owner.md +103 -0
- package/kit/.opencode/agents/project-planner.md +418 -0
- package/kit/.opencode/agents/qa-automation-engineer.md +113 -0
- package/kit/.opencode/agents/security-auditor.md +179 -0
- package/kit/.opencode/agents/seo-specialist.md +119 -0
- package/kit/.opencode/agents/test-engineer.md +169 -0
- package/kit/.opencode/commands/brainstorm.md +113 -0
- package/kit/.opencode/commands/coordinate.md +72 -0
- package/kit/.opencode/commands/create.md +63 -0
- package/kit/.opencode/commands/debug.md +102 -0
- package/kit/.opencode/commands/deploy.md +175 -0
- package/kit/.opencode/commands/enhance.md +62 -0
- package/kit/.opencode/commands/orchestrate.md +241 -0
- package/kit/.opencode/commands/plan.md +89 -0
- package/kit/.opencode/commands/preview.md +80 -0
- package/kit/.opencode/commands/remember.md +67 -0
- package/kit/.opencode/commands/status.md +86 -0
- package/kit/.opencode/commands/test.md +143 -0
- package/kit/.opencode/commands/verify.md +71 -0
- package/kit/.opencode/memory/MEMORY.md +6 -0
- package/kit/.opencode/memory/feedback-history.md +9 -0
- package/kit/.opencode/memory/project-conventions.md +16 -0
- package/kit/.opencode/memory/tech-decisions.md +10 -0
- package/kit/.opencode/memory/user-preferences.md +9 -0
- package/kit/.opencode/opencode.json +15 -0
- package/kit/.opencode/scripts/README.md +95 -0
- package/kit/.opencode/scripts/auto_preview.py +149 -0
- package/kit/.opencode/scripts/checklist.py +75 -0
- package/kit/.opencode/scripts/component_registry.py +238 -0
- package/kit/.opencode/scripts/dependency_graph.py +73 -0
- package/kit/.opencode/scripts/generate_manifest.py +44 -0
- package/kit/.opencode/scripts/session_manager.py +120 -0
- package/kit/.opencode/scripts/tests/test_toolkit.py +238 -0
- package/kit/.opencode/scripts/validate_kit.py +397 -0
- package/kit/.opencode/scripts/validation_runner.py +216 -0
- package/kit/.opencode/scripts/verify_all.py +85 -0
- package/kit/.opencode/skills/api-patterns/SKILL.md +83 -0
- package/kit/.opencode/skills/api-patterns/api-style.md +42 -0
- package/kit/.opencode/skills/api-patterns/auth.md +24 -0
- package/kit/.opencode/skills/api-patterns/documentation.md +26 -0
- package/kit/.opencode/skills/api-patterns/graphql.md +41 -0
- package/kit/.opencode/skills/api-patterns/rate-limiting.md +31 -0
- package/kit/.opencode/skills/api-patterns/response.md +37 -0
- package/kit/.opencode/skills/api-patterns/rest.md +40 -0
- package/kit/.opencode/skills/api-patterns/scripts/api_validator.py +211 -0
- package/kit/.opencode/skills/api-patterns/security-testing.md +122 -0
- package/kit/.opencode/skills/api-patterns/trpc.md +41 -0
- package/kit/.opencode/skills/api-patterns/versioning.md +22 -0
- package/kit/.opencode/skills/app-builder/SKILL.md +78 -0
- package/kit/.opencode/skills/app-builder/agent-coordination.md +71 -0
- package/kit/.opencode/skills/app-builder/feature-building.md +53 -0
- package/kit/.opencode/skills/app-builder/project-detection.md +45 -0
- package/kit/.opencode/skills/app-builder/scaffolding.md +110 -0
- package/kit/.opencode/skills/app-builder/tech-stack.md +41 -0
- package/kit/.opencode/skills/app-builder/templates/SKILL.md +39 -0
- package/kit/.opencode/skills/app-builder/templates/astro-static/TEMPLATE.md +78 -0
- package/kit/.opencode/skills/app-builder/templates/chrome-extension/TEMPLATE.md +96 -0
- package/kit/.opencode/skills/app-builder/templates/cli-tool/TEMPLATE.md +88 -0
- package/kit/.opencode/skills/app-builder/templates/electron-desktop/TEMPLATE.md +97 -0
- package/kit/.opencode/skills/app-builder/templates/express-api/TEMPLATE.md +89 -0
- package/kit/.opencode/skills/app-builder/templates/flutter-app/TEMPLATE.md +93 -0
- package/kit/.opencode/skills/app-builder/templates/monorepo-turborepo/TEMPLATE.md +97 -0
- package/kit/.opencode/skills/app-builder/templates/nextjs-fullstack/TEMPLATE.md +126 -0
- package/kit/.opencode/skills/app-builder/templates/nextjs-saas/TEMPLATE.md +125 -0
- package/kit/.opencode/skills/app-builder/templates/nextjs-static/TEMPLATE.md +174 -0
- package/kit/.opencode/skills/app-builder/templates/nuxt-app/TEMPLATE.md +127 -0
- package/kit/.opencode/skills/app-builder/templates/python-fastapi/TEMPLATE.md +94 -0
- package/kit/.opencode/skills/app-builder/templates/react-native-app/TEMPLATE.md +121 -0
- package/kit/.opencode/skills/architecture/SKILL.md +57 -0
- package/kit/.opencode/skills/architecture/context-discovery.md +43 -0
- package/kit/.opencode/skills/architecture/examples.md +94 -0
- package/kit/.opencode/skills/architecture/pattern-selection.md +68 -0
- package/kit/.opencode/skills/architecture/patterns-reference.md +50 -0
- package/kit/.opencode/skills/architecture/trade-off-analysis.md +77 -0
- package/kit/.opencode/skills/bash-linux/SKILL.md +201 -0
- package/kit/.opencode/skills/batch-operations/SKILL.md +105 -0
- package/kit/.opencode/skills/behavioral-modes/SKILL.md +253 -0
- package/kit/.opencode/skills/brainstorming/SKILL.md +178 -0
- package/kit/.opencode/skills/brainstorming/dynamic-questioning.md +350 -0
- package/kit/.opencode/skills/clean-code/SKILL.md +201 -0
- package/kit/.opencode/skills/code-review-checklist/SKILL.md +111 -0
- package/kit/.opencode/skills/code-review-graph/SKILL.md +305 -0
- package/kit/.opencode/skills/context-compression/SKILL.md +145 -0
- package/kit/.opencode/skills/coordinator-mode/SKILL.md +208 -0
- package/kit/.opencode/skills/database-design/SKILL.md +54 -0
- package/kit/.opencode/skills/database-design/database-selection.md +43 -0
- package/kit/.opencode/skills/database-design/indexing.md +39 -0
- package/kit/.opencode/skills/database-design/migrations.md +48 -0
- package/kit/.opencode/skills/database-design/optimization.md +36 -0
- package/kit/.opencode/skills/database-design/orm-selection.md +30 -0
- package/kit/.opencode/skills/database-design/schema-design.md +56 -0
- package/kit/.opencode/skills/database-design/scripts/schema_validator.py +172 -0
- package/kit/.opencode/skills/deployment-procedures/SKILL.md +243 -0
- package/kit/.opencode/skills/design-spec/SKILL.md +185 -0
- package/kit/.opencode/skills/design-spec/collection.md +106 -0
- package/kit/.opencode/skills/documentation-templates/SKILL.md +196 -0
- package/kit/.opencode/skills/frontend-architecture/SKILL.md +245 -0
- package/kit/.opencode/skills/frontend-design/SKILL.md +1222 -0
- package/kit/.opencode/skills/frontend-design/redesign.md +178 -0
- package/kit/.opencode/skills/frontend-design/scripts/accessibility_checker.py +145 -0
- package/kit/.opencode/skills/frontend-design/scripts/ux_audit.py +722 -0
- package/kit/.opencode/skills/frontend-design/style-brutalist.md +92 -0
- package/kit/.opencode/skills/frontend-design/style-minimalist.md +85 -0
- package/kit/.opencode/skills/game-development/2d-games/SKILL.md +118 -0
- package/kit/.opencode/skills/game-development/3d-games/SKILL.md +134 -0
- package/kit/.opencode/skills/game-development/SKILL.md +169 -0
- package/kit/.opencode/skills/game-development/game-art/SKILL.md +184 -0
- package/kit/.opencode/skills/game-development/game-audio/SKILL.md +189 -0
- package/kit/.opencode/skills/game-development/game-design/SKILL.md +128 -0
- package/kit/.opencode/skills/game-development/mobile-games/SKILL.md +107 -0
- package/kit/.opencode/skills/game-development/multiplayer/SKILL.md +131 -0
- package/kit/.opencode/skills/game-development/pc-games/SKILL.md +143 -0
- package/kit/.opencode/skills/game-development/vr-ar/SKILL.md +122 -0
- package/kit/.opencode/skills/game-development/web-games/SKILL.md +149 -0
- package/kit/.opencode/skills/geo-fundamentals/SKILL.md +158 -0
- package/kit/.opencode/skills/geo-fundamentals/scripts/geo_checker.py +273 -0
- package/kit/.opencode/skills/i18n-localization/SKILL.md +156 -0
- package/kit/.opencode/skills/i18n-localization/scripts/i18n_checker.py +223 -0
- package/kit/.opencode/skills/intelligent-routing/SKILL.md +337 -0
- package/kit/.opencode/skills/lint-and-validate/SKILL.md +47 -0
- package/kit/.opencode/skills/lint-and-validate/scripts/lint_runner.py +184 -0
- package/kit/.opencode/skills/lint-and-validate/scripts/type_coverage.py +245 -0
- package/kit/.opencode/skills/mcp-builder/SKILL.md +205 -0
- package/kit/.opencode/skills/memory-system/SKILL.md +181 -0
- package/kit/.opencode/skills/mobile-design/SKILL.md +396 -0
- package/kit/.opencode/skills/mobile-design/decision-trees.md +516 -0
- package/kit/.opencode/skills/mobile-design/mobile-backend.md +491 -0
- package/kit/.opencode/skills/mobile-design/mobile-color-system.md +420 -0
- package/kit/.opencode/skills/mobile-design/mobile-debugging.md +122 -0
- package/kit/.opencode/skills/mobile-design/mobile-design-thinking.md +357 -0
- package/kit/.opencode/skills/mobile-design/mobile-navigation.md +458 -0
- package/kit/.opencode/skills/mobile-design/mobile-performance.md +767 -0
- package/kit/.opencode/skills/mobile-design/mobile-testing.md +356 -0
- package/kit/.opencode/skills/mobile-design/mobile-typography.md +433 -0
- package/kit/.opencode/skills/mobile-design/platform-android.md +666 -0
- package/kit/.opencode/skills/mobile-design/platform-ios.md +561 -0
- package/kit/.opencode/skills/mobile-design/scripts/mobile_audit.py +670 -0
- package/kit/.opencode/skills/mobile-design/touch-psychology.md +537 -0
- package/kit/.opencode/skills/nextjs-react-expert/1-async-eliminating-waterfalls.md +351 -0
- package/kit/.opencode/skills/nextjs-react-expert/2-bundle-bundle-size-optimization.md +240 -0
- package/kit/.opencode/skills/nextjs-react-expert/3-server-server-side-performance.md +490 -0
- package/kit/.opencode/skills/nextjs-react-expert/4-client-client-side-data-fetching.md +264 -0
- package/kit/.opencode/skills/nextjs-react-expert/5-rerender-re-render-optimization.md +581 -0
- package/kit/.opencode/skills/nextjs-react-expert/6-rendering-rendering-performance.md +432 -0
- package/kit/.opencode/skills/nextjs-react-expert/7-js-javascript-performance.md +684 -0
- package/kit/.opencode/skills/nextjs-react-expert/8-advanced-advanced-patterns.md +150 -0
- package/kit/.opencode/skills/nextjs-react-expert/9-cache-components.md +103 -0
- package/kit/.opencode/skills/nextjs-react-expert/SKILL.md +293 -0
- package/kit/.opencode/skills/nextjs-react-expert/scripts/convert_rules.py +222 -0
- package/kit/.opencode/skills/nextjs-react-expert/scripts/react_performance_checker.py +281 -0
- package/kit/.opencode/skills/nodejs-best-practices/SKILL.md +336 -0
- package/kit/.opencode/skills/parallel-agents/SKILL.md +192 -0
- package/kit/.opencode/skills/performance-profiling/SKILL.md +145 -0
- package/kit/.opencode/skills/performance-profiling/scripts/bundle_analyzer.py +120 -0
- package/kit/.opencode/skills/performance-profiling/scripts/lighthouse_audit.py +108 -0
- package/kit/.opencode/skills/plan-writing/SKILL.md +153 -0
- package/kit/.opencode/skills/powershell-windows/SKILL.md +169 -0
- package/kit/.opencode/skills/python-patterns/SKILL.md +443 -0
- package/kit/.opencode/skills/red-team-tactics/SKILL.md +201 -0
- package/kit/.opencode/skills/rust-pro/SKILL.md +177 -0
- package/kit/.opencode/skills/seo-fundamentals/SKILL.md +131 -0
- package/kit/.opencode/skills/seo-fundamentals/scripts/seo_checker.py +219 -0
- package/kit/.opencode/skills/server-management/SKILL.md +163 -0
- package/kit/.opencode/skills/simplify-code/SKILL.md +131 -0
- package/kit/.opencode/skills/skillify/SKILL.md +115 -0
- package/kit/.opencode/skills/systematic-debugging/SKILL.md +111 -0
- package/kit/.opencode/skills/tailwind-patterns/SKILL.md +271 -0
- package/kit/.opencode/skills/tdd-workflow/SKILL.md +151 -0
- package/kit/.opencode/skills/testing-patterns/SKILL.md +180 -0
- package/kit/.opencode/skills/testing-patterns/scripts/test_runner.py +219 -0
- package/kit/.opencode/skills/verify-changes/SKILL.md +127 -0
- package/kit/.opencode/skills/vulnerability-scanner/SKILL.md +278 -0
- package/kit/.opencode/skills/vulnerability-scanner/checklists.md +124 -0
- package/kit/.opencode/skills/vulnerability-scanner/scripts/dependency_analyzer.py +144 -0
- package/kit/.opencode/skills/vulnerability-scanner/scripts/security_scan.py +410 -0
- package/kit/.opencode/skills/web-design-guidelines/SKILL.md +56 -0
- package/kit/.opencode/skills/webapp-testing/SKILL.md +189 -0
- package/kit/.opencode/skills/webapp-testing/scripts/playwright_runner.py +123 -0
- package/lib/init.js +61 -0
- package/package.json +21 -0
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
# Style: Industrial Brutalist
|
|
2
|
+
|
|
3
|
+
> Variant of [frontend-design](SKILL.md). Use when the brief calls for raw, terminal/industrial, data-heavy aesthetics.
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
# SKILL: Industrial Brutalism & Tactical Telemetry UI
|
|
7
|
+
|
|
8
|
+
## 1. Skill Meta
|
|
9
|
+
**Name:** Industrial Brutalism & Tactical Telemetry Interface Engineering
|
|
10
|
+
**Description:** Advanced proficiency in architecting web interfaces that synthesize mid-century Swiss Typographic design, industrial manufacturing manuals, and retro-futuristic aerospace/military terminal interfaces. This discipline requires absolute mastery over rigid modular grids, extreme typographic scale contrast, purely utilitarian color palettes, and the programmatic simulation of analog degradation (halftones, CRT scanlines, bitmap dithering). The objective is to construct digital environments that project raw functionality, mechanical precision, and high data density, deliberately discarding conventional consumer UI patterns.
|
|
11
|
+
|
|
12
|
+
## 2. Visual Archetypes
|
|
13
|
+
The design system operates by merging two distinct but highly compatible visual paradigms. **Pick ONE per project and commit to it. Do not alternate or mix both modes within the same interface.**
|
|
14
|
+
|
|
15
|
+
### 2.1 Swiss Industrial Print
|
|
16
|
+
Derived from 1960s corporate identity systems and heavy machinery blueprints.
|
|
17
|
+
* **Characteristics:** High-contrast light modes (newsprint/off-white substrates). Reliance on monolithic, heavy sans-serif typography. Unforgiving structural grids outlined by visible dividing lines. Aggressive, asymmetric use of negative space punctuated by oversized, viewport-bleeding numerals or letterforms. Heavy use of primary red as an alert/accent color.
|
|
18
|
+
|
|
19
|
+
### 2.2 Tactical Telemetry & CRT Terminal
|
|
20
|
+
Derived from classified military databases, legacy mainframes, and aerospace Heads-Up Displays (HUDs).
|
|
21
|
+
* **Characteristics:** Dark mode exclusivity. High-density tabular data presentation. Absolute dominance of monospaced typography. Integration of technical framing devices (ASCII brackets, crosshairs). Application of simulated hardware limitations (phosphor glow, scanlines, low bit-depth rendering).
|
|
22
|
+
|
|
23
|
+
## 3. Typographic Architecture
|
|
24
|
+
Typography is the primary structural and decorative infrastructure. Imagery is secondary. The system demands extreme variance in scale, weight, and spacing.
|
|
25
|
+
|
|
26
|
+
### 3.1 Macro-Typography (Structural Headers)
|
|
27
|
+
* **Classification:** Neo-Grotesque / Heavy Sans-Serif.
|
|
28
|
+
* **Optimal Web Fonts:** Neue Haas Grotesk (Black), Inter (Extra Bold/Black), Archivo Black, Roboto Flex (Heavy), Monument Extended.
|
|
29
|
+
* **Implementation Parameters:**
|
|
30
|
+
* **Scale:** Deployed at massive scales using fluid typography (e.g., `clamp(4rem, 10vw, 15rem)`).
|
|
31
|
+
* **Tracking (Letter-spacing):** Extremely tight, often negative (`-0.03em` to `-0.06em`), forcing glyphs to form solid architectural blocks.
|
|
32
|
+
* **Leading (Line-height):** Highly compressed (`0.85` to `0.95`).
|
|
33
|
+
* **Casing:** Exclusively uppercase for structural impact.
|
|
34
|
+
|
|
35
|
+
### 3.2 Micro-Typography (Data & Telemetry)
|
|
36
|
+
* **Classification:** Monospace / Technical Sans.
|
|
37
|
+
* **Optimal Web Fonts:** JetBrains Mono, IBM Plex Mono, Space Mono, VT323, Courier Prime.
|
|
38
|
+
* **Implementation Parameters:**
|
|
39
|
+
* **Scale:** Fixed and small (`10px` to `14px` / `0.7rem` to `0.875rem`).
|
|
40
|
+
* **Tracking:** Generous (`0.05em` to `0.1em`) to simulate mechanical typewriter spacing or terminal matrices.
|
|
41
|
+
* **Leading:** Standard to tight (`1.2` to `1.4`).
|
|
42
|
+
* **Casing:** Exclusively uppercase. Used for all metadata, navigation, unit IDs, and coordinates.
|
|
43
|
+
|
|
44
|
+
### 3.3 Textural Contrast (Artistic Disruption)
|
|
45
|
+
* **Classification:** High-Contrast Serif.
|
|
46
|
+
* **Optimal Web Fonts:** Playfair Display, EB Garamond, Times New Roman.
|
|
47
|
+
* **Implementation Parameters:** Used exceedingly sparingly. Must be subjected to heavy post-processing (halftone filters, 1-bit dithering) to degrade vector perfection and create textural juxtaposition against the clean sans-serifs.
|
|
48
|
+
|
|
49
|
+
## 4. Color System
|
|
50
|
+
The color architecture is uncompromising. Gradients, soft drop shadows, and modern translucency are strictly prohibited. Colors simulate physical media or primitive emissive displays.
|
|
51
|
+
|
|
52
|
+
**CRITICAL: Choose ONE substrate palette per project and use it consistently. Never mix light and dark substrates within the same interface.**
|
|
53
|
+
|
|
54
|
+
### If Swiss Industrial Print (Light):
|
|
55
|
+
* **Background:** `#F4F4F0` or `#EAE8E3` (Matte, unbleached documentation paper).
|
|
56
|
+
* **Foreground:** `#050505` to `#111111` (Carbon Ink).
|
|
57
|
+
* **Accent:** `#E61919` or `#FF2A2A` (Aviation/Hazard Red). This is the ONLY accent color. Used for strike-throughs, thick structural dividing lines, or vital data highlights.
|
|
58
|
+
|
|
59
|
+
### If Tactical Telemetry (Dark):
|
|
60
|
+
* **Background:** `#0A0A0A` or `#121212` (Deactivated CRT. Avoid pure `#000000`).
|
|
61
|
+
* **Foreground:** `#EAEAEA` (White phosphor). This is the primary text color.
|
|
62
|
+
* **Accent:** `#E61919` or `#FF2A2A` (Aviation/Hazard Red). Same red, same rules.
|
|
63
|
+
* **Terminal Green (`#4AF626`):** Optional. Use ONLY for a single specific UI element (e.g., one status indicator or one data readout) — never as a general text color. If it doesn't serve a clear purpose, omit it entirely.
|
|
64
|
+
|
|
65
|
+
## 5. Layout and Spatial Engineering
|
|
66
|
+
The layout must appear mathematically engineered. It rejects conventional web padding in favor of visible compartmentalization.
|
|
67
|
+
|
|
68
|
+
* **The Blueprint Grid:** Strict adherence to CSS Grid architectures. Elements do not float; they are anchored precisely to grid tracks and intersections.
|
|
69
|
+
* **Visible Compartmentalization:** Extensive utilization of solid borders (`1px` or `2px solid`) to delineate distinct zones of information. Horizontal rules (`<hr>`) frequently span the entire container width to segregate operational units.
|
|
70
|
+
* **Bimodal Density:** Layouts oscillate between extreme data density (tightly packed monospace metadata clustered together) and vast expanses of calculated negative space framing macro-typography.
|
|
71
|
+
* **Geometry:** Absolute rejection of `border-radius`. All corners must be exactly 90 degrees to enforce mechanical rigidity.
|
|
72
|
+
|
|
73
|
+
## 6. UI Components and Symbology
|
|
74
|
+
Standard web UI conventions are replaced with utilitarian, industrial graphic elements.
|
|
75
|
+
|
|
76
|
+
* **Syntax Decoration:** Utilization of ASCII characters to frame data points.
|
|
77
|
+
* *Framing:* `[ DELIVERY SYSTEMS ]`, `< RE-IND >`
|
|
78
|
+
* *Directional:* `>>>`, `///`, `\\\\`
|
|
79
|
+
* **Industrial Markers:** Prominent integration of registration (`®`), copyright (`©`), and trademark (`™`) symbols functioning as structural geometric elements rather than legal text.
|
|
80
|
+
* **Technical Assets:** Integration of crosshairs (`+`) at grid intersections, repeating vertical lines (barcodes), thick horizontal warning stripes, and randomized string data (e.g., `REV 2.6`, `UNIT / D-01`) to simulate active mechanical processes.
|
|
81
|
+
|
|
82
|
+
## 7. Textural and Post-Processing Effects
|
|
83
|
+
To prevent the design from appearing purely digital, simulated analog degradation is engineered into the frontend via CSS and SVG filters.
|
|
84
|
+
|
|
85
|
+
* **Halftone and 1-Bit Dithering:** Transforming continuous-tone images or large serif typography into dot-matrix patterns. Achieved via pre-processing or CSS `mix-blend-mode: multiply` overlays combined with SVG radial dot patterns.
|
|
86
|
+
* **CRT Scanlines:** For terminal interfaces, applying a `repeating-linear-gradient` to the background to simulate horizontal electron beam sweeps (e.g., `repeating-linear-gradient(0deg, transparent, transparent 2px, rgba(0,0,0,0.1) 2px, rgba(0,0,0,0.1) 4px)`).
|
|
87
|
+
* **Mechanical Noise:** A global, low-opacity SVG static/noise filter applied to the DOM root to introduce a unified physical grain across both dark and light modes.
|
|
88
|
+
|
|
89
|
+
## 8. Web Engineering Directives
|
|
90
|
+
1. **Grid Determinism:** Utilize `display: grid; gap: 1px;` with contrasting parent/child background colors to generate mathematically perfect, razor-thin dividing lines without complex border declarations.
|
|
91
|
+
2. **Semantic Rigidity:** Construct the DOM using precise semantic tags (`<data>`, `<samp>`, `<kbd>`, `<output>`, `<dl>`) to accurately reflect the technical nature of the telemetry.
|
|
92
|
+
3. **Typography Clamping:** Implement CSS `clamp()` functions exclusively for macro-typography to ensure massive text scales aggressively while maintaining structural integrity across viewports.
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
# Style: Minimalist / Editorial
|
|
2
|
+
|
|
3
|
+
> Variant of [frontend-design](SKILL.md). Use when the brief calls for clean, monochrome, editorial minimalism.
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
# Protocol: Premium Utilitarian Minimalism UI Architect
|
|
7
|
+
|
|
8
|
+
## 1. Protocol Overview
|
|
9
|
+
Name: Premium Utilitarian Minimalism & Editorial UI
|
|
10
|
+
Description: An advanced frontend engineering directive for generating highly refined, ultra-minimalist, "document-style" web interfaces analogous to top-tier workspace platforms. This protocol strictly enforces a high-contrast warm monochrome palette, bespoke typographic hierarchies, meticulous structural macro-whitespace, bento-grid layouts, and an ultra-flat component architecture with deliberate muted pastel accents. It actively rejects standard generic SaaS design trends.
|
|
11
|
+
|
|
12
|
+
## 2. Absolute Negative Constraints (Banned Elements)
|
|
13
|
+
The AI must strictly avoid the following generic web development defaults:
|
|
14
|
+
- DO NOT use the "Inter", "Roboto", or "Open Sans" typefaces.
|
|
15
|
+
- DO NOT use generic, thin-line icon libraries like "Lucide", "Feather", or standard "Heroicons".
|
|
16
|
+
- DO NOT use Tailwind's default heavy drop shadows (e.g., `shadow-md`, `shadow-lg`, `shadow-xl`). Shadows must be practically non-existent or heavily customized to be ultra-diffuse and low opacity (< 0.05).
|
|
17
|
+
- DO NOT use primary colored backgrounds for large elements or sections (e.g., no bright blue, green, or red hero sections).
|
|
18
|
+
- DO NOT use gradients, neon colors, or 3D glassmorphism (beyond subtle navbar blurs).
|
|
19
|
+
- DO NOT use `rounded-full` (pill shapes) for large containers, cards, or primary buttons.
|
|
20
|
+
- DO NOT use emojis anywhere in code, markup, text content, headings, or alt text. Replace with proper icons or clean SVG primitives.
|
|
21
|
+
- DO NOT use generic placeholder names like "John Doe", "Acme Corp", or "Lorem Ipsum". Use realistic, contextual content.
|
|
22
|
+
- DO NOT use AI copywriting clichés: "Elevate", "Seamless", "Unleash", "Next-Gen", "Game-changer", "Delve". Write plain, specific language.
|
|
23
|
+
|
|
24
|
+
## 3. Typographic Architecture
|
|
25
|
+
The interface must rely on extreme typographic contrast and premium font selection to establish an editorial feel.
|
|
26
|
+
- Primary Sans-Serif (Body, UI, Buttons): Use clean, geometric, or system-native fonts with character. Target: `font-family: 'SF Pro Display', 'Geist Sans', 'Helvetica Neue', 'Switzer', sans-serif`.
|
|
27
|
+
- Editorial Serif (Hero Headings & Quotes): Target: `font-family: 'Lyon Text', 'Newsreader', 'Playfair Display', 'Instrument Serif', serif`. Apply tight tracking (`letter-spacing: -0.02em` to `-0.04em`) and tight line-height (`1.1`).
|
|
28
|
+
- Monospace (Code, Keystrokes, Meta-data): Target: `font-family: 'Geist Mono', 'SF Mono', 'JetBrains Mono', monospace`.
|
|
29
|
+
- Text Colors: Body text must never be absolute black (`#000000`). Use off-black/charcoal (`#111111` or `#2F3437`) with a generous `line-height` of `1.6` for legibility. Secondary text should be muted gray (`#787774`).
|
|
30
|
+
|
|
31
|
+
## 4. Color Palette (Warm Monochrome + Spot Pastels)
|
|
32
|
+
Color is a scarce resource, utilized only for semantic meaning or subtle accents.
|
|
33
|
+
- Canvas / Background: Pure White `#FFFFFF` or Warm Bone/Off-White `#F7F6F3` / `#FBFBFA`.
|
|
34
|
+
- Primary Surface (Cards): `#FFFFFF` or `#F9F9F8`.
|
|
35
|
+
- Structural Borders / Dividers: Ultra-light gray `#EAEAEA` or `rgba(0,0,0,0.06)`.
|
|
36
|
+
- Accent Colors: Exclusively use highly desaturated, washed-out pastels for tags, inline code backgrounds, or subtle icon backgrounds.
|
|
37
|
+
- Pale Red: `#FDEBEC` (Text: `#9F2F2D`)
|
|
38
|
+
- Pale Blue: `#E1F3FE` (Text: `#1F6C9F`)
|
|
39
|
+
- Pale Green: `#EDF3EC` (Text: `#346538`)
|
|
40
|
+
- Pale Yellow: `#FBF3DB` (Text: `#956400`)
|
|
41
|
+
|
|
42
|
+
## 5. Component Specifications
|
|
43
|
+
- Bento Box Feature Grids:
|
|
44
|
+
- Utilize asymmetrical CSS Grid layouts.
|
|
45
|
+
- Cards must have exactly `border: 1px solid #EAEAEA`.
|
|
46
|
+
- Border-radius must be crisp: `8px` or `12px` maximum.
|
|
47
|
+
- Internal padding must be generous (e.g., `24px` to `40px`).
|
|
48
|
+
- Primary Call-To-Action (Buttons):
|
|
49
|
+
- Solid background `#111111`, text `#FFFFFF`.
|
|
50
|
+
- Slight border-radius (`4px` to `6px`). No box-shadow.
|
|
51
|
+
- Hover state should be a subtle color shift to `#333333` or a micro-scale `transform: scale(0.98)`.
|
|
52
|
+
- Tags & Status Badges:
|
|
53
|
+
- Pill-shaped (`border-radius: 9999px`), very small typography (`text-xs`), uppercase with wide tracking (`letter-spacing: 0.05em`).
|
|
54
|
+
- Background must use the defined Muted Pastels.
|
|
55
|
+
- Accordions (FAQ):
|
|
56
|
+
- Strip all container boxes. Separate items only with a `border-bottom: 1px solid #EAEAEA`.
|
|
57
|
+
- Use a clean, sharp `+` and `-` icon for the toggle state.
|
|
58
|
+
- Keystroke Micro-UIs:
|
|
59
|
+
- Render shortcuts as physical keys using `<kbd>` tags: `border: 1px solid #EAEAEA`, `border-radius: 4px`, `background: #F7F6F3`, using the Monospace font.
|
|
60
|
+
- Faux-OS Window Chrome:
|
|
61
|
+
- When mocking up software, wrap it in a minimalist container with a white top bar containing three small, light gray circles (replicating macOS window controls).
|
|
62
|
+
|
|
63
|
+
## 6. Iconography & Imagery Directives
|
|
64
|
+
- System Icons: Use "Phosphor Icons (Bold or Fill weights)" or "Radix UI Icons" for a technical, slightly thicker-stroke aesthetic. Standardize stroke width across all icons.
|
|
65
|
+
- Illustrations: Monochromatic, rough continuous-line ink sketches on a white background, featuring a single offset geometric shape filled with a muted pastel color.
|
|
66
|
+
- Photography: Use high-quality, desaturated images with a warm tone. Apply subtle overlays (`opacity: 0.04` warm grain) to blend photos into the monochrome palette. Never use oversaturated stock photos. Use reliable placeholders like `https://picsum.photos/seed/{context}/1200/800` when real assets are unavailable.
|
|
67
|
+
- Hero & Section Backgrounds: Sections should not feel empty and flat. Use subtle full-width background imagery at very low opacity, soft radial light spots (`radial-gradient` with warm tones at `opacity: 0.03`), or minimal geometric line patterns to add depth without breaking the clean aesthetic.
|
|
68
|
+
|
|
69
|
+
## 7. Subtle Motion & Micro-Animations
|
|
70
|
+
Motion should feel invisible — present but never distracting. The goal is quiet sophistication, not spectacle.
|
|
71
|
+
- Scroll Entry: Elements fade in gently as they enter the viewport. Use `translateY(12px)` + `opacity: 0` resolving over `600ms` with `cubic-bezier(0.16, 1, 0.3, 1)`. Use `IntersectionObserver`, never `window.addEventListener('scroll')`.
|
|
72
|
+
- Hover States: Cards lift with an ultra-subtle shadow shift (`box-shadow` transitioning from `0 0 0` to `0 2px 8px rgba(0,0,0,0.04)` over `200ms`). Buttons respond with `scale(0.98)` on `:active`.
|
|
73
|
+
- Staggered Reveals: Lists and grid items enter with a cascade delay (`animation-delay: calc(var(--index) * 80ms)`). Never mount everything at once.
|
|
74
|
+
- Background Ambient Motion: Optional. A single, very slow-moving radial gradient blob (`animation-duration: 20s+`, `opacity: 0.02-0.04`) drifting behind hero sections. Must be applied to a `position: fixed; pointer-events: none` layer. Never on scrolling containers.
|
|
75
|
+
- Performance: Animate exclusively via `transform` and `opacity`. No layout-triggering properties (`top`, `left`, `width`, `height`). Use `will-change: transform` sparingly and only on actively animating elements.
|
|
76
|
+
|
|
77
|
+
## 8. Execution Protocol
|
|
78
|
+
When tasked with writing frontend code (HTML, React, Tailwind, Vue) or designing a layout:
|
|
79
|
+
1. Establish the macro-whitespace first. Use massive vertical padding between sections (e.g., `py-24` or `py-32` in Tailwind).
|
|
80
|
+
2. Constrain the main typography content width to `max-w-4xl` or `max-w-5xl`.
|
|
81
|
+
3. Apply the custom typographic hierarchy and monochromatic color variables immediately.
|
|
82
|
+
4. Ensure every card, divider, and border adheres strictly to the `1px solid #EAEAEA` rule.
|
|
83
|
+
5. Add scroll-entry animations to all major content blocks.
|
|
84
|
+
6. Ensure sections have visual depth through imagery, ambient gradients, or subtle textures — no empty flat backgrounds.
|
|
85
|
+
7. Provide code that reflects this high-end, uncluttered, editorial aesthetic natively without requiring manual adjustments.
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: 2d-games
|
|
3
|
+
description: 2D game development principles. Sprites, tilemaps, physics, camera.
|
|
4
|
+
compatibility: opencode
|
|
5
|
+
---
|
|
6
|
+
# 2D Game Development
|
|
7
|
+
|
|
8
|
+
> Principles for 2D game systems.
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## 1. Sprite Systems
|
|
13
|
+
|
|
14
|
+
### Sprite Organization
|
|
15
|
+
|
|
16
|
+
| Component | Purpose |
|
|
17
|
+
|-----------|---------|
|
|
18
|
+
| **Atlas** | Combine textures, reduce draw calls |
|
|
19
|
+
| **Animation** | Frame sequences |
|
|
20
|
+
| **Pivot** | Rotation/scale origin |
|
|
21
|
+
| **Layering** | Z-order control |
|
|
22
|
+
|
|
23
|
+
### Animation Principles
|
|
24
|
+
|
|
25
|
+
- Frame rate: 8-24 FPS typical
|
|
26
|
+
- Squash and stretch for impact
|
|
27
|
+
- Anticipation before action
|
|
28
|
+
- Follow-through after action
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## 2. Tilemap Design
|
|
33
|
+
|
|
34
|
+
### Tile Considerations
|
|
35
|
+
|
|
36
|
+
| Factor | Recommendation |
|
|
37
|
+
|--------|----------------|
|
|
38
|
+
| **Size** | 16x16, 32x32, 64x64 |
|
|
39
|
+
| **Auto-tiling** | Use for terrain |
|
|
40
|
+
| **Collision** | Simplified shapes |
|
|
41
|
+
|
|
42
|
+
### Layers
|
|
43
|
+
|
|
44
|
+
| Layer | Content |
|
|
45
|
+
|-------|---------|
|
|
46
|
+
| Background | Non-interactive scenery |
|
|
47
|
+
| Terrain | Walkable ground |
|
|
48
|
+
| Props | Interactive objects |
|
|
49
|
+
| Foreground | Parallax overlay |
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
## 3. 2D Physics
|
|
54
|
+
|
|
55
|
+
### Collision Shapes
|
|
56
|
+
|
|
57
|
+
| Shape | Use Case |
|
|
58
|
+
|-------|----------|
|
|
59
|
+
| Box | Rectangular objects |
|
|
60
|
+
| Circle | Balls, rounded |
|
|
61
|
+
| Capsule | Characters |
|
|
62
|
+
| Polygon | Complex shapes |
|
|
63
|
+
|
|
64
|
+
### Physics Considerations
|
|
65
|
+
|
|
66
|
+
- Pixel-perfect vs physics-based
|
|
67
|
+
- Fixed timestep for consistency
|
|
68
|
+
- Layers for filtering
|
|
69
|
+
|
|
70
|
+
---
|
|
71
|
+
|
|
72
|
+
## 4. Camera Systems
|
|
73
|
+
|
|
74
|
+
### Camera Types
|
|
75
|
+
|
|
76
|
+
| Type | Use |
|
|
77
|
+
|------|-----|
|
|
78
|
+
| **Follow** | Track player |
|
|
79
|
+
| **Look-ahead** | Anticipate movement |
|
|
80
|
+
| **Multi-target** | Two-player |
|
|
81
|
+
| **Room-based** | Metroidvania |
|
|
82
|
+
|
|
83
|
+
### Screen Shake
|
|
84
|
+
|
|
85
|
+
- Short duration (50-200ms)
|
|
86
|
+
- Diminishing intensity
|
|
87
|
+
- Use sparingly
|
|
88
|
+
|
|
89
|
+
---
|
|
90
|
+
|
|
91
|
+
## 5. Genre Patterns
|
|
92
|
+
|
|
93
|
+
### Platformer
|
|
94
|
+
|
|
95
|
+
- Coyote time (leniency after edge)
|
|
96
|
+
- Jump buffering
|
|
97
|
+
- Variable jump height
|
|
98
|
+
|
|
99
|
+
### Top-down
|
|
100
|
+
|
|
101
|
+
- 8-directional or free movement
|
|
102
|
+
- Aim-based or auto-aim
|
|
103
|
+
- Consider rotation or not
|
|
104
|
+
|
|
105
|
+
---
|
|
106
|
+
|
|
107
|
+
## 6. Anti-Patterns
|
|
108
|
+
|
|
109
|
+
| ❌ Don't | ✅ Do |
|
|
110
|
+
|----------|-------|
|
|
111
|
+
| Separate textures | Use atlases |
|
|
112
|
+
| Complex collision shapes | Simplified collision |
|
|
113
|
+
| Jittery camera | Smooth following |
|
|
114
|
+
| Pixel-perfect on physics | Choose one approach |
|
|
115
|
+
|
|
116
|
+
---
|
|
117
|
+
|
|
118
|
+
> **Remember:** 2D is about clarity. Every pixel should communicate.
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: 3d-games
|
|
3
|
+
description: 3D game development principles. Rendering, shaders, physics, cameras.
|
|
4
|
+
compatibility: opencode
|
|
5
|
+
---
|
|
6
|
+
# 3D Game Development
|
|
7
|
+
|
|
8
|
+
> Principles for 3D game systems.
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## 1. Rendering Pipeline
|
|
13
|
+
|
|
14
|
+
### Stages
|
|
15
|
+
|
|
16
|
+
```
|
|
17
|
+
1. Vertex Processing → Transform geometry
|
|
18
|
+
2. Rasterization → Convert to pixels
|
|
19
|
+
3. Fragment Processing → Color pixels
|
|
20
|
+
4. Output → To screen
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
### Optimization Principles
|
|
24
|
+
|
|
25
|
+
| Technique | Purpose |
|
|
26
|
+
|-----------|---------|
|
|
27
|
+
| **Frustum culling** | Don't render off-screen |
|
|
28
|
+
| **Occlusion culling** | Don't render hidden |
|
|
29
|
+
| **LOD** | Less detail at distance |
|
|
30
|
+
| **Batching** | Combine draw calls |
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
## 2. Shader Principles
|
|
35
|
+
|
|
36
|
+
### Shader Types
|
|
37
|
+
|
|
38
|
+
| Type | Purpose |
|
|
39
|
+
|------|---------|
|
|
40
|
+
| **Vertex** | Position, normals |
|
|
41
|
+
| **Fragment/Pixel** | Color, lighting |
|
|
42
|
+
| **Compute** | General computation |
|
|
43
|
+
|
|
44
|
+
### When to Write Custom Shaders
|
|
45
|
+
|
|
46
|
+
- Special effects (water, fire, portals)
|
|
47
|
+
- Stylized rendering (toon, sketch)
|
|
48
|
+
- Performance optimization
|
|
49
|
+
- Unique visual identity
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
## 3. 3D Physics
|
|
54
|
+
|
|
55
|
+
### Collision Shapes
|
|
56
|
+
|
|
57
|
+
| Shape | Use Case |
|
|
58
|
+
|-------|----------|
|
|
59
|
+
| **Box** | Buildings, crates |
|
|
60
|
+
| **Sphere** | Balls, quick checks |
|
|
61
|
+
| **Capsule** | Characters |
|
|
62
|
+
| **Mesh** | Terrain (expensive) |
|
|
63
|
+
|
|
64
|
+
### Principles
|
|
65
|
+
|
|
66
|
+
- Simple colliders, complex visuals
|
|
67
|
+
- Layer-based filtering
|
|
68
|
+
- Raycasting for line-of-sight
|
|
69
|
+
|
|
70
|
+
---
|
|
71
|
+
|
|
72
|
+
## 4. Camera Systems
|
|
73
|
+
|
|
74
|
+
### Camera Types
|
|
75
|
+
|
|
76
|
+
| Type | Use |
|
|
77
|
+
|------|-----|
|
|
78
|
+
| **Third-person** | Action, adventure |
|
|
79
|
+
| **First-person** | Immersive, FPS |
|
|
80
|
+
| **Isometric** | Strategy, RPG |
|
|
81
|
+
| **Orbital** | Inspection, editors |
|
|
82
|
+
|
|
83
|
+
### Camera Feel
|
|
84
|
+
|
|
85
|
+
- Smooth following (lerp)
|
|
86
|
+
- Collision avoidance
|
|
87
|
+
- Look-ahead for movement
|
|
88
|
+
- FOV changes for speed
|
|
89
|
+
|
|
90
|
+
---
|
|
91
|
+
|
|
92
|
+
## 5. Lighting
|
|
93
|
+
|
|
94
|
+
### Light Types
|
|
95
|
+
|
|
96
|
+
| Type | Use |
|
|
97
|
+
|------|-----|
|
|
98
|
+
| **Directional** | Sun, moon |
|
|
99
|
+
| **Point** | Lamps, torches |
|
|
100
|
+
| **Spot** | Flashlight, stage |
|
|
101
|
+
| **Ambient** | Base illumination |
|
|
102
|
+
|
|
103
|
+
### Performance Consideration
|
|
104
|
+
|
|
105
|
+
- Real-time shadows are expensive
|
|
106
|
+
- Bake when possible
|
|
107
|
+
- Shadow cascades for large worlds
|
|
108
|
+
|
|
109
|
+
---
|
|
110
|
+
|
|
111
|
+
## 6. Level of Detail (LOD)
|
|
112
|
+
|
|
113
|
+
### LOD Strategy
|
|
114
|
+
|
|
115
|
+
| Distance | Model |
|
|
116
|
+
|----------|-------|
|
|
117
|
+
| Near | Full detail |
|
|
118
|
+
| Medium | 50% triangles |
|
|
119
|
+
| Far | 25% or billboard |
|
|
120
|
+
|
|
121
|
+
---
|
|
122
|
+
|
|
123
|
+
## 7. Anti-Patterns
|
|
124
|
+
|
|
125
|
+
| ❌ Don't | ✅ Do |
|
|
126
|
+
|----------|-------|
|
|
127
|
+
| Mesh colliders everywhere | Simple shapes |
|
|
128
|
+
| Real-time shadows on mobile | Baked or blob shadows |
|
|
129
|
+
| One LOD for all distances | Distance-based LOD |
|
|
130
|
+
| Unoptimized shaders | Profile and simplify |
|
|
131
|
+
|
|
132
|
+
---
|
|
133
|
+
|
|
134
|
+
> **Remember:** 3D is about illusion. Create the impression of detail, not the detail itself.
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: game-development
|
|
3
|
+
description: Game development orchestrator. Routes to platform-specific skills based on project needs.
|
|
4
|
+
compatibility: opencode
|
|
5
|
+
metadata:
|
|
6
|
+
when_to_use: "\"When building games with Unity, Godot, Unreal, Phaser, or any game engine. Routes to platform-specific sub-skills.\""
|
|
7
|
+
version: "1.0.0"
|
|
8
|
+
---
|
|
9
|
+
# Game Development
|
|
10
|
+
|
|
11
|
+
> **Orchestrator skill** that provides core principles and routes to specialized sub-skills.
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## When to Use This Skill
|
|
16
|
+
|
|
17
|
+
You are working on a game development project. This skill teaches the PRINCIPLES of game development and directs you to the right sub-skill based on context.
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## Sub-Skill Routing
|
|
22
|
+
|
|
23
|
+
### Platform Selection
|
|
24
|
+
|
|
25
|
+
| If the game targets... | Use Sub-Skill |
|
|
26
|
+
|------------------------|---------------|
|
|
27
|
+
| Web browsers (HTML5, WebGL) | `game-development/web-games` |
|
|
28
|
+
| Mobile (iOS, Android) | `game-development/mobile-games` |
|
|
29
|
+
| PC (Steam, Desktop) | `game-development/pc-games` |
|
|
30
|
+
| VR/AR headsets | `game-development/vr-ar` |
|
|
31
|
+
|
|
32
|
+
### Dimension Selection
|
|
33
|
+
|
|
34
|
+
| If the game is... | Use Sub-Skill |
|
|
35
|
+
|-------------------|---------------|
|
|
36
|
+
| 2D (sprites, tilemaps) | `game-development/2d-games` |
|
|
37
|
+
| 3D (meshes, shaders) | `game-development/3d-games` |
|
|
38
|
+
|
|
39
|
+
### Specialty Areas
|
|
40
|
+
|
|
41
|
+
| If you need... | Use Sub-Skill |
|
|
42
|
+
|----------------|---------------|
|
|
43
|
+
| GDD, balancing, player psychology | `game-development/game-design` |
|
|
44
|
+
| Multiplayer, networking | `game-development/multiplayer` |
|
|
45
|
+
| Visual style, asset pipeline, animation | `game-development/game-art` |
|
|
46
|
+
| Sound design, music, adaptive audio | `game-development/game-audio` |
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
## Core Principles (All Platforms)
|
|
51
|
+
|
|
52
|
+
### 1. The Game Loop
|
|
53
|
+
|
|
54
|
+
Every game, regardless of platform, follows this pattern:
|
|
55
|
+
|
|
56
|
+
```
|
|
57
|
+
INPUT → Read player actions
|
|
58
|
+
UPDATE → Process game logic (fixed timestep)
|
|
59
|
+
RENDER → Draw the frame (interpolated)
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
**Fixed Timestep Rule:**
|
|
63
|
+
- Physics/logic: Fixed rate (e.g., 50Hz)
|
|
64
|
+
- Rendering: As fast as possible
|
|
65
|
+
- Interpolate between states for smooth visuals
|
|
66
|
+
|
|
67
|
+
---
|
|
68
|
+
|
|
69
|
+
### 2. Pattern Selection Matrix
|
|
70
|
+
|
|
71
|
+
| Pattern | Use When | Example |
|
|
72
|
+
|---------|----------|---------|
|
|
73
|
+
| **State Machine** | 3-5 discrete states | Player: Idle→Walk→Jump |
|
|
74
|
+
| **Object Pooling** | Frequent spawn/destroy | Bullets, particles |
|
|
75
|
+
| **Observer/Events** | Cross-system communication | Health→UI updates |
|
|
76
|
+
| **ECS** | Thousands of similar entities | RTS units, particles |
|
|
77
|
+
| **Command** | Undo, replay, networking | Input recording |
|
|
78
|
+
| **Behavior Tree** | Complex AI decisions | Enemy AI |
|
|
79
|
+
|
|
80
|
+
**Decision Rule:** Start with State Machine. Add ECS only when performance demands.
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
### 3. Input Abstraction
|
|
85
|
+
|
|
86
|
+
Abstract input into ACTIONS, not raw keys:
|
|
87
|
+
|
|
88
|
+
```
|
|
89
|
+
"jump" → Space, Gamepad A, Touch tap
|
|
90
|
+
"move" → WASD, Left stick, Virtual joystick
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
**Why:** Enables multi-platform, rebindable controls.
|
|
94
|
+
|
|
95
|
+
---
|
|
96
|
+
|
|
97
|
+
### 4. Performance Budget (60 FPS = 16.67ms)
|
|
98
|
+
|
|
99
|
+
| System | Budget |
|
|
100
|
+
|--------|--------|
|
|
101
|
+
| Input | 1ms |
|
|
102
|
+
| Physics | 3ms |
|
|
103
|
+
| AI | 2ms |
|
|
104
|
+
| Game Logic | 4ms |
|
|
105
|
+
| Rendering | 5ms |
|
|
106
|
+
| Buffer | 1.67ms |
|
|
107
|
+
|
|
108
|
+
**Optimization Priority:**
|
|
109
|
+
1. Algorithm (O(n²) → O(n log n))
|
|
110
|
+
2. Batching (reduce draw calls)
|
|
111
|
+
3. Pooling (avoid GC spikes)
|
|
112
|
+
4. LOD (detail by distance)
|
|
113
|
+
5. Culling (skip invisible)
|
|
114
|
+
|
|
115
|
+
---
|
|
116
|
+
|
|
117
|
+
### 5. AI Selection by Complexity
|
|
118
|
+
|
|
119
|
+
| AI Type | Complexity | Use When |
|
|
120
|
+
|---------|------------|----------|
|
|
121
|
+
| **FSM** | Simple | 3-5 states, predictable behavior |
|
|
122
|
+
| **Behavior Tree** | Medium | Modular, designer-friendly |
|
|
123
|
+
| **GOAP** | High | Emergent, planning-based |
|
|
124
|
+
| **Utility AI** | High | Scoring-based decisions |
|
|
125
|
+
|
|
126
|
+
---
|
|
127
|
+
|
|
128
|
+
### 6. Collision Strategy
|
|
129
|
+
|
|
130
|
+
| Type | Best For |
|
|
131
|
+
|------|----------|
|
|
132
|
+
| **AABB** | Rectangles, fast checks |
|
|
133
|
+
| **Circle** | Round objects, cheap |
|
|
134
|
+
| **Spatial Hash** | Many similar-sized objects |
|
|
135
|
+
| **Quadtree** | Large worlds, varying sizes |
|
|
136
|
+
|
|
137
|
+
---
|
|
138
|
+
|
|
139
|
+
## Anti-Patterns (Universal)
|
|
140
|
+
|
|
141
|
+
| Don't | Do |
|
|
142
|
+
|-------|-----|
|
|
143
|
+
| Update everything every frame | Use events, dirty flags |
|
|
144
|
+
| Create objects in hot loops | Object pooling |
|
|
145
|
+
| Cache nothing | Cache references |
|
|
146
|
+
| Optimize without profiling | Profile first |
|
|
147
|
+
| Mix input with logic | Abstract input layer |
|
|
148
|
+
|
|
149
|
+
---
|
|
150
|
+
|
|
151
|
+
## Routing Examples
|
|
152
|
+
|
|
153
|
+
### Example 1: "I want to make a browser-based 2D platformer"
|
|
154
|
+
→ Start with `game-development/web-games` for framework selection
|
|
155
|
+
→ Then `game-development/2d-games` for sprite/tilemap patterns
|
|
156
|
+
→ Reference `game-development/game-design` for level design
|
|
157
|
+
|
|
158
|
+
### Example 2: "Mobile puzzle game for iOS and Android"
|
|
159
|
+
→ Start with `game-development/mobile-games` for touch input and stores
|
|
160
|
+
→ Use `game-development/game-design` for puzzle balancing
|
|
161
|
+
|
|
162
|
+
### Example 3: "Multiplayer VR shooter"
|
|
163
|
+
→ `game-development/vr-ar` for comfort and immersion
|
|
164
|
+
→ `game-development/3d-games` for rendering
|
|
165
|
+
→ `game-development/multiplayer` for networking
|
|
166
|
+
|
|
167
|
+
---
|
|
168
|
+
|
|
169
|
+
> **Remember:** Great games come from iteration, not perfection. Prototype fast, then polish.
|