Key-Features
Here a list of the currently implemented features inside the framework.
-
Skin-, Skeleton- und Vertexanimations for 3D Meshes (Key-Animations)
-
Integrated and fast Q3 Physics Engine (with collision detection)
-
Materials: textures, normal-mapping, vertex-color, phong-, blinn-, lambert-materials, water and reflection, layered materials, splatmaps, terrain-material, atlas-texturing
-
Loading complex multi-mesh models with UV-textures
-
Logical model management (independent from FireMonkey tree), to manage a large amount of meshes and to instanciate separatly
-
Flexible particle-system with influencer-classes (up to 100K particle at runtime)
-
Shadow-Mapping and Variance-Shadow-Mapping (experimental)
-
Frustum Culling
-
Fog rendering
-
Cubemap-Textures and Texture3D support
-
Mesh-Multiplication with multiple sources for grass and trees
-
Order-Independent Rendering (WBOIT) for better transparency effects
-
Multipass-Rendering
-
Bokeh/Depth-Of-Field
-
Skybox-support
-
Terrain rendering: from height-maps and procedural algorithms (Diamond-Square, Perlin-Noise, ...)
-
SphereTerrain variation of default terrain component
-
CVLOD Terrain for large terrain with chunks and auto-focus level of detail detection
-
New Point3D-, Quaternion-, Transformationsmatrix- und VertexKey-Animationen
-
FMOD AudioManager for professional audio playback
-
AssetsManager with packaging system
-
Flexible DialogueSystem: load, save and edit at runtime
-
Flexible InventorySystem: load, save and edit at runtime
-
Flexible SkillSystem: load, save and edit at runtime
-
InputController for easy usage of hotkeys and input sequence detection
-
FirstPerson- and ThirdPerson character controllers
-
PhysicsCharacterController combines InputController, CharacterController (FirstPerson/ThirdPerson), AnimationController, AudioManagerController, TriggerPoints controlling and Q3 Physics to build a modern 3D game with physics collision.
-
GorillaScript for easy scripting implementation and using FMX and Gorilla3D at runtime
-
Fast 3D model loading
-
Compatible with existing FireMonkey components
-
Platform-independent: WIN32, WIN64, ANDROID, ANDROID64
-
Formate: G3D, X3D, X3DZ, X3DVZ, OBJ, STL, DAE, FBX, glTF, Babylon
, Sketchfab
-
C++ support by header and lib files
Models
-
Dynamic or static meshes supported
-
Skin-Animation (Keyframes)
-
Skeleton-Animation (Keyframes)
-
Vertex-Animation (Keyframes)
-
Vector-Animation
-
AnimationManager for handling multiple animations per model
-
Animation-Caching
- Compressed Caching - information is stored as zip or lz4 (win32) stream in memory
- Uncompressed Caching - more memory usage, but unbelievably fast!
Materials
-
Normal- and BumpMapping
-
Gaussian, Lambert, Phong, Blinn-Phong (textured)
-
VertexColor
-
Water-Material
-
LayeredMaterial
-
NodeMaterial (experimental) with FlowChart-Editor
-
Runtime-Shader: Design, load & save shader material at runtime
-
SplatMap-Material
-
TerrainMaterial
-
SharedMaterial
-
AtlasMaterial
Shadowing
-
ShadowMapping and Variance-Shadow-Mapping (experimental)
Multipass-Rendering
-
Simple create a MultiPass component and attach to viewer
-
Reusage of MultiPasses possible to reduce rendering
-
Already in use for water and depth-of-field rendering
Particle-System
-
High performance particle-system with shader integration
-
Manipulate every particle very easy by influencer classes
-
Randomization parameters configurable
-
Extendable material shader for individual particle handling
-
User interactive particle emittance, f.e. at mouse position
-
Included influencers: gravity, wind, path, traktor, obstacles...
-
Physics on obstacles (spherical, cubic and meshes)
-
ParticleCollision with Q3 Physics Engine
-
Template particle-systems for fire, smoke, rain, snow, waterfall, eruption, explosion, ...
Terrain-Rendering
-
Generating from height-map image
-
Randomization possible
-
Procedural generation by: diamond square, mandelbrot, perlin-noise (linear, cosine and cubic), plateau algorithms
-
Resolution configurable
-
Static buffering of terrain mesh for fast rendering
-
Texturing by SplatMap-Material or Terrain-Material
-
SphereTerrain component
-
CVLOD Terrain for large terrains with chunks and visual level of detail display
InputController
-
Detect mouse, keyboard and gamepad inputs
-
Register hotkeys and hotkey sequences (f.e. combat combos)
-
Currently working on windows platforms
Character controlling
With our new components it's getting much easier to build games!
-
FirstPerson-/ThirdPersonController manages user inputs and controls character movement
-
TriggerPointsManager to set static or dynamic points in your world, getting triggered when coming close
-
AudioManagerController automatically manages sound playback on character controlling
-
PhysicsCharacterController combines CharacterController, Q3 Physics Engine, TriggerPointsManager and AudioManagerController for realistic collision detection movement with auto sound playback and interaction.
GorillaScript
-
Scripting component with Delphi language syntax
-
Easy integration for using FMX and Gorilla3D components
-
Basic features of delphi language: basic types, classes, records, events, ...
Misc
-
SkyBox
-
Water-Surface
Q3 Physics Engine
-
Box and sphere colliders
-
Accuracy configurable (lower accuracy means faster calculation)
-
Up to 1024 colliders without great performance loss
-
Easy binding to Firemonkey 3D controls
-
Interactive physics world manipulation
-
Much faster than compareable physics engines
-
Capsule-Collider (experimental)
-
Mesh-Collider (experimental)
-
Terrain-Collider (experimental)
-
Particle-Collider (experimental)
-
Separate thread usage (experimental)
FMOD AudioManager
If your development budget is under $500k or you are not doing it for the money, go ahead and start creating.
Simply register for a free license and include the FMOD logo in your game, before it is released to the world:
https://www.fmod.com
FMOD allows many different formats on all platforms. It supports 3D positioning of sound sources.
It guarantees high performance and high quality playback even with a large number of samples. By usage of
sound- and channelgroups you can easily manage your audio files.
FMOD provides a few common sound effects, like: panning, volume, reverb, ... By the geometry API you are able
to implement even complex sound effects within a 3D world with obstacles, doppler-effect and reverb.
FMOD allows DSP plugins to create your own native sound effects.
Supported file formats: AIFF, ASF, ASX, DLS, FLAC, FSB (FMODs sample bank format), IT, M3U, MIDI, MOD, MP2, MP3,
Ogg Vorbis, PLS, S3M, VAG (PS2 or PSP format), WAV, WAX (Windows Media Audio Redirector), WMA, XM,
XMA (only on the Xbox 360), as well as raw audio data.
DialogueSystem
-
Complex & flexible design in tree structure
-
(Un)lockable items
-
Crosslinking of items possible
-
Set question, answer or floating item display time - for fast-reaction games
-
Design of dialogues & monologues with colloquist information
-
Multilingual system easily definable
-
Auto-language selection
-
Set variables to implement gaming elements
-
Set parameters to interact back with your game/application
-
Events for: showing text and images, playing audio, video and animations, executing method calls, property settings, redirection & more
-
Events with different scopes: dialogue item, UI-element, gaming element
-
Pause, stop and skip dialogues and items
-
Storable as single or multiple dialogue files/streams (dynamic loading possible)
-
Storeable in xml format
-
Loadable from xml file/stream
-
Readable and understandable xml format, to outsource design & management of dialogues.
-
Fully customizable in Delphi
-
Free DialogueDesigner inside the Gorilla3D engine
-
Create dialogues, items and events simply by drag & drop
-
Move, rearrange and delete items & events
-
Configure every dialogue, item and event in detail
-
Treeview for easy dialogue navigation
-
Preview dialogues in sandbox viewer
Inventory-System
-
Complex & flexible inventory management
-
Create item templates, groups and manufacturers
-
Items with thumbnail and preview models
-
Groups with thumbnails
-
Multilingual system easily definable (f.e.: for group/item names)
-
Item groups to categorize your elements, f.e.: weapons, notes, keys, ...
-
Items can up- and downgrade
-
Manufacturers to setup crafting and item combinations
-
Multiple items manufacturable and quantity manageable
-
Craft items in editable time in asynchrone backend thread
-
Items and groups with max quantity management
-
Items and groups with weight management
-
Collect items pooled or each as single instance
-
Collect items in dependencies, f.e. only if you have collected an ax, you can collect wood
-
Set variables to implement gaming elements
-
Set parameters to interact back with your game/application
-
Preview inventory in sandbox with test-UI
AssetsManager
-
Handle easily models, textures, audio files & more
-
Reuse assets for faster loading and less memory usage
-
Packages for modularizing your application
-
Group assets for handling your media even in large packages
-
Just-in-time loading of packages possible (load assets when they are needed)
-
Stored as zip-archive for transparent content management
-
AssetsManager Tool with media preview: manage your packages easily!
Formats
-
G3D (Gorilla3D-Format): full support incl. skin-, skeleton- and vertex-animation
-
DAE (Collada): full support incl. skin-, skeleton- and vertex-animation
-
X3D: full support incl. skin-, skeleton- and vertex-animation
-
X3DZ: full support incl. skin-, skeleton- and vertex-animation
-
X3DVZ: full support incl. skin-, skeleton- and vertex-animation
-
OBJ (Wavefront): triangle and face import
-
STL (Stereolithography): triangle and face import
-
FBX (Autodesk): triangle, face and polygon import
-
glTF: triangle, face and polygon import
-
Babylon: triangle, face and polygon import
-
Sketchfab: API integration by using glTF format
Platforms
-
Windows 32-Bit & 64-Bit
-
Android 32-Bit & 64-Bit
-
iOS 32-Bit & 64-Bit (not included yet)
-
MacOS 32-Bit (not included yet)
-
Linux (only x64) [usage of thirdparty products (like FmxLinux)] (not included yet)
Links
References
See the screenshots!