Giter Club home page Giter Club logo

steerio's Introduction

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!

steerio's People

Contributors

clickermonkey avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.