1. 1. Welcome
  2. 2. What is The Machinery
  3. 3. Licenses
  4. 4. FAQ
  5. 5. Glossary
  6. 6. Troubleshooting
  7. 7. Contribution
  8. 8. Getting Started
    ❱
    1. 8.1. Contents of binary distribution
    2. 8.2. Sign In
    3. 8.3. Project Setup
    4. 8.4. Version Control
    5. 8.5. New Project
    6. 8.6. First Gameplay Project
    7. 8.7. Sample Projects
    8. 8.8. The Machinery for Unity Devs
    9. 8.9. The Machinery for Unreal 4 Devs
    10. 8.10. The Machinery for Godot Devs
    11. 8.11. Introduction to C
      ❱
      1. 8.11.1. Memory Management
      2. 8.11.2. List, Arrays, Vectors
      3. 8.11.3. HashMaps & Sets
      4. 8.11.4. Concurrency in Machinery
      5. 8.11.5. String processing
      6. 8.11.6. Types: void* and struct padding
  9. 9. The Editor
    ❱
    1. 9.1. About Tabs
    2. 9.2. Entity Tree Tab
    3. 9.3. Scene Tab
    4. 9.4. Properties Tab
    5. 9.5. Asset Browser
    6. 9.6. Simulate Tab
    7. 9.7. Preview Tab
    8. 9.8. Customizations
  10. 10. Editing Workflows
    ❱
    1. 10.1. Entities
    2. 10.2. Import Assets
    3. 10.3. Import Projects
    4. 10.4. Asset pipeline by Example
    5. 10.5. Prototypes
      ❱
      1. 10.5.1. How to Create Prototypes
      2. 10.5.2. How to Instantiate Prototypes
    6. 10.6. Meshes / Materials / Shaders
    7. 10.7. Simulation
    8. 10.8. Visual Scripting: Entity Graphs
    9. 10.9. Physics
    10. 10.10. Animation
      ❱
      1. 10.10.1. Animation State Machines
      2. 10.10.2. Animation Compression
    11. 10.11. Sound
    12. 10.12. Publish
    13. 10.13. Sculpt Tool / White boxing
  11. 11. The Truth
    ❱
    1. 11.1. Access values
    2. 11.2. Create an object
    3. 11.3. Modify an object
    4. 11.4. Common Types
    5. 11.5. Aspects
    6. 11.6. Create a Truth Type
  12. 12. Creation Graphs
    ❱
    1. 12.1. Creation Graphs for Untiy Dev's
    2. 12.2. Creation Graphs for Unreal 4 Dev's
    3. 12.3. Node Types
    4. 12.4. Shader System Interaction
  13. 13. Graphics
    ❱
    1. 13.1. Camera
      ❱
      1. 13.1.1. Physically Based Light and Cameras
    2. 13.2. Default Render Pipeline
    3. 13.3. Meshes / Materials
    4. 13.4. Shaders
    5. 13.5. The Machinery Shading Language
    6. 13.6. .tmsl Visual Studio Extension
    7. 13.7. Lighting
      ❱
      1. 13.7.1. Ambient Occlusion
    8. 13.8. Post Processing
      ❱
      1. 13.8.1. Anti-Aliasing
      2. 13.8.2. Exposure
      3. 13.8.3. Bloom
      4. 13.8.4. Color Grading
  14. 14. Extending The Machinery
    ❱
    1. 14.1. The Plugin System
      ❱
      1. 14.1.1. Write a plugin
      2. 14.1.2. Sample Plugins
      3. 14.1.3. Write a tab
      4. 14.1.4. Plugin assets
    2. 14.2. Hot-reloading
    3. 14.3. Application Hooks
    4. 14.4. Premake
    5. 14.5. tmbuild
  15. 15. Gameplay coding
    ❱
    1. 15.1. Simulation Entry in C
    2. 15.2. Visual Scripting
      ❱
      1. 15.2.1. Subgraphs
      2. 15.2.2. Debugger
      3. 15.2.3. Extending the Entity Graph
      4. 15.2.4. Custom Data Type for the Entity Graph
    3. 15.3. Entity Component System
      ❱
      1. 15.3.1. What are components
      2. 15.3.2. How can Entities Interact?
      3. 15.3.3. How to design a System or an Engine?
      4. 15.3.4. How to define a System or an Engine?
      5. 15.3.5. How to register a System or an Engine?
      6. 15.3.6. Write a custom component
      7. 15.3.7. Tagging Entities
      8. 15.3.8. Filtering Entities
      9. 15.3.9. Simulation Lifecycle
    4. 15.4. Gameplay Entry Point Comparison
  16. 16. Tutorials
    ❱
    1. 16.1. Creation Graph
      ❱
      1. 16.1.1. Creation Graph Introduction Series
        ❱
        1. 16.1.1.1. Simple Texture Compression
        2. 16.1.1.2. Creation Graph Prototype
        3. 16.1.1.3. Custom Import Settings
      2. 16.1.2. Creating Custom GPU Nodes
      3. 16.1.3. Creating Custom CPU Nodes
      4. 16.1.4. Creating Custom Geometry Nodes
      5. 16.1.5. Calling Creation Graphs from Code
      6. 16.1.6. Creating a Custom Raymarching Output Node
    2. 16.2. Physics
      ❱
      1. 16.2.1. Triggers
      2. 16.2.2. Arkanoid
      3. 16.2.3. Contacts
      4. 16.2.4. Kinematic
      5. 16.2.5. Stack
    3. 16.3. The Truth
      ❱
      1. 16.3.1. Creating a Custom Asset Type
        ❱
        1. 16.3.1.1. Part 1 - Create an Asset Truth Type, Addable via Asset Browser
        2. 16.3.1.2. Part 2 - Custom UI
        3. 16.3.1.3. Part 3 - Custom Importer
      2. 16.3.2. Adding Drag and Drop to Assets
      3. 16.3.3. Open Asset in Tab
    4. 16.4. Network
      ❱
      1. 16.4.1. Part 1: Network Asset
      2. 16.4.2. Part 2: Multiple Instances
      3. 16.4.3. Part 3: Entity Control
      4. 16.4.4. Part 4: Multiple Players
      5. 16.4.5. Part 5: Variable Replication (Graph)
      6. 16.4.6. Part 6: Smooth Animation
      7. 16.4.7. Part 7: Spawning Entities
    5. 16.5. UI
      ❱
      1. 16.5.1. Build Custom UI Controls
        ❱
        1. 16.5.1.1. Part 1
      2. 16.5.2. Toolbars and Overlays
      3. 16.5.3. Custom Tab Layouts
  17. 17. Collaboration
  18. 18. QA Pipeline
    ❱
    1. 18.1. Statistics Tab
    2. 18.2. Profiler Tab
    3. 18.3. Memory Usage Tab
    4. 18.4. Logging
    5. 18.5. Write your own unit tests
    6. 18.6. Write your own integration tests
  19. 19. Build Tools
    ❱
    1. 19.1. How to use tmbuild
    2. 19.2. How to use hash
    3. 19.3. tmbuild package reference
    4. 19.4. Libs json reference
    5. 19.5. Premake
  20. 20. Writing an executable

The Machinery Book

Tutorials