🎁 Pickups Samples — Scenes, Demo Helpers & Diagnostics¶
The Pickups Samples folder contains teachable demo scenes, lightweight helper scripts, and diagnostics tools for exploring the Pickups system.
These are intended for:
- Learning how the system works
- Debugging pickup behaviour
- Profiling and validating behaviour under stress
- Rapid prototyping
👉 They are not part of the runtime framework and are safe to remove.
📂 Folder Layout¶
Samples/
Scenes/ // Runnable demo scenes (00–99)
DemoHelpers/ // Lightweight sample scripts (no Inventory required)
ScriptableObjects/ // Example PickupEffect assets used in scenes
Diagnostics/ // Performance smoke tests (developer-only tools)
🎬 Sample Scenes¶
Each scene demonstrates a specific part of the Pickups system and is paired with a Teachable Panel.
| Scene | Focus |
|---|---|
| 00 — Quickstart (Minimal) | Standalone pickup flow (no Inventory / Health) |
| 01 — World Pickups + Interactables | Trigger vs input-driven pickups |
| 02 — Decorators + Cooldowns | Decorator chains and cooldown behaviour |
👉 Open the corresponding panel in each scene to inspect behaviour live.
🧠 How These Samples Work¶
✔ Scene-Driven Examples¶
- All behaviour is demonstrated directly in scenes
- No prefab library or required setup is enforced
- Scenes show the minimal wiring needed for each pickup flow
✔ Demo Helpers (Not Systems)¶
DemoHelpers/ contains:
- Simple item storage (
SimpleItemBag) - Minimal UI (
SimpleItemBagUI) - Basic input service (
DebugKeysInputService)
These are:
- Sample-only
- Runtime-only (no persistence)
- Not production systems
✔ ScriptableObject Examples¶
ScriptableObjects/ contains example PickupEffect assets.
They demonstrate:
- Core effects
- Decorator wrapping
- Visual/audio behaviour
👉 These are examples, not a reusable effect library.
✔ Diagnostics (Performance Smoke Tests)¶
Diagnostics/ contains developer-only performance tests.
These are used to:
- Profile effect application cost
- Measure decorator chain depth scaling
- Observe cooldown overhead
- Detect allocation issues
👉 These are: - Not benchmarks - Not gameplay systems - Not performance guarantees
They exist purely to help developers understand scaling behaviour and misuse patterns.
✔ Inventory Independence¶
These samples do not require the Inventory system.
Instead:
- Items are stored as simple
string → intpairs - No services, adapters, or backend systems are involved
This keeps the focus on the pickup pipeline itself.
⚠️ Important Notes¶
These are demo assets¶
- Not production-ready
- Not part of the framework API
- Not intended as a reusable system
Teachable Panels are developer tools¶
- Used for learning and debugging
- Not gameplay UI
- Reflect real runtime behaviour
Authority is optional¶
- If no
IPickupAuthorityis present → pickups are allowed (single-player default) - Multiplayer projects must provide their own authority implementation
🧪 Quick Start¶
- Open a scene in
Samples/Pickups/Scenes - Press Play
- Open the corresponding Teachable Panel
- Interact with pickups or apply effects
- (Optional) Use Diagnostics to profile behaviour under stress
🧹 Safe to Remove¶
All content in this folder is optional.
Removing it will not affect:
- The Pickups runtime system
- Other RevFramework modules
🧠 Summary¶
These samples exist to answer:
“How do pickups behave in practice?”
They provide:
- Minimal, focused examples
- Live inspectable behaviour
- Optional performance diagnostics
- Zero hidden setup
Learn from them — then build your own implementation.