Expert patterns for porting desktop games to mobile including touch control schemes (virtual joystick, gesture detection), UI scaling for small screens, performance optimization for mobile GPUs, battery life management, and platform-specific features. Use when creating mobile ports or cross-platform mobile builds. Trigger keywords: TouchScreenButton, virtual_joystick, gesture_detector, InputEventScreenTouch, InputEventScreenDrag, mobile_optimization, battery_saving, adaptive_performance, MOBILE_ENABLED.
npx skills add https://github.com/thedivergentai/GD-Agentic-Skills --skill godot-adapt-desktop-to-mobile
Expert guidance for porting desktop games to mobile platforms.
> MANDATORY: Read the appropriate script before implementing the corresponding pattern. Do not paste joystick/gesture/UI tutorials inline.
MANDATORY for move sticks — Joystick appears where the user touches the left half (prefer over fixed-position recipes).
Fixed-base stick Control — use when UI art requires a static well; otherwise prefer dynamic_joystick_spawner.
MANDATORY for swipe/pinch — Duration/distance/multi-touch ratio → signals.
MANDATORY for Control remaps — Scales/reanchors desktop HUD for thumb reach + density.
Adaptive scaling_3d_scale to hold 60FPS while keeping 2D UI sharp.
MANDATORY — NOTIFICATION_APPLICATION_PAUSED → Engine.max_fps = 1 + pause physics.
DisplayServer.get_display_safe_area() padding for notches / hole-punch.
1-finger pan + 2-finger pinch Camera2D.
Input.vibrate_handheld + iOS plugin hook pattern.
Strip SSS/clearcoat/heavy shading on weak mobile renderers.
Virtual keyboard occlusion → tween UI up. Use for LineEdit/TextEdit focus — not a substitute for HUD scaling.
| Need | Script |
|------|--------|
| Scale/reanchor HUD, spawn virtual sticks, thumb-reach density | mobile_ui_adapter |
| OS virtual keyboard covers focused text field | on_screen_keyboard_handler (often both: adapter for layout, OSK handler for text fields) |
MANDATORY — Persist on App Pause (WM_CLOSE is unreliable on mobile kill).
| Genre | Recommended Control | Script |
|-------|-------------------|--------|
| Platformer | Virtual joystick (left) + jump button (right) | dynamic_joystick_spawner / virtual_joystick |
| Top-down shooter | Dual-stick (move left, aim right) | dynamic_joystick_spawner ×2 |
| Turn-based | Direct tap on units/tiles | gesture_combo_system (tap) |
| Puzzle | Tap, swipe, pinch | gesture_combo_system |
| Card game | Drag-and-drop | mobile_ui_adapter + drag Controls |
| Racing | Tilt or tap left/right | platform-mobile / Input sensors |
event.index per stickInputEventMouseButton and InputEventScreenTouchFull port recipes → mobile-port-deep.md.
> MANDATORY when porting beyond the decision matrix: read mobile-port-deep.md. Do NOT Load it for a first-pass control remap.
await RenderingServer.frame_post_draw + viewport image.OS.get_memory_info() — do not spam heavy allocs while monitoring.> Progressive disclosure: open Official Documentation links only when researching a specific API;
> load Related Skills when routing work to a peer domain — do not preload the whole lattice.
InputEventScreenTouch / InputEventScreenDrag replace hover/mouse-motion assumptions on mobile.scaling_3d_scale / FSR tradeoffs used by adaptive quality when mobile GPUs miss frame budget.NOTIFICATION_APPLICATION_PAUSED / resume lifecycle that mobile OSes use instead of reliable window-close saves.get_display_safe_area(), virtual keyboard APIs, and screen metrics behind notches and OSK occlusion.mobile/android/ios), display stretch, and renderer defaults that every port branch depends on.scaling_3d_scale and material fallbacks are not enough.mobile_shader_fallback disables on weak renderers.A set of resources to help me write all kinds of internal communications, using the formats that my company likes to use. Claude should use this skill whenever asked to write some sort of internal communications (status reports, leadership updates, 3P updates, company newsletters, FAQs, incident reports, project updates, etc.).
Extracts and analyzes competitors' ads from ad libraries (Facebook, LinkedIn, etc.) to understand what messaging, problems, and creative approaches are working. Helps inspire and improve your own ad campaigns.
Identifies high-quality leads for your product or service by analyzing your business, searching for target companies, and providing actionable contact strategies. Perfect for sales, business development, and marketing professionals.
Analyzes your recent Claude Code chat history to identify coding patterns, development gaps, and areas for improvement, curates relevant learning resources from HackerNews, and automatically sends a personalized growth report to your Slack DMs.
Complete App Store Optimization (ASO) toolkit for researching, optimizing, and tracking mobile app performance on Apple App Store and Google Play Store
NGS analysis toolkit. BAM to bigWig conversion, QC (correlation, PCA, fingerprints), heatmaps/profiles (TSS, peaks), for ChIP-seq, RNA-seq, ATAC-seq visualization.
Materials science toolkit. Crystal structures (CIF, POSCAR), phase diagrams, band structure, DOS, Materials Project integration, format conversion, for computational materials science.
Transforms vague UI ideas into polished, Stitch-optimized prompts. Enhances specificity, adds UI/UX keywords, injects design system context, and structures output for better generation results.
Take thedivergentai/godot-adapt-desktop-to-mobile from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.