(c) copyright Zehne Ziba Co., Ltd. For more information, please refer to copyright notice.
In this section, we briefly explain the structure of Vanda Engine.
Vanda Engine is a free and open source game engine for games and real-time interactive 3D. In this tutorial, we briefly describe the structure of Vanda Engine.
There are three modes in Vanda Engine: Prefab Mode, VScene Mode, and Play Mode. You create your prefabs in Prefab Mode, then switch to VScene mode and insert instances of these prefabs to build your 3D level. In both Prefab and VScene Modes, you can switch to Play Mode to play/test your scene.
Prefab stands for pre-fabricated object. Prefabs are the building block of Vanda Engine. It means that you can create and store an object (3D model, camera, etc) in prefab mode and use it many times in your projects. Each prefab can contain up to 3 level of details (LOD). Each LOD is a collection of one external scene in COLLADA format, extra textures (such as normal map, gloss map, etc), and PhysX colliders generated by Vanda Engine.
You can share these prefabs with your teammates to simultaneously build the levels of your game. To access the prefab mode, simply go to Mode | Prefab menu.
Prefabs are stored in packages. You can use Prefab menu to access prefab editor to manage packages and prefabs.
In Vanda Engine, you should think of Vanda Engine Scenes (VScenes) as individual levels, or areas of design content. By constructing your design with many scenes, you’ll be able to distribute loading times and test different parts of your design individually. Any currently open VScene is what you are working on, as no two VScenes can be worked on simultaneously.
Each VScene is a collection of Prefabs, built-in objects (such as waters, sky, 3D sounds,etc), rendering effects, and other elements that are critical for a real time interactive scene. To activate VScene mode, go to Mode menu and choose VScene. Every time you run Vanda Engine, it automatically activates VScene mode.
You can use scripting to load another VScene while you are in current VScene. Such VScenes are called Chained VScenes.
VScenes belong to projects. When you create and save a new VScene, Vanda Engine assigns this VScene to current active project. By default, Vanda Engine uses a default project called default. If you want to create a new game, it’s recommended that you create and activate a new project. For more information about projects in Vanda Engine, please refer to this tutorial.
You can test your VScenes and Prefabs in editor of Vanda Engine. It’s mainly used to test physics and scripts. To activate Play mode, please click the Play button.
External Scene in COLLADA (dae) Format
As mentioned earlier, each prefab contains up to 3 LODs. Each LOD contains one external file imported in COLLADA (dae) format. In this section, we briefly describe the COLLADA elements imported by Vanda Engine:
A geometry is a collection of vertices, edges, normals, triangles, tangent and bitangent vectors, UVs, materials, physics, and several textures such as normal map, gloss map and shadow map.
Vanda Engine reads vertices, edges, triangles, tangents, bitangents, multiple UVs, and materials of geometries from 3D tools capable of exporting to COLLADA. However, Vanda Engine interprets each geometry as an Instanced geometry which is a more general concept in computer graphics.
Geometry instancing is the practice of rendering multiple instances of the same geometry in a scene at once. Although geometry data is ‘shared’ across all instanced geometries, each instance have its own differentiating parameters such as translation, rotation, scaling, and physics. In Vanda Engine, there are two types of instanced geometries:
Animated instanced geometry: An animated instanced geometry is an instance geometry that its translation, rotation or scaling changes over time.
Non-animated instanced geometry: As its name implies, the translation, rotation, or scaling of a non-animated instanced geometry does not change over time.
Vanda Engine imports animated and non-animated instanced geometries from 3D tools capable of exporting to COLLADA.
Skeletal animation is a technique in which a character is represented in two parts: a surface representation used to draw the character (called skin), and a hierarchical set of interconnected bones (called skeleton or rig) used to animate the skin.
Vanda Engine reads skins, skeletons, and animation clips (A collection of different animations) from 3D tools capable of exporting to COLLADA.
Vanda Engine imports animated and static directional, point, and spot lights from 3D tools capable of exporting to COLLADA.
Vanda Engine imports animated and static cameras from 3D tools capable of exporting to COLLADA.
Vanda Engine directly reads diffuse textures of geometries exported from 3D tools. Beside this functionality, Vanda Engine uses simple naming conventions to look for normal, alpha, shadow, dirt and gloss maps and assigns them to geometries. To change these naming conventions, please go to Tools | Import Options menu. Moreover, you can assign or change these extra textures via the Material Editor.
Built in Objects
As mentioned earlier, each VScene may contain built in elements of Vanda Engine. You can create several built-in objects via the editor. These include:
Main Player (Under development)
Vanda Engine automatically assigns a post-processing effect called bloom to the current VScene.
Vanda Engine uses a cutting-edge technology called Cascaded Shadow Maps to render dynamic shadows. Animated instanced geometries and animated skins automatically cast dynamic shadows on other instanced geometries.
Vanda Engine has an exponential per vertex fog built-in.
Vanda Engine supports depth of Field (DOF). DOF describes the distance in front of and behind a focus point that appears sharp in a photograph.
By default, Fog and DOF are disabled.
You can modify the bloom, shadow, fog and depth of field properties via the Modify menu.
[animated_heading header_type=”h2″ scroll_animation=”fadeInLeft”]Scripting[/animated_heading]
Vanda Engine supports Lua language. Currently, you can assign scripts to triggers generated by physics editor of Vanda Engine.