Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion .claude/CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,9 @@ International-friendly framing. Explained via science (Nibirium, biotech, consci

### Backend

- **Current baseline:** Supabase + Go LLM Gateway remains the default until a backend ADR replaces it.
- **Nakama OSS:** Approved for a focused spike if research supports it. Do not adopt Nakama, Hiro, Satori, OpenAuth, or any new auth / social stack without an ADR and JOY approval.
- **Hiro / Satori:** Commercial / license-dependent candidates only. Do not assume they are open-source drop-in dependencies.
- **Supabase Auth** (reuse DOS.Me pattern, do not invent new auth)
- **Supabase Postgres** (durable state: profile, inventory, quest progress, NFT lock state, cultivation tier)
- **Supabase Realtime** (chat global, presence, friend, party invite, notification - NOT for combat / movement sync)
Expand Down Expand Up @@ -303,7 +306,7 @@ OUT of scope for vertical slice:
2. **NEVER let LLM mutate authoritative game state.** Server validates all intent.
3. **NEVER put API keys (Anthropic, OpenAI, Convai, ElevenLabs) in Unity client.** All LLM calls go through Go gateway.
4. **NEVER use Host Mode for production.** Server Mode dedicated only.
5. **NEVER add Nakama, OpenAuth, or new auth / social stack.** Reuse Supabase + DOS.Me patterns.
5. **NEVER add or replace backend / auth / social stack without an ADR and JOY approval.** Supabase + DOS.Me patterns remain the baseline. Nakama OSS may be spiked if the ADR keeps Fusion authoritative gameplay, Supabase identity compatibility, and clear exit criteria.
6. **NEVER change Unity Asset Serialization away from Force Text.** Breaks LFS + diff.
7. **NEVER claim "done" without reviewer pass** (JOY is non-coder, cannot review code himself).
8. **ALWAYS edit BOTH `.claude/CLAUDE.md` and `AGENTS.md` together when updating project context.** They are sister files - Claude Code auto-loads CLAUDE.md, Codex CLI / Cursor / Copilot auto-load AGENTS.md. Edit one without the other = drift; the un-updated file lies to whichever agent reads it. Both files MUST be identical except for the sister-file comment header at line 1.
Expand All @@ -316,5 +319,6 @@ OUT of scope for vertical slice:
- Hunter NFT integration approach: Option 1 (preset hero) vs Hybrid 1+3 (modular pieces)
- Phase 2 LLM model split (when to use Haiku vs Sonnet)
- Voice NPC vendor (OpenAI Realtime vs ElevenLabs vs self-host)
- Backend platform selection: Supabase-first thin backend vs Nakama OSS game backend + Supabase identity bridge. Hiro / Satori require license and pricing review before adoption.
- Dedicated server hosting (Hetzner specs, region)
- Photon Fusion 2 license tier when scaling beyond Cloud free 20 CCU
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,10 @@ backend/dist/
# Photon credentials (if checked-in template)
PhotonServerSettings.asset.local

# Paid Unity Asset Store assets (installed locally via Package Manager > My Assets)
Unity/Assets/ExplosiveLLC/
Unity/Assets/ExplosiveLLC.meta

# Claude Code worktrees (ephemeral, per-session branches)
.claude/worktrees/

Expand Down
6 changes: 5 additions & 1 deletion AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,9 @@ International-friendly framing. Explained via science (Nibirium, biotech, consci

### Backend

- **Current baseline:** Supabase + Go LLM Gateway remains the default until a backend ADR replaces it.
- **Nakama OSS:** Approved for a focused spike if research supports it. Do not adopt Nakama, Hiro, Satori, OpenAuth, or any new auth / social stack without an ADR and JOY approval.
- **Hiro / Satori:** Commercial / license-dependent candidates only. Do not assume they are open-source drop-in dependencies.
- **Supabase Auth** (reuse DOS.Me pattern, do not invent new auth)
- **Supabase Postgres** (durable state: profile, inventory, quest progress, NFT lock state, cultivation tier)
- **Supabase Realtime** (chat global, presence, friend, party invite, notification - NOT for combat / movement sync)
Expand Down Expand Up @@ -303,7 +306,7 @@ OUT of scope for vertical slice:
2. **NEVER let LLM mutate authoritative game state.** Server validates all intent.
3. **NEVER put API keys (Anthropic, OpenAI, Convai, ElevenLabs) in Unity client.** All LLM calls go through Go gateway.
4. **NEVER use Host Mode for production.** Server Mode dedicated only.
5. **NEVER add Nakama, OpenAuth, or new auth / social stack.** Reuse Supabase + DOS.Me patterns.
5. **NEVER add or replace backend / auth / social stack without an ADR and JOY approval.** Supabase + DOS.Me patterns remain the baseline. Nakama OSS may be spiked if the ADR keeps Fusion authoritative gameplay, Supabase identity compatibility, and clear exit criteria.
6. **NEVER change Unity Asset Serialization away from Force Text.** Breaks LFS + diff.
7. **NEVER claim "done" without reviewer pass** (JOY is non-coder, cannot review code himself).
8. **ALWAYS edit BOTH `.claude/CLAUDE.md` and `AGENTS.md` together when updating project context.** They are sister files - Claude Code auto-loads CLAUDE.md, Codex CLI / Cursor / Copilot auto-load AGENTS.md. Edit one without the other = drift; the un-updated file lies to whichever agent reads it. Both files MUST be identical except for the sister-file comment header at line 1.
Expand All @@ -316,5 +319,6 @@ OUT of scope for vertical slice:
- Hunter NFT integration approach: Option 1 (preset hero) vs Hybrid 1+3 (modular pieces)
- Phase 2 LLM model split (when to use Haiku vs Sonnet)
- Voice NPC vendor (OpenAI Realtime vs ElevenLabs vs self-host)
- Backend platform selection: Supabase-first thin backend vs Nakama OSS game backend + Supabase identity bridge. Hiro / Satori require license and pricing review before adoption.
- Dedicated server hosting (Hetzner specs, region)
- Photon Fusion 2 license tier when scaling beyond Cloud free 20 CCU
8 changes: 8 additions & 0 deletions Unity/Assets/Photon/FusionAddons.meta

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 8 additions & 0 deletions Unity/Assets/Photon/FusionAddons/SimpleKCC.meta

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Git LFS file not shown

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Git LFS file not shown

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

96 changes: 96 additions & 0 deletions Unity/Assets/Photon/FusionAddons/SimpleKCC/release_history.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
Photon Fusion Simple KCC Addon - Release History

Last tested with Fusion SDK 2.0.6 Stable 1034

2.0.15
- Fixed jitter when landing on collider edge - clearing DynamicVelocity.y when step-up is triggered in StepUpProcessor.

2.0.14
- Fixed Transform and Rigidbody position when simulating forward tick next frame after Render().
- Fixed incorrect step-up activation when touching wall colliders but not pushing against.

2.0.13
- Compatibility fixes for shared mode plugin export.
- RealVelocity and RealSpeed now resets to zero after calling SimpleKCC.SetActive(false).
- SimpleKCC.ResetVelocity() now also resets RealVelocity and RealSpeed.

2.0.12
- KCC editor scripts compatibility with Fusion SDK 2.0.2.

2.0.11
- Improved teleport - the information is now reliably synchronized over the network.
- Removed TeleportThreshold from KCC Settings.
- Max prediction error and anti-jitter distance check is now set to 1 meter.
- Fixed SimpleKCC.HasTeleported and SimpleKCC.HasJumped for proxy objects (reliable implementation based on counters).
- Fixed SimpleKCC.HasTeleported and SimpleKCC.HasJumped - they are now set only once in first Render after FUN in which teleport/jump happened.
- SimpleKCC.SetPosition() now accepts optional parameters 'teleport' and 'allowAntiJitter'.

2.0.10
- Exposed MaxPenetrationSteps and CCDRadiusMultiplier in Simple KCC settings.
- Increased range of CCD radius multiplier from 25-75% to 10-90%.
- Improved precision of collision resolver for specific cases (corridors, 3 collisions with almost perpendicular penetration vectors).
- Refactoring of penetration correction algorithm, improved performance scalability.
- Added SimpleKCC.ResetVelocity() to reset state.
- Fixed proxy collider being destroyed on clients when SimpleKCC.IsActive is false.

2.0.9
- Improved multi-collider penetration correction.
- Fixes step-up. Now it requires horizontal movement push-back to activate.

2.0.8
- KCCSettings.ForcePredictedLookRotation is now synchronized over network by default and affects input authority only.
- Fixed teleport detection in network transform only interpolation.
- Look rotation is now snapped when teleport is detected.
- Removed temporary fix for incorrect interpolation data - fixed in 2.0.0 Stable 834.

Version 2.0.7
- KCC collider is now also controlled by KCC.IsActive. If the flag is set to false, the collider will be despawned.
- Exposed KCC.InvokeOnSpawn() - can be used for initialization upon KCC.Spawned() callback.
- Added KCC.SetLookRotation() with min/max pitch look rotation.
- Removed RenderTimeframe override on proxy interpolation.

Version 2.0.6
- Fixed stuck on the edge when finishing step-up.
- Added input accumulators - FloatAccumulator, Vector2Accumulator, Vector3Accumulator.
- These classes support accumulation of raw values, their smoothing and tick-aligned delta consumption.
- Typical use-case is accumulation of mouse delta passed through a network struct.
- The tick-aligned accumulation ensures that snapshot interpolated value in Render() will be smooth.
- Fixed downward sphere cast check in step-up.
- Added SimpleKCC.ProjectOnGround(). This is useful when calculating XZ input => XYZ velocity to move along ground tangent.

Version 2.0.5
Important
============================================================
! Simple KCC proxy is no longer simulated by default. If you call Runner.SetIsSimulated(Object, true) from other script, the KCC will behave as predicted.
! Jump impulse vector in Move() function converted to float => XZ is not supported.
! Gravity vector in SetGravity() function converted to float => XZ is not supported.

Changes
============================================================
- Added gizmos when KCC is selected.
- Added KCCSettings.ForcePredictedLookRotation - skips look rotation interpolation in render for local character and can be used for extra look responsiveness with other properties being interpolated.
- Added KCCSettings.ProxyInterpolation - controls interpolations of networked properties from network buffer, and propagation to Collider, Transform and Rigidbody components.
- Added KCCSettings.CompressNetworkPosition - optional network traffic reduction for non-player characters. Full precision position is synchronized by default.
- Improved step detection configuration (added min push-back to trigger step-up, toggle to require ground target point, variable ground check radius). Backport from Advanced KCC 2.0.
- Removed Runner.SetIsSimulated(Object, true) from KCC - proxies are no longer simulated.
- Removed networked keep-alive flag.
- Performance optimizations for proxies.
- Fixed projection of depenetration vector, resulting in jitter on slopes.

Version 2.0.4
- Changed root namespace from Fusion.SimpleKCC to Fusion.Addons.SimpleKCC.

Version 2.0.3
- Performance and network traffic optimizations.
- Fixed interpolation in Shared Mode.
- Added support for position and rotation handles.
- Compatibility with latest Fusion SDK.

Version 2.0.2
- Performance optimizations.

Version 2.0.1
- Exposed KCC Settings.

Version 2.0.0
- Initial release.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
version: 2.0.15 1024
date: 2025-11-03 16:31:05
git: main (a4a4ff6)

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading
Loading