@aura3d/scripting 1.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +16 -0
- package/dist/AdaptiveDifficultyFixtures.d.ts +58 -0
- package/dist/AdaptiveDifficultyFixtures.d.ts.map +1 -0
- package/dist/AdaptiveDifficultyFixtures.js +228 -0
- package/dist/AdaptiveDifficultyFixtures.js.map +1 -0
- package/dist/AnalyticsPrivacyFixtures.d.ts +63 -0
- package/dist/AnalyticsPrivacyFixtures.d.ts.map +1 -0
- package/dist/AnalyticsPrivacyFixtures.js +120 -0
- package/dist/AnalyticsPrivacyFixtures.js.map +1 -0
- package/dist/Behavior.d.ts +10 -0
- package/dist/Behavior.d.ts.map +1 -0
- package/dist/Behavior.js +2 -0
- package/dist/Behavior.js.map +1 -0
- package/dist/BehaviorHost.d.ts +17 -0
- package/dist/BehaviorHost.d.ts.map +1 -0
- package/dist/BehaviorHost.js +39 -0
- package/dist/BehaviorHost.js.map +1 -0
- package/dist/BehaviorRegistry.d.ts +8 -0
- package/dist/BehaviorRegistry.d.ts.map +1 -0
- package/dist/BehaviorRegistry.js +17 -0
- package/dist/BehaviorRegistry.js.map +1 -0
- package/dist/BehaviorSystem.d.ts +26 -0
- package/dist/BehaviorSystem.d.ts.map +1 -0
- package/dist/BehaviorSystem.js +76 -0
- package/dist/BehaviorSystem.js.map +1 -0
- package/dist/BehaviorTree.d.ts +75 -0
- package/dist/BehaviorTree.d.ts.map +1 -0
- package/dist/BehaviorTree.js +204 -0
- package/dist/BehaviorTree.js.map +1 -0
- package/dist/CloudServiceFixtures.d.ts +81 -0
- package/dist/CloudServiceFixtures.d.ts.map +1 -0
- package/dist/CloudServiceFixtures.js +144 -0
- package/dist/CloudServiceFixtures.js.map +1 -0
- package/dist/CulturalBehaviorFixtures.d.ts +75 -0
- package/dist/CulturalBehaviorFixtures.d.ts.map +1 -0
- package/dist/CulturalBehaviorFixtures.js +180 -0
- package/dist/CulturalBehaviorFixtures.js.map +1 -0
- package/dist/DecisionTree.d.ts +42 -0
- package/dist/DecisionTree.d.ts.map +1 -0
- package/dist/DecisionTree.js +125 -0
- package/dist/DecisionTree.js.map +1 -0
- package/dist/GOAP.d.ts +51 -0
- package/dist/GOAP.d.ts.map +1 -0
- package/dist/GOAP.js +105 -0
- package/dist/GOAP.js.map +1 -0
- package/dist/HTN.d.ts +58 -0
- package/dist/HTN.d.ts.map +1 -0
- package/dist/HTN.js +115 -0
- package/dist/HTN.js.map +1 -0
- package/dist/LearningAgentFixtures.d.ts +60 -0
- package/dist/LearningAgentFixtures.d.ts.map +1 -0
- package/dist/LearningAgentFixtures.js +122 -0
- package/dist/LearningAgentFixtures.js.map +1 -0
- package/dist/NetworkReplicationFixtures.d.ts +82 -0
- package/dist/NetworkReplicationFixtures.d.ts.map +1 -0
- package/dist/NetworkReplicationFixtures.js +330 -0
- package/dist/NetworkReplicationFixtures.js.map +1 -0
- package/dist/Perception.d.ts +58 -0
- package/dist/Perception.d.ts.map +1 -0
- package/dist/Perception.js +111 -0
- package/dist/Perception.js.map +1 -0
- package/dist/PlayerBehaviorTelemetryFixtures.d.ts +74 -0
- package/dist/PlayerBehaviorTelemetryFixtures.d.ts.map +1 -0
- package/dist/PlayerBehaviorTelemetryFixtures.js +189 -0
- package/dist/PlayerBehaviorTelemetryFixtures.js.map +1 -0
- package/dist/ProceduralContentAdaptationFixtures.d.ts +52 -0
- package/dist/ProceduralContentAdaptationFixtures.d.ts.map +1 -0
- package/dist/ProceduralContentAdaptationFixtures.js +149 -0
- package/dist/ProceduralContentAdaptationFixtures.js.map +1 -0
- package/dist/ScriptContext.d.ts +18 -0
- package/dist/ScriptContext.d.ts.map +1 -0
- package/dist/ScriptContext.js +21 -0
- package/dist/ScriptContext.js.map +1 -0
- package/dist/StateMachine.d.ts +52 -0
- package/dist/StateMachine.d.ts.map +1 -0
- package/dist/StateMachine.js +117 -0
- package/dist/StateMachine.js.map +1 -0
- package/dist/UtilityAI.d.ts +55 -0
- package/dist/UtilityAI.d.ts.map +1 -0
- package/dist/UtilityAI.js +113 -0
- package/dist/UtilityAI.js.map +1 -0
- package/dist/VisualGraph.d.ts +20 -0
- package/dist/VisualGraph.d.ts.map +1 -0
- package/dist/VisualGraph.js +191 -0
- package/dist/VisualGraph.js.map +1 -0
- package/dist/VisualGraphContext.d.ts +123 -0
- package/dist/VisualGraphContext.d.ts.map +1 -0
- package/dist/VisualGraphContext.js +2 -0
- package/dist/VisualGraphContext.js.map +1 -0
- package/dist/VisualGraphExecutor.d.ts +16 -0
- package/dist/VisualGraphExecutor.d.ts.map +1 -0
- package/dist/VisualGraphExecutor.js +571 -0
- package/dist/VisualGraphExecutor.js.map +1 -0
- package/dist/VisualNode.d.ts +17 -0
- package/dist/VisualNode.d.ts.map +1 -0
- package/dist/VisualNode.js +24 -0
- package/dist/VisualNode.js.map +1 -0
- package/dist/VisualNodeCatalog.d.ts +14 -0
- package/dist/VisualNodeCatalog.d.ts.map +1 -0
- package/dist/VisualNodeCatalog.js +142 -0
- package/dist/VisualNodeCatalog.js.map +1 -0
- package/dist/WeaponSystem.d.ts +228 -0
- package/dist/WeaponSystem.d.ts.map +1 -0
- package/dist/WeaponSystem.js +530 -0
- package/dist/WeaponSystem.js.map +1 -0
- package/dist/index.d.ts +51 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +25 -0
- package/dist/index.js.map +1 -0
- package/package.json +13 -0
- package/src/AdaptiveDifficultyFixtures.ts +324 -0
- package/src/AnalyticsPrivacyFixtures.ts +182 -0
- package/src/Behavior.ts +11 -0
- package/src/BehaviorHost.ts +51 -0
- package/src/BehaviorRegistry.ts +22 -0
- package/src/BehaviorSystem.ts +103 -0
- package/src/BehaviorTree.ts +234 -0
- package/src/CloudServiceFixtures.ts +225 -0
- package/src/CulturalBehaviorFixtures.ts +262 -0
- package/src/DecisionTree.ts +162 -0
- package/src/GOAP.ts +150 -0
- package/src/HTN.ts +178 -0
- package/src/LearningAgentFixtures.ts +184 -0
- package/src/NetworkReplicationFixtures.ts +440 -0
- package/src/Perception.ts +163 -0
- package/src/PlayerBehaviorTelemetryFixtures.ts +257 -0
- package/src/ProceduralContentAdaptationFixtures.ts +205 -0
- package/src/ScriptContext.ts +34 -0
- package/src/StateMachine.ts +138 -0
- package/src/UtilityAI.ts +158 -0
- package/src/VisualGraph.ts +236 -0
- package/src/VisualGraphContext.ts +138 -0
- package/src/VisualGraphExecutor.ts +663 -0
- package/src/VisualNode.ts +44 -0
- package/src/VisualNodeCatalog.ts +195 -0
- package/src/WeaponSystem.ts +793 -0
- package/src/index.ts +175 -0
- package/tests/scripting.test.ts +229 -0
- package/tsconfig.json +7 -0
|
@@ -0,0 +1,330 @@
|
|
|
1
|
+
const source = "origin-master-net-prediction-replication-adapted";
|
|
2
|
+
const blockedClaims = [
|
|
3
|
+
"real socket transport",
|
|
4
|
+
"authoritative production multiplayer server",
|
|
5
|
+
"matchmaking/lobby service parity",
|
|
6
|
+
"rollback netcode parity",
|
|
7
|
+
"voice chat transport parity",
|
|
8
|
+
"anti-cheat security parity",
|
|
9
|
+
"Unity Netcode parity",
|
|
10
|
+
"Unreal replication parity"
|
|
11
|
+
];
|
|
12
|
+
export function sampleNetworkReplicationFixture(options = {}) {
|
|
13
|
+
const seed = integerOption(options.seed ?? 2026, "seed");
|
|
14
|
+
const tickRate = positiveNumber(options.tickRate ?? 60, "tickRate");
|
|
15
|
+
const latencyMs = nonNegativeNumber(options.latencyMs ?? 64, "latencyMs");
|
|
16
|
+
const jitterMs = nonNegativeNumber(options.jitterMs ?? 11, "jitterMs");
|
|
17
|
+
const interestRadius = positiveNumber(options.interestRadius ?? 18, "interestRadius");
|
|
18
|
+
const clientPosition = vec3Option(options.clientPosition ?? [0, 0, 0], "clientPosition");
|
|
19
|
+
const inputFrames = buildInputFrames(seed, tickRate, latencyMs, jitterMs);
|
|
20
|
+
const initial = entityState({
|
|
21
|
+
id: "net-player",
|
|
22
|
+
ownerId: "player-a",
|
|
23
|
+
replicationMode: "all-clients",
|
|
24
|
+
position: [0, 0, 0],
|
|
25
|
+
velocity: [0, 0, 0],
|
|
26
|
+
health: 100,
|
|
27
|
+
ammo: 30,
|
|
28
|
+
animation: "idle",
|
|
29
|
+
timestampMs: 1_000,
|
|
30
|
+
lastProcessedInput: 99
|
|
31
|
+
});
|
|
32
|
+
const clientPredicted = inputFrames.reduce((state, input) => applyInput(state, input, 1 / tickRate), initial);
|
|
33
|
+
const acknowledgedSequence = inputFrames[2]?.sequence ?? inputFrames[0]?.sequence ?? 100;
|
|
34
|
+
const serverAuthoritative = entityState({
|
|
35
|
+
...clientPredicted,
|
|
36
|
+
position: [
|
|
37
|
+
round3(clientPredicted.position[0] - 0.18),
|
|
38
|
+
round3(clientPredicted.position[1]),
|
|
39
|
+
round3(clientPredicted.position[2] + 0.14)
|
|
40
|
+
],
|
|
41
|
+
velocity: [round3(clientPredicted.velocity[0] * 0.88), 0, round3(clientPredicted.velocity[2] * 0.9)],
|
|
42
|
+
health: 92,
|
|
43
|
+
ammo: 29,
|
|
44
|
+
timestampMs: clientPredicted.timestampMs - latencyMs,
|
|
45
|
+
lastProcessedInput: acknowledgedSequence
|
|
46
|
+
});
|
|
47
|
+
const pending = inputFrames.filter((input) => input.sequence > acknowledgedSequence);
|
|
48
|
+
const error = vectorDelta(serverAuthoritative.position, clientPredicted.position);
|
|
49
|
+
const smoothCorrection = [round3(error[0] * 0.18), round3(error[1] * 0.18), round3(error[2] * 0.18)];
|
|
50
|
+
const replayed = pending.reduce((state, input) => applyInput(state, input, 1 / tickRate), serverAuthoritative);
|
|
51
|
+
const baseSnapshot = stateMap(initial);
|
|
52
|
+
const currentSnapshot = stateMap(serverAuthoritative);
|
|
53
|
+
const delta = createDeltaSummary(baseSnapshot, currentSnapshot);
|
|
54
|
+
const interest = createInterestSummary(clientPosition, interestRadius);
|
|
55
|
+
const interpolation = createInterpolationSummary();
|
|
56
|
+
const prediction = {
|
|
57
|
+
inputCount: inputFrames.length,
|
|
58
|
+
predictedSequence: clientPredicted.lastProcessedInput,
|
|
59
|
+
acknowledgedSequence,
|
|
60
|
+
pendingInputs: pending.length,
|
|
61
|
+
predictionError: round3(vectorLength(error)),
|
|
62
|
+
smoothCorrection,
|
|
63
|
+
replayedPosition: replayed.position,
|
|
64
|
+
reconciliationAccepted: delta.reconstructedMatches && pending.length > 0 && vectorLength(error) > 0
|
|
65
|
+
};
|
|
66
|
+
const hash = stableHash([
|
|
67
|
+
source,
|
|
68
|
+
tickRate,
|
|
69
|
+
latencyMs,
|
|
70
|
+
jitterMs,
|
|
71
|
+
prediction.predictionError,
|
|
72
|
+
prediction.pendingInputs,
|
|
73
|
+
delta.changedFields.join(","),
|
|
74
|
+
interest.relevant.join(","),
|
|
75
|
+
interpolation.interpolatedPosition.join(",")
|
|
76
|
+
].join("|"));
|
|
77
|
+
return {
|
|
78
|
+
source,
|
|
79
|
+
claimBoundary: "This fixture adapts old local networking algorithms into deterministic runtime telemetry only; it does not open sockets, run a server, synchronize browsers, or claim production multiplayer.",
|
|
80
|
+
blockedClaims,
|
|
81
|
+
tickRate,
|
|
82
|
+
latencyMs,
|
|
83
|
+
jitterMs,
|
|
84
|
+
inputFrames,
|
|
85
|
+
clientPredicted,
|
|
86
|
+
serverAuthoritative,
|
|
87
|
+
prediction,
|
|
88
|
+
delta,
|
|
89
|
+
interest,
|
|
90
|
+
interpolation,
|
|
91
|
+
hash
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
function buildInputFrames(seed, tickRate, latencyMs, jitterMs) {
|
|
95
|
+
const start = 2_000 + (seed % 29) + Math.round(latencyMs * 0.25);
|
|
96
|
+
const step = Math.round(1_000 / tickRate);
|
|
97
|
+
return Array.from({ length: 6 }, (_, index) => ({
|
|
98
|
+
sequence: 100 + index,
|
|
99
|
+
timestampMs: start + index * step + Math.round(Math.sin(seed + index) * jitterMs),
|
|
100
|
+
forward: index !== 4,
|
|
101
|
+
right: index >= 1 && index <= 3,
|
|
102
|
+
fire: index === 2
|
|
103
|
+
}));
|
|
104
|
+
}
|
|
105
|
+
function applyInput(state, input, deltaSeconds) {
|
|
106
|
+
const speed = input.fire ? 4.4 : 5.2;
|
|
107
|
+
const vx = input.right ? speed : round3(state.velocity[0] * 0.55);
|
|
108
|
+
const vz = input.forward ? -speed : round3(state.velocity[2] * 0.45);
|
|
109
|
+
return entityState({
|
|
110
|
+
...state,
|
|
111
|
+
position: [
|
|
112
|
+
round3(state.position[0] + vx * deltaSeconds),
|
|
113
|
+
round3(state.position[1]),
|
|
114
|
+
round3(state.position[2] + vz * deltaSeconds)
|
|
115
|
+
],
|
|
116
|
+
velocity: [round3(vx), 0, round3(vz)],
|
|
117
|
+
ammo: input.fire ? Math.max(0, state.ammo - 1) : state.ammo,
|
|
118
|
+
animation: input.forward || input.right ? "run" : "idle",
|
|
119
|
+
timestampMs: input.timestampMs,
|
|
120
|
+
lastProcessedInput: input.sequence
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
function createDeltaSummary(base, current) {
|
|
124
|
+
const changedFields = [];
|
|
125
|
+
const removedFields = [];
|
|
126
|
+
const reconstructed = new Map(base);
|
|
127
|
+
for (const [key, value] of current) {
|
|
128
|
+
if (!valuesEqual(base.get(key), value)) {
|
|
129
|
+
changedFields.push(key);
|
|
130
|
+
reconstructed.set(key, value);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
for (const key of base.keys()) {
|
|
134
|
+
if (!current.has(key)) {
|
|
135
|
+
removedFields.push(key);
|
|
136
|
+
reconstructed.delete(key);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
const fullSnapshotBytes = estimateSnapshotBytes(current);
|
|
140
|
+
const deltaBytes = 18 + changedFields.reduce((sum, key) => sum + key.length + estimateValueBytes(current.get(key)), 0) + removedFields.reduce((sum, key) => sum + key.length + 1, 0);
|
|
141
|
+
return {
|
|
142
|
+
changedFields: changedFields.sort(),
|
|
143
|
+
removedFields: removedFields.sort(),
|
|
144
|
+
fullSnapshotBytes,
|
|
145
|
+
deltaBytes,
|
|
146
|
+
compressionRatio: round3(deltaBytes / fullSnapshotBytes),
|
|
147
|
+
reconstructedMatches: mapsEqual(reconstructed, current),
|
|
148
|
+
bytesSaved: fullSnapshotBytes - deltaBytes
|
|
149
|
+
};
|
|
150
|
+
}
|
|
151
|
+
function createInterestSummary(clientPosition, radius) {
|
|
152
|
+
const previous = new Set(["net-player", "net-distant-prop"]);
|
|
153
|
+
const entities = [
|
|
154
|
+
entityState({ id: "net-player", ownerId: "player-a", replicationMode: "all-clients", position: [1, 0, -2], velocity: [0, 0, 0], health: 92, ammo: 29, animation: "run", timestampMs: 2_096, lastProcessedInput: 105 }),
|
|
155
|
+
entityState({ id: "net-enemy-alpha", ownerId: "server", replicationMode: "all-clients", position: [8, 0, -6], velocity: [0, 0, 0], health: 60, ammo: 0, animation: "alert", timestampMs: 2_096, lastProcessedInput: -1 }),
|
|
156
|
+
entityState({ id: "net-loot-health", ownerId: "server", replicationMode: "all-clients", position: [-5, 0, 3], velocity: [0, 0, 0], health: 1, ammo: 0, animation: "idle", timestampMs: 2_096, lastProcessedInput: -1 }),
|
|
157
|
+
entityState({ id: "net-owner-secret", ownerId: "player-b", replicationMode: "owner-only", position: [2, 0, 1], velocity: [0, 0, 0], health: 100, ammo: 0, animation: "idle", timestampMs: 2_096, lastProcessedInput: -1 }),
|
|
158
|
+
entityState({ id: "net-distant-prop", ownerId: "server", replicationMode: "all-clients", position: [48, 0, 2], velocity: [0, 0, 0], health: 1, ammo: 0, animation: "idle", timestampMs: 2_096, lastProcessedInput: -1 })
|
|
159
|
+
];
|
|
160
|
+
const relevant = entities
|
|
161
|
+
.filter((entity) => shouldReplicate(entity, "player-a") && vectorLength(vectorDelta(entity.position, clientPosition)) <= radius)
|
|
162
|
+
.map((entity) => entity.id)
|
|
163
|
+
.sort();
|
|
164
|
+
const next = new Set(relevant);
|
|
165
|
+
const added = relevant.filter((id) => !previous.has(id));
|
|
166
|
+
const removed = [...previous].filter((id) => !next.has(id)).sort();
|
|
167
|
+
const unchanged = relevant.filter((id) => previous.has(id));
|
|
168
|
+
const culled = entities.map((entity) => entity.id).filter((id) => !next.has(id)).sort();
|
|
169
|
+
const gridCells = new Set(entities.map((entity) => `${Math.floor(entity.position[0] / 16)}:${Math.floor(entity.position[2] / 16)}`));
|
|
170
|
+
return {
|
|
171
|
+
playerId: "player-a",
|
|
172
|
+
radius,
|
|
173
|
+
added,
|
|
174
|
+
removed,
|
|
175
|
+
unchanged,
|
|
176
|
+
relevant,
|
|
177
|
+
culled,
|
|
178
|
+
gridCellCount: gridCells.size
|
|
179
|
+
};
|
|
180
|
+
}
|
|
181
|
+
function createInterpolationSummary() {
|
|
182
|
+
const before = entityState({
|
|
183
|
+
id: "net-enemy-alpha",
|
|
184
|
+
ownerId: "server",
|
|
185
|
+
replicationMode: "all-clients",
|
|
186
|
+
position: [4, 0, -3],
|
|
187
|
+
velocity: [1.6, 0, -0.8],
|
|
188
|
+
health: 60,
|
|
189
|
+
ammo: 0,
|
|
190
|
+
animation: "run",
|
|
191
|
+
timestampMs: 1_000,
|
|
192
|
+
lastProcessedInput: -1
|
|
193
|
+
});
|
|
194
|
+
const after = entityState({
|
|
195
|
+
id: before.id,
|
|
196
|
+
ownerId: before.ownerId,
|
|
197
|
+
replicationMode: before.replicationMode,
|
|
198
|
+
position: [5, 0, -3.5],
|
|
199
|
+
velocity: [before.velocity[0], before.velocity[1], before.velocity[2]],
|
|
200
|
+
health: before.health,
|
|
201
|
+
ammo: before.ammo,
|
|
202
|
+
animation: before.animation,
|
|
203
|
+
timestampMs: 1_050,
|
|
204
|
+
lastProcessedInput: before.lastProcessedInput
|
|
205
|
+
});
|
|
206
|
+
const sampleTimestampMs = 1_025;
|
|
207
|
+
const t = (sampleTimestampMs - before.timestampMs) / (after.timestampMs - before.timestampMs);
|
|
208
|
+
const interpolatedPosition = [
|
|
209
|
+
round3(before.position[0] + (after.position[0] - before.position[0]) * t),
|
|
210
|
+
round3(before.position[1] + (after.position[1] - before.position[1]) * t),
|
|
211
|
+
round3(before.position[2] + (after.position[2] - before.position[2]) * t)
|
|
212
|
+
];
|
|
213
|
+
const extrapolatedPosition = [
|
|
214
|
+
round3(after.position[0] + after.velocity[0] * 0.1),
|
|
215
|
+
round3(after.position[1] + after.velocity[1] * 0.1),
|
|
216
|
+
round3(after.position[2] + after.velocity[2] * 0.1)
|
|
217
|
+
];
|
|
218
|
+
return {
|
|
219
|
+
sampleTimestampMs,
|
|
220
|
+
beforeTimestampMs: before.timestampMs,
|
|
221
|
+
afterTimestampMs: after.timestampMs,
|
|
222
|
+
interpolatedPosition,
|
|
223
|
+
extrapolatedPosition
|
|
224
|
+
};
|
|
225
|
+
}
|
|
226
|
+
function stateMap(state) {
|
|
227
|
+
return new Map([
|
|
228
|
+
["x", state.position[0]],
|
|
229
|
+
["y", state.position[1]],
|
|
230
|
+
["z", state.position[2]],
|
|
231
|
+
["vx", state.velocity[0]],
|
|
232
|
+
["vz", state.velocity[2]],
|
|
233
|
+
["health", state.health],
|
|
234
|
+
["ammo", state.ammo],
|
|
235
|
+
["animation", state.animation],
|
|
236
|
+
["lastProcessedInput", state.lastProcessedInput]
|
|
237
|
+
]);
|
|
238
|
+
}
|
|
239
|
+
function entityState(state) {
|
|
240
|
+
return {
|
|
241
|
+
id: state.id,
|
|
242
|
+
ownerId: state.ownerId,
|
|
243
|
+
replicationMode: state.replicationMode,
|
|
244
|
+
position: [round3(state.position[0]), round3(state.position[1]), round3(state.position[2])],
|
|
245
|
+
velocity: [round3(state.velocity[0]), round3(state.velocity[1]), round3(state.velocity[2])],
|
|
246
|
+
health: Math.max(0, Math.round(state.health)),
|
|
247
|
+
ammo: Math.max(0, Math.round(state.ammo)),
|
|
248
|
+
animation: state.animation,
|
|
249
|
+
timestampMs: Math.round(state.timestampMs),
|
|
250
|
+
lastProcessedInput: Math.round(state.lastProcessedInput)
|
|
251
|
+
};
|
|
252
|
+
}
|
|
253
|
+
function shouldReplicate(entity, playerId) {
|
|
254
|
+
if (entity.replicationMode === "none")
|
|
255
|
+
return false;
|
|
256
|
+
if (entity.replicationMode === "owner-only")
|
|
257
|
+
return entity.ownerId === playerId;
|
|
258
|
+
if (entity.replicationMode === "all-except-owner")
|
|
259
|
+
return entity.ownerId !== playerId;
|
|
260
|
+
return true;
|
|
261
|
+
}
|
|
262
|
+
function vectorDelta(left, right) {
|
|
263
|
+
return [left[0] - right[0], left[1] - right[1], left[2] - right[2]];
|
|
264
|
+
}
|
|
265
|
+
function vectorLength(value) {
|
|
266
|
+
return Math.hypot(value[0], value[1], value[2]);
|
|
267
|
+
}
|
|
268
|
+
function valuesEqual(left, right) {
|
|
269
|
+
if (typeof left === "number" && typeof right === "number")
|
|
270
|
+
return Math.abs(left - right) < 0.0001;
|
|
271
|
+
return left === right;
|
|
272
|
+
}
|
|
273
|
+
function mapsEqual(left, right) {
|
|
274
|
+
if (left.size !== right.size)
|
|
275
|
+
return false;
|
|
276
|
+
for (const [key, value] of left) {
|
|
277
|
+
if (!valuesEqual(value, right.get(key)))
|
|
278
|
+
return false;
|
|
279
|
+
}
|
|
280
|
+
return true;
|
|
281
|
+
}
|
|
282
|
+
function estimateSnapshotBytes(snapshot) {
|
|
283
|
+
let bytes = 16;
|
|
284
|
+
for (const [key, value] of snapshot) {
|
|
285
|
+
bytes += key.length + estimateValueBytes(value);
|
|
286
|
+
}
|
|
287
|
+
return bytes;
|
|
288
|
+
}
|
|
289
|
+
function estimateValueBytes(value) {
|
|
290
|
+
if (typeof value === "number")
|
|
291
|
+
return 9;
|
|
292
|
+
if (typeof value === "string")
|
|
293
|
+
return 3 + value.length;
|
|
294
|
+
if (typeof value === "boolean")
|
|
295
|
+
return 2;
|
|
296
|
+
return 1;
|
|
297
|
+
}
|
|
298
|
+
function vec3Option(value, name) {
|
|
299
|
+
if (!Array.isArray(value) || value.length !== 3 || value.some((entry) => typeof entry !== "number" || !Number.isFinite(entry))) {
|
|
300
|
+
throw new RangeError(`${name} must be a finite vec3.`);
|
|
301
|
+
}
|
|
302
|
+
return [value[0], value[1], value[2]];
|
|
303
|
+
}
|
|
304
|
+
function integerOption(value, name) {
|
|
305
|
+
if (!Number.isInteger(value))
|
|
306
|
+
throw new RangeError(`${name} must be an integer.`);
|
|
307
|
+
return value;
|
|
308
|
+
}
|
|
309
|
+
function positiveNumber(value, name) {
|
|
310
|
+
if (!Number.isFinite(value) || value <= 0)
|
|
311
|
+
throw new RangeError(`${name} must be positive.`);
|
|
312
|
+
return value;
|
|
313
|
+
}
|
|
314
|
+
function nonNegativeNumber(value, name) {
|
|
315
|
+
if (!Number.isFinite(value) || value < 0)
|
|
316
|
+
throw new RangeError(`${name} must be non-negative.`);
|
|
317
|
+
return value;
|
|
318
|
+
}
|
|
319
|
+
function round3(value) {
|
|
320
|
+
return Math.round(value * 1_000) / 1_000;
|
|
321
|
+
}
|
|
322
|
+
function stableHash(value) {
|
|
323
|
+
let hash = 0x811c9dc5;
|
|
324
|
+
for (let index = 0; index < value.length; index += 1) {
|
|
325
|
+
hash ^= value.charCodeAt(index);
|
|
326
|
+
hash = Math.imul(hash, 0x01000193);
|
|
327
|
+
}
|
|
328
|
+
return (hash >>> 0).toString(16).padStart(8, "0");
|
|
329
|
+
}
|
|
330
|
+
//# sourceMappingURL=NetworkReplicationFixtures.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NetworkReplicationFixtures.js","sourceRoot":"","sources":["../../../../packages/scripting/src/NetworkReplicationFixtures.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
export type PerceptionPoint = readonly [number, number];
|
|
2
|
+
export interface PerceptionTarget {
|
|
3
|
+
readonly id: string;
|
|
4
|
+
readonly position: PerceptionPoint;
|
|
5
|
+
readonly priority?: number;
|
|
6
|
+
}
|
|
7
|
+
export interface PerceptionSensorOptions {
|
|
8
|
+
readonly position: PerceptionPoint;
|
|
9
|
+
readonly forward?: PerceptionPoint;
|
|
10
|
+
readonly range?: number;
|
|
11
|
+
readonly fovRadians?: number;
|
|
12
|
+
readonly peripheralRadians?: number;
|
|
13
|
+
readonly minConfidence?: number;
|
|
14
|
+
readonly memoryDecayPerSecond?: number;
|
|
15
|
+
readonly forgetBelowConfidence?: number;
|
|
16
|
+
}
|
|
17
|
+
export interface PerceptionHit {
|
|
18
|
+
readonly id: string;
|
|
19
|
+
readonly position: PerceptionPoint;
|
|
20
|
+
readonly distance: number;
|
|
21
|
+
readonly angleRadians: number;
|
|
22
|
+
readonly confidence: number;
|
|
23
|
+
readonly peripheral: boolean;
|
|
24
|
+
readonly justEntered: boolean;
|
|
25
|
+
}
|
|
26
|
+
export interface PerceptionMemory {
|
|
27
|
+
readonly id: string;
|
|
28
|
+
readonly lastKnownPosition: PerceptionPoint;
|
|
29
|
+
readonly confidence: number;
|
|
30
|
+
readonly lastSeenSeconds: number;
|
|
31
|
+
readonly seenCount: number;
|
|
32
|
+
}
|
|
33
|
+
export interface PerceptionSnapshot {
|
|
34
|
+
readonly visible: readonly PerceptionHit[];
|
|
35
|
+
readonly memories: readonly PerceptionMemory[];
|
|
36
|
+
readonly closestVisible?: PerceptionHit;
|
|
37
|
+
readonly strongestMemory?: PerceptionMemory;
|
|
38
|
+
readonly enteredIds: readonly string[];
|
|
39
|
+
readonly forgottenIds: readonly string[];
|
|
40
|
+
}
|
|
41
|
+
export declare class PerceptionSensor {
|
|
42
|
+
private position;
|
|
43
|
+
private forward;
|
|
44
|
+
private readonly range;
|
|
45
|
+
private readonly fovRadians;
|
|
46
|
+
private readonly peripheralRadians;
|
|
47
|
+
private readonly minConfidence;
|
|
48
|
+
private readonly memoryDecayPerSecond;
|
|
49
|
+
private readonly forgetBelowConfidence;
|
|
50
|
+
private readonly memories;
|
|
51
|
+
private readonly visibleLastTick;
|
|
52
|
+
private elapsedSeconds;
|
|
53
|
+
constructor(options: PerceptionSensorOptions);
|
|
54
|
+
updateTransform(position: PerceptionPoint, forward?: PerceptionPoint): void;
|
|
55
|
+
scan(targets: readonly PerceptionTarget[], deltaSeconds: number): PerceptionSnapshot;
|
|
56
|
+
private evaluateTarget;
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=Perception.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Perception.d.ts","sourceRoot":"","sources":["../../../../packages/scripting/src/Perception.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,eAAe,GAAG,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAExD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC;IACnC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC;IACnC,QAAQ,CAAC,OAAO,CAAC,EAAE,eAAe,CAAC;IACnC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IACvC,QAAQ,CAAC,qBAAqB,CAAC,EAAE,MAAM,CAAC;CACzC;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC;IACnC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;CAC/B;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,iBAAiB,EAAE,eAAe,CAAC;IAC5C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,OAAO,EAAE,SAAS,aAAa,EAAE,CAAC;IAC3C,QAAQ,CAAC,QAAQ,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAC/C,QAAQ,CAAC,cAAc,CAAC,EAAE,aAAa,CAAC;IACxC,QAAQ,CAAC,eAAe,CAAC,EAAE,gBAAgB,CAAC;IAC5C,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;CAC1C;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAkB;IAClC,OAAO,CAAC,OAAO,CAAkB;IACjC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAS;IAC3C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAS;IAC9C,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAS;IAC/C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAuC;IAChE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAqB;IACrD,OAAO,CAAC,cAAc,CAAK;gBAEf,OAAO,EAAE,uBAAuB;IAc5C,eAAe,CAAC,QAAQ,EAAE,eAAe,EAAE,OAAO,GAAE,eAA8B,GAAG,IAAI;IAKzF,IAAI,CAAC,OAAO,EAAE,SAAS,gBAAgB,EAAE,EAAE,YAAY,EAAE,MAAM,GAAG,kBAAkB;IA4CpF,OAAO,CAAC,cAAc;CAuBvB"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
export class PerceptionSensor {
|
|
2
|
+
position;
|
|
3
|
+
forward;
|
|
4
|
+
range;
|
|
5
|
+
fovRadians;
|
|
6
|
+
peripheralRadians;
|
|
7
|
+
minConfidence;
|
|
8
|
+
memoryDecayPerSecond;
|
|
9
|
+
forgetBelowConfidence;
|
|
10
|
+
memories = new Map();
|
|
11
|
+
visibleLastTick = new Set();
|
|
12
|
+
elapsedSeconds = 0;
|
|
13
|
+
constructor(options) {
|
|
14
|
+
this.position = options.position;
|
|
15
|
+
this.forward = normalize(options.forward ?? [1, 0]);
|
|
16
|
+
this.range = options.range ?? 3;
|
|
17
|
+
this.fovRadians = options.fovRadians ?? Math.PI / 2;
|
|
18
|
+
this.peripheralRadians = options.peripheralRadians ?? Math.PI;
|
|
19
|
+
this.minConfidence = options.minConfidence ?? 0.05;
|
|
20
|
+
this.memoryDecayPerSecond = options.memoryDecayPerSecond ?? 0.25;
|
|
21
|
+
this.forgetBelowConfidence = options.forgetBelowConfidence ?? 0.05;
|
|
22
|
+
if (this.range <= 0 || this.fovRadians <= 0 || this.peripheralRadians < this.fovRadians) {
|
|
23
|
+
throw new RangeError("PerceptionSensor requires positive range/fov and peripheralRadians >= fovRadians.");
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
updateTransform(position, forward = this.forward) {
|
|
27
|
+
this.position = position;
|
|
28
|
+
this.forward = normalize(forward);
|
|
29
|
+
}
|
|
30
|
+
scan(targets, deltaSeconds) {
|
|
31
|
+
this.elapsedSeconds += Math.max(0, deltaSeconds);
|
|
32
|
+
const previousVisible = new Set(this.visibleLastTick);
|
|
33
|
+
this.visibleLastTick.clear();
|
|
34
|
+
const visible = [];
|
|
35
|
+
const forgottenIds = [];
|
|
36
|
+
for (const [id, memory] of [...this.memories]) {
|
|
37
|
+
const decayed = Math.max(0, memory.confidence - this.memoryDecayPerSecond * Math.max(0, deltaSeconds));
|
|
38
|
+
if (decayed < this.forgetBelowConfidence) {
|
|
39
|
+
this.memories.delete(id);
|
|
40
|
+
forgottenIds.push(id);
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
this.memories.set(id, { ...memory, confidence: round3(decayed) });
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
for (const target of targets) {
|
|
47
|
+
const hit = this.evaluateTarget(target, previousVisible.has(target.id));
|
|
48
|
+
if (!hit || hit.confidence < this.minConfidence)
|
|
49
|
+
continue;
|
|
50
|
+
visible.push(hit);
|
|
51
|
+
this.visibleLastTick.add(target.id);
|
|
52
|
+
const previous = this.memories.get(target.id);
|
|
53
|
+
this.memories.set(target.id, {
|
|
54
|
+
id: target.id,
|
|
55
|
+
lastKnownPosition: [round3(target.position[0]), round3(target.position[1])],
|
|
56
|
+
confidence: hit.confidence,
|
|
57
|
+
lastSeenSeconds: round3(this.elapsedSeconds),
|
|
58
|
+
seenCount: (previous?.seenCount ?? 0) + 1
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
visible.sort((left, right) => right.confidence - left.confidence || left.distance - right.distance || left.id.localeCompare(right.id));
|
|
62
|
+
const memories = [...this.memories.values()].sort((left, right) => right.confidence - left.confidence || left.id.localeCompare(right.id));
|
|
63
|
+
return {
|
|
64
|
+
visible,
|
|
65
|
+
memories,
|
|
66
|
+
closestVisible: [...visible].sort((left, right) => left.distance - right.distance)[0],
|
|
67
|
+
strongestMemory: memories[0],
|
|
68
|
+
enteredIds: visible.filter((hit) => hit.justEntered).map((hit) => hit.id),
|
|
69
|
+
forgottenIds
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
evaluateTarget(target, wasVisible) {
|
|
73
|
+
const offset = [target.position[0] - this.position[0], target.position[1] - this.position[1]];
|
|
74
|
+
const distance = length(offset);
|
|
75
|
+
if (distance > this.range || distance === 0)
|
|
76
|
+
return undefined;
|
|
77
|
+
const direction = normalize(offset);
|
|
78
|
+
const angle = Math.acos(Math.max(-1, Math.min(1, dot(this.forward, direction))));
|
|
79
|
+
if (angle > this.peripheralRadians / 2)
|
|
80
|
+
return undefined;
|
|
81
|
+
const peripheral = angle > this.fovRadians / 2;
|
|
82
|
+
const distanceConfidence = 1 - distance / this.range;
|
|
83
|
+
const angleConfidence = peripheral
|
|
84
|
+
? 0.35 * (1 - (angle - this.fovRadians / 2) / Math.max(0.001, (this.peripheralRadians - this.fovRadians) / 2))
|
|
85
|
+
: 1 - angle / Math.max(0.001, this.fovRadians / 2) * 0.4;
|
|
86
|
+
const priority = target.priority ?? 1;
|
|
87
|
+
return {
|
|
88
|
+
id: target.id,
|
|
89
|
+
position: [round3(target.position[0]), round3(target.position[1])],
|
|
90
|
+
distance: round3(distance),
|
|
91
|
+
angleRadians: round3(angle),
|
|
92
|
+
confidence: round3(Math.max(0, Math.min(1, distanceConfidence * angleConfidence * priority))),
|
|
93
|
+
peripheral,
|
|
94
|
+
justEntered: !wasVisible
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
function normalize(value) {
|
|
99
|
+
const magnitude = length(value);
|
|
100
|
+
return magnitude === 0 ? [1, 0] : [value[0] / magnitude, value[1] / magnitude];
|
|
101
|
+
}
|
|
102
|
+
function length(value) {
|
|
103
|
+
return Math.hypot(value[0], value[1]);
|
|
104
|
+
}
|
|
105
|
+
function dot(left, right) {
|
|
106
|
+
return left[0] * right[0] + left[1] * right[1];
|
|
107
|
+
}
|
|
108
|
+
function round3(value) {
|
|
109
|
+
return Number(value.toFixed(3));
|
|
110
|
+
}
|
|
111
|
+
//# sourceMappingURL=Perception.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Perception.js","sourceRoot":"","sources":["../../../../packages/scripting/src/Perception.ts"],"names":[],"mappings":"AA8CA,MAAM,OAAO,gBAAgB;IACnB,QAAQ,CAAkB;IAC1B,OAAO,CAAkB;IAChB,KAAK,CAAS;IACd,UAAU,CAAS;IACnB,iBAAiB,CAAS;IAC1B,aAAa,CAAS;IACtB,oBAAoB,CAAS;IAC7B,qBAAqB,CAAS;IAC9B,QAAQ,GAAG,IAAI,GAAG,EAA4B,CAAC;IAC/C,eAAe,GAAG,IAAI,GAAG,EAAU,CAAC;IAC7C,cAAc,GAAG,CAAC,CAAC;IAE3B,YAAY,OAAgC;QAC1C,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACjC,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACpD,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC;QAChC,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;QACpD,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,IAAI,IAAI,CAAC,EAAE,CAAC;QAC9D,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,IAAI,IAAI,CAAC;QACnD,IAAI,CAAC,oBAAoB,GAAG,OAAO,CAAC,oBAAoB,IAAI,IAAI,CAAC;QACjE,IAAI,CAAC,qBAAqB,GAAG,OAAO,CAAC,qBAAqB,IAAI,IAAI,CAAC;QACnE,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;YACxF,MAAM,IAAI,UAAU,CAAC,mFAAmF,CAAC,CAAC;QAC5G,CAAC;IACH,CAAC;IAED,eAAe,CAAC,QAAyB,EAAE,UAA2B,IAAI,CAAC,OAAO;QAChF,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC;IAED,IAAI,CAAC,OAAoC,EAAE,YAAoB;QAC7D,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;QACjD,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACtD,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;QAC7B,MAAM,OAAO,GAAoB,EAAE,CAAC;QACpC,MAAM,YAAY,GAAa,EAAE,CAAC;QAElC,KAAK,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC9C,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC;YACvG,IAAI,OAAO,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC;gBACzC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBACzB,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACxB,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,GAAG,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YACpE,CAAC;QACH,CAAC;QAED,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;YACxE,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa;gBAAE,SAAS;YAC1D,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAClB,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAC9C,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE;gBAC3B,EAAE,EAAE,MAAM,CAAC,EAAE;gBACb,iBAAiB,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC3E,UAAU,EAAE,GAAG,CAAC,UAAU;gBAC1B,eAAe,EAAE,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC;gBAC5C,SAAS,EAAE,CAAC,QAAQ,EAAE,SAAS,IAAI,CAAC,CAAC,GAAG,CAAC;aAC1C,CAAC,CAAC;QACL,CAAC;QAED,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,IAAI,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;QACvI,MAAM,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;QAC1I,OAAO;YACL,OAAO;YACP,QAAQ;YACR,cAAc,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YACrF,eAAe,EAAE,QAAQ,CAAC,CAAC,CAAC;YAC5B,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;YACzE,YAAY;SACb,CAAC;IACJ,CAAC;IAEO,cAAc,CAAC,MAAwB,EAAE,UAAmB;QAClE,MAAM,MAAM,GAAoB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/G,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;QAChC,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,IAAI,QAAQ,KAAK,CAAC;YAAE,OAAO,SAAS,CAAC;QAC9D,MAAM,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;QACpC,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QACjF,IAAI,KAAK,GAAG,IAAI,CAAC,iBAAiB,GAAG,CAAC;YAAE,OAAO,SAAS,CAAC;QACzD,MAAM,UAAU,GAAG,KAAK,GAAG,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;QAC/C,MAAM,kBAAkB,GAAG,CAAC,GAAG,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC;QACrD,MAAM,eAAe,GAAG,UAAU;YAChC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;YAC9G,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;QAC3D,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,CAAC,CAAC;QACtC,OAAO;YACL,EAAE,EAAE,MAAM,CAAC,EAAE;YACb,QAAQ,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;YAClE,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC;YAC1B,YAAY,EAAE,MAAM,CAAC,KAAK,CAAC;YAC3B,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,kBAAkB,GAAG,eAAe,GAAG,QAAQ,CAAC,CAAC,CAAC;YAC7F,UAAU;YACV,WAAW,EAAE,CAAC,UAAU;SACzB,CAAC;IACJ,CAAC;CACF;AAED,SAAS,SAAS,CAAC,KAAsB;IACvC,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAChC,OAAO,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;AACjF,CAAC;AAED,SAAS,MAAM,CAAC,KAAsB;IACpC,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACxC,CAAC;AAED,SAAS,GAAG,CAAC,IAAqB,EAAE,KAAsB;IACxD,OAAO,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AACjD,CAAC;AAED,SAAS,MAAM,CAAC,KAAa;IAC3B,OAAO,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AAClC,CAAC"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
export type PlayerSkillLevel = "beginner" | "novice" | "intermediate" | "advanced" | "expert";
|
|
2
|
+
export type PlayerPlaystyle = "aggressive" | "defensive" | "balanced" | "stealth" | "exploration" | "speedrun" | "completionist";
|
|
3
|
+
export type PlayerEngagementLevel = "casual" | "regular" | "dedicated" | "hardcore";
|
|
4
|
+
export type PlayerEventCategory = "combat" | "movement" | "interaction" | "progression" | "economy" | "social" | "custom";
|
|
5
|
+
export type PlayerEventSeverity = "low" | "medium" | "high" | "critical";
|
|
6
|
+
export interface PlayerBehaviorTelemetryOptions {
|
|
7
|
+
readonly seed?: number;
|
|
8
|
+
readonly playerId?: string;
|
|
9
|
+
readonly sessionSeconds?: number;
|
|
10
|
+
readonly combatEvents?: number;
|
|
11
|
+
readonly movementEvents?: number;
|
|
12
|
+
readonly interactionEvents?: number;
|
|
13
|
+
readonly progressionEvents?: number;
|
|
14
|
+
readonly successEvents?: number;
|
|
15
|
+
}
|
|
16
|
+
export interface PlayerSkillAssessmentTelemetry {
|
|
17
|
+
readonly area: string;
|
|
18
|
+
readonly level: number;
|
|
19
|
+
readonly confidence: number;
|
|
20
|
+
readonly sampleSize: number;
|
|
21
|
+
}
|
|
22
|
+
export interface PlayerBehaviorPatternTelemetry {
|
|
23
|
+
readonly name: string;
|
|
24
|
+
readonly frequency: number;
|
|
25
|
+
readonly confidence: number;
|
|
26
|
+
}
|
|
27
|
+
export interface PlayerBehaviorTelemetryFixture {
|
|
28
|
+
readonly source: "origin-master-player-profile-event-analysis-adapted";
|
|
29
|
+
readonly playerId: string;
|
|
30
|
+
readonly profile: {
|
|
31
|
+
readonly skillLevel: PlayerSkillLevel;
|
|
32
|
+
readonly playstyle: PlayerPlaystyle;
|
|
33
|
+
readonly engagement: PlayerEngagementLevel;
|
|
34
|
+
readonly skills: readonly PlayerSkillAssessmentTelemetry[];
|
|
35
|
+
readonly preferences: readonly {
|
|
36
|
+
readonly category: string;
|
|
37
|
+
readonly value: string;
|
|
38
|
+
readonly strength: number;
|
|
39
|
+
}[];
|
|
40
|
+
readonly patterns: readonly PlayerBehaviorPatternTelemetry[];
|
|
41
|
+
readonly totalPlaytimeMs: number;
|
|
42
|
+
readonly sessionCount: number;
|
|
43
|
+
};
|
|
44
|
+
readonly events: {
|
|
45
|
+
readonly total: number;
|
|
46
|
+
readonly byCategory: Record<PlayerEventCategory, number>;
|
|
47
|
+
readonly bySeverity: Record<PlayerEventSeverity, number>;
|
|
48
|
+
readonly successRate: number;
|
|
49
|
+
readonly avgDurationMs: number;
|
|
50
|
+
readonly eventsPerMinute: number;
|
|
51
|
+
};
|
|
52
|
+
readonly sessionAnalysis: {
|
|
53
|
+
readonly durationMs: number;
|
|
54
|
+
readonly dominantPlaystyle: PlayerPlaystyle;
|
|
55
|
+
readonly skillEstimate: PlayerSkillLevel;
|
|
56
|
+
readonly insights: readonly {
|
|
57
|
+
readonly type: string;
|
|
58
|
+
readonly confidence: number;
|
|
59
|
+
readonly evidence: readonly string[];
|
|
60
|
+
readonly recommendations: readonly string[];
|
|
61
|
+
}[];
|
|
62
|
+
};
|
|
63
|
+
readonly productionReadiness: {
|
|
64
|
+
readonly playerProfileTelemetry: true;
|
|
65
|
+
readonly eventTrackingTelemetry: true;
|
|
66
|
+
readonly behaviorPatternTelemetry: true;
|
|
67
|
+
readonly adaptiveSystemInputTelemetry: true;
|
|
68
|
+
};
|
|
69
|
+
readonly blockedClaims: readonly string[];
|
|
70
|
+
readonly claimBoundary: string;
|
|
71
|
+
readonly hash: string;
|
|
72
|
+
}
|
|
73
|
+
export declare function samplePlayerBehaviorTelemetryFixture(options?: PlayerBehaviorTelemetryOptions): PlayerBehaviorTelemetryFixture;
|
|
74
|
+
//# sourceMappingURL=PlayerBehaviorTelemetryFixtures.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PlayerBehaviorTelemetryFixtures.d.ts","sourceRoot":"","sources":["../../../../packages/scripting/src/PlayerBehaviorTelemetryFixtures.ts"],"names":[],"mappings":"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"}
|