Skip to content

Commit

Permalink
update site
Browse files Browse the repository at this point in the history
  • Loading branch information
jagt committed Mar 31, 2024
1 parent 29644a4 commit edb4278
Show file tree
Hide file tree
Showing 6 changed files with 172 additions and 12 deletions.
140 changes: 140 additions & 0 deletions blog/dataconfig-1-5-and-1-6/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,140 @@
<!DOCTYPE html>
<html lang="en">
<head>

<meta charset="utf-8">


<title>DataConfig 1.5 &amp; 1.6 with UE 5.4 support - slowburn.dev </title>
<meta property="og:title" content="DataConfig 1.5 &amp; 1.6 with UE 5.4 support - slowburn.dev" />


<meta name="description" content="DataConfig 1.5 and 1.6 release with UE 5.4 support, adding optional property support, core types serializers and blueprint nodes">
<meta property="og:description" content="DataConfig 1.5 and 1.6 release with UE 5.4 support, adding optional property support, core types serializers and blueprint nodes" />




<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">

<meta name="twitter:card" content="summary" />
<meta name="twitter:site" content="@slowburndev" />
<meta name="twitter:creator" content="@slowburndev" />

<meta property="og:url" content="https://slowburn.dev/blog/dataconfig-1-5-and-1-6/" />

<link rel="stylesheet" href="/css/normalize.css">
<link rel="stylesheet" href="/css/skeleton.css">
<link rel="stylesheet" href="/css/main.css">

<link rel="icon" type="image/png" href="/images/favicon.png">

</head>
<body>

<div class="container page">

<h1>DataConfig 1.5 &amp; 1.6 with UE 5.4 support</h1>
<span class="alt after-h1">2024-03-31</span>

