Real Time Action CombatCombat

Combat resolves continuously in real time; player inputs compete directly with enemy behavior each frame.

Combat resolves continuously: the hero swings a real sword in real time while orcs keep advancing — a live, per-frame hitbox.

How real time action combat works in Godot

CharacterBody2Dnode

Player and enemies move every frame in _physics_process(); inputs and AI compete continuously rather than waiting for turns.

func _physics_process(delta):
    handle_input()
    move_and_slide()

Area2Dnode

Split combat into a hitbox (deals damage, active only during a swing) and a hurtbox (receives it). Overlap between opposing boxes resolves a hit.

# On the sword's hitbox
func _on_area_entered(hurtbox):
    hurtbox.owner.take_damage(DAMAGE)

CollisionShape2Dnode

Enable the hitbox shape only on the active frames of an attack animation, so damage lands exactly when the swing connects.

# Driven by an AnimationPlayer call-method track
func swing_active(on): $Hitbox/CollisionShape2D.disabled = not on

In short: Hitbox/hurtbox Area2D nodes active per-frame; _physics_process() combat loop; collision-driven damage

Retro games that use real time action combat

…and 105 more in the interactive database →

185 catalogued game(s) use this mechanic, spanning 1985–2000.

Related combat mechanics

▶ Explore Real Time Action Combat interactively — see every game + the Godot system