plugins/libgdx-development/skills/libgdx-development/SKILL.md
Comprehensive libGDX cross-platform game development knowledge base covering project generation via gdx-liftoff, the rendering pipeline, Scene2D and Ashley ECS architecture, Box2D physics, AssetManager lifecycle, Screen management, Tiled map integration, and multi-platform deployment to Desktop (LWJGL3), Android, iOS (RoboVM), and HTML5 (GWT/TeaVM). Includes libGDX 1.14.0 breaking changes and Kotlin compatibility caveats. TRIGGER WHEN: building, implementing, writing, coding, creating, optimizing, or debugging libGDX games; scaffolding or starting new libGDX projects; migrating libGDX versions; choosing libGDX architecture patterns. DO NOT TRIGGER WHEN: the task is general Java/Kotlin work unrelated to libGDX, or the engine is not libGDX (jMonkey, KorGE, Godot, Unity).
npx skillsauth add acaprino/alfio-claude-plugins libgdx-developmentInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Knowledge base for building production-grade games with libGDX, the cross-platform Java/Kotlin game framework.
Pools -> PoolManager, JsonValue case sensitivity)For 80% of new libGDX projects, follow this path:
gdx-liftoff JAR from https://github.com/libgdx/gdx-liftoff/releases, run with JDK 17 or later (Java 21 recommended):lwjgl3:run Gradle task to launch the desktop moduleGame, create MainMenuScreen + GameplayScreen, use Scene2D for UI and Ashley for entitiesTextureAtlas (2048x2048 POT), load via AssetManager, never load loose Textures per sprite.dispose() callThen harden incrementally:
Gdx.app.postRunnableGdx.input.setInputProcessor in show(), never in the constructorGroup.isTransform = false on non-rotating GroupsPoolable and clear in reset()references/setup-and-tooling.md: gdx-liftoff workflow, Gradle multi-module layout, JDK and Kotlin versions, IDE setup, libGDX 1.14.0 changelogreferences/rendering-and-performance.md: SpriteBatch batching, TextureAtlas packing, viewports, GL thread rules, frame-budget profiling, vsync ceilingreferences/architecture-patterns.md: Game + Screen pattern, Scene2D + Ashley ECS combination, Box2D fixed timestep, 3D ModelBatch basicsreferences/asset-and-lifecycle.md: AssetManager async loading, dispose discipline, Screen lifecycle, input processor management, screen transitionsreferences/deployment-platforms.md: Desktop LWJGL3, Android (minSdk/targetSdk), iOS RoboVM constraints, HTML5 GWT vs TeaVM, packaging and signing| Decision | Default | Upgrade When | |----------|---------|-------------| | Generator | gdx-liftoff | Always (gdx-setup is deprecated) | | Language | Kotlin (Java if HTML5 needed) | HTML5 target requires Java | | JDK build target | Java 21 | Java 17 minimum; iOS source level capped at 8 | | Architecture | Game + Screen + Scene2D | Add Ashley ECS for mid-size entity counts | | Physics | Box2D fixed timestep (60 Hz) | Bullet for 3D | | Asset loading | AssetManager async, pump update() per frame | Multiple update() per frame on loading screen | | Texture strategy | TextureAtlas, POT, packed via TexturePacker | Never load loose Textures per sprite | | Screen transitions | Reuse Screen instances or libgdx-screenmanager | Constructing new screens per transition is wasteful | | Input handling | Set processor in show(), null in hide() | InputMultiplexer for Stage + custom processors | | HTML5 backend | GWT | TeaVM if you need Kotlin or modern JS interop (still WIP for libGDX) |
Gdx.gl.* from a non-render threadGdx.input.setInputProcessor in Screen.show(), null it in Screen.hide()Group.isTransform = false on Scene2D Groups without rotation or scalingComponentMapper.getFor(...) references in Ashley systemstools
Master memory forensics techniques including memory acquisition, process analysis, and artifact extraction using Volatility and related tools. Use when analyzing memory dumps, investigating incidents, or performing malware analysis from RAM captures.
development
Master binary analysis patterns including disassembly, decompilation, control flow analysis, and code pattern recognition. Use when analyzing executables, understanding compiled code, or performing static analysis on binaries.
development
Idiomatic Kotlin implementation patterns: coroutines and structured concurrency, Flow / StateFlow / SharedFlow, Kotlin Multiplatform (KMP) shared-code architecture, Jetpack Compose UI, Ktor server with JWT auth and Exposed, and type-safe DSL design (lambdas with receivers, delegated properties, inline reified, value classes). TRIGGER WHEN: building, writing, or reviewing Kotlin code using coroutines / Flow / suspend functions, expect/actual, Compose composables / ViewModels, Ktor routing, sealed-class state modeling, scope functions, or DSL builders. DO NOT TRIGGER WHEN: libGDX game work (use libgdx-development), Android Java without Kotlin, or pure JVM tuning unrelated to Kotlin language features.
tools
Strategic website planning skill that conducts structured client discovery, produces professional deliverables (website brief, sitemap, design direction, content strategy), and orchestrates frontend-design, frontend-layout, seo-specialist, and content-marketer agents automatically. TRIGGER WHEN: planning a new website or redesign before any code is written. DO NOT TRIGGER WHEN: the task is outside the specific scope of this component.