[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6CW95Z9PF1ZS1AX6C4BMS7D":3,"skill-same:01M6CW95Z9PF1ZS1AX6C4BMS7D":54},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":26,"linkOnly":27,"markdownContent":28,"markdownBody":29,"frontMatter":30,"refName":31,"commitSha":32,"skillDirectory":33,"forksCount":34,"repositoryHtmlUrl":35,"repositoryHomepageUrl":6,"ownerHtmlUrl":36,"ownerBlogUrl":37,"ownerDescription":38,"updatedAt":39,"install":40,"resources":53},"01M6CW95Z9PF1ZS1AX6C4BMS7D","Game Dev Skill",null,"Best practices for integrating game development frameworks and engines into projects","MoonWIRaja\u002FKracked_Skills_Agent","MoonWIRaja","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F168633207?v=4","01M6CW8N8XX4WTGTQR6Y49NYXB","MoonWiRaja","01M6CW8NDE3SZ03JT54MA1TT9B",1,"MIT","https:\u002F\u002Fgithub.com\u002FMoonWIRaja\u002FKracked_Skills_Agent\u002Fblob\u002Fmain\u002Ftemplates\u002F.kracked\u002Fskills\u002Fgame-dev\u002FSKILL.md",[],[19,20,5,21,22,23,24,25],"dev","game","development","best practices","game development","projects","frameworks","2026-11-10 10:12:30",false,"---\nname: \"Game Dev Skill\"\ndescription: \"Best practices for integrating game development frameworks and engines into projects\"\n---\n\n# Game Dev Module — SKILL.md\n\n## Tujuan\nModul Game Dev menyediakan panduan dan pattern untuk pembangunan permainan atau elemen gamifikasi dalam sebarang projek. Ini termasuk integrasi enjin 2D\u002F3D, pengurusan aset, state management untuk gameplay, dan pengoptimuman prestasi.\n\n## Kerangka Kerja Yang Disokong\n- **Canvas 2D API** — Untuk permainan ringan \u002F visualisasi piksel\n- **Phaser 3** — Enjin permainan 2D yang matang\n- **Three.js** — 3D rendering dalam pelayar\n- **PixiJS** — Rendering 2D berprestasi tinggi\n- **Godot (GDScript)** — Untuk pembangunan indie asli\n- **Unity (C#)** — Untuk projek AAA \u002F cross-platform\n\n## Amalan Terbaik\n\n### 1. Gelung Permainan (Game Loop)\n```\nfunction gameLoop(timestamp) {\n  const deltaTime = timestamp - lastTime;\n  lastTime = timestamp;\n  \n  update(deltaTime);  \u002F\u002F Logik\n  render();           \u002F\u002F Lukisan\n  \n  requestAnimationFrame(gameLoop);\n}\n```\n- Sentiasa gunakan `deltaTime` supaya permainan berjalan pada kelajuan yang sama di semua peranti.\n- Pisahkan logik `update()` daripada `render()`.\n\n### 2. Pengurusan Aset\n- Muatkan semua aset secara asinkron sebelum permainan bermula (preloading).\n- Gunakan sprite atlas\u002Fspritesheet untuk mengurangkan HTTP requests.\n- Cache imej yang telah dimuat turun dalam `Map\u003Cstring, HTMLImageElement>`.\n\n### 3. State Management\n- Gunakan pattern **Finite State Machine (FSM)** untuk watak dan UI.\n- Contoh: `IDLE → WALK → ATTACK → HURT → DEAD`\n- Pisahkan game state daripada UI state.\n\n### 4. Fizik & Perlanggaran (Collision)\n- Gunakan AABB (Axis-Aligned Bounding Box) untuk perlanggaran mudah.\n- Gunakan grid-based collision untuk permainan tile-based.\n- Elakkan pemeriksaan perlanggaran O(n²) — gunakan spatial hashing.\n\n### 5. Input Handling\n- Normalisasikan input (keyboard, gamepad, mobile touch).\n- Gunakan input buffering untuk keresponsifan.\n- Sokong rebinding kekunci.\n\n### 6. Pengoptimuman Prestasi\n- Gunakan `imageSmoothingEnabled = false` untuk seni piksel.\n- Hadkan `requestAnimationFrame` kepada 60fps.\n- Gunakan off-screen canvas untuk rendering yang kompleks.\n- Gunakan object pooling untuk peluru\u002Fzarah.\n\n## Contoh Integrasi dengan KD\n```\n\u002Fkd-dev-story\n\nStory: \"Bina sistem pertempuran turn-based\"\nAgent: [ENG] Ezra\nApproach: TDD — tulis ujian untuk damage calculation dahulu,\n           kemudian implementasi FSM untuk BattleState.\n```\n","# Game Dev Module — SKILL.md\n\n## Tujuan\nModul Game Dev menyediakan panduan dan pattern untuk pembangunan permainan atau elemen gamifikasi dalam sebarang projek. Ini termasuk integrasi enjin 2D\u002F3D, pengurusan aset, state management untuk gameplay, dan pengoptimuman prestasi.\n\n## Kerangka Kerja Yang Disokong\n- **Canvas 2D API** — Untuk permainan ringan \u002F visualisasi piksel\n- **Phaser 3** — Enjin permainan 2D yang matang\n- **Three.js** — 3D rendering dalam pelayar\n- **PixiJS** — Rendering 2D berprestasi tinggi\n- **Godot (GDScript)** — Untuk pembangunan indie asli\n- **Unity (C#)** — Untuk projek AAA \u002F cross-platform\n\n## Amalan Terbaik\n\n### 1. Gelung Permainan (Game Loop)\n```\nfunction gameLoop(timestamp) {\n  const deltaTime = timestamp - lastTime;\n  lastTime = timestamp;\n  \n  update(deltaTime);  \u002F\u002F Logik\n  render();           \u002F\u002F Lukisan\n  \n  requestAnimationFrame(gameLoop);\n}\n```\n- Sentiasa gunakan `deltaTime` supaya permainan berjalan pada kelajuan yang sama di semua peranti.\n- Pisahkan logik `update()` daripada `render()`.\n\n### 2. Pengurusan Aset\n- Muatkan semua aset secara asinkron sebelum permainan bermula (preloading).\n- Gunakan sprite atlas\u002Fspritesheet untuk mengurangkan HTTP requests.\n- Cache imej yang telah dimuat turun dalam `Map\u003Cstring, HTMLImageElement>`.\n\n### 3. State Management\n- Gunakan pattern **Finite State Machine (FSM)** untuk watak dan UI.\n- Contoh: `IDLE → WALK → ATTACK → HURT → DEAD`\n- Pisahkan game state daripada UI state.\n\n### 4. Fizik & Perlanggaran (Collision)\n- Gunakan AABB (Axis-Aligned Bounding Box) untuk perlanggaran mudah.\n- Gunakan grid-based collision untuk permainan tile-based.\n- Elakkan pemeriksaan perlanggaran O(n²) — gunakan spatial hashing.\n\n### 5. Input Handling\n- Normalisasikan input (keyboard, gamepad, mobile touch).\n- Gunakan input buffering untuk keresponsifan.\n- Sokong rebinding kekunci.\n\n### 6. Pengoptimuman Prestasi\n- Gunakan `imageSmoothingEnabled = false` untuk seni piksel.\n- Hadkan `requestAnimationFrame` kepada 60fps.\n- Gunakan off-screen canvas untuk rendering yang kompleks.\n- Gunakan object pooling untuk peluru\u002Fzarah.\n\n## Contoh Integrasi dengan KD\n```\n\u002Fkd-dev-story\n\nStory: \"Bina sistem pertempuran turn-based\"\nAgent: [ENG] Ezra\nApproach: TDD — tulis ujian untuk damage calculation dahulu,\n           kemudian implementasi FSM untuk BattleState.\n```\n",{"name":5,"description":7},"main","44ec1c235177fe30629edcb6c5cdf9c88aa27aa2","templates\u002F.kracked\u002Fskills\u002Fgame-dev",0,"https:\u002F\u002Fgithub.com\u002FMoonWIRaja\u002FKracked_Skills_Agent","https:\u002F\u002Fgithub.com\u002FMoonWIRaja","https:\u002F\u002Fburhan.my","I will always continue learning about technology to develop myself in the IT field.\r\n","2026-03-14 12:20:29",{"source":8,"skillName":5,"commands":41,"prompt":51,"zipAvailable":52},[42,45,48],{"tool":43,"command":44},"npx","npx skills add MoonWIRaja\u002FKracked_Skills_Agent --skill \"Game Dev Skill\"",{"tool":46,"command":47},"bunx","bunx skills add MoonWIRaja\u002FKracked_Skills_Agent --skill \"Game Dev Skill\"",{"tool":49,"command":50},"pnpm","pnpm dlx skills add MoonWIRaja\u002FKracked_Skills_Agent --skill \"Game Dev Skill\"","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FMoonWIRaja\u002FKracked_Skills_Agent\u002Fblob\u002Fmain\u002Ftemplates\u002F.kracked\u002Fskills\u002Fgame-dev\u002FSKILL.md",true,[],[55,72,85,95,106,118],{"skillNo":56,"name":57,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":58,"categories":59,"keywords":65,"publishedAt":26},"01M6CW9MDZSGRX8DAXPCB00QAD","webapp","https:\u002F\u002Fgithub.com\u002FMoonWIRaja\u002FKracked_Skills_Agent\u002Fblob\u002Fmain\u002Ftemplates\u002F.kracked\u002Fskills\u002Fwebapp\u002FSKILL.md",[60],{"categoryNo":61,"categoryName":62,"taxonomyType":63,"taxonomyTypeDesc":64},"01JBSEEDCAT000000000000009","前端开发","SCENARIO","使用场景",[57,66,67,68,69,70,71],"ui-ux","frontend","ux","ui","architect","engineer",{"skillNo":73,"name":74,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":75,"categories":76,"keywords":83,"publishedAt":26},"01M6CW9JRBRQJQMQ3JJYBHCRCD","ui-ux-frontend","https:\u002F\u002Fgithub.com\u002FMoonWIRaja\u002FKracked_Skills_Agent\u002Fblob\u002Fmain\u002Ftemplates\u002F.kracked\u002Fskills\u002Fui-ux-frontend\u002FSKILL.md",[77,78],{"categoryNo":61,"categoryName":62,"taxonomyType":63,"taxonomyTypeDesc":64},{"categoryNo":79,"categoryName":80,"taxonomyType":81,"taxonomyTypeDesc":82},"01JBSEEDCAT000000000000032","设计师","PROFESSION","适用职业",[84,69,68,67,66],"ui ux frontend",{"skillNo":86,"name":87,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":88,"categories":89,"keywords":93,"publishedAt":26},"01M6CW9H0G74PPCZ6E42DTGQA1","testing","https:\u002F\u002Fgithub.com\u002FMoonWIRaja\u002FKracked_Skills_Agent\u002Fblob\u002Fmain\u002Ftemplates\u002F.kracked\u002Fskills\u002Ftesting\u002FSKILL.md",[90],{"categoryNo":91,"categoryName":92,"taxonomyType":63,"taxonomyTypeDesc":64},"01JBSEEDCAT000000000000008","测试与质量",[87,94,71],"qa",{"skillNo":96,"name":97,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":98,"categories":99,"keywords":103,"publishedAt":26},"01M6CW9FP7VM8FKG57F1S6407R","security","https:\u002F\u002Fgithub.com\u002FMoonWIRaja\u002FKracked_Skills_Agent\u002Fblob\u002Fmain\u002Ftemplates\u002F.kracked\u002Fskills\u002Fsecurity\u002FSKILL.md",[100],{"categoryNo":101,"categoryName":102,"taxonomyType":63,"taxonomyTypeDesc":64},"01JBSEEDCAT000000000000010","后端与接口",[97,70,104,105],"backend","api",{"skillNo":107,"name":108,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":109,"categories":110,"keywords":113,"publishedAt":26},"01M6CW9DE52HR0KEDZN8EBNWDG","project-reverse-analysis","https:\u002F\u002Fgithub.com\u002FMoonWIRaja\u002FKracked_Skills_Agent\u002Fblob\u002Fmain\u002Ftemplates\u002F.kracked\u002Fskills\u002Fproject-reverse-analysis\u002FSKILL.md",[111,112],{"categoryNo":61,"categoryName":62,"taxonomyType":63,"taxonomyTypeDesc":64},{"categoryNo":101,"categoryName":102,"taxonomyType":63,"taxonomyTypeDesc":64},[114,115,116,67,68,69,105,104,66,117],"project reverse analysis","project","analysis","analyst",{"skillNo":119,"name":120,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":121,"categories":122,"keywords":124,"publishedAt":26},"01M6CW9BEEGBV5QV4ZN81HJ6W1","mobile","https:\u002F\u002Fgithub.com\u002FMoonWIRaja\u002FKracked_Skills_Agent\u002Fblob\u002Fmain\u002Ftemplates\u002F.kracked\u002Fskills\u002Fmobile\u002FSKILL.md",[123],{"categoryNo":61,"categoryName":62,"taxonomyType":63,"taxonomyTypeDesc":64},[120,125,126,127,128,129,70,130,131,132,71],"swift","en","android","react","ios","flutter","react native","ms"]