hology-game-engine
Reference for building games with the Hology engine (a TypeScript/Three.js game framework).
Skill by KFlamsted
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/kflamsted-hology-game-engine
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: design, writing
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
- Runs as
- Node.js package
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/hology-game-engine
What's inside
- Skill name
hology-game-engine- Description
- Reference for building games with the Hology engine (a TypeScript/Three.js game framework). Use whenever writing or reviewing Hology gameplay code — actors, services, components, input, physics, assets, world, cameras, animation, AI and UI. Load the matching references/*.md file for any topic you work on in depth.
- License
- MIT
- Instructions
- 298 lines in SKILL.md · view on GitHub
Before installing
- Ships executable scripts
Files (12)
- SKILL.md
- actors-and-components.md · references/
- ai-and-navigation.md · references/
- animation.md · references/
- input.md · references/
- physics.md · references/
- services-world-assets.md · references/
- shaders-and-vfx.md · references/
- ui-and-react.md · references/
- actor.ts · templates/
- component.ts · templates/
- service.ts · templates/
SKILL.md (first lines)
# Hology Game Engine
Hology is a web-based 3D game engine built on **Three.js**. Games are written in **TypeScript** and run in the browser. It ships a 3D editor plus a gameplay framework with dependency injection, an actor/component model, physics, input, assets, animation, AI and camera helpers.
This file is the always-loaded core: the golden rule, project structure, the essential concepts, and do's & don'ts. **For any topic you touch in depth, open the matching file in `references/`** (see the index below) — that's where the full API and examples live.
Docs: https://docs.hology.app (append `.md` to any page URL for markdown; full index at https://docs.hology.app/llms.txt).
## The golden rule: use Hology's framework, don't rebuild it in Three.js
Hology already wraps most of what a game needs. **Do not hand-roll from scratch in Three.js what Hology provides.** Reach for the framework helper first:
| Need | Use Hology helper — NOT raw Three.js |
| --- | --- |
| A game object | `@Actor()` + `BaseActor` (not a bare `THREE.Object3D`) |
| Mesh + physics body | `MeshComponent` + `PhysicalShapeMesh` (not manual `THREE.Mesh` + external physics) |
| Loading models/textures/audio/materials | Prefer `AssetLoader` for Hology-managed/editor assets and supported paths. Use a direct Three.js loader only for an unsupported format, loader-specific behavior `AssetLoader` does not expose, or an established project pattern. |
| The camera / render loop / pause | `ViewController` (not your own `PerspectiveCamera` + `requestAnimationFrame`) |
| Spawning/finding objects, directional light | `World` (not `scene.add`) |
| Keyboard/mouse input | `InputService` (not raw `addEventListener('keydown')`) |
| Character walking/jumping | `CharacterMovementComponent` (not custom kinematics) |
| Third-person camera follow | `ThirdPersonCameraComponent` |
| Collisions, forces, raycasts | `PhysicsSystem` |
| Overlap zones | `TriggerVolumeComponent` / `TriggerVolume` |
| NPC pathfinding / decisions | `Navigation` + navmesh, behavior-tree nodes (not custom A*/state machines) |
| Character animation blending | `CharacterAnimationComponent` + `AnimationStateMachine` |
| Custom materials / vertex effects | `NodeShaderMaterial` (TS shaders), VFX tooling |
| Shared/global state & systems | `@Service()` singletons |
| Per-frame logic | actor `onUpdate`/`onLateUpdate` or `ViewController.onLateUpdate` (not your own loop) |
Raw Three.js is still fair game for **content details** — geometries, materials, `THREE.Vector3` math, `THREE.Audio` config — but the game's structure, lifecycle and systems should go through Hology. Asset loading should also use Hology's pipeline by default; direct Three.js loaders are narrow exceptions, not a replacement for `AssetLoader`.
## Reference index — open the file for your task
`SKILL.md` covers the essentials. When working on a topic in depth, read the matching file first (they hold the full API surface, options, and worked examples):
| Working on… | Open |
| --- | --- |
| Actor/component classes, lifecycle bugs, `@Parameter`, `MeshComponent`, spawning/moving, prefabs | `references/actors-and-components.md` |
| Services, `GameInstance`, `World`, `ViewController`, `AssetLoader`, `PointerEvents`, sound | `references/services-world-assets.md` |
| Player controls, keybinds, `AxisInput`/`ActionInput`, player controllers | `references/input.md` |
| Physics bodies, collision shapes, collision/overlap events, forces, ray casts, triggers, character movement | `references/physics.md` |
| Playing clips, `CharacterAnimationComponent`, animation state machines | `references/animation.md` |
| NPC AI, navmeshes, `Navigation`, behavior trees, `CharacterMoveToNode` | `references/ai-and-navigation.md` |
| Custom shaders / materials, particle & visual effects | `references/shaders-and-vfx.md` |
| HUD/menus, `HologyScene`, React hooks, signals, overlay CSS | `references/ui-and-react.md` |
Starter files to copy from: `templates/actor.ts`, `templates/component.ts`, `templates/service.ts`.
The public Hology docs do not document networking. Do not invent or rely on multiplayer APIs unless the installed `@hology/core` types/version and the project's requirements confirm them; do not treat exposed networking APIs as stable or generally supported.
## Project structure & entry point
A Hology project is a Vite + TypeScript web app. `hology.config.json` at the root declares the engine paths — keep to these conventions:
```json
{
"dataPath": "public/data",
"shadersPath": "src/shaders",
"actorsPath": "src/actors",
"componentsPath": "src/components"
}
```
Canonical layout (matches the official `starter-third-person-shooter`):
```
my-game/
├── hology.config.json # engine paths (above)
├── index.html
├── vite.config.ts
├── tsconfig.json
├── package.json
├── src/
│ ├── main.tsx # React bootstrap: renders <App />
│ ├── App.tsx # renders <HologyScene> with HUD / menu DOM layered over the game
│ ├── App.css
│ ├── actors/
│ │ ├── index.ts # default-exported actor registry object for editor/serialized content
│ │ └── *-actor.ts # one file per actor class
│ ├── components/
│ │ ├── index.ts # default-exported component registry object
│ │ └── *-component.ts
│ ├── services/
│ │ ├── game.ts # GameInstance entry point (see below)
│ │ └── player-controller.ts # input/keybind service, other game systems & state
│ └── shaders/
│ └── index.ts # default-exported shader registry object
└── public/
├── data/ # engine data written by the editor — don't hand-edit
│ ├── asset/
│ ├── scene/
│ └── scene-blob/
└── assets/ # raw model/texture/audio source files
```
- The entry point is a `@Service()` class extending **`GameInstance`** (conventionally `src/services/game.ts`), referenced by the UI via `<HologyScene gameClass={Game} .../>`. Pass the default-exported actor and shader registry objects to `HologyScene`, plus the component registry when the project defines custom components. These registries make registered classes available when loading editor-authored content. Its `async onStart()` runs when the game starts — spawn actors and wire up controllers/cameras here.
- Add actors that need editor placement or loading from serialized scene/prefab content to the default registry object in `actors/index.ts`. An actor used only through direct runtime spawning with its class does not need to be in that registry. Likewise, add custom components and shaders to their default registry objects when serialized or editor-authored content needs them; adding a class to a registry is distinct from a normal TypeScript import or named re-export.
- Prefer the editor's "Add new → Actor class" to scaffold new actors (it wires up the file + export for you).
- Run in dev with `npm run dev` (Vite, serves on http://localhost:5173).
- Reference: no single "project structure" doc page exists — the canonical example is https://github.com/hologyengine/starter-third-person-shooter (described at https://docs.hology.app/getting-started/starter-project-third-person-shooter.md).
- This React organization matches the official starter, but it is not an engine requirement. Equivalent composition is valid as long as `HologyScene` receives the required game class and registries.
Registry index files default-export an object of classes; do not replace this with named re-exports:
```typescript
// src/actors/index.ts
import ExampleActor from './example-actor'
export default {
ExampleActor,
}
```
Use the same shape for `src/components/index.ts` and `src/shaders/index.ts`, containing component and shader classes respectively. Import those default objects and pass them to the corresponding `HologyScene` props.
```typescript
// src/services/game.ts — entry point
import { GameInstance, Service, World, inject } from '@hology/core/gameplay'From KFlamsted/agent-workflow-kit, MIT.
More from KFlamsted/agent-workflow-kit
- 0.561score
implement-plan-loop
KFlamsted
Starts a delegated implementation loop from an implementation plan or freeform task prompt.
SkillAFreshness: AClaude Code +9 - 0.521score
clean-solid-review-loop
KFlamsted
Runs a Clean/SOLID quality review/fix loop until a 10/10 score, with a required behavior code-reviewer after each implementer.
SkillBFreshness: BClaude Code +9 - 0.521score
end-to-end-orchestrator
KFlamsted
Orchestrates software tasks end to end by delegating planning, phased implementation, review, and final reporting to specialized subagents.
SkillBFreshness: BClaude Code +9 - 0.521score
improve-human-spec-review
KFlamsted
Guide a human through reviewing a specification or implementation plan in clear, meaningful chunks without reviewing or editing the document for them.
SkillBFreshness: BClaude Code +9 - 0.521score
review-findings-to-plan
KFlamsted
Explicitly invoked workflow for discussing review findings one by one and converting agreed fixes into an implementation plan.
SkillBFreshness: BClaude Code +9 - 0.521score
code-review
KFlamsted
Explicitly invoked workflow for thoroughly reviewing the current branch against master or main without making code changes.
SkillBFreshness: BClaude Code +9 - 0.521score
end-to-end-orchestrator-detailed
KFlamsted
Orchestrates a software task through Gherkin behaviour planning, research, optional architecture, an INVEST implementation plan, then implement/review with…
SkillBFreshness: BClaude Code +9 - 0.518score
commit-message-generate
KFlamsted
Generates a concise commit message from provided changes without running git commands.
SkillBFreshness: BClaude Code +9 - 0.518score
code-review-loop
KFlamsted
Runs a reviewer-first code review/fix loop by delegating review and implementation to dedicated subagents.
SkillBFreshness: BClaude Code +9 - 0.518score
code-implementation-loop-orchestrator
KFlamsted
Coordinates an implementation/review loop by delegating all code writing and reviewing to subagents.
SkillBFreshness: BClaude Code +9 - 0.518score
create-implementation-plan
KFlamsted
Explicitly invoked workflow for creating a concrete implementation plan file from a requested task.
SkillBFreshness: BClaude Code +9 - 0.513score
implement-plan
KFlamsted
Explicitly invoked workflow for implementing an existing plan file in the repository.
SkillBFreshness: BClaude Code +9
Signals
- Stars
- 0
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Jul 28, 2026 (3 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/KFlamsted/agent-workflow-kit
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from KFlamsted
- 0.561score
implement-plan-loop
KFlamsted
Starts a delegated implementation loop from an implementation plan or freeform task prompt.
SkillAFreshness: AClaude Code +9 - 0.521score
end-to-end-orchestrator-detailed
KFlamsted
Orchestrates a software task through Gherkin behaviour planning, research, optional architecture, an INVEST implementation plan, then implement/review with…
SkillBFreshness: BClaude Code +9 - 0.521score
end-to-end-orchestrator
KFlamsted
Orchestrates software tasks end to end by delegating planning, phased implementation, review, and final reporting to specialized subagents.
SkillBFreshness: BClaude Code +9 - 0.521score
code-review
KFlamsted
Explicitly invoked workflow for thoroughly reviewing the current branch against master or main without making code changes.
SkillBFreshness: BClaude Code +9 - 0.521score
review-findings-to-plan
KFlamsted
Explicitly invoked workflow for discussing review findings one by one and converting agreed fixes into an implementation plan.
SkillBFreshness: BClaude Code +9 - 0.521score
clean-solid-review-loop
KFlamsted
Runs a Clean/SOLID quality review/fix loop until a 10/10 score, with a required behavior code-reviewer after each implementer.
SkillBFreshness: BClaude Code +9
Cite this page
hology-game-engine skill. Agent Mart. https://agentmart.dev/skills/kflamsted-hology-game-engine (last updated 2026-10-24)