---
key: mechanic/shooting-projectiles--t030
type: mechanic
id: shooting-projectiles--t030
lang: en
title: 'Shoot ’em ups, bullet hell and bullet grazing'
summary: >-
  Projectile patterns create moving danger zones. The player reads their
  direction and gaps to plan a safe movement path in advance.
updatedAt: '2026-10-21'
status: active
url: 'https://gamemechanics.pro/en/knowledge/mechanic/shooting-projectiles--t030/'
jsonUrl: >-
  https://gamemechanics.pro/api/v1/knowledge/en/mechanic/shooting-projectiles--t030.json
markdownUrl: >-
  https://gamemechanics.pro/content/knowledge/en/mechanic/shooting-projectiles--t030.md
aliases:
  - Bullet hell and projectile patterns
tags:
  - Shooting and projectiles
  - Mechanics and variants
sourceIds:
  - source-8a492c292e237e0e
  - source-34ecc9c6effac13a
sources:
  - id: source-8a492c292e237e0e
    title: 'Godot: Ray-casting'
    url: 'https://docs.godotengine.org/en/stable/tutorials/physics/ray-casting.html'
    verifiedAt: null
  - id: source-34ecc9c6effac13a
    title: Enter the Gungeon
    url: 'https://store.steampowered.com/app/311690/'
    verifiedAt: null
relations: []
placements:
  - catalogId: shooting-projectiles
    id: t030
    title: Shooting and projectiles
    url: 'https://gamemechanics.pro/en/mechanics/shooting-projectiles/#t030'
    categoryIds:
      - mechanics
supersededBy: []
attributes:
  preview:
    updatedAt: '2026-10-21'
    title: Bullet hell and projectile patterns
    description: >-
      Projectile patterns create moving danger zones. The player reads their
      direction and gaps to plan a safe movement path in advance.
    image:
      src: images/mechanics/gungeon-bullet-rings.webp
      width: 1440
      height: 810
      crop:
        x: 225
        'y': 75
        width: 1013
        height: 638
      game: Enter the Gungeon
      sourceUrl: 'https://store.steampowered.com/app/311690/'
      originalUrl: >-
        https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/311690/ss_0893ef2bd93d4e9e2138006424d088523a5daecd.1920x1080.jpg?t=1779733990
      credit: Dodge Roll / Devolver Digital
      rights: © Dodge Roll / Devolver Digital. All rights reserved.
      caption: Concentric projectile rings
      alt: >-
        Enter the Gungeon: rings of bright projectiles spread around an enemy
        with visible gaps between them.
      markers:
        - x: 48
          'y': 51
          label: Projectiles form a readable repeating pattern
        - x: 71
          'y': 57
          label: Gaps provide room to maneuver
    tips:
      - Separate dangerous projectiles from backgrounds and decorative effects.
      - Check that a safe path is reachable at the character’s current speed.
    examples:
      - title: Enter the Gungeon
        url: 'https://store.steampowered.com/app/311690/'
endsAt: null
provenance: >-
  Original bilingual editorial overviews authored for gamemechanics.pro on
  2026-10-20 and reviewed on 2026-10-21. Scenarios are hypothetical design
  examples; prototype checks describe work to perform, not completed playtests.
  Primary sources support the stated techniques and implementation context, not
  every proposed variant.
license: CC-BY-4.0
codeLicense: MIT
attribution: gamemechanics.pro contributors
catalogKey: catalog/shooting-projectiles
---
# Shoot ’em ups, bullet hell and bullet grazing

id: shooting-projectiles--t030
type: mechanic
key: mechanic/shooting-projectiles--t030
lang: en
status: active
url: https://gamemechanics.pro/en/knowledge/mechanic/shooting-projectiles--t030/

Projectile patterns create moving danger zones. The player reads their direction and gaps to plan a safe movement path in advance.

## At a glance

![Enter the Gungeon: rings of bright projectiles spread around an enemy with visible gaps between them.](https://gamemechanics.pro/images/mechanics/gungeon-bullet-rings.webp)

[Enter the Gungeon](https://store.steampowered.com/app/311690/) · © Dodge Roll / Devolver Digital. All rights reserved.

1. Projectiles form a readable repeating pattern
2. Gaps provide room to maneuver

- Separate dangerous projectiles from backgrounds and decorative effects.
- Check that a safe path is reachable at the character’s current speed.

- [Enter the Gungeon](https://store.steampowered.com/app/311690/)

## How it works

The player reads projectile patterns and chooses safe paths; near misses can optionally grant a reward.

## Variants

### Mechanic variants

<a id="t030-variants"></a>

- Lanes: a pattern leaves predictable safe corridors. <a id="t030-v1"></a>
- Aimed volleys: movement draws a stream away. <a id="t030-v2"></a>
- Grazing: passing near a bullet earns a separate resource. <a id="t030-v3"></a>
- Bombs: a limited stock clears a dangerous field. <a id="t030-v4"></a>

## Design example

Slow rings intersect an aimed stream that the player can draw toward the screen edge.

Prototype check: Display the hitbox and graze region; verify safe gaps without unreadable projectile overlaps.

## Context and limits

Shooting connects position selection to the moment of firing. Distinguish view direction, weapon direction and the actual hit query: the camera may see a target while a wall blocks the muzzle. Traveling projectiles need readable trajectories and flight time; immediate hits need clear feedback and a consistent reticle. These overviews propose original rules and hypothetical scenarios. Godot's documentation explains ray intersection queries, not network lag compensation or a universal weapon model.

## Connected materials


## Sources and provenance

Original bilingual editorial overviews authored for gamemechanics.pro on 2026-10-20 and reviewed on 2026-10-21. Scenarios are hypothetical design examples; prototype checks describe work to perform, not completed playtests. Primary sources support the stated techniques and implementation context, not every proposed variant.

- [Godot: Ray-casting](https://docs.godotengine.org/en/stable/tutorials/physics/ray-casting.html) (id: source-8a492c292e237e0e)
- [Enter the Gungeon](https://store.steampowered.com/app/311690/) (id: source-34ecc9c6effac13a)

CC-BY-4.0 · gamemechanics.pro contributors
