What's Deeplayer3D? Where's the FAQ? I have a suggestion... How do I make a game?
I’s all explained at ...
As for making a game, sorry; work on the engine has barely just got started, as of this writing; check back with us in a few months.
Contributing
Architecture
There’s many ways to visualize a software architecture: Class hierarchies, flow charts, data flow charts, chain of command, individual packages, threads, header inclusion graphs ... Not to mention how the sources are arranged in the directory tree.
Not one categorization is more “general” or useful than another. Let us, then, begin with categories that contain fewer items (threads) and end with the one containing the most items (folder tree):
Threads (and other executables)
About using threads: What? Why? How? How exactly? Why so many? (a must-read for developers)
Threads:
- Predictive File Loader thread: File reading, deferred writing and predictive file cacheing. (Wraps disk drive.)
- Procedural Generator thread: Procedural generation of stars, planets, terrains, cities, textures...
- Coordinates coordinator thread: Periodically moves “world coordinates”; manages scaling transforms.
- Physics thread: Collisions and physics. (Wraps physics hardware.)
- Low-level AI thread: Path-finding and line of sight. (Wraps AI hardware.)
- Unit AI thread: Loyalty, self-preservation, greed, maneuvering...
- Game AI thread: Models human opponents.
- Chat-bot AI thread: Language, speech synthesis/recognition.
- Sound thread: Need to do something to improve on OpenAL... “Aureal 3D”-like... (Wraps sound card.)
- User input and networking thread: Implements user input delay to balance out network latency. (Wraps humans.)
- Main thread: Higer priority than the other threads; but does very little and then Sleep()s. (Wraps time.)
The Devil is in the Tools...
- Material.exe Material designer/viewer/organizer: Materials in Deeplayer 3D have dimensions...
- Model.exe Model viewer/organizer: Models in Deeplayer 3D have dimensions...
- Modelprep.exe Mesh and materials processor (fixes mesh, adds tangents and lightmaps, etc.)
- GUIMaker.exe Makes game GUI screens and overlays.
- GameMaker.exe Make a game by answering questions –well, at least it’ll get’ya started...

- DemoXX.exe Demos are more than just demos; they help consolidate engine features, and drive development.
- Install.exe *nix/Windows installer/updater (just a console app for now, using SVN)
Dynamic library targets (.DLL/.SO)
About using dynamic libraries: What? Why? How? How exactly? Why so many? (a must-read for developers)
.DLL/.SO:
- Model Loader (shared by main trunk and model viewer)
- Material Loader (shared by main trunk and the materials album app)
- Physical system loader (shared by main trunk and physics tuner)
- Sound Environment loader (shared by main trunk and sound catalog app)
- Visitors Externally added, polymorphic behaviors. Read about the Visitor Pattern.
- AMD/ATI-specific code Why together? AMD bought ATI.
- Windows-specific code (DLL-only)
- *nix-specific code (.SO-only)
Plugin's
- time Counts game-time by subscribing to customizable triggers.
- trip Controls wormhole/auto/FTL animations, monitors conditions.
- NPCspawner Controls creation of npc units.
- Flight Control Sets the available flight control functions.
Packages
About packages: What? Why? How? How exactly? Why so many? (a must-read for developers)
Header-only template libraries and packages
- dark_ptr<>: Like auto_ptr<> but can be placed in containers
- prefetch: Iterators that race ahead of the working iterator, prefetching stuff to cache
- findshare: Handle that guarantees uniqueness of shared objects and manages deallocation.
- DBC++: Design By Contract (Eiffel-inspired) –require, ensure, invariant, implies ...
Thread-safe packages used from more than one thread
Thread-specific packages
See Threads above
Third-party library wrappers
- boost ::threads, ::python, ::spirit, ... just very light wrappers... –inlined; don’t worry
And the Real McCoy: Deeplayer3D's core packages
Directory structure of the sources
About directory structure: What? Why? How? How exactly? Why so many folders? (a must-read for developers)
- Allright, here’s a very tentative crack at a sources folder: http://deeplayer.com/temp/deep.zip
How about I just start putting the folders together into the wiki?
- root —Here we go...



Tons of stuff to add...