Commit graph

16 commits

Author SHA1 Message Date
Skysteed
5cd60b3378 Major Optimization for Tilemap Collision Indexing
This update optimizes an existing feature (Tilemap Collision Indexing).

This optimization will apply to [nearly] everyone using procedural generation tilemaps, infinite tilemaps, multiplayer tilemaps, particularly large tilemaps (especially those dyanmic in nature) or who otherwise intend to index collisions before the tiles are loaded.

Benchmarking:

Using the standard approach, indexing collisions for a 500x450 tileset took 2530ms. By pre-building the collision index array in its entirety, I was able to reduce that to 259ms. However, this implementation reduces it to 8 ms. Larger tilemaps would be exponentially affected.

There are some considerations to make here since there are better implementations, but it would require deprecating some existing code. The advantage would be that the standard approach itself would be optimized, (thus avoiding the sort of 2500+ms costs here), rather than fairly obscured as it is with this implementation.
2018-07-19 10:59:35 -05:00
Richard Davey
b4ddd44105 Added cullCallback support - the final step in culling. Don't like ours? Roll your own! 2018-07-12 17:06:36 +01:00
Richard Davey
8981cf4a03 Swapped from vec2 to explicit values for cullPadding 2018-07-12 16:51:54 +01:00
Richard Davey
b03d3ff783 Added support for cull padding 2018-07-12 16:44:36 +01:00
Richard Davey
12c6736c67 Stats recorded in tilesDrawn and tilesTotal. 2018-07-12 16:12:55 +01:00
Richard Davey
89db84377e Added skipCull property and setSkipCull method 2018-07-12 15:31:25 +01:00
Richard Davey
28e2764723 More jsdoc fixes 2018-04-16 16:02:27 +01:00
Richard Davey
e31cae93d2 Tilemap Layers should use the ComputedSize component 2018-04-05 14:43:07 +01:00
Richard Davey
eebe58f1c9 Removed duplicate parameters 2018-03-21 15:17:40 +00:00
orblazer
9375bb0530 Fix multiple types on Tilemaps 2018-03-20 16:11:33 +01:00
orblazer
30f410d1d3 Fix types in Tilemaps 2018-03-20 12:36:35 +01:00
Richard Davey
d1f5f8a82b Added jsdocs 2018-02-12 16:01:21 +00:00
Richard Davey
ed89e48b4d Updated jsdocs 2018-02-08 02:02:37 +00:00
Richard Davey
cf6bbbd0fb Added jsdocs 2018-02-08 01:08:59 +00:00
Richard Davey
10193c181a Fixed require paths. 2018-02-07 17:10:01 +00:00
Richard Davey
89fe7123e1 Moved to its own top-level folder. 2018-02-07 16:29:48 +00:00
Renamed from src/gameobjects/tilemap/dynamiclayer/DynamicTilemapLayer.js (Browse further)