Codebase Analysis

From SpaceElevatorWiki.com
Jump to navigationJump to search

I will outsource the wrapping and porting as much as possible, but we will likely be involved in some stitching of things together. Once we have done the wrapping, we can hand off the work to other people. I'm sure that the Mono people would love to have a wrapper for PLIB. We can approach both PLIB and Mono to find people with time.

Background info on computer vision http://en.wikipedia.org/wiki/Category:Computer_vision

http://en.wikipedia.org/wiki/Computer_vision


Motion Planning

Motion Strategy Library, http://msl.cs.uiuc.edu/msl/

Motion Planning Kit, http://ai.stanford.edu/~mitul/mpk


Driving simulators Darpa contestant (will try to get the code) http://www.torctech.com/services/software.html

http://www.umich.edu/~driving/sim.html

Urban driving simulator http://portal.acm.org/citation.cfm?id=1296777

Steering code: http://www.red3d.com/cwr/steer/, http://opensteer.sourceforge.net/doc.html

Quickgraph: http://www.codeplex.com/quickgraph


Vision: http://www.intel.com/technology/computing/opencv/overview.htm

http://en.wikipedia.org/wiki/OpenCV

Found a .Net wrapper! http://code.google.com/p/opencvdotnet/

Intel's code written in C++ in 1999-2000. Not too much going on with it, but it was used by Stanford in the Darpa Grand Challenge. It has code that should be thrown away, but it is comprehensive. I think we should start with it, especially that there is a .Net wrapper


AForge AI Library written in C# Image processing, neural networks, machine learning, and vision. There is a decent amount of traffic on the forums, and the releases have thousands of downloads. The guy is from Latvia and has linked-in profile says he is looking for consulting work: http://www.linkedin.com/pub/4/410/A72

http://code.google.com/p/aforge/

Article about library: http://www.codeproject.com/KB/recipes/aforge.aspx?display=Print


Mono Tao Framework http://taoframework.com/


Driving and 3-D Game engine: http://torcs.sourceforge.net, uses PLIB. See quality comments above.

http://www.racer.nl/, nice looking, source code available but not open source (restrictive license).

http://www.ultimatestunts.nl/, require art work to look better. The track format supports junctions.


Math: NPack: http://www.codeplex.com/NPack Others: http://www.codeplex.com/NPack/Wiki/View.aspx?title=What%20are%20the%20Alternatives%3f&referringTitle=Home dnAnalytics: [1]


3-D Game engines: Do we start with PLIB or one of these? There are many but these look like the top candidates. Please investigate and make inline comments:


Ogre: http://www.ogre3d.org/ A good and popular one with a big online community. Used by many "serious" project, it is well documented. A friend of mine worked with and recommended it.

http://www.ogre3d.org/wiki/index.php/OgreDotNet (Supports mono, not that used)

http://www.ogre3d.org/wiki/index.php/MOGRE (Popular, doesn't support Mono)


http://code.google.com/p/monoxna/


http://www.openscenegraph.org/projects/osg/wiki/About/Introduction

http://www.openscenegraph.org/projects/osg/wiki/Community/LanguageWrappers

I've been using openscenegraph for 2 years (that was 2 years ago) and it has been a pain! Lack of documentation and a few bugs. However it is quite popular, it is still not very mature. Its good points however: there are many import of 3D formats supported and it offer good real-time performances.


More: http://www.freeprogrammingresources.com/gamelib.html


http://sourceforge.net/projects/odedotnet


http://www.nuclex.org/weblinks/Programming/Math


OCR: http://code.google.com/p/tesseract-ocr/


Removed from consideration

Jad Engine: http://www.jadengine.com/index.php?title=Main_Page

All in C#, but going through a rewrite, and they don't have a community yet.


Delta 3-D http://www.delta3d.org/

Small community


PLIB, Portable game library: http://plib.sourceforge.net/whats_inside.html Features: sound effects, music, a complete 3D engine, font rendering, a simple Windowing library, a game scripting language, a GUI, networking, 3D math library and a collection of handy utility functions. Each library component is fairly independent of the others - so if you want to use SDL, GTK, GLUT, or FLTK instead of PLIB's 'PW' windowing library, you can.

This is a cool component for people making simple games, but we don't need most of it, and the stuff we do need isn't that powerful or popular. Torcs uses it, but that will change :-)


Irrlicht: http://irrlicht.sourceforge.net/, also has .Net bindings

http://irrlicht.sourceforge.net/phpBB2/viewtopic.php?t=18125&highlight=

http://www.blitzbasic.com/Community/posts.php?topic=73978

Looks like a good engine, but some have complaints about it: it is less pluggable, less powerful, etc.


http://axiomengine.sourceforge.net/wiki/index.php/Main_Page This is a port of Ogre that is clean, rich, and supports Mono. It doesn't have the community of Ogre and Irrlicht. Using a native C# component is awesome, but using something with a community is more important.