<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Execution on GS_Play Gameplay Framework</title><link>https://gsplay.genomestudios.ca/tags/execution/</link><description>Recent content in Execution on GS_Play Gameplay Framework</description><generator>Hugo</generator><language>en-us</language><atom:link href="https://gsplay.genomestudios.ca/tags/execution/index.xml" rel="self" type="application/rss+xml"/><item><title>Execution Engines</title><link>https://gsplay.genomestudios.ca/docs/framework/graphcanvas/execution/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://gsplay.genomestudios.ca/docs/framework/graphcanvas/execution/</guid><description>&lt;p&gt;gs_graphcanvas provides three execution engines — one for each topology. All share a common &lt;code&gt;GraphExecutionContext&lt;/code&gt; for variable storage and value resolution, and &lt;code&gt;GraphInstance&lt;/code&gt; for creating independent runtime copies.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;h2 id="flow-graph"&gt;FlowGraphEvaluator&lt;/h2&gt;
&lt;p&gt;&lt;img src="https://gsplay.genomestudios.ca/images/graph/FlowPath.png" alt="Flow Evaluator in Graph Tool"&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Topology:&lt;/strong&gt; FlowGraph&lt;/p&gt;
&lt;p&gt;Step/wait/resume execution model for sequential graphs. The evaluator follows FlowIn/FlowOut connections from node to node.&lt;/p&gt;
&lt;p&gt;Nodes implement the &lt;code&gt;IExecutableNode&lt;/code&gt; interface:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-cpp" data-lang="cpp"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;FlowResult&lt;/span&gt; &lt;span class="nf"&gt;Execute&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;GraphExecutionContext&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="n"&gt;context&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;code&gt;FlowResult&lt;/code&gt; controls what happens after a node executes:&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Result&lt;/th&gt;
 &lt;th&gt;Behavior&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;Continue&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Immediately proceed to the next connected node&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;Wait&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Pause execution until &lt;code&gt;Resume()&lt;/code&gt; is called externally&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;Stop&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;End graph execution&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;Used by:&lt;/strong&gt; Dialogue Editor — text nodes return &lt;code&gt;Wait&lt;/code&gt; while dialogue is displayed, then &lt;code&gt;Resume()&lt;/code&gt; advances to the next node.&lt;/p&gt;</description></item></channel></rss>