You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+29-18Lines changed: 29 additions & 18 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,15 +4,15 @@
4
4
5
5
A high-performance low-level state management system for games :video_game:. Contains supercharged [proxies](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Proxy).
Pools are structured to be operated on by WASM. See [src/pool.test.wat](./src/pool.test.wat) for a minimal example of using WASM to transform data.
142
+
Pools are structured to be operated on by WASM. See [src/pool.test.wat](./src/pool.test.wat) for a minimal example of using WASM to transform data (and track changes).
135
143
136
144
Excerpted from [src/pool.test.js](./src/pool.test.js):
137
145
@@ -179,15 +187,18 @@ Networked real-time applications with arbitrarily-large mutable state (read: gam
179
187
180
188
### Performance
181
189
182
-
It is greatly beneficial for performance when data is arranged contiguously so that e.g. SIMD may be leveraged for data transformations.
190
+
Code generation (`new Function`) is used to generate a [monomorphic](https://mrale.ph/blog/2015/01/11/whats-up-with-monomorphism.html) proxy shape from a blueprint. This keeps the [inline cache](https://mathiasbynens.be/notes/shapes-ics) hot and performant.
183
191
184
-
This library is *fast*. As you can see in [`src/pool.bench.js`](./src/pool.bench.js), Propertea beats native JavaScript by 100-1000x transforming contiguous data.
192
+
It is greatly beneficial for performance when data is arranged contiguously so that e.g. SIMD may be leveraged for data transformations.
185
193
186
-
Pooled allocations actually beat native after warming the pool.
194
+
This library is *fast*. As you can see in [`src/pool.bench.js`](./src/pool.bench.js), Propertea beats native JavaScript by 100-1000x transforming contiguous data. Pooled allocations actually beat native after warming the pool.
187
195
188
-
Code generation (`new Function`) is used to generate a [monomorphic](https://mrale.ph/blog/2015/01/11/whats-up-with-monomorphism.html) proxy shape, based off the blueprint.
196
+
### Onward and upward
189
197
190
-
### etc...
198
+
Specifically, this is motivated by my pure JavaScript ECS which is the next to be released.
191
199
192
-
Specifically, this is motivated by my pure JavaScript ECS that is the next to be open sourced.
200
+
## TODO
193
201
202
+
- Fixed-length arrays
203
+
- Fixed-shape maps (depends on `crunches` codec support)
0 commit comments