documentation:thewizardsengine
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
documentation:thewizardsengine [2013/05/24 22:35] – [Detailed information] mhgamework | documentation: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 ' |
+ | ==== Tools ==== | ||
- | ==== LinkeableEditor ==== | + | * **EngineProfiling** Instant simple profiling |
- | + | * **EngineTracing** Stores trace file with ModelContainer changes | |
- | + | * **AnimationSystem** Helper for simulation (keyframed) animation | |
- | Concept of the editor engine features: the editor has internal representations of every concept. You provide ' | + | |
- | + | | |
- | + | * **HotLoading** The engine will reload gameplay code will it is running | |
- | **[[: | + | * **VSDebugAttacher** Provides several features for interaction with visual studio. |
- | + | * **InversionOfControl** and **DependencyInjection** | |
- | + | ||
- | **[[: | + | |
- | + | ||
- | + | ||
- | ==== Hotloading ==== | + | |
- | + | ||
- | + | ||
- | Hotloading is made possible by the [[: | + | |
- | + | ||
- | + | ||
- | Definition of the current system: | + | |
- | + | ||
- | + | ||
- | **Simulator**: responsible for updating the state of [[: | + | |
- | + | ||
- | + | ||
- | **[[: | + | |
- | + | ||
- | + | ||
- | **[[: | + | |
- | + | ||
- | + | ||
- | **[[: | + | |
- | + | ||
- | + | ||
- | 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 ==== | ==== Components ==== | ||
- | + | * **Physical ** provides physical properties to a modelobject. | |
- | **Physical ** provides physical properties to a modelobject. | + | |
==== Rendering ==== | ==== Rendering ==== | ||
+ | * **[[: | ||
- | **[[: | + | ==== Unit Testing ==== |
+ | * **EngineTest** Attribute that allows running tests inside the engine | ||
- | ===== Detailed information | + | ===== Workbench |
+ | EngineWorkbench Information on the development of more epic engine features. | ||
- | describe engine workings | + | ===== Detailed information ===== |
- | --> Startup | + | Next parts describe in more detail how the engine performs its tasks |
- | Start engine | + | ==== Operations ==== |
- | Execute plugin | + | === Startup === |
+ | Starts the engine, loads the previous state, and runs the test code. | ||
+ | * Start engine | ||
+ | * Execute plugin | ||
+ | * Execute engine initializer (and load previous state) | ||
+ | * Run test | ||
+ | * Run initialScene (if not loaded yet) | ||
+ | * Run engine | ||
- | Execute engine initializer | ||
+ | === Clean === | ||
+ | This resets the current unit test to its default state. | ||
- | Run test | + | * Clean all data (except [[: |
+ | * Reload gameplay dll | ||
+ | * Run test | ||
+ | * Run initialScene | ||
+ | === Reset === | ||
+ | This resets the engine to its default state, removing all effects from unit tests. | ||
- | Run initialScene | + | * Clean all data |
+ | * Reload gameplay dll | ||
+ | * (There is no test selected now) | ||
- | Run engine | + | === Reload (= Hotload) === |
+ | Occurs automatically when the gameplay dll has changed, or can be invoke by pressing r. | ||
+ | * Serialize all | ||
+ | * Reload gameplay dll | ||
+ | * Deserialize all | ||
+ | * Run test | ||
+ | * (Initial scene is not setup again) | ||
- | --> Clean | ||
- | Clean all data (except TestingData) | + | ==== Simulator framework ==== |
- | Reload gameplay dll | + | 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 |
- | + | ||
- | + | ||
- | Run test | + | |
- | + | ||
- | + | ||
- | Run initialScene | + | |
- | + | ||
- | + | ||
- | --> Reset | + | |
- | + | ||
- | + | ||
- | Clean all data | + | |
- | + | ||
- | + | ||
- | Reload gameplay dll | + | |
- | + | ||
- | + | ||
- | (no test exists) | + | |
- | + | ||
- | + | ||
- | --> Reload | + | |
- | + | ||
- | + | ||
- | Deserialize all | + | |
- | + | ||
- | + | ||
- | Reload gameplay dll | + | |
- | + | ||
- | + | ||
- | Reserialize all | + | |
- | + | ||
- | + | ||
- | Run test | + | |
- | + | ||
- | + | ||
- | (Dont run intial scene) | + | |
- | + | ||
- | + | ||
- | Initial scene setup is provided through | + | |
documentation/thewizardsengine.1369434930.txt.gz · Last modified: 2024/08/26 13:57 (external edit)