Code Technical Information

The Ploobs Engine uses some external DLL to perform its work like:
Some demos uses
Some libs were customized to fit our need, some because the project was "abandoned" like JigLibX and SharpSteer (BugFix and add features), others because we need to fit them in our deferred render like XNAAnimation and LTree.

The code of LTree and SharpSteer were included in the solution. The JigLib and XNAAnimation were not (just the DLL), the code is in the Auxiliar Libs Folder

The utility program ILMERGE (http://www.microsoft.com/downloads/details.aspx?FamilyID=22914587-b4ad-4eae-87cf-b14ae6a939b0) is used to combine
the DLLs in just one.

ilmerge /out:PloobsEngineDebug.dll BEPUphysics.dll JigLibX.dll LTreesLibrary.dll LTreesPipeline.dll PloobsEngine.dll XNAnimation.dll XNAnimationPipeline.dll /xmldocs /keyfile:XNAnimation.snk /ver:1.0.0.0 /log

Code Folders Layout

  • Code
    • Help
    • Auxiliar Libs
      • JiglibX
      • HeighMapProcessor
      • XNAAnimation
    • Exporter
      • 3DS MAX Exporter - Script
    • PloobsEngine
      • Assets
      • Etapa1
      • PloobsEngine
      • LTreesLibrary
      • LTreesPipeline
  • Documents
  • Release

Visual Studio Solution

The main project (the engine itself) was built using visual studio 2008 (but can be ported without any trouble to visual studio 2005 and express editions).
The main solution avaliable in the mercurial repository (folder PloobsEngine ) contains 5 projects:
  • Assets
  • Etapa1
  • LTreeLibrary
  • LTreePipeline
  • Engine

Assets

Constains all the assets used INSIDE the PLoobsEngine. This projects compiles all the assets and output them in a .xnb form. Them those serializable resources are used exclusively in PloobsEngine. The end user cannot load them.
Using such aproach is good because all assets are embedded in the same DLL (PloobsEngine) and they are protected. All assets used are free domain (some created by us, and others found on the internet)

Etapa1

Constains LOTS of RANDOM projects that uses the PloobsEngine. It works as a HUGE SANDBOX. There is some projects about SUBDIVISION SURFACES, using the Butterfly and PN-Triangles that are really cool !!! There are also some Terrain experiments with real time deformation !!! There are lots AI content Related, including my implementation of the Steering Behaviors.
BE CAREFUL, ITS NOT ORGANIZED at all.
In a close future, i intent to take some of these projects and create a separate Solution for them (and document them, possibly blogging about them also).

LTreeLibrary and LTreePipeline

Contains the LTree implementation, the HLSL files are in a resource form.

Engine

Contains all the engine related code. They are reasonably organized in folder. The external DLLs used in the engine like XNAAnimation.dll is in the DLL folder of the Engine. If you want a custom version of XNAAnimation, you need to build the new DLL, put them in the DLL folder of Engine, build PloobsEngine solution and merge the resulting DLLs (bin folder of Engine Project, dont forget to add the XNA custom pipeline DLLs in the merge also).

Want the code ? Take a look at the Instruction Page

Last edited Mar 20, 2011 at 9:33 PM by tpastor, version 17

Comments

No comments yet.