Castle Game Engine
Download
Features
News
Documentation
Tutorial: 3D physics fun
Manual
Creating Game Data
API Reference
Why Pascal?
Modern Object Pascal Introduction
Overview for Unity Developers
Scene Graph: X3D nodes
Conferences
Videos
Model Viewer
Community
Gallery
Games
Tools
Additional Components
Assets (3D and 2D Graphics, Sound)
Release notes
Donate
Home
»
Documentation
»
Manual
Previous: Engine on a form (VCL, FMX, LCL) using TCastleControl
Next: GitHub Actions (automatic builds for GitHub projects)
Manual
Automatic Builds (Continuous Integration and Delivery)
Contents:
GitHub Actions (automatic builds for GitHub projects)
GitLab CI/CD (automatic builds for GitLab projects)
Docker (easily get CGE, compilers, texture compression tools)
Jenkins (automatic builds by your Jenkins server)
Previous: Engine on a form (VCL, FMX, LCL) using TCastleControl
Next: GitHub Actions (automatic builds for GitHub projects)
Manual
Documentation
Tutorial: 3D physics fun
Manual
Install
Build your first application
Designing user interface and handling events (press, update) within the view
Managing Views
Viewport with scenes, camera, navigation
Tutorial: Designing a 3D world
Tutorial: Designing a 2D world
Camera
Navigation
Writing code to modify scenes and transformations
Behaviors
Multiple viewports to display one world
Expose scene elements, like children transformations, as TCastleScene children
User interface
Text and fonts
Customize loading image
Advanced: custom drawn 2D controls
Editor
Custom Components in Editor
Components to reuse a design in other designs
2D games
Sprite sheets
Images
Tiled maps
How to render 2D games with images and sprites
Physics
Sound
OpenAL
FMOD
Persistent data (user preferences, savegames)
Save screen (screenshot)
Network, downloading and using URLs
Logging
Cross-platform (desktop, mobile, consoles...) projects
Data directory and castle-data:/ URL protocol
CastleEngineManifest​.xml
Customize UI scaling, font, warmup cache by CastleSettings.xml
Build Tool
Touch Input
Platforms details
Android
Android FAQ
Android Services (Google Play Games and many more...)
Adding New Android Services
iOS
iOS Services (Apple Game Center and many more...)
In-App Purchases (Android, iOS)
Nintendo Switch
macOS
Web
Optimization
Occlusion Culling
Profiling Using Valgrind
Detecting Memory Leaks
Making rendering prettier
Bump Mapping (Normal Maps)
Shadow Volumes
Background (skybox, sky and ground)
Fog
Blending
Color Space (Gamma Correction)
Alpha Bleeding
Sketchfab
Engine on a form (VCL, FMX, LCL) using TCastleControl
Automatic Builds (Continuous Integration and Delivery)
GitHub Actions (automatic builds for GitHub projects)
GitLab CI/CD (automatic builds for GitLab projects)
Docker (easily get CGE, compilers, texture compression tools)
Jenkins (automatic builds by your Jenkins server)
Pascal IDEs
Lazarus
Delphi
Delphi packages
Delphi for Linux
Visual Studio Code
Miscellaneous
Steam
Which way is up?
Transformation hierarchy
CastleWindow Backends
Threads
Compiling from source
Supported compilers and IDEs
Coding Traps
Units Map
Dedicated GPU
fpcupdeluxe
FpMake and FpPkg
License
Helping in engine development
Donate
Roadmap
Coding Conventions
Creating Game Data
API Reference
Why Pascal?
Modern Object Pascal Introduction
Overview for Unity Developers
Scene Graph: X3D nodes
Conferences