All Projects → ClickerMonkey → Steerio

ClickerMonkey / Steerio

Licence: other
An extensive steering behavior library in Java, Javascript, C#, C, and C++

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to Steerio

as3SteeringBehavior
⛵ Steering behavior example at <<AdvanceEDActionScriptAnimation>> with abstracted interfaces and marshaling implementation.
Stars: ✭ 14 (-60%)
Mutual labels:  steering-behaviors
rust-steering-behaviors
AI Steering behaviors crate implemented in Rust http://orhanbalci.github.io/rust-steering-behaviors
Stars: ✭ 21 (-40%)
Mutual labels:  steering-behaviors
M2SLAM
M2SLAM: Visual SLAM with Memory Management for large-scale Environments
Stars: ✭ 38 (+8.57%)
Mutual labels:  spatial-database

Development

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?
Java is the main language, but it has been ported to Javascript, C#, C++, and C.

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)

Average (s)
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)

Average (s)
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

TODO
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!

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].