# Delta3D

Delta3D - A Free Open Source Software (FOSS) Game engine - gaming/simulation engine - API.
Wish I could say this is a "how to" guide. Mostly it's a reference, inverse tree. How, sure, but not necessarirly current or complete.
Most folks can build and run Delta3D... but that isn't why you're here.

## Disclaimer

All products' trademarks and copyrights referenced are property of their respective trademark and copyright holders... yadda, yadda, yadda. Read the product licenses.
There are several Delta3D package sources. Ensure you have the right version and configure your environment correctly, otherwise the build(s) and/or execution will fail. The most recent isn't necessarily the best.
Your system hardware and software will affect the use and operation of Delta3D and related applications. Sadly, I can only attest to my experience using Windows OS and MSVC 2005 development environment. Hopefully cross-platform source and development has progressed to the point that this won't be a limiting factor should you be using a different system.
Take a minute to do some research and verify anything you plan to use or install - tools in particular and as always if you create a user account for any site related to source (Delta3D, SourceForge, OSG, etc), manage your accounts and behave well in the community forums and discussions to get the most out of the products. Use Google, Yahoo, Bing, Wikipedia, MSN, whatever search reference/resource you like, or any other file verification facility you think is best to confirm an application/file before installing and using as described here - even ask your friends. There are impostors, leeches, and scams; or different (older/newer) versions that aren't going to work. Better yet, go to the forum and see what the latest news is before getting started.

## Credits

The "product" (Delta3D) is managed and supported by the "Modeling, Virtual Environments, and Simulation" (MOVES) Institute at the Naval Postgraduate School in Monterey, California. They hire programmers, you should apply. The "software" is released under the GNU Lesser General Public License (LGPL). The external modules (libraries) have their own licensing. Some modules, such as Qt (kute), require the user (you) to download - install - build - separately for use with Delta3D.
As a cross-platform "application", primarily written in C++, different operating systems and development environments are supported. That means you can create a simulation or game (MMORPG) using your computer and "make" (IDE); once you have an idea - otherwise it just tests and pre-built applications.

## How long will this take?

At a minimum this is a "Two week" project, for anything more than just seeing what Delta3D has to offer as a game development platform. If you install the Delta3D base package, and it's compatible with your system, you'll be up and running in an hour or so. Otherwise this will take a bit, it may take a few days - for the full package (including external dependencies) download, install, configure, and build. You will have to accept accomplishments in stages. Beyond that, if you delve into development using Delta3D, you can spend years working with it. It's a great hobby.

## What do I need?

You will need a number of different tools to download and use the packages that comprise the Delta3D "package". There may be better applications available than those listed here, use at your discretion.
The following are suggested tools and used for purposes of reference for build and access in this "guide". You may find alternatives or have a different environment.
MSWindows Vista SP2, MSVC 2005 (documented example).
TortoiseSVN, using TortoiseSVN 1.6.14.
CMake, using CMake 2.8.4.
7Zip if your OS does not support the extraction of all "archive" files provided in the various packages.

## Sources

