I think grass is the main thing, at this point; I did a proof of concept of PIXI.js grass in a project called Skelemon (including hooking into the entities bar to add rendering support for PIXI.js based entities, and integrating canvas 2d API and PIXI.js entities into the scene, albeit on different layers)...
Measure the improvement
avoid collision checks in SimpleActor by checking if it can move all the way in one step (wouldn't this allow for tunneling?)
avoid collision checks in Butterfly, which checks 50 times per step always
optimize find_ground_angle using world.collision, move into World
terrain_optimized: could probably optimize terrain in edit mode as soon as the world loads, now that it doesn't modify the original entities (this would be more for debug views than perf)
SimpleActor
by checking if it can move all the way in one step (wouldn't this allow for tunneling?)Butterfly
, which checks 50 times per step alwaysfind_ground_angle
usingworld.collision
, move intoWorld
terrain_optimized
: could probably optimize terrain in edit mode as soon as the world loads, now that it doesn't modify the original entities (this would be more for debug views than perf)