5.0 KiB
🖐️ TOUCH Peripheral (Absolute Pointer Input System)
1. Overview
The TOUCH peripheral provides PROMETEU with an absolute pointer, based on screen coordinates, intended for:
- UI interaction
- direct element selection
- contextual actions in the scenery
- drag-based mechanics (drag, slash, trail)
The TOUCH is a first-class peripheral, as valid as D-Pad and buttons.
2. Design Principles
TOUCH in PROMETEU follows strict principles:
- ✅ Universal single-touch
- ✅ Deterministic
- ✅ Per-frame state
- ✅ No gestures
- ✅ No acceleration
- ✅ No heuristics
- ✅ Same behavior on all platforms
If a behavior cannot be guaranteed on all platforms, it does not exist in PROMETEU.
3. Conceptual Model
PROMETEU exposes only one active pointer at a time, regardless of how many physical touches the hardware recognizes.
- Hardware may detect multitouch
- Runtime selects only one active touch
- The API never exposes multitouch
This model guarantees:
- total portability
- predictability
- absence of ambiguities
4. Coordinate Space
- TOUCH coordinates use the same space as the framebuffer
- Resolution: 320×180
- Origin: top-left corner
(0,0) - Ranges:
x ∈ [0, 319]y ∈ [0, 179]
TOUCH is absolute:
(x, y) represents the exact position of contact, without dynamic transformation.
5. TOUCH Peripheral API
5.1 Exposed Structure
TOUCH:
present : bool
down : bool
pressed : bool
released : bool
x : int
y : int
5.2 Field Semantics
- present
trueif the TOUCH peripheral is availablefalseif there is no physical touch (desktop, hardware without touch)
- down
truewhile the active pointer is pressed
- pressed
trueonly in the frame where the active pointer was captured
- released
trueonly in the frame where the active pointer was released
- x, y
- current position of the active pointer
- valid only when
down == true
6. Pointer Selection Policy
Single Pointer Capture Policy
When multiple physical touches occur, PROMETEU applies the following policy:
6.1 Initial Capture
- If no pointer is active
- And a new physical touch occurs
- The first detected touch is captured
- This touch becomes the active pointer
This frame generates:
pressed = truedown = true
6.2 Capture Maintenance
While the active pointer is pressed:
- Only it is tracked
- All other physical touches are ignored
x, yfollow only the active pointer
6.3 Release
When the active pointer is released:
released = truedown = false- The system enters a no active pointer state
6.4 Recapture (Important Rule)
After release:
- Touches that were already present are ignored
- A new pointer is only captured with a new touch event
This avoids unexpected pointer jumps and accidental actions.
7. Deliberately NOT Supported Behaviors
The TOUCH peripheral does not implement:
❌ Multitouch
❌ Gestures (swipe, pinch, rotate, long-press)
❌ Acceleration or smoothing
❌ Dynamic sensitivity
❌ Implicit history
❌ Intent interpretation
If a game wants any of these behaviors, it must:
- implement them explicitly
- using only per-frame state
- without implicit hardware support
8. “No Gesture” — Formal Definition
PROMETEU does not interpret temporal patterns.
The TOUCH peripheral does not classify actions as:
- swipe
- drag
- long press
- double tap
It only reports:
- current position
- contact state
All semantics are the game's responsibility.
9. “No Acceleration” — Formal Definition
PROMETEU does not modify the TOUCH input.
- No sensitivity curves
- No speed-based amplification
- No smoothing
The relationship between the physical touch and (x, y) is 1:1 after normalization.
10. Integration with Other Input Forms
- Desktop:
- mouse can emulate TOUCH
- Mobile:
- direct physical touch
- Steam Deck:
- physical touchscreen
- PROMETEU Hardware:
- optional touch, but supported
From PROMETEU's point of view:
TOUCH is always TOUCH.
11. Expected Uses
The TOUCH peripheral is suitable for:
- UI (menus, inventory, maps)
- drag-and-drop
- direct selection
- “click to investigate”
- pointing-based puzzles
- trail mechanics (e.g.: Fruit Ninja-like)
12. Portability Guarantees
Every PROMETEU game that uses TOUCH:
- behaves identically on all platforms
- does not depend on host-specific capabilities
- does not suffer semantic variation between desktop, mobile, and dedicated hardware
13. Summary
The TOUCH in PROMETEU is:
- simple
- explicit
- predictable
- universal
- deterministic