The Wizards Wiki

Explore your world

User Tools

Site Tools


documentation:thewizardsengine

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
documentation:thewizardsengine [2013/05/24 22:40] – [Detailed information] mhgameworkdocumentation:thewizardsengine [2024/08/26 13:25] (current) – external edit 127.0.0.1
Line 2: Line 2:
  
  
-Provides helpers and tools for creating and hosting gameplay code+Provides helpers and tools for creating and hosting gameplay code. Most of these tools can be used from the engine executable 'NewModules.exe', which starts the engine for development. The keys that can be used to control the engine are in EngineKeys.
  
 +==== Tools ====
  
-==== LinkeableEditor ====+  * **EngineProfiling** Instant simple profiling 
 +  * **EngineTracing** Stores trace file with ModelContainer changes 
 +  * **AnimationSystem** Helper for simulation (keyframed) animation 
 +  * **[[:documentation:menudisplayer|MenuDisplayer]] ** Displaying a simple menu 
 +  * **[[:documentation:worldselector|WorldSelector]] ** Selecting ANY Object in 3D by raycasting, by the use of selectableproviders 
 +  * **HotLoading** The engine will reload gameplay code will it is running 
 +  * **VSDebugAttacher** Provides several features for interaction with visual studio. 
 +  * **InversionOfControl** and **DependencyInjection**
  
 +==== Components ====
  
-Concept of the editor engine features: the editor has internal representations of every conceptYou provide 'mappers' that map a single instanceto a single internal representation object + conversion methods to convert to and from the engine representation+  * **Physical ** provides physical properties to a modelobject Provides position,boundingbox, objectmatrix 
 +==== Rendering ====
  
 +  * **[[:documentation:camerainfo|CameraInfo]] ** contains methods to change the camera, get info about the camera, and generate a center screen ray!
  
-**[[:documentation:menudisplayer|MenuDisplayer]] ** Displaying a simple menu+==== Unit Testing ====
  
 +  * **EngineTest** Attribute that allows running tests inside the engine
  
-**[[:documentation:worldselector|WorldSelector]] ** Selecting ANY Object in 3D by raycasting, by the use of selectableproviders +===== Workbench =====
- +
- +
-==== Hotloading ==== +
- +
- +
-Hotloading is made possible by the [[:documentation:modelobject|ModelObject]] system. +
- +
- +
-Definition of the current system: +
- +
- +
-**Simulator**: responsible for updating the state of [[:documentation:modelobjects|ModelObjects]]. It ensures that inconsistencies in the data are corrected/updated. +
- +
- +
-**[[:documentation:modelobject|ModelObject]]**: contains publicly readable and writeable data. +
- +
- +
-**[[:documentation:modelobjectpart|ModelObjectPart]]**: a modelobject can contain several parts which are also readable/writeable data. Chances to the parts also invalidate the parent modelobject. +
- +
- +
-**[[:documentation:modelobjectpart|ModelObjectpart]] **  +
- +
- +
-Depending on which parts a model object has, a simulator can act to make these parts work together. This means there are 3 types of simulators we can identify for this scenario. Simulators that ensure consistency for between objects for the same part, simulators that cause consistency for different parts of the same object, and simulators that cause consistency for different parts and different objects, the last one beeing the most complex. +
- +
- +
-==== Components ==== +
- +
- +
-**Physical ** provides physical properties to a modelobject.  Provides position,boundingbox, objectmatrix +
-==== Rendering ==== +
- +
- +
-**[[:documentation:camerainfo|CameraInfo]] ** contains methods to change the camera, get info about the camera, and generate a center screen ray!+
  
 +EngineWorkbench Information on the development of more epic engine features.
  
 ===== Detailed information ===== ===== Detailed information =====
Line 61: Line 40:
  
 === Startup === === Startup ===
 +Starts the engine, loads the previous state, and runs the test code.
  
     * Start engine     * Start engine
     * Execute plugin     * Execute plugin
-    * Execute engine initializer+    * Execute engine initializer (and load previous state)
     * Run test     * Run test
-    * Run initialScene+    * Run initialScene (if not loaded yet)
     * Run engine     * Run engine
  
  
 === Clean === === Clean ===
 +This resets the current unit test to its default state.
  
     * Clean all data (except [[:documentation:testingdata|TestingData]])     * Clean all data (except [[:documentation:testingdata|TestingData]])
Line 78: Line 57:
     * Run test     * Run test
     * Run initialScene     * Run initialScene
- 
  
 === Reset === === Reset ===
 +This resets the engine to its default state, removing all effects from unit tests.
  
     * Clean all data     * Clean all data
Line 88: Line 66:
  
  
-=== Reload === +=== Reload (= Hotload) === 
 +Occurs automatically when the gameplay dll has changed, or can be invoke by pressing r.
  
 +    * Serialize all
 +    * Reload gameplay dll
     * Deserialize all     * Deserialize all
-    * Reload gameplay dll 
-    * Reserialize all 
     * Run test     * Run test
     * (Initial scene is not setup again)     * (Initial scene is not setup again)
  
  
-==== Writing tests ==== 
  
 +==== Simulator framework ====
  
-A test for running in the engine should receive the class attribute EngineTest. An engine instance should be optained with the EngineFactory. 
  
- +Depending on which parts model object hasa simulator can act to make these parts work together. This means there are 3 types of simulators we can identify for this scenario. Simulators that ensure consistency for between objects for the same part, simulators that cause consistency for different parts of the same object, and simulators that cause consistency for different parts and different objects, the last one beeing the most complex.
-Initial scene setup is provided through service ([[:documentation:testscenebuilder|TestSceneBuilder]])currently using the internal DI.+
  
documentation/thewizardsengine.1369435219.txt.gz · Last modified: 2024/08/26 13:57 (external edit)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki