
game-engines
Master game engines - Unity, Unreal Engine, Godot. Engine-specific workflows, systems architecture, and production best practices.
- Installs
- 201
- Last 24h
- —
- Trending rank
- —
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/pluginagentmarketplace/custom-plugin-game-developer --skill game-engines- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads game-engines automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
Game Engines & Frameworks
Engine Comparison
┌─────────────────────────────────────────────────────────────┐
│ ENGINE COMPARISON │
├─────────────────────────────────────────────────────────────┤
│ UNITY (C#): │
│ ├─ Best for: 2D/3D, Mobile, Indie, VR/AR │
│ ├─ Learning: Moderate │
│ ├─ Performance: Good (IL2CPP for native) │
│ └─ Market: 70%+ of mobile games │
│ │
│ UNREAL (C++/Blueprints): │
│ ├─ Best for: AAA, High-end graphics, Large teams │
│ ├─ Learning: Steep (C++) / Easy (Blueprints) │
│ ├─ Performance: Excellent │
│ └─ Market: Major console/PC titles │
│ │
│ GODOT (GDScript/C#): │
│ ├─ Best for: 2D games, Learning, Open source │
│ ├─ Learning: Easy │
│ ├─ Performance: Good for 2D, Improving for 3D │
│ └─ Market: Growing indie scene │
└─────────────────────────────────────────────────────────────┘
Unity Architecture
UNITY COMPONENT SYSTEM:
┌─────────────────────────────────────────────────────────────┐
│ GameObject │
│ ├─ Transform (required) │
│ ├─ Renderer (MeshRenderer, SpriteRenderer) │
│ ├─ Collider (BoxCollider, CapsuleCollider) │
│ ├─ Rigidbody (physics simulation) │
│ └─ Custom MonoBehaviour scripts │
│ │
│ LIFECYCLE: │
│ Awake() → OnEnable() → Start() → FixedUpdate() → │
│ Update() → LateUpdate() → OnDisable() → OnDestroy() │
└─────────────────────────────────────────────────────────────┘
// ✅ Production-Ready: Unity Component Pattern
public class PlayerController : MonoBehaviour
{
[Header("Movement Settings")]
[SerializeField] private float moveSpeed = 5f;
[SerializeField] private float jumpForce = 10f;
[Header("Ground Check")]
[SerializeField] private Transform groundCheck;
[SerializeField] private float groundRadius = 0.2f;
[SerializeField] private LayerMask groundLayer;
private Rigidbody2D _rb;
private bool _isGrounded;
private float _horizontalInput;
// Cache components in Awake
private void Awake()
{
_rb = GetComponent<Rigidbody2D>();
}
private void Update()
{
// Input in Update (frame-rate independent)
_horizontalInput = Input.GetAxisRaw("Horizontal");
if (Input.GetButtonDown("Jump") && _isGrounded)
{
Jump();
}
}
private void FixedUpdate()
{
// Physics in FixedUpdate (consistent timing)
CheckGround();
Move();
}
private void CheckGround()
{
_isGrounded = Physics2D.OverlapCircle(
groundCheck.position, groundRadius, groundLayer);
}
private void Move()
{
_rb.velocity = new Vector2(
_horizontalInput * moveSpeed,
_rb.velocity.y);
}
private void Jump()
{
_rb.velocity = new Vector2(_rb.velocity.x, jumpForce);
}
}
Unreal Engine Architecture
UNREAL ACTOR SYSTEM:
┌─────────────────────────────────────────────────────────────┐
│ AActor (Base class for all game objects) │
│ ├─ APawn (Can be possessed by controller) │
│ │ └─ ACharacter (Has CharacterMovementComponent) │
│ ├─ AGameMode (Game rules) │
│ └─ APlayerController (Player input handling) │
│ │
│ COMPONENTS: │
│ ├─ USceneComponent (Transform hierarchy) │
│ ├─ UStaticMeshComponent (3D model) │
│ ├─ UCapsuleComponent (Collision) │
│ └─ UCharacterMovementComponent (Movement logic) │
│ │
│ LIFECYCLE: │
│ Constructor → BeginPlay() → Tick() → EndPlay() │
└─────────────────────────────────────────────────────────────┘
// ✅ Production-Ready: Unreal Character
UCLASS()
class MYGAME_API AMyCharacter : public ACharacter
{
GENERATED_BODY()
public:
AMyCharacter();
virtual void BeginPlay() override;
virtual void Tick(float DeltaTime) override;
virtual void SetupPlayerInputComponent(
UInputComponent* PlayerInputComponent) override;
protected:
UPROPERTY(EditAnywhere, Category = "Movement")
float WalkSpeed = 600.0f;
UPROPERTY(EditAnywhere, Category = "Movement")
float SprintSpeed = 1200.0f;
UPROPERTY(EditAnywhere, Category = "Combat")
float MaxHealth = 100.0f;
private:
UPROPERTY()
float CurrentHealth;
bool bIsSprinting;
void MoveForward(float Value);
void MoveRight(float Value);
void StartSprint();
void StopSprint();
UFUNCTION()
void OnTakeDamage(float Damage, AActor* DamageCauser);
};
// Implementation
void AMyCharacter::BeginPlay()
{
Super::BeginPlay();
CurrentHealth = MaxHealth;
GetCharacterMovement()->MaxWalkSpeed = WalkSpeed;
}
void AMyCharacter::SetupPlayerInputComponent(
UInputComponent* PlayerInputComponent)
{
Super::SetupPlayerInputComponent(PlayerInputComponent);
PlayerInputComponent->BindAxis("MoveForward", this,
&AMyCharacter::MoveForward);
PlayerInputComponent->BindAxis("MoveRight", this,
&AMyCharacter::MoveRight);
PlayerInputComponent->BindAction("Sprint", IE_Pressed, this,
&AMyCharacter::StartSprint);
PlayerInputComponent->BindAction("Sprint", IE_Released, this,
&AMyCharacter::StopSprint);
}
Godot Architecture
GODOT NODE SYSTEM:
┌─────────────────────────────────────────────────────────────┐
│ Node (Base class) │
│ ├─ Node2D (2D game objects) │
│ │ ├─ Sprite2D │
│ │ ├─ CharacterBody2D │
│ │ └─ Area2D │
│ ├─ Node3D (3D game objects) │
│ │ ├─ MeshInstance3D │
│ │ ├─ CharacterBody3D │
│ │ └─ Area3D │
│ └─ Control (UI elements) │
│ │
│ LIFECYCLE: │
│ _init() → _ready() → _process() / _physics_process() │
│ │
│ SIGNALS (Event System): │
│ signal hit(damage) │
│ emit_signal("hit", 10) │
│ connect("hit", target, "_on_hit") │
└─────────────────────────────────────────────────────────────┘
# ✅ Production-Ready: Godot Player Controller
extends CharacterBody2D
class_name Player
signal health_changed(new_health, max_health)
signal died()
@export var move_speed: float = 200.0
@export var jump_force: float = 400.0
@export var max_health: int = 100
@onready var sprite: Sprite2D = $Sprite2D
@onready var animation: AnimationPlayer = $AnimationPlayer
@onready var coyote_timer: Timer = $CoyoteTimer
var gravity: float = ProjectSettings.get_setting("physics/2d/default_gravity")
var current_health: int
var can_coyote_jump: bool = false
func _ready() -> void:
current_health = max_health
func _physics_process(delta: float) -> void:
# Apply gravity
if not is_on_floor():
velocity.y += gravity * delta
# Handle coyote time
if is_on_floor():
can_coyote_jump = true
elif can_coyote_jump and coyote_timer.is_stopped():
coyote_timer.start()
# Jump
if Input.is_action_just_pressed("jump"):
if is_on_floor() or can_coyote_jump:
velocity.y = -jump_force
can_coyote_jump = false
# Horizontal movement
var direction := Input.get_axis("move_left", "move_right")
velocity.x = direction * move_speed
# Flip sprite
if direction != 0:
sprite.flip_h = direction < 0
# Update animation
_update_animation()
move_and_slide()
func _update_animation() -> void:
if not is_on_floor():
animation.play("jump")
elif abs(velocity.x) > 10:
animation.play("run")
else:
animation.play("idle")
func take_damage(amount: int) -> void:
current_health = max(0, current_health - amount)
health_changed.emit(current_health, max_health)
if current_health <= 0:
die()
func die() -> void:
died.emit()
queue_free()
func _on_coyote_timer_timeout() -> void:
can_coyote_jump = false
Engine Feature Comparison
FEATURE MATRIX:
┌─────────────────────────────────────────────────────────────┐
│ Feature │ Unity │ Unreal │ Godot │
├───────────────────┼──────────────┼─────────────┼───────────┤
│ 2D Support │ Excellent │ Basic │ Excellent │
│ 3D Graphics │ Good │ Excellent │ Good │
│ Physics │ PhysX/Box2D │ Chaos/PhysX │ Godot │
│ Animation │ Animator │ AnimGraph │ AnimTree │
│ UI System │ uGUI/UITk │ UMG/Slate │ Control │
│ Networking │ Netcode/MLAPI│ Built-in │ ENet/Nakama│
│ Mobile │ Excellent │ Good │ Good │
│ Console │ Good │ Excellent │ Limited │
│ VR/AR │ Excellent │ Excellent │ Basic │
│ Learning Curve │ Moderate │ Steep │ Easy │
│ License │ Revenue-based│ 5% royalty │ MIT Free │
└───────────────────┴──────────────┴─────────────┴───────────┘
🔧 Troubleshooting
┌─────────────────────────────────────────────────────────────┐
│ PROBLEM: Low frame rate in editor │
├─────────────────────────────────────────────────────────────┤
│ SOLUTIONS: │
│ → Disable unnecessary editor windows │
│ → Reduce scene view quality │
│ → Hide gizmos for complex objects │
│ → Build and test outside editor │
└─────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────┐
│ PROBLEM: Physics behaving inconsistently │
├─────────────────────────────────────────────────────────────┤
│ SOLUTIONS: │
│ → Use FixedUpdate/_physics_process for physics │
│ → Check fixed timestep settings │
│ → Avoid moving static colliders │
│ → Use continuous collision for fast objects │
└─────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────┐
│ PROBLEM: Animations not playing correctly │
├─────────────────────────────────────────────────────────────┤
│ SOLUTIONS: │
│ → Check animation state machine transitions │
│ → Verify animation clip import settings │
│ → Look for conflicting animation layers │
│ → Ensure root motion settings match │
└─────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────┐
│ PROBLEM: Build size too large │
├─────────────────────────────────────────────────────────────┤
│ SOLUTIONS: │
│ → Analyze build report │
│ → Remove unused assets │
│ → Compress textures and audio │
│ → Enable code stripping (Unity) / Shipping (Unreal) │
│ → Split into downloadable content │
└─────────────────────────────────────────────────────────────┘
Learning Paths
| Level | Unity | Unreal | Godot |
|---|---|---|---|
| Beginner (1-2 mo) | Ruby's Adventure | Blueprint Basics | Your First 2D Game |
| Intermediate (2-4 mo) | 3D Platformer | C++ Fundamentals | 3D Game Tutorial |
| Advanced (4-6 mo) | Networking + ECS | Multiplayer Shooter | Multiplayer + Plugins |
Use this skill: When learning game engines, building games, or optimizing engine performance.
FAQ
What does the game-engines skill do?
Master game engines - Unity, Unreal Engine, Godot. Engine-specific workflows, systems architecture, and production best practices.
How do I install game-engines?
Run npx skills add https://github.com/pluginagentmarketplace/custom-plugin-game-developer --skill game-engines in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/game-engines/ (personal) or .claude/skills/game-engines/ (project).
Which AI agents can use game-engines?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is game-engines safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains game-engines?
It is published by pluginagentmarketplace in pluginagentmarketplace/custom-plugin-game-developer. It has 201 recorded installs.
More from pluginagentmarketplace/custom-plugin-game-developer
game-design-theory
pluginagentmarketplace/custom-plugin-game-developer
Comprehensive game design theory covering MDA framework, player psychology, balance principles, and progression systems. Master why games are fun.
level-design
pluginagentmarketplace/custom-plugin-game-developer
Level design fundamentals, pacing, difficulty progression, environmental storytelling, and spatial design for engaging gameplay experiences.
gameplay-mechanics
pluginagentmarketplace/custom-plugin-game-developer
Core gameplay mechanics implementation, system interactions, feedback loops, and iterative balance refinement for engaging player experiences.
daw-music
pluginagentmarketplace/custom-plugin-game-developer
Digital Audio Workstation usage, music composition, interactive music systems, and game audio implementation for immersive soundscapes.
particle-systems
pluginagentmarketplace/custom-plugin-game-developer
Creating visual effects using particle systems, physics simulation, and post-processing for polished, dynamic game graphics.
programming-architecture
pluginagentmarketplace/custom-plugin-game-developer
Game code architecture, design patterns, scalable systems, and maintainable code structure for complex games.
Popular media & creative skills
hyperframes
heygen-com/hyperframes
Read first to make, edit, animate or render any video with HyperFrames (HTML rendered to video), including launch films, explainers, music videos, charts, maps, vertical clips, title cards, captions and overlays. Holds the render contract, the work loop and what each kind of video needs.
media-use
heygen-com/hyperframes
Get or make any media for a HyperFrames video - music, sound effects, images, icons, logos, voiceover, avatar and generated video, transcripts, cutouts, colour grades and looks - with HeyGen or free local tools, and mix placed audio. Also for footage that looks dark, flat or dull, or should be stylized or hidden.
hyperframes-registry
heygen-com/hyperframes
About 450 ready-made HyperFrames blocks and components installed as editable source - transitions, overlays, titles, kinetic type, captions, charts, map overlays, 3D, camera moves. Use it before hand-building any named visual (CRT scanlines, glitch, film grain, a chart); also for hyperframes add and catalog.
hyperframes-creative
heygen-com/hyperframes
Non-animation creative direction for HyperFrames videos. Use for design spec (frame.md / design.md) handling, palettes, typography, narration, beat planning, audio-reactive visuals, composition patterns, and brand / style decisions. For atomic motion patterns and scene blueprints, use hyperframes-animation.
ai-video-generation
101-skills/superpowers
Generate AI videos with Google Veo, Seedance 2.0, HappyHorse, Wan, Grok and 40+ models via inference.sh CLI. Models: Veo 3.1, Veo 3, Seedance 2.0, HappyHorse 1.0, Wan 2.5, Grok Imagine Video, OmniHuman, Fabric, HunyuanVideo. Capabilities: text-to-video, image-to-video, reference-to-video, video editing, lipsync, avatar animation, video upscaling, foley sound. Use for: social media videos, marketing content, explainer videos, product demos, AI avatars. Triggers: video generation, ai video, text to video, image to video, veo, animate image, video from image, ai animation, video generator, generate video, t2v, i2v, ai video maker, create video with ai, runway alternative, pika alternative, sora alternative, kling alternative, seedance, happyhorse
ai-image-generation
101-skills/superpowers
Generate AI images with GPT-Image-2, FLUX, Gemini, Grok, Seedream, Reve and 50+ models via inference.sh CLI. Models: GPT-Image-2, FLUX Dev LoRA, FLUX.2 Klein LoRA, Gemini 3 Pro Image, Grok Imagine, Seedream 4.5, Reve, ImagineArt. Capabilities: text-to-image, image-to-image, inpainting, LoRA, image editing, upscaling, text rendering. Use for: AI art, product mockups, concept art, social media graphics, marketing visuals, illustrations. Triggers: flux, image generation, ai image, text to image, stable diffusion, generate image, ai art, midjourney alternative, dall-e alternative, text2img, t2i, image generator, ai picture, create image with ai, generative ai, ai illustration, grok image, gemini image, gpt image, openai image, chatgpt image