<h2 id="intro">Intro<a class="zola-anchor" href="#intro">
<svg class="octicon" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg>
</a></h2>
<p>We just pushed <a href="https://github.com/slowburn-dev/DataConfig/releases/tag/1.6.0">DataConfig 1.6.0</a> and <a href="https://github.com/slowburn-dev/DataConfig/releases/tag/1.5.0">1.5.0</a> a month prior. Both have some cool features that we'll quickly go through here!</p>
<h2 id="blueprint-nodes">Blueprint Nodes<a class="zola-anchor" href="#blueprint-nodes">
<svg class="octicon" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg>
</a></h2>
<p>We now ship DataConfig Blueprint Nodes for dumping/loading JSON! I don't remember why we didn't do this in the first place but having this means that you can start trying out DataConfig without writing C++ code.</p>
<p><img src="https://slowburn.dev/dataconfig/Extra/Images/DataConfigEngineExtra-BlueprintNodes.png" alt="Blueprint Nodes" /></p>
<p>It's bundled with extra samples so you can try play it with <a href="https://slowburn.dev/dataconfig/Extra/GameplayTag">Gameplay Tag</a> and <a href="https://slowburn.dev/dataconfig/Extra/InstancedStruct">Instanced Struct</a>.</p>
<ul>
<li><a href="https://slowburn.dev/dataconfig/Extra/BlueprintNodes">Extra - Blueprint Nodes</a></li>
</ul>
<h2 id="optional-property">Optional Property<a class="zola-anchor" href="#optional-property">
<svg class="octicon" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg>
</a></h2>
<p>Unreal 5.4 introduced optional property that allows you to mark <code>TOptional</code> fields as <code>UPROPERTY</code>:</p>
<pre data-lang="c++" style="background-color:#ffffff;color:#4d4d4c;" class="language-c++ "><code class="language-c++" data-lang="c++"><span style="color:#999999;">// DataConfigTests54/Private/DcTestUE54.h</span><span style="color:#999999;">
</span><span style="color:#c82829;">USTRUCT</span><span>()</span><span>
</span><span style="color:#8959a8;">struct </span><span>FDcTestOptional</span><span>
</span><span>{</span><span>
</span><span> </span><span style="color:#c82829;">GENERATED_BODY</span><span>()</span><span>
</span><span>
</span><span> </span><span style="color:#4271ae;">UPROPERTY</span><span>() TOptional&lt;</span><span style="color:#8959a8;">float</span><span>&gt; OptionalFloatField1;</span><span>
</span><span> </span><span style="color:#4271ae;">UPROPERTY</span><span>() TOptional&lt;</span><span style="color:#8959a8;">float</span><span>&gt; OptionalFloatField2;</span><span>
</span><span>
</span><span> </span><span style="color:#4271ae;">UPROPERTY</span><span>() TOptional&lt;FString&gt; OptionalStrField1;</span><span>
</span><span> </span><span style="color:#4271ae;">UPROPERTY</span><span>() TOptional&lt;FString&gt; OptionalStrField2;</span><span>
</span><span>
</span><span> </span><span style="color:#4271ae;">UPROPERTY</span><span>() TOptional&lt;FDcInnerStruct54&gt; OptionalStructField1;</span><span>
</span><span> </span><span style="color:#4271ae;">UPROPERTY</span><span>() TOptional&lt;FDcInnerStruct54&gt; OptionalStructField2;</span><span>
</span><span>};</span><span>
</span></code></pre>
<p>DataConfig fully supports this now and it works perfectly with JSON format since any JSON value can be <code>null</code>:</p>
<pre data-lang="c++" style="background-color:#ffffff;color:#4d4d4c;" class="language-c++ "><code class="language-c++" data-lang="c++"><span style="color:#999999;">// DataConfigTests54/Private/DcTestUE54.cpp</span><span style="color:#999999;">
</span><span>FString Str </span><span style="color:#3e999f;">= </span><span style="color:#c82829;">TEXT</span><span style="color:#4271ae;">(</span><span style="color:#8959a8;">R</span><span style="color:#718c00;">&quot;(</span><span style="color:#718c00;">
</span><span style="color:#718c00;">
</span><span style="color:#718c00;"> {</span><span style="color:#718c00;">
</span><span style="color:#718c00;"> &quot;OptionalFloatField1&quot; : 17.5,</span><span style="color:#718c00;">
</span><span style="color:#718c00;"> &quot;OptionalFloatField2&quot; : null,</span><span style="color:#718c00;">
</span><span style="color:#718c00;">
</span><span style="color:#718c00;"> &quot;OptionalStrField1&quot; : &quot;Alpha&quot;,</span><span style="color:#718c00;">
</span><span style="color:#718c00;"> &quot;OptionalStrField2&quot; : null,</span><span style="color:#718c00;">
</span><span style="color:#718c00;">
</span><span style="color:#718c00;"> &quot;OptionalStructField1&quot; : {</span><span style="color:#718c00;">
</span><span style="color:#718c00;"> &quot;StrField&quot; : &quot;Beta&quot;,</span><span style="color:#718c00;">
</span><span style="color:#718c00;"> &quot;IntField&quot; : 42</span><span style="color:#718c00;">
</span><span style="color:#718c00;"> },</span><span style="color:#718c00;">
</span><span style="color:#718c00;"> &quot;OptionalStructField2&quot; : null</span><span style="color:#718c00;">
</span><span style="color:#718c00;"> }</span><span style="color:#718c00;">
</span><span style="color:#718c00;">
</span><span style="color:#718c00;">)&quot;</span><span style="color:#4271ae;">)</span><span>;</span><span>
</span><span>
</span><span style="color:#999999;">// equivalent fixture</span><span style="color:#999999;">
</span><span>FDcTestOptional Expect;</span><span>
</span><span>Expect.</span><span style="color:#c82829;">OptionalFloatField1 </span><span style="color:#3e999f;">= </span><span style="color:#f5871f;">17.5</span><span style="color:#8959a8;">f</span><span>;</span><span>
</span><span>Expect.</span><span style="color:#c82829;">OptionalStrField1 </span><span style="color:#3e999f;">= </span><span style="color:#c82829;">TEXT</span><span style="color:#4271ae;">(</span><span style="color:#718c00;">&quot;Alpha&quot;</span><span style="color:#4271ae;">)</span><span>;</span><span>
</span><span>Expect.</span><span style="color:#c82829;">OptionalStructField1</span><span>.</span><span style="color:#c82829;">Emplace</span><span>();</span><span>
</span><span>Expect.</span><span style="color:#c82829;">OptionalStructField1</span><span>-&gt;</span><span style="color:#c82829;">StrField </span><span style="color:#3e999f;">= </span><span style="color:#c82829;">TEXT</span><span style="color:#4271ae;">(</span><span style="color:#718c00;">&quot;Beta&quot;</span><span style="color:#4271ae;">)</span><span>;</span><span>
</span><span>Expect.</span><span style="color:#c82829;">OptionalStructField1</span><span>-&gt;</span><span style="color:#c82829;">IntField </span><span style="color:#3e999f;">= </span><span style="color:#f5871f;">42</span><span>;</span><span>
</span></code></pre>
<ul>
<li><a href="https://slowburn.dev/dataconfig/Advanced/Optional">Advanced - Optional</a></li>
</ul>
<h2 id="core-types-serializers">Core Types Serializers<a class="zola-anchor" href="#core-types-serializers">
<svg class="octicon" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg>
</a></h2>
<p>DataConfig now comes bundled with a set of serialization handlers that read/writes core types like <code>FVector</code> into a more compact format:</p>
<pre data-lang="JSON" style="background-color:#ffffff;color:#4d4d4c;" class="language-JSON "><code class="language-JSON" data-lang="JSON"><span>{</span><span>
</span><span> </span><span style="color:#718c00;">&quot;VecField1&quot; </span><span>: [ </span><span style="color:#f5871f;">0</span><span>, </span><span style="color:#f5871f;">0</span><span>, </span><span style="color:#f5871f;">1</span><span>],</span><span>
</span><span> </span><span style="color:#718c00;">&quot;ColorField1&quot; </span><span>: </span><span style="color:#718c00;">&quot;#000000FF&quot;</span><span>,</span><span>
</span><span> </span><span style="color:#718c00;">&quot;DateTimeField1&quot; </span><span>: </span><span style="color:#718c00;">&quot;0001.01.01-00.00.00&quot;</span><span>,</span><span>
</span><span>}</span><span>
</span></code></pre>
<p>This works both ways in serialization and deserializations.</p>
<ul>
<li><a href="https://slowburn.dev/dataconfig/Advanced/CoreTypes">Advanced - CoreTypes</a></li>
</ul>
<h2 id="breaking-changes">Breaking Changes<a class="zola-anchor" href="#breaking-changes">
<svg class="octicon" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg>
</a></h2>
<p>Both versions now have some breaking changes. They're all <a href="https://slowburn.dev/dataconfig/Advanced/Breaking">documented here</a>.</p>
<h2 id="closing">Closing<a class="zola-anchor" href="#closing">
<svg class="octicon" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg>
</a></h2>
<p>Download the <a href="https://github.com/slowburn-dev/DataConfig/releases/tag/1.6.0">latest release here</a>. We'll update <a href="https://www.unrealengine.com/marketplace/en-US/product/dataconfig-json-asset">DataConfig JSON Asset</a> later when 5.4 is out.</p>


