Skip to content
Scripting & Gameplay
step 1/5

Reading — step 1 of 5

Read

~1 min readProduction

Scripting & Gameplay

Most engines support scripting languages for gameplay code:

  • Unity: C#.
  • Unreal: C++ + Blueprints (visual).
  • Godot: GDScript (Python-like) + C#.
  • GameMaker: GML.
  • Cocos2d: JS / Lua.
  • Custom: Lua, Python embedded.

Why scripting?

  • Faster iteration (no recompile of engine).
  • Designer-friendly.
  • Hot reload.
  • Sandboxing.

Scripting interfaces:

  • Components written in script attached to entities.
  • Lifecycle hooks: Start, Update, OnCollide, OnDestroy.
  • Engine API exposed: GetComponent, Instantiate, Destroy.

Example Unity-style:

public class Player : MonoBehaviour {
    public float speed = 5f;

    void Update() {
        if (Input.GetKey(KeyCode.LeftArrow))
            transform.position += Vector3.left * speed * Time.deltaTime;
    }

    void OnCollisionEnter(Collision col) {
        if (col.gameObject.tag == "Enemy")
            health.TakeDamage(10);
    }
}

Implementation: engine calls Update() on every script per frame. Reflection finds methods.

Hot reload:

  • Recompile script while game runs.
  • Re-attach script to existing entities.
  • Useful for fast tweak cycles.
  • Hard for state-altering changes; engine needs careful reload.

Visual scripting:

  • Drag-and-drop nodes.
  • Unreal Blueprints, Unity Visual Scripting, Godot Visual Script.
  • Pros: artists/designers without code skills.
  • Cons: hard to maintain large logic; performance worse than text.

Game state machines:

  • Common pattern for AI, character states.
  • States: Idle, Walking, Running, Jumping, Falling, Attacking.
  • Transitions on events.
  • Each state has Update + OnEnter + OnExit.

Behavior trees:

  • Hierarchical AI.
  • Common in modern AAA AI.
  • Nodes: sequence, selector, parallel, decorator, leaf.

For our toy:

  • Components are Python classes.
  • Game logic is Python.
  • Hot reload: re-import module, replace classes.

Modding:

  • Allow user scripts.
  • Python or Lua for sandbox.
  • Skyrim, Minecraft, Civ are heavily modded.
  • Need: API, sandbox, mod loader.

Discussion

Ask a question, share an insight, or help someone who’s stuck.

Sign in to post a comment or reply.

Loading…