User Tools

Site Tools


gamedev:deigde:editors:gamedefinition

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
gamedev:deigde:editors:gamedefinition [2020/04/01 18:17] – [Categories] dragonlordgamedev:deigde:editors:gamedefinition [2024/03/14 16:32] (current) dragonlord
Line 8: Line 8:
 The game definition editor allows to edit **game definition** files (*.degd). These are used for development and stores information about **object classes** and certain resources like **skin resources** or **sky resources**. For each game project a game definition file is created and stored in the project directory. The game definition editor allows to edit **game definition** files (*.degd). These are used for development and stores information about **object classes** and certain resources like **skin resources** or **sky resources**. For each game project a game definition file is created and stored in the project directory.
  
-{{ :gamedev:deigde:editors:editor_gamedef.jpg?direct&400 |Game definition editor preview}}+<WRAP group> 
 +<WRAP column> 
 +{{:gamedev:deigde:editors:editor_gamedef.jpg?direct&400|Game definition editor preview}} 
 +</WRAP> 
 +</WRAP>
  
 This editor is usually used to edit the game definition of the current project (**Game-Definition -> Open Project** menu entry) but can be also used to edit any game definition file. This works since in contrary to other editors this editor is allowed to edit files outside the game virtual file system. By default the project game definition is not loaded to reduce loading times. This editor is usually used to edit the game definition of the current project (**Game-Definition -> Open Project** menu entry) but can be also used to edit any game definition file. This works since in contrary to other editors this editor is allowed to edit files outside the game virtual file system. By default the project game definition is not loaded to reduce loading times.
Line 50: Line 54:
 The object classes and other resources added to the game definition are organized in a category tree. It is possible to not assign resources to a category. In this case browsers show them in the //Uncategorized// category. The object classes and other resources added to the game definition are organized in a category tree. It is possible to not assign resources to a category. In this case browsers show them in the //Uncategorized// category.
  
-Resources are assigned to categories using a //Category Path String//. The category path string is similar to Unix file path. For example a child category "World" inside a root category "Hello" would use the category path string "Hello/World".+Resources are assigned to categories using a //Category Path String//. The category path string is similar to Unix file path. For example a child category "World" inside a root category "Hello" would use the category path string <wrap hi>"Hello/World"</wrap>.
  
-Use the context menu to add and remove categories.+Use <key>MOUSE_RIGHT</key> context menu to add and remove categories.
  
 The **Hidden** parameters hides the category from **Browsers**. Elements inside hidden categories can be still used unless they are hidden themselves. The **Hidden** parameters hides the category from **Browsers**. Elements inside hidden categories can be still used unless they are hidden themselves.
