godot-camera-systems
Camera Systems
Expert guidance for creating smooth, responsive cameras in 2D and 3D games.
NEVER Do
- NEVER use
global_position = target.global_positionevery frame — Instant position matching causes jittery movement. Uselerp()orposition_smoothing_enabled = true[12]. - NEVER use
offsetfor permanent camera positioning —offsetis for shake, sway, or temporary recoil effects only. Usepositionfor permanent framing to avoid logic conflicts [14]. - NEVER forget
limit_smoothed = trueforCamera2D— Hard boundaries cause jarring visual stops. Smoothing against limits ensures a professional feel [13]. - NEVER enable multiple
Camera2Dnodes in the same viewport simultaneously — Only the last enabled camera takes precedence. Explicitly disable inactive cameras [15]. - NEVER use
SpringArm3Dwithout a collision mask — It will clip through terrain and walls. Set it to the world/environment layer [16]. - NEVER implement screen shake by randomizing
positiondirectly — This overwrites follow-logic. Useoffsetor a dedicated Trauma/Noise system to Layer shake over the follow-position [27, 28]. - NEVER parent the Camera directly to a high-speed physics body — Physics stutter or parent rotation will cause motion sickness. Use
RemoteTransform2D/3Dwith rotation sync disabled for a stable view [30]. - NEVER use
look_at()in 3D without a fallback for the 'Up' vector — If the target is directly above/below, the camera will flip wildly. Use guards orQuaternionmath for vertical tracking. - NEVER rely on
SubViewportdefaults for Mini-maps — Viewports are expensive; explicitly setrender_target_update_modetoUPDATE_WHEN_VISIBLEor a fixed lower framerate to save GPU [156]. - NEVER use linear interpolation for Zoom — It feels 'robotic'. Use exponential lerp or a
TweenwithTRANS_CUBICfor a more natural tactical feel.
More from thedivergentai/gd-agentic-skills
godot-master
Consolidated expert library for professional Godot 4.x game and application development. Orchestrates 94 specialized blueprints through architectural workflows, anti-pattern catalogs, performance budgets, and Server API patterns. Use when: (1) starting a new Godot project, (2) designing game or app architecture, (3) building entity/component systems, (4) debugging performance or physics issues, (5) choosing between 2D/3D approaches, (6) implementing multiplayer, (7) optimizing draw calls or script time, (8) porting between platforms. Primary entry point for ALL Godot development tasks.
584godot-shaders-basics
Expert blueprint for shader programming (visual effects, post-processing, material customization) using Godot's GLSL-like shader language. Covers canvas_item (2D), spatial (3D), uniforms, built-in variables, and performance. Use when implementing custom effects OR stylized rendering. Keywords shader, GLSL, fragment, vertex, canvas_item, spatial, uniform, UV, COLOR, ALBEDO, post-processing.
217godot-2d-animation
Expert patterns for 2D animation in Godot using AnimatedSprite2D and skeletal cutout rigs. Use when implementing sprite frame animations, procedural animation (squash/stretch), cutout bone hierarchies, or frame-perfect timing systems. Trigger keywords: AnimatedSprite2D, SpriteFrames, animation_finished, animation_looped, frame_changed, frame_progress, set_frame_and_progress, cutout animation, skeletal 2D, Bone2D, procedural animation, animation state machine, advance(0).
194godot-particles
Expert blueprint for GPU particle systems (explosions, magic effects, weather, trails) using GPUParticles2D/3D, ParticleProcessMaterial, gradients, sub-emitters, and custom shaders. Use when creating VFX, environmental effects, or visual feedback. Keywords GPUParticles2D, ParticleProcessMaterial, emission_shape, color_ramp, sub_emitter, one_shot.
176godot-ui-theming
Expert blueprint for UI themes using Theme resources, StyleBoxes, custom fonts, and theme overrides for consistent visual styling. Covers StyleBoxFlat/Texture, theme inheritance, dynamic theme switching, and font variations. Use when implementing consistent UI styling OR supporting multiple themes. Keywords Theme, StyleBox, StyleBoxFlat, add_theme_override, font, theme inheritance, dark mode.
172godot-save-load-systems
Expert blueprint for save/load systems using JSON/binary serialization, PERSIST group pattern, versioning, and migration. Covers player progress, settings, game state persistence, and error recovery. Use when implementing save systems OR data persistence. Keywords save, load, JSON, FileAccess, user://, serialization, version migration, PERSIST group.
160