<div class="footer">
<a href="/">slowburn.dev</a>
</div>

</div>




</body>

</html>
16 changes: 16 additions & 0 deletions blog/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,22 @@
<h1>Blog</h1>


<h2>2024</h2>


<div class="row">
<div class="one column">
3-31
</div>

<div class="ten columns">
<a href="&#x2F;blog&#x2F;dataconfig-1-5-and-1-6&#x2F;">DataConfig 1.5 &amp; 1.6 with UE 5.4 support</a>
</div>
</div>


<p></p>

<h2>2023</h2>


Expand Down
6 changes: 3 additions & 3 deletions dataconfig/Extra/Optional.html
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,10 @@
<head>
<meta charset="utf-8">
<title>Redirecting...</title>
<meta http-equiv="refresh" content="0;URL='/Advanced/Optional.html'">
<meta rel="canonical" href="/Advanced/Optional.html">
<meta http-equiv="refresh" content="0;URL='./Advanced/Optional.html'">
<meta rel="canonical" href="./Advanced/Optional.html">
</head>
<body>
<p>Redirecting to... <a href="/Advanced/Optional.html">/Advanced/Optional.html</a>.</p>
<p>Redirecting to... <a href="./Advanced/Optional.html">./Advanced/Optional.html</a>.</p>
</body>
</html>
6 changes: 3 additions & 3 deletions dataconfig/Formats/PipeProperty.html
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,10 @@
<head>
<meta charset="utf-8">
<title>Redirecting...</title>
<meta http-equiv="refresh" content="0;URL='/Formats/Property.html'">
<meta rel="canonical" href="/Formats/Property.html">
<meta http-equiv="refresh" content="0;URL='./Formats/Property.html'">
<meta rel="canonical" href="./Formats/Property.html">
</head>
<body>
<p>Redirecting to... <a href="/Formats/Property.html">/Formats/Property.html</a>.</p>
<p>Redirecting to... <a href="./Formats/Property.html">./Formats/Property.html</a>.</p>
</body>
</html>
12 changes: 6 additions & 6 deletions index.html
Original file line number Diff line number Diff line change
Expand Up @@ -82,24 +82,24 @@ <h2>Blog</h2>

<div class="row">
<div class="twelve columns">
<a href="/blog/flexible-json-serialization-ue-dataconfig/">Flexible JSON Serialization in Unreal Engine Using DataConfig</a><br>
<span class="alt">2023-08-27</span>
<a href="/blog/dataconfig-1-5-and-1-6/">DataConfig 1.5 &amp; 1.6 with UE 5.4 support</a><br>
<span class="alt">2024-03-31</span>
</div>
</div>


<div class="row">
<div class="twelve columns">
<a href="/blog/polymorphic-serialization-in-unreal-engine/">Polymorphic Serialization In Unreal Engine</a><br>
<span class="alt">2022-12-08</span>
<a href="/blog/flexible-json-serialization-ue-dataconfig/">Flexible JSON Serialization in Unreal Engine Using DataConfig</a><br>
<span class="alt">2023-08-27</span>
</div>
</div>


<div class="row">
<div class="twelve columns">
<a href="/blog/dataconfig-1-4/">DataConfig 1.4 Released with UE 5.1 Support</a><br>
<span class="alt">2022-11-17</span>
<a href="/blog/polymorphic-serialization-in-unreal-engine/">Polymorphic Serialization In Unreal Engine</a><br>
<span class="alt">2022-12-08</span>
</div>
</div>

Expand Down
4 changes: 4 additions & 0 deletions sitemap.xml
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,10 @@
<loc>https://slowburn.dev/blog/dataconfig-1-4/</loc>
<lastmod>2022-11-17</lastmod>
</url>
<url>
<loc>https://slowburn.dev/blog/dataconfig-1-5-and-1-6/</loc>
<lastmod>2024-03-31</lastmod>
</url>
<url>
<loc>https://slowburn.dev/blog/dataconfig-dcjsonasset-1-3/</loc>
<lastmod>2022-06-20</lastmod>
Expand Down

0 comments on commit edb4278

Please sign in to comment.