OpenSkyNet - Moving towards a comprehensive artificial intelligence solution for game developers under the LGPL. The goals are to implement action selection solvers, robust steering behaviors (including pathfinding algorithms), and machine learning.
Be the first to post a text review of OpenSkyNet. Rate and review a project by clicking thumbs up or thumbs down in the right column.
OpenSkyNet - Moving towards a comprehensive artificial intelligence solution for game developers under the LGPL. The goals are to implement action selection solvers, robust steering behaviors (including pathfinding algorithms), and machine learning. The motherboard and hard drive on my Win2K box both finally died after almost a decade of use. Now, I have an Ubuntu laptop. What this means for OpenSkyNet is that I will be focused on Linux development for the time being. The first release from my new setup contains the pathfinding API AND demo compiling on GCC without warnings. I will no longer distribute binaries of the demo until I get another Windows machine. The demo will eventually evolve into a future iteration of my other project at http://tactics3d.sourceforge.net/. That project WILL distribute binaries for various platforms.
v0.11 - updated code to use Ogre version 0.15 - included MSVC6 workspace/project files - added ability to create spline curves from found paths v0.2 - Added A* algorithm and diagonal movement - Updated Ogre rendering engine to 1.0 - Added a GUI (using Crazy Eddie's GUI system) v0.3 Bugfixes, updated to more recent libs of Orge, CEGUI, etc., and made vast improvements to the demo. v0.35 1) Piecemeal pathfinding - multi-threading support was removed in version 0.3 due to lack of time to fully debug it. However, incremental pathdfinding provides many of the benefits of multi-threading without all the pain. It is a user-settable option to determine the number of seconds alloted for pathfinding each call. 2) Batch pathfinding calls - Multiple drivers are often pathfinding w/ the same subdivision of the grid at any given time. Huge performance savings can be had in both speed and memory by sharing occupied bin data. v0.36 Compiled and tested w/ GCC (MinGW build) and Code::Blocks IDE (http://www.codeblocks.org/). Code::Blocks workspace included. Also included MSVC++ 7.1 solution. Finished TODOs related to collision detection callbacks. Fixed camera bug (others still exist, though) Removed drivers subdividing the world AABB when stuck in one bin for too long. Subdivisions do work, but the definition of when a driver is "stuck" needs reworking. Documentation for scene graph and demo object XML files added. XML files and schemas now included in the API release. Documentation still needed for the parsing code. v0.37 1) Fixed a bug whereby piecemeal pathfinding didn't have a granularity finer than seconds. That is, previously, pathfinding calls didn't use a correct timer to limit the amount of graph nodes traversed per call. 2) The pathfinding grid has been separated from the PF library for use in collision detection broadphase routines. 3) Efficiency improvements by caching bins using global 3D points. 4) An Ogre particle plugin has been created to use the path following code w/ Ogre particles. v0.40 Transformable waypoint collections (WPCs) - WPCs can be stored offline per obstacle in *.wpc.xml files, allowing quickly calculated avoidance of complex translating (\todo and rotating) obstacles. \todo This is not incorporated into the pathfinding algorithms, yet. The library only allows for searching and returning found WPCs. These WPCs will eventually be inserted as subpaths when a pathfinding algorithm reaches a bin soley occupied by an obstacle w/ a WPC Unrecorded bugfixes - once I put the codebase on CVS, this neglect will not happen Updated Ogre, CEGUI, and tinyxml dependencies v0.41 1) A custom hash table, optimized for speed, is used to store bin data rather than using large, multi-dimensional arrays. See the benchmark tests versus std::map and stdext::hash_map in the Utils project. Of course, it's not as fast as the previous arrays, which were large enough to store all bin keys, but the memory gains should be worth it. \todo Benchmark the memory usage compared to 0.40. 2) The global grid's axis divisions are now resizable. 3) The testing framework CPPUnit is now being used. v0.5 1) Verified the library is cross-platform. 2) Transformable waypoint collections (WPCs) are now incorporated into the pathfinding algorithms. WPCs are inserted as subpaths when a pathfinding algorithm reaches a bin soley occupied by an obstacle with a corresponding WPC. 3) Added debug and release configurations that remove the library's TinyXML dependency if WPCs are not used. v0.51 1) Bugfix to handle unneeded assert introduced by waypoint collections in 0.5.
The big news with this release is that, like any good open source project, the code is now platform independent. I finally acquired a Linux box to test with - my PS3 running Debian. The other updates are: Transformable waypoint collections (WPCs) are now incorporated into the pathfinding algorithms. WPCs are inserted as subpaths when a pathfinding algorithm reaches a bin solely occupied by an obstacle with a corresponding WPC. Added debug and release configurations that remove the library's TinyXML dependency if WPCs are not used. A demo for 0.5 is in the works.
v0.11 - updated code to use Ogre version 0.15 - included MSVC6 workspace/project files - added ability to create spline curves from found paths v0.2 - Added A* algorithm and diagonal movement - Updated Ogre rendering engine to 1.0 - Added a GUI (using Crazy Eddie's GUI system) v0.3 Bugfixes, updated to more recent libs of Orge, CEGUI, etc., and made vast improvements to the demo. v0.35 1) Piecemeal pathfinding - multi-threading support was removed in version 0.3 due to lack of time to fully debug it. However, incremental pathdfinding provides many of the benefits of multi-threading without all the pain. It is a user-settable option to determine the number of seconds alloted for pathfinding each call. 2) Batch pathfinding calls - Multiple drivers are often pathfinding w/ the same subdivision of the grid at any given time. Huge performance savings can be had in both speed and memory by sharing occupied bin data. v0.36 Compiled and tested w/ GCC (MinGW build) and Code::Blocks IDE (http://www.codeblocks.org/). Code::Blocks workspace included. Also included MSVC++ 7.1 solution. Finished TODOs related to collision detection callbacks. Fixed camera bug (others still exist, though) Removed drivers subdividing the world AABB when stuck in one bin for too long. Subdivisions do work, but the definition of when a driver is "stuck" needs reworking. Documentation for scene graph and demo object XML files added. XML files and schemas now included in the API release. Documentation still needed for the parsing code. v0.37 1) Fixed a bug whereby piecemeal pathfinding didn't have a granularity finer than seconds. That is, previously, pathfinding calls didn't use a correct timer to limit the amount of graph nodes traversed per call. 2) The pathfinding grid has been separated from the PF library for use in collision detection broadphase routines. 3) Efficiency improvements by caching bins using global 3D points. 4) An Ogre particle plugin has been created to use the path following code w/ Ogre particles. v0.40 Transformable waypoint collections (WPCs) - WPCs can be stored offline per obstacle in *.wpc.xml files, allowing quickly calculated avoidance of complex translating (\todo and rotating) obstacles. \todo This is not incorporated into the pathfinding algorithms, yet. The library only allows for searching and returning found WPCs. These WPCs will eventually be inserted as subpaths when a pathfinding algorithm reaches a bin soley occupied by an obstacle w/ a WPC Unrecorded bugfixes - once I put the codebase on CVS, this neglect will not happen Updated Ogre, CEGUI, and tinyxml dependencies v0.41 1) A custom hash table, optimized for speed, is used to store bin data rather than using large, multi-dimensional arrays. See the benchmark tests versus std::map and stdext::hash_map in the Utils project. Of course, it's not as fast as the previous arrays, which were large enough to store all bin keys, but the memory gains should be worth it. \todo Benchmark the memory usage compared to 0.40. 2) The global grid's axis divisions are now resizable. 3) The testing framework CPPUnit is now being used. v0.5 1) Verified the library is cross-platform. 2) Transformable waypoint collections (WPCs) are now incorporated into the pathfinding algorithms. WPCs are inserted as subpaths when a pathfinding algorithm reaches a bin soley occupied by an obstacle with a corresponding WPC. 3) Added debug and release configurations that remove the library's TinyXML dependency if WPCs are not used. v0.51 1) Bugfix to handle unneeded assert introduced by waypoint collections in 0.5.
Be the first person to add a text review.
Copyright © 2009 Geeknet, Inc. All rights reserved. Terms of Use
Thanks for your rating!
Would you also like to write a review?