Line 100: Line 104:
  
 The **Partial Hide Tags** panel defines another set of tags the mapper can use to //partially// hide object classes. Partially hidden objects stay visible if the tag is used but certain //Sub Objects// of them are hidden. This is for example used with light objects which has a //Light// sub object and a //Billboard// sub object used to show the light source. When partially hidden the billboard sub object should be hidden but not he light sub object. Using //Partial Hide Tags// this can be done. To hide everything (including the light sub object) use //Hide Tags// instead. The **Partial Hide Tags** panel defines another set of tags the mapper can use to //partially// hide object classes. Partially hidden objects stay visible if the tag is used but certain //Sub Objects// of them are hidden. This is for example used with light objects which has a //Light// sub object and a //Billboard// sub object used to show the light source. When partially hidden the billboard sub object should be hidden but not he light sub object. Using //Partial Hide Tags// this can be done. To hide everything (including the light sub object) use //Hide Tags// instead.
 +<WRAP clear/>
 +
 +====== Sub Objects ======
 +
 +{{ :gamedev:deigde:editors:editor_gamedef_component.png?nolink|}}
 +
 +Sub Objects have to be added to object classes to make them visible. Without any visible element object classes are shown using a missing object box. Various sub objects can be added using the <key>MOUSE_RIGHT</key> context menu. Here **Component** sub object is described as an example. The other sub object types work similar.
 +
 +The parameters in the **Object Class Component** (sub object type specific) mostly mirror the important parameter values of the respective game engine resource. Most parameters are path of resources to use or values. See the documentation of your //Script Module// of choice or the //Engine API Documentation// for details. This list is a little help for you:
 +^ Type                   ^ DragonScript Class                                                                                                                                 ^ Drag[en]gine Class                                                                                                ^
 +| Billboard              | #@LinkApiDocDEDS2_HTML~classDragengine_1_1Scenery_1_1Billboard.html,Billboard~@#                              | #@LinkApiDocDE2_HTML~classdeBillboard.html,deBillboard~@#                              |
 +| Camera                 | #@LinkApiDocDEDS2_HTML~classDragengine_1_1Scenery_1_1Camera.html,Camera~@#                                    | #@LinkApiDocDE2_HTML~classdeCamera.html,deCamera~@#                                    |
 +| Component              | #@LinkApiDocDEDS2_HTML~classDragengine_1_1Scenery_1_1Component.html,Component~@#                              | #@LinkApiDocDE2_HTML~classdeComponent.html,deComponent~@#                              |
 +| Environment Map Probe  | #@LinkApiDocDEDS2_HTML~classDragengine_1_1Scenery_1_1EnvMapProbe.html,EnvMapProbe~@#                          | #@LinkApiDocDE2_HTML~classdeEnvMapProbe.html,deEnvMapProbe~@#                        |
 +| Light                  | #@LinkApiDocDEDS2_HTML~classDragengine_1_1Scenery_1_1Light.html,Light~@#                                      | #@LinkApiDocDE2_HTML~classdeLight.html,deLight~@#                                      |
 +| Navigation Space       | #@LinkApiDocDEDS2_HTML~classDragengine_1_1Scenery_1_1NavigationSpace.html,NavigationSpace~@#                  | #@LinkApiDocDE2_HTML~classdeNavigationSpace.html,deNavigationSpace~@#                  |
 +| Navigation Blocker     | #@LinkApiDocDEDS2_HTML~classDragengine_1_1Scenery_1_1NavigationBlocker.html,NavigationBlocker~@#              | #@LinkApiDocDE2_HTML~classdeNavigationBlocker.html,deNavigationBlocker~@#              |
 +| Particle Emitter       | #@LinkApiDocDEDS2_HTML~classDragengine_1_1Scenery_1_1ParticleEmitterInstance.html,ParticleEmitterInstance~@#  | #@LinkApiDocDE2_HTML~classdeParticleEmitterInstance.html,deParticleEmitterInstance~@#  |
 +| Force Field            | #@LinkApiDocDEDS2_HTML~classDragengine_1_1Scenery_1_1ForceField.html,ForceField~@#                            | #@LinkApiDocDE2_HTML~classdeForceField.html,deForceField~@#                            |
 +| Speaker                | #@LinkApiDocDEDS2_HTML~classDragengine_1_1Scenery_1_1Speaker.html,Speaker~@#                                  | #@LinkApiDocDE2_HTML~classdeSpeaker.html,deSpeaker~@#                                  |
 +
 +The **Snap Point** type is different. This type is only for IGDE use by the mapper and has no game engine counter part. As the name suggests snap points define spots on the object class other object classes can snap to. If objects have no snap points their origin is used for snapping. If objects have snap points all of them can snap to each other. Furthermore snap points can be //Aligned// or not. Aligned snap points snap position and orientation while not aligned snap points only snap position.
 +
 +The **Properties** sub panel links the content of sub object parameters to properties defined in the parent object class. This allows the editors to update sub object parameters if the mapper changes object properties. Use here the name of the property as defined in the object class. The IGDE takes care of applying //Inherit Property Prefixes// for you.
 +
 <WRAP clear/> <WRAP clear/>
  
gamedev/deigde/editors/gamedefinition.1585765022.txt.gz · Last modified: 2020/04/01 18:17 by dragonlord