Delta3D consists of many libraries - some outdated. As a game developer, that is why you are here, you will have to deal with several different "systems" and requirements.
You will need a "Source Control" application to access the files for the latest versions of Delta3D and the related libraries/modules. Tortoise SVN is a good one; at least for Windows.
It is continually changing. That means you can only rely on the last version you built to work. Keep track of tags and changes that affect your "game" - Save early, save often.
The "user" (developer) is expected to "leverage" the provided applications and libraries as resources and technical references in order to create their own custom implementation to make "full" use of Delta3D.
Getting started - You're going to need about 11GB of disk space to download, install, and build all of Delta3D; less than half that if you only want the basics. If you use "zip" or other source double the space needed for extract. It really is best if you just directly download from SVN and build, but, that's up to you.
Create a new folder, name it something like "Delta3D".
Document what you do - it will save you time later when you have questions or are just not sure where you were last. Create a text file, something like "Delta3dVer.txt"; so you can keep notes on versions and results.
Delta3D source. Download will take about 6 minutes using 87MB disk space. The "trunk" is the "latest" development version of Delta3D, it may include incomplete implementations and cause errors during builds. If you want an official release version download the Delta3D base package.
SVN repository: https://delta3d.svn.sourceforge.net/svnroot/delta3d/trunk/delta3d.
Using Windows and TortoiseSVN (sorry to all other users), right-click (yep, Windows vernacular) on the folder you created and select "SVN Checkout..."
Set the source path (SVN repository as noted above) and folder (as you created). If you get a warning that the folder isn't empty, that's fine, you may have your text file for notation there; select OK - the operation will only add files. If for some reason you don't get the download right you can always copy/move the folders; as long as the ".svn" folders are present it will track for source control check-out/check-in.
Add a note to your version text doc; Delta3D 07/19/2011 rev 8377.
Delta3D external dependency files. It will take about 4 minutes to download and needs 57MB disk space, each, you only need one. Which version you need depends on your "Windows version", at present 2005 or 2008; any other version requires a custom build. Pick one, as appropriate for your system. If you're adventurous, you can download both - set the target directory to something like "extVS2005" and "extVS2008". You can set the path to whichever you want for each build or rename "ext" as needed so you don't have to change the environment variables when switching versions.
SVN repository: http://delta3d-extras.svn.sourceforge.net/svnroot/delta3d-extras/ExtDep/dev/Windows/XP/VS2008/ext/
or
SVN repository: http://delta3d-extras.svn.sourceforge.net/svnroot/delta3d-extras/ExtDep/dev/Windows/XP/VS2005/ext/
From any non-source controlled directory (i.e. not the Delta3D folder you created), right-click and select "SVN Checkout...". Set a sub-directory in the target folder for easy tracking (i.e. "your Delta3D path"/ext).
Add a note to your source control text doc - Delta3D ext 3/19/2011 rev 3107. The version number is not same as the Delta3D core source; it tracks with dtPhysics and Simulation Core. Even though there will be version changes you may not get updates for any or all directories.
Delta3D Environment. Before you proceed any further, make sure you have your path and environment variables setup. Without configuring your environment you will not be able to properly build or execute the applications.
Note: If you have your environment variables setup, and the package matches your system, you can run applications using the pre-compiled versions provided; no build necessary.
Windows - Tortoise SVN users, right click on folder and select properties to view SVN source. You can verify which version/path the files are based on (i.e. 2005); knowing which version you are using is important when errors occur for missing links during build or failure to execute.
If you need to do a custom build - ouch - you can retrieve the "current" external dependency source file "packages" from: http://delta3d-extras.svn.sourceforge.net/svnroot/delta3d-extras/ExtDep/dev/src/. About 100MB, and 7 minutes to download. You will have to extract, configure and build for your local system/version. Additional packages will be required for dtPhysics and Simulation Core. It is best if you create a completely separate directory for these files.
Build the "basic" Delta3D package. Additional external dependencies and options will be required to do a full build with all of the "Delta3D features" available; these are described later.
You don't need to build "everything" see Delta3D CMake for options.
CMake - Launch CMake; desktop shortcuts are handy, make one. CMake will create the "solution" files needed to build Delta3D based on the provided support file CMakeLists.txt. It is so much easier than setting your path and dependencies manually. When you get to the point of making your own custom application based on Delta3D you'll want to create a CMakeLists.txt too so updates to Delta3D are easily integrated.
Set the "source" and "build" directories to your Delta3D folder. Use the "browse" options or enter paths manually. You may create a custom build folder (sub-directory or separate location) to track versions if desired. The custom build folder will have to be added to your path environment in order to properly run applications.
Select File>>Delete Cache to reset output - not necessary for first build but good practice to do clean builds later. Clearing the cache will prevent previous settings from causing errors during build. If you have properly set your environment variables there will be little or nothing to change in order to generate a proper configuration.
Click on "Configure" to set the system - "Visual Studio 8 2005" - and generate the initial parameter list.
All items will appear "red" initially. If you got all the preparation steps done correctly the default settings will work without any modification. However, review and set the parameters/options as appropriate for your system - you may need to manually enter values for some options, depending on your environment settings. For absolute certainty, select "Advanced" option to view all settings.
Click on "Configure" to process your settings - there should be no "red" entries remaining, but make sure there are no "NOT FOUND" items - correct/change as needed and select Configure again if modifications made.
Click on "Generate" - if there are no errors you are now ready to build.
MSVC 2005 build. Open the "solution", generated by CMake, make a shortcut on your desktop for easy access. Select the build type you want (release, debug) and perform the build. Takes about 5 minutes (each).

## Idea

First you have to have an idea.
Delta3D is not a finished product ready for release/deployment. Tests, examples, and other support applications are provided. But those only serve to test your system not provide a "game" as you want/expect. Or does it...
Try the test applications. Despite the fact that the "test" applications are outdated or nearly obsolete, they do make good use of functionality. You may find something that is a good base for your design. FireFighter (demo) is a reasonable example for the core product; you're better off using Simulation Core (SimCore) for more advanced, current, and complete development but that requires much more work on your part for installation and compilation/development.
FPS; MMORPG; SimCore (simulation core).
There are plenty of ideas out there, you have one.
* Page2
* Page3