Steerio is a steering behavior, spatial database, and path library for games.
What's a steering behavior you ask?
A steering behavior is something that helps an object in your game move around in an intelligent and realistic way.
What are spatial databases?
A spatial database is a structure that you can add geometry to (like circles) and quickly query to find all colliding geometries, intersecting, contained, and K nearest neighbors.
What do you mean by Path?
A path can be a chain of line segments or a curve going through a defined set of points.
What languages is this available in?
I want to see some cool examples!
- Mini RTS
- Geometry Wars Clone
- Capture the Flag Simulation
- Asteroids Simluation
What type of games use steering behaviors?
- RTS = unit movement, horde formations
- FPS = unit movement, AI that can dodge/maneuver around its environment
- Sports =
Spatial Database Performance
The following performance scenarios involved 10,000 objects (~5% stationary, ~95% bouncing around the world boundaries) with the size between 1 and 4 in a space the size of 12,800 by 12,800 running at 100fps for 1000 frames.
Refresh Statistics (a refresh is done once per frame after all entity positions have been updated)
|SpatialQuadTree||0.000198237 ± 0.000047692|
|SpatialDualTree||0.000189507 ± 0.000044070|
|SpatialSweepAndPrune||0.001039657 ± 0.001038347|
|SpatialGrid||0.000423223 ± 0.000062180|
|SpatialArray (brute force)||0.000029937 ± 0.000011471|
Collision Statistics (the amount of time it takes to determine all collided entities)
|SpatialQuadTree||0.000616374 ± 0.000149716|
|SpatialDualTree||0.000636301 ± 0.000123757|
|SpatialSweepAndPrune||0.002738293 ± 0.002591943|
|SpatialGrid||0.000676963 ± 0.000141264|
|SpatialArray (brute force)||0.538688420 ± 0.017520597|
Things I need to explain: Targets, Steering Behavior, SteerSet, SteerModifier, SpatialDatabase queries, SpatialDatabase geometries, Path implementations
Each Steering Behavior implementation
Each Target implementation
Decision Tree for which Spatial Database to use
Pros/Cons for Spatial Databases
Each SpatialDatabase implementation
Pictures for all of it!