# Time Fracture: Start Here **Time Fracture** is a set of Unity scripts for games where time is broken into pieces. Events run on Timelines that can be played backwards, frozen, skipped, looped, slowed or remixed into a new order, and the player's actions change how those events play out. - **Unity:** 6000.3 (Unity 6.3) - **Packages:** Timeline and Input System (Input System only, no old Input Manager) - **Works in:** 2D and 3D --- ## Learning path Work through these in order. Each tutorial builds on the one before it and has its own demo scene. | # | Note | You'll learn | Demo (Tools ▸ Time Fracture ▸ …) | Time | |---|---|---|---|---| | 1 | [[TimeFracture-Getting-Started]] | Project setup, then building by hand: a Time Channel, segments, playlists (remixes), Time Event markers, groups, and a player choice that branches the story | **Build Demo Scene** | ~45 min | | 2 | [[TimeFracture-Tutorial-Wiring]] | Touching, blocking and shooting objects to change their time; colour themes and lenses for each Timeline; many objects on one Timeline; recording the player and cooperating with echoes | **Build Tutorial Scene (2D)** | ~60 min | | 3 | [[TimeFracture-Tutorial-Enemies]] | Rewindable AI enemies, bullets and physics; scripted-until-disturbed enemies; undoing a fight | **Build Enemy Rewind Demo (2D)** | ~45 min | | 4 | [[TimeFracture-Design-Ideas]] | Similar games, player motivations, and 15 level ideas mapped to the scripts | — | reading | | ref | [[TimeFracture-Scripts]] | Every script: what it is, where it goes and what it does, with the full source embedded | — | reference | | ref | `README.md` | The API cheat sheet (method calls), playlists and technical notes | — | reference | > [!tip] Fastest way to understand it > Import the package, run all three **Build…** menus, and play each scene for a few minutes before starting tutorial 1. --- ## What's in the folder ``` Time Fracture/ ├─ 00-Start-Here.md ← this note ├─ TimeFracture-Getting-Started.md ← tutorial 1 ├─ TimeFracture-Tutorial-Wiring.md ← tutorial 2 ├─ TimeFracture-Tutorial-Enemies.md ← tutorial 3 ├─ TimeFracture-Design-Ideas.md ← design guide ├─ TimeFracture-Scripts.md ← script reference ├─ README.md ← API cheat sheet ├─ Runtime/ ← scripts that run in the game │ ├─ TimeChannel, TimeWorld, TimeCommand, TimeCommandTrigger, markers, debug HUD │ ├─ Interaction/ TimeInteractable, TimeBlockSensor, TimeProjectile, TimeShooter │ ├─ Visuals/ TimeVisualTheme, TimeVisualizer, TimeLensController │ ├─ Members/ TimeMember, TimeOscillator │ ├─ Recording/ TimeTake, TimeRecorder, TimeEcho │ ├─ Rewind/ TimeRewindable, ITimeStateful │ ├─ Util/ TimeInput, TimeRewindKey │ └─ Demo/ example player, guard, bullet, auto-rewind, help text ├─ Editor/ ← inspectors and the three demo builders └─ Packages/ ← TimeFracture.unitypackage and TimeFracture.zip ``` **Installing in a project:** import `Packages/TimeFracture.unitypackage`, or copy the `Runtime` and `Editor` folders, plus the notes if you want them, into `Assets/TimeFracture/` in your project. The steps are in tutorial 1, Step 0. **Using the notes in Obsidian:** keep the notes in the same folder as `Runtime/` and `Editor/`. The ` ```codefile ` embeds use paths relative to that folder. --- ## Feature checklist | Feature | Where it's taught | |---|---| | Play forward or backward, change speed, ease speed | Getting Started, Step 1 | | Freeze, pause, timed freeze | Getting Started, Steps 1 and 6 | | Skip and jump (to a time or segment) | Getting Started, Steps 1 and 2 | | Loop a segment or region, break a loop | Getting Started, Step 2 | | Remix segments into playlists (order, direction, speed, repeats, holds) | Getting Started, Step 3 | | Events that fire forward and/or backward; Signals | Getting Started, Step 4 | | Several objects on separate Timelines at once; groups and world time | Getting Started, Step 5 | | Story flags and branching | Getting Started, Step 6 | | Touch, block and shoot interactions | Wiring, section 1 | | Colour themes, time-state colours, lenses that reveal or hide Timelines | Wiring, section 2 | | Many objects on one Timeline (rigs and members) | Wiring, section 3 | | Recording the player; echoes and cooperation puzzles | Wiring, section 4 | | Rewindable AI, bullets and physics; undoing a fight | Enemies, sections 1–4 | | Writing your own rewind-friendly scripts | Enemies, section 3 | | Input System bindings (keyboard, mouse, gamepad, your own actions asset) | Wiring, "Before you start" | --- ## Known limitations - **Not yet run in the Unity editor.** The scripts were compiled against stand-in versions of the Unity APIs, and the core time logic was simulated outside Unity, but no one has opened them in Unity 6.3 yet. Expect possibly a small fix on first import. Report the Console error and line number. - **Audio tracks** don't play while a director is in Manual mode. Trigger sounds from Time Events instead. - **Physics in slow motion:** rigidbodies freeze and rewind with time, but fall at normal speed at partial rates. Script-driven movement using `DeltaTime` slows correctly. - **Nested timelines** (sub-timelines on a Control Track) play correctly, but their markers aren't scanned. Put markers on the parent Timeline. - **Echoes and live AI can diverge.** Recordings replay exactly, but live enemies react to what's happening now. Use scripted enemies where a puzzle needs certainty. - **The demo builders use generated squares and circles.** Swap in your own sprites and prefabs when you build a real game. --- ## Version history | Version | Changes | |---|---| | 1.0 | TimeChannel, TimeWorld, commands, triggers, markers, playlists, debug HUD, inspectors, demo scene | | 1.1 | Interaction (touch, block, shoot), themes and lenses, TimeMember, recording and echoes, 2D tutorial scene | | 1.2 | Switched to the Input System package only; controls are Input Action properties with gamepad defaults | | 1.3 | Rewindable enemies, bullets and physics (TimeRewindable, ITimeStateful), TimeChannel.Detached, enemy demo | | 1.4 | Final docs: Start Here, the step-by-step Getting Started tutorial, cross-links, packages refreshed |