Agon - the exploration of cosmos
Thanks for visiting. This project has recently migrated to
SourceForge and cannot be said to be in a state fit for others to have a go at.
There are at present no public releases, but there is a subversion repository.
Please feel free to contact the administrator
of this project or visit the
project summary page.
Idea
Conceptually, Agon is about traveling in space and exploring stellar bodies.
Landing on distant planets, coming close to a star, exploring the vicinity of a
pulsar, sifting through stellar dust. Generally we'd like to do in Agon what
one perhaps could do in future space exploration. We'd like to keep a healthy
compromise between the physically right and the practical. Thus, we'd like
presentøy known stars, planets and other known stellar bodies and to
adhere to physical laws but at the same time we need to tackle
practicalities of navigating cosmological spans of distance and time.
Technically, Agon is a playground for 3d graphic engine exploitation, 3d
modeling and artwork, physics simulation, UI development, object orientation,
C++, software methodology and infrastructure in a collaborative software
development environment.
Agon
is latin for acting and doing public games.
Release history
pre-0.1: Present build
Directory layout
bin: binaries and scripts
docs: for docs that are generated
docs-src: input to the document generation process
src: where the c++ source resides
Building
Windows VS.NET 7.1
-
Make sure you have Ogre3D 1.0.7 installed.
-
Get the source with "svn co
https://svn.sourceforge.net/svnroot/agon-cosmos agon-cosmos".
-
In the Planet directory, you want a Debug directory (or Release) with the
needed Ogre3D .dll files - e.g. OgreGUIRenderer_d.dll
Plugin_OctreeSceneManager.dll OgreMain_d.dll Plugin_ParticleFX.dll
OgrePlatform_d.dll RenderSystem_Direct3D7.dll PlatformManager_Win32.dll
RenderSystem_Direct3D9.dll Plugin_BSPSceneManager.dll RenderSystem_GL.dll
Plugin_CgProgramManager.dll.
-
Build!
Misc requirements
-
RTTI support is required. In vs.net that means /GR compile flag.
Dependencies
OS
All dependencies should be platform independent, in the sense that a dependency
is stable, mature and available on Windows XP or later, Mac OSX and Linux.
Successfull platform build and runs (i.e. if your host is not listed
below, but is a Windows XP or later, Linux or Mac OSX it should be possible to
build Agon for this configuration, but hasn't been tested.)
-
pre-0.1:
-
MS Windows XP Pro SP2 under VS.NET 7.1.3088
Run-time components
-
3D engine: Ogre SDK, presently 1.0.7
-
Terrain: PLSM2, although presently not used
Build-time components
-
Documentation: Doxygen and GraphViz
-
Versioning: Subversion
Modeling
-
3D modeling: Presently, the modeling has been done in Maya 6.5. For this
configuration you need
-
Maya 6.5 exporter
-
Ogre command line tools
-
Textures and overlay images: Gimp
Environment
-
The bin/publish script(s) depend on PUBLISH_HOME to be set to wherever your
web-server finds its documents (for Apache where your htdocs resides)
-
You need the OGRE_HOME to be set correctly.
Contributing
Subversion
If you have sufficient privileges, this is generally how you would commit to the
repository (checkout is covered above):
svn ci -m "<something meaningful>"
<local-dir>
Publishing
The present index.html is
basically the top-level Readme.html published as index.html:
$ scp Readme.html
<your-login>@shell.sourceforge.net:/home/groups/a/ag/agon-cosmos/htdocs/index.html
Frequently sought-after services
Ogre3D services
Camera: get it from AgonApp
SceneManager, RaySceneQuery: get it from WorldObjectManager
Friendly hints, coding style and the like
-
In general, whatever is being said in the c++ faq lite (http://www.parashift.com/c++-faq-lite/)
is usually more well thought out and experienced than most of my own ideas
-
In 80% of the cases where you're considering using a typeid() comparison or
dynamic cast test, you probably want a polymorphic method instead.
-
Generally, you want clarity, simplicity and readability over
performance, optimization and fanciness.
-
If we need to optimize, we'll do it as a separate job and not as part of
a functionality implementation
-
If you add new files, please
-
add subversion property svn:keywords = Id
to any relevant text file
-
..and add an Id tag somewhere in relevant text files. With header files
preferably in the class comment. With body files at the top in a comment.
-
Minimal documentation requirements:
-
Use doxygen tags where appropriate
-
Classes have a class comment which at the minimum includes a paragraph on the
intention of the class and an Id tag.
-
All public fields/variables have a comment
-
All public methods that aren't property get/setters has a comment unless
they're overriding and the usage/intention is identical to parent
-
All header files are preambled with the
GPL abbreviated inclusion text ("How
to Apply these terms to your new program"). See AgonDef.h for an
example.
License
This program is under the GPL
license. See license.txt. The copyright holder Agon Team can be
reached at yarc-oslo@users.sourceforge.net.
Tactical todo
-
Surface collision detection
-
PLSM2
-
Agent instead of camera
-
Exception hierarchy
$Id: Readme.html 4 2006-04-10 06:45:05Z yarc-oslo $