<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: GuardingPearSoftware</title>
    <description>The latest articles on DEV Community by GuardingPearSoftware (@guardingpearsoftware).</description>
    <link>https://dev.to/guardingpearsoftware</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3503084%2Fee0bf721-584f-49bc-9e41-6d2ddce4f0cf.jpg</url>
      <title>DEV Community: GuardingPearSoftware</title>
      <link>https://dev.to/guardingpearsoftware</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/guardingpearsoftware"/>
    <language>en</language>
    <item>
      <title>IL2CPP Debug, Release, and Master builds. Which one should you ship?</title>
      <dc:creator>GuardingPearSoftware</dc:creator>
      <pubDate>Sat, 12 Sep 2026 14:42:04 +0000</pubDate>
      <link>https://dev.to/guardingpearsoftware/il2cpp-debug-release-and-master-builds-which-one-should-you-ship-6km</link>
      <guid>https://dev.to/guardingpearsoftware/il2cpp-debug-release-and-master-builds-which-one-should-you-ship-6km</guid>
      <description>&lt;p&gt;When you build a Unity game with the IL2CPP scripting backend, Unity first turns your C# into C++. Then a native C++ compiler turns that C++ into machine code.&lt;/p&gt;

&lt;p&gt;That second step has a setting that many developers never touch: the &lt;strong&gt;C++ Compiler Configuration&lt;/strong&gt;. It has three options. Debug, Release, and Master.&lt;/p&gt;

&lt;p&gt;The setting hides in Project Settings under Player, in the Configuration section of Other Settings. It only appears when your Scripting Backend is IL2CPP. Pick the wrong option and you either wait far too long for every test build, or you ship a game that runs slower than it should.&lt;/p&gt;

&lt;p&gt;Let us look at what each configuration actually does, what it costs, and when each one is the right choice. At the end you will find a simple decision table and all sources.&lt;/p&gt;

&lt;h2&gt;
  
  
  What this setting controls, and what it does not
&lt;/h2&gt;

&lt;p&gt;One thing first, because these options get mixed up sometimes.&lt;/p&gt;

&lt;p&gt;The C++ Compiler Configuration does not change your C# code. It does not change how IL2CPP generates C++ from your assemblies. It only tells the native compiler (MSVC on Windows, clang on Android, iOS, and most other platforms) how hard to optimize the generated C++ when it becomes machine code.&lt;/p&gt;

&lt;p&gt;Unity has other settings that sound similar but do different jobs:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Setting&lt;/th&gt;
&lt;th&gt;What it controls&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;C++ Compiler Configuration&lt;/td&gt;
&lt;td&gt;How the native compiler optimizes the generated C++. Debug, Release, or Master.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://docs.unity3d.com/2023.2/Documentation/Manual/IL2CPP.html" rel="noopener noreferrer"&gt;IL2CPP Code Generation&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;How IL2CPP generates the C++ in the first place. "Faster runtime" makes more code that runs faster. "Faster (smaller) builds" makes less code that builds faster.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Script Debugging&lt;/td&gt;
&lt;td&gt;Whether you can attach the C# debugger to the player. Costs program size and performance.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Managed Stripping Level&lt;/td&gt;
&lt;td&gt;How much unused C# code the linker removes before IL2CPP runs.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;You can also set the configuration from a build script instead of clicking through the UI:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight csharp"&gt;&lt;code&gt;&lt;span class="k"&gt;using&lt;/span&gt; &lt;span class="nn"&gt;UnityEditor&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;using&lt;/span&gt; &lt;span class="nn"&gt;UnityEditor.Build&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;static&lt;/span&gt; &lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;BuildConfig&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;static&lt;/span&gt; &lt;span class="k"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;UseMasterForShipping&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="n"&gt;PlayerSettings&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;SetIl2CppCompilerConfiguration&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
            &lt;span class="n"&gt;NamedBuildTarget&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Android&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="n"&gt;Il2CppCompilerConfiguration&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Master&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Takeaway&lt;/strong&gt;: The C++ Compiler Configuration is the last knob in the IL2CPP pipeline. It trades build time against runtime speed, nothing else.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Debug: fast builds, slow game
&lt;/h2&gt;

&lt;p&gt;The &lt;a href="https://docs.unity3d.com/ScriptReference/Il2CppCompilerConfiguration.html" rel="noopener noreferrer"&gt;official description&lt;/a&gt; is short: "Debug configuration turns off all optimizations, which makes the code quicker to build but slower to run."&lt;/p&gt;

&lt;p&gt;With optimizations off, the C++ compiler does the least possible work. Your build finishes sooner. The resulting code keeps every variable, every method call, and every debugging symbol exactly where you wrote it.&lt;/p&gt;

&lt;p&gt;That has two practical benefits:&lt;/p&gt;

&lt;p&gt;First, iteration speed. If you build ten times a day to test on a device, the C++ compile step is often the longest part. Debug really cuts it down.&lt;/p&gt;

&lt;p&gt;Second, better stack traces. Unity's &lt;a href="https://docs.unity3d.com/Manual/il2cpp-managed-stack-traces.html" rel="noopener noreferrer"&gt;managed stack traces page&lt;/a&gt; states that in the Debug configuration, IL2CPP reports a reliable managed stack trace that includes each managed method in the call stack. Nothing gets inlined away. When your game crashes, the trace shows the real call chain. In Release and Master, the compiler inlines methods, so entries can be missing from the stack, making it harder to debug.&lt;/p&gt;

&lt;p&gt;The cost is runtime speed. Unoptimized C++ is markedly slower. Frame times, load times, and GC pressure all look worse than what your players will ever see. Never judge performance with a Debug configuration build, and never ship one.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Takeaway&lt;/strong&gt;: Debug is for building often and debugging native issues. It is not a preview of how your game performs.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Release: the balanced default
&lt;/h2&gt;

&lt;p&gt;Release "enables optimizations, so the compiled code runs faster and the binary size is smaller but it takes longer to compile" (&lt;a href="https://docs.unity3d.com/ScriptReference/Il2CppCompilerConfiguration.html" rel="noopener noreferrer"&gt;Unity docs&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;This is the standard optimized build most C++ developers know. On clang platforms it roughly matches a normal optimized compile, with inlining, dead code removal, and the usual set of per-file optimizations. The compiler works file by file, so build times stay reasonable.&lt;/p&gt;

&lt;p&gt;Release is also the configuration Unity's own documentation points at for profiling. The &lt;a href="https://docs.unity3d.com/2021.1/Documentation/Manual/VisualStudioprojectgenerationWindows.html" rel="noopener noreferrer"&gt;Windows Visual Studio project generation page&lt;/a&gt; describes the Release configuration as the one to "profile your game", because it enables code optimizations while keeping profiler support. Numbers you capture here are close to the shipped game, and the Unity Profiler can still connect.&lt;/p&gt;

&lt;p&gt;There is one side effect to know. Because Release inlines methods, exception stack traces from players can miss one or more managed methods. Unity added a fix for that: the &lt;strong&gt;IL2CPP Stacktrace Information&lt;/strong&gt; option. Set it to "Method Name, File Name, and Line Number" and Unity &lt;a href="https://docs.unity3d.com/Manual/il2cpp-managed-stack-traces.html" rel="noopener noreferrer"&gt;generates correct call stacks&lt;/a&gt; even with inlining active, in both Release and Master. That is much cheaper than enabling full script debugging just to get readable crash logs.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Takeaway&lt;/strong&gt;: Release is the workhorse. Use it for QA builds, profiling, and every milestone where the numbers should mean something.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Master: everything the compiler has
&lt;/h2&gt;

&lt;p&gt;Master "enables all possible optimizations, squeezing every bit of performance possible" (&lt;a href="https://docs.unity3d.com/ScriptReference/Il2CppCompilerConfiguration.html" rel="noopener noreferrer"&gt;Unity docs&lt;/a&gt;). Unity's recommendation in the same document is direct: build the shipping version of your game with Master if the increase in build time is acceptable.&lt;/p&gt;

&lt;p&gt;What "all possible optimizations" means depends on the platform:&lt;/p&gt;

&lt;p&gt;On Windows with MSVC, Master turns on link-time code generation (LTCG). On clang platforms, newer Unity versions apply link-time optimization (LTO). Both do the same kind of thing. Instead of optimizing each C++ file on its own, the toolchain looks at the whole program at link time. It can then inline functions across file boundaries and remove work a single-file compiler cannot see.&lt;/p&gt;

&lt;p&gt;A Unity forum answer &lt;a href="https://discussions.unity.com/t/what-does-link-time-optimisation-lto-exactly-do-in-unity/882061" rel="noopener noreferrer"&gt;explains the trade&lt;/a&gt; well: cross-file optimization makes compilation far more expensive. It needs much more RAM and much more time. For large projects, an LTO link can take long enough that it is unusable for everyday development builds.&lt;/p&gt;

&lt;p&gt;There is a second difference on some platforms. In the Visual Studio solution Unity generates for Windows, the &lt;a href="https://docs.unity3d.com/2021.1/Documentation/Manual/VisualStudioprojectgenerationWindows.html" rel="noopener noreferrer"&gt;Master configuration disables the profiler&lt;/a&gt;. A &lt;a href="https://discussions.unity.com/t/about-that-master-build/779872" rel="noopener noreferrer"&gt;long-running forum thread&lt;/a&gt; confirms the practical result: you cannot attach the Unity Profiler to a Master build there. If a performance bug only shows up in Master, you need native tools like Windows Performance Analyzer instead (&lt;a href="https://discussions.unity.com/t/master-build-far-too-slow-compare-to-release-build/670710" rel="noopener noreferrer"&gt;forum thread&lt;/a&gt;).&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Takeaway&lt;/strong&gt;: Master is the shipping configuration. It buys real speed with long builds, high build-machine RAM use, and weaker profiling support.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  How much faster is Master, really?
&lt;/h2&gt;

&lt;p&gt;Unity published measured numbers for this in 2025, when the Android team brought LTO to IL2CPP in &lt;a href="https://discussions.unity.com/t/boosting-android-performance-with-lto-optimizations-in-unity-6-5/1720008" rel="noopener noreferrer"&gt;Unity 6.5&lt;/a&gt;. They tested real games on real devices, comparing a baseline build against Master with ThinLTO and -O2:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Metric&lt;/th&gt;
&lt;th&gt;Baseline&lt;/th&gt;
&lt;th&gt;Master with ThinLTO&lt;/th&gt;
&lt;th&gt;Change&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Time to initial display&lt;/td&gt;
&lt;td&gt;443.84 ms&lt;/td&gt;
&lt;td&gt;426.97 ms&lt;/td&gt;
&lt;td&gt;3.8% faster&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Time to full display&lt;/td&gt;
&lt;td&gt;1228.76 ms&lt;/td&gt;
&lt;td&gt;1158.28 ms&lt;/td&gt;
&lt;td&gt;5.7% faster&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CPU main thread frame time&lt;/td&gt;
&lt;td&gt;10.05 ms&lt;/td&gt;
&lt;td&gt;9.83 ms&lt;/td&gt;
&lt;td&gt;2.3% faster&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;libil2cpp.so&lt;/code&gt; size&lt;/td&gt;
&lt;td&gt;37.26 MB&lt;/td&gt;
&lt;td&gt;44.23 MB&lt;/td&gt;
&lt;td&gt;18.7% bigger&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Total APK size&lt;/td&gt;
&lt;td&gt;416.84 MB&lt;/td&gt;
&lt;td&gt;423.37 MB&lt;/td&gt;
&lt;td&gt;1.6% bigger&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Build time&lt;/td&gt;
&lt;td&gt;~866 s&lt;/td&gt;
&lt;td&gt;~1124 s&lt;/td&gt;
&lt;td&gt;30 to 35% slower&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The result: a few percent faster startup and frame times, paid for with roughly a third more build time and a bigger native library.&lt;/p&gt;

&lt;p&gt;Two details from that post are worth remembering. Projects that use a lot of C# generics gain the most, because the optimizer is especially effective on the templated code IL2CPP generates for generics. And the LTO mode dropdown only does anything in Master. Setting an LTO mode while on Release or Debug has no effect.&lt;/p&gt;

&lt;p&gt;Since Unity 6.6 you can also pick between two LTO levels under the Master configuration, exposed in the API as &lt;a href="https://docs.unity3d.com/6000.5/Documentation/ScriptReference/Il2CppLTOMode.html" rel="noopener noreferrer"&gt;Il2CppLTOMode&lt;/a&gt;. Thin LTO links faster with almost the same optimization quality. Full LTO optimizes hardest and links slowest. Unity's own editor tooltip calls Thin "faster to link with nearly equivalent optimization", so Thin is the sensible default when you turn Master on.&lt;/p&gt;

&lt;p&gt;A few percent may sound small. For a mobile game it is not. Startup time affects store metrics and player retention, and a steady 2 to 3% off the main thread frame time is the difference between holding a frame rate cap and missing it on weaker devices.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Takeaway&lt;/strong&gt;: Expect single-digit percentage gains from Master over Release, more if your code is generics-heavy. The cost is about a third more build time.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Which configuration when
&lt;/h2&gt;

&lt;p&gt;Here is the whole article as one table:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Situation&lt;/th&gt;
&lt;th&gt;Configuration&lt;/th&gt;
&lt;th&gt;Why&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Daily development builds, quick device tests&lt;/td&gt;
&lt;td&gt;Debug&lt;/td&gt;
&lt;td&gt;Fastest C++ compile. Full stack traces. Performance numbers are meaningless here.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Debugging a native crash or IL2CPP issue&lt;/td&gt;
&lt;td&gt;Debug&lt;/td&gt;
&lt;td&gt;No inlining, all symbols intact, the call stack tells the truth.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;QA builds, playtests, milestones&lt;/td&gt;
&lt;td&gt;Release&lt;/td&gt;
&lt;td&gt;Optimized like the shipped game, still profileable.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Profiling and performance work&lt;/td&gt;
&lt;td&gt;Release&lt;/td&gt;
&lt;td&gt;The Unity Profiler connects, and the code is close to final speed.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Store submission and final release&lt;/td&gt;
&lt;td&gt;Master&lt;/td&gt;
&lt;td&gt;All optimizations, LTCG or LTO. Unity's recommended shipping configuration.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Final soak test before submission&lt;/td&gt;
&lt;td&gt;Master&lt;/td&gt;
&lt;td&gt;Test the exact binary behavior you ship, since Master can differ from Release.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;A workflow that many teams settle on: Debug or Release locally depending on what you are doing that day, Release on the CI pipeline for every automated build, and Master only for release candidates and store submissions. That way the 30%+ build time cost is paid a handful of times per release instead of dozens of times per week.&lt;/p&gt;

&lt;p&gt;One warning for that last step. Because Master builds get tested less often, always run a full QA pass on the actual Master build. Aggressive optimization can surface timing-dependent bugs that never appeared in Release, and on some platforms your usual profiler will not attach to help you.&lt;/p&gt;

&lt;h2&gt;
  
  
  Wrapping up
&lt;/h2&gt;

&lt;p&gt;The C++ Compiler Configuration is a simple trade. Debug gives you the fastest builds and the slowest game. Release gives you a fast game and reasonable builds. Master gives you the fastest game Unity can produce and the longest builds.&lt;/p&gt;

&lt;p&gt;Unity's measured Android data puts the Master gain at a few percent in startup and frame time over an already optimized build, at the cost of 30 to 35% more build time. That is a trade worth making exactly once per release, for the build your players install.&lt;/p&gt;

&lt;p&gt;Read more on my blog: &lt;a href="https://www.guardingpearsoftware.com" rel="noopener noreferrer"&gt;www.guardingpearsoftware.com&lt;/a&gt;!&lt;/p&gt;

</description>
    </item>
    <item>
      <title>AI Agent Risks: What Users and Businesses Should Know</title>
      <dc:creator>GuardingPearSoftware</dc:creator>
      <pubDate>Sat, 12 Sep 2026 13:23:52 +0000</pubDate>
      <link>https://dev.to/guardingpearsoftware/ai-agent-risks-what-users-and-businesses-should-know-2l2p</link>
      <guid>https://dev.to/guardingpearsoftware/ai-agent-risks-what-users-and-businesses-should-know-2l2p</guid>
      <description>&lt;p&gt;Tech companies are now promoting AI agents as the next big thing after chatbots. The technology is already moving rapidly into mainstream and business environments. According to McKinsey's 2026 State of AI survey, 40% of enterprise applications are expected to include task-specific AI agents by the end of 2026, up from  27% in 2025. &lt;br&gt;
As AI agents become more capable and gain access to more of our data, accounts, devices, and online services, the consequences of mistakes or abuse grow much larger.  As businesses and individuals give these systems more autonomy, they also need to understand what can go wrong, how attackers could abuse AI agents, and what safeguards can reduce the risk.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is an AI agent?
&lt;/h2&gt;

&lt;p&gt;An AI agent is a software system that can understand a goal, make decisions, use tools or external systems, and take multiple steps to complete a task with limited human intervention. Unlike a traditional chatbot, which responds to user prompts with generated text, an AI agent can actively perform actions on the user’s behalf, such as searching websites, managing schedules, analyzing data, sending messages, or interacting with other applications. In simple terms, a chatbot mainly talks, while an AI agent can plan, act, and complete tasks.&lt;br&gt;
The appeal of AI agents is easy to understand. People and businesses already have plenty of software. The big challenge is that people often spend a lot of time moving information between applications and checking different apps before making decisions.&lt;br&gt;
AI agents promise to reduce this friction. An agent can gather the necessary information, use connected tools, and move a task forward with less human involvement. This can help people and organizations save time, improve efficiency, and reduce the amount of manual work they have to handle.&lt;/p&gt;

&lt;h2&gt;
  
  
  Security risks of AI Agents
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Prompt injection attacks
&lt;/h3&gt;

&lt;p&gt;Imagine a company gives an AI agent access to an employee's inbox so it can summarize incoming emails. The employee receives a malicious email containing hidden instructions telling the AI to search the mailbox for sensitive documents and forward them to an external address.&lt;br&gt;
The employee may never see anything suspicious. The AI agent, however, could interpret the malicious instructions as part of the information it is processing. This is known as indirect prompt injection. &lt;br&gt;
The malicious instructions do not necessarily come directly from the user. They can be hidden inside emails, websites, documents, search results, or other external data. Prompt injection is already a major risk for generative AI, but the consequences can become more serious when an AI system has tools and permissions.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Memory poisoning
&lt;/h3&gt;

&lt;p&gt;Memory is one of the features that can make AI agents more useful. An agent that remembers previous interactions does not have to start from scratch every time.&lt;br&gt;
But persistent memory also creates another place where attackers can try to manipulate the system. An attacker may insert malicious or misleading information into an agent's memory.&lt;br&gt;
Later, the agent might treat that information as trusted context. This is known as memory poisoning.&lt;br&gt;
Imagine an employee uses an AI agent to manage projects. Someone manages to insert false instructions into its persistent memory, such as a fake rule saying that a particular external account is authorized to receive company documents. If the agent trusts that memory in a future session, the attacker could benefit long after the original interaction has ended.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Rogue agents
&lt;/h3&gt;

&lt;p&gt;Sometimes AI agents may drift away from their intended goals or instructions and begin taking actions that were not expected by their users or developers. In a recent case, independent researchers discovered several websites where AI agents believed to have been created by OpenAI appeared to take actions without authorization. The agents reportedly accessed websites, posted messages, and exchanged data with one another. The findings have raised further concerns about whether AI developers can effectively control increasingly autonomous agentic systems and prevent them from acting beyond their intended boundaries.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Agent goal hijack
&lt;/h3&gt;

&lt;p&gt;Agent goal hijacking occurs when an attacker manipulates an agent into changing or abandoning its intended objective. Unlike prompt injection, which targets a specific response from an AI model, goal hijacking can influence an agent’s broader, multi-step behavior. Attackers may use manipulated prompts, malicious data, compromised information sources, or fake communications to redirect an agent and make it perform actions that were never intended by its user.&lt;br&gt;
The risk exists because AI agents often rely on natural-language instructions and automated decision-making to determine their next steps. An attacker can therefore create content to influence the agent’s planning or decision-making without directly interacting with the user. If successful, the agent could be redirected toward actions that expose sensitive information, misuse connected tools, or otherwise benefit the attacker at the expense of the user or organization.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Supply Chain Vulnerabilities
&lt;/h3&gt;

&lt;p&gt;AI agents often depend on a complex supply chain that includes third-party models, plugins, APIs, libraries, tools, datasets, and external services. This creates more attack surface for attackers to compromise an agent. A malicious or compromised dependency could manipulate an agent’s behavior, steal sensitive information, introduce malicious instructions, or gain access to connected systems. &lt;br&gt;
The risk becomes greater when organizations use agents built from components they do not fully control or understand. If one trusted component in the AI supply chain is compromised, the attacker could use that trust to affect many downstream agents and organizations. &lt;/p&gt;

&lt;h3&gt;
  
  
  6. Insecure inter-agent communication
&lt;/h3&gt;

&lt;p&gt;Insecure inter-agent communication occurs when multiple AI agents exchange information or instructions without strong authentication, authorization, and validation controls. In a multi-agent system, one agent relies on information received from another. This creates an opportunity for an attacker to modify messages, inject malicious instructions, or manipulate the information being shared. &lt;br&gt;
For example, if a research agent sends findings to a purchasing agent through an unencrypted channel, an attacker who compromises that communication channel could alter the data and cause the purchasing agent to make an unauthorized decision. Because agents can automatically trust and act on information received from other agents, a compromised agent or communication channel could spread malicious instructions across an entire workflow.&lt;/p&gt;

&lt;h3&gt;
  
  
  7. AI agents can leak sensitive information
&lt;/h3&gt;

&lt;p&gt;AI agents often need access to information to perform their tasks. That information could include customer records, employee data, financial documents, passwords, internal communications, intellectual property, or confidential business plans.&lt;br&gt;
The problem becomes more complicated when an agent can combine information from multiple sources. For example, an employee might ask an AI assistant to prepare a customer report. The agent then accesses a CRM, internal documents, email messages, spreadsheets, and other systems. If those systems contain information the employee was never supposed to combine, the AI could unintentionally bring that information together.&lt;br&gt;
There is also a risk that sensitive information could appear in agent logs, tool calls, outputs, or persistent memory.&lt;/p&gt;

&lt;h3&gt;
  
  
  8. Shadow AI
&lt;/h3&gt;

&lt;p&gt;Sometimes employees use unauthorized or undocumented AI agents that operate outside an organization’s official IT and security controls. Individuals may use these agents to automate tasks or improve productivity. This can create major risks, as these unapproved agents may have excessive permissions, insecure configurations, or access to sensitive data that the organization is not aware of.&lt;br&gt;
Shadow AI also makes it harder for security teams to maintain visibility across the organization. This can create security blind spots and make it more difficult to identify, investigate, and respond to incidents when something goes wrong.&lt;/p&gt;

&lt;h2&gt;
  
  
  What users should do
&lt;/h2&gt;

&lt;p&gt;Consumers do not necessarily need to avoid AI agents.&lt;br&gt;
They should, however, treat them more like powerful digital assistants than ordinary chatbots.&lt;/p&gt;

&lt;h3&gt;
  
  
  Give agents limited access
&lt;/h3&gt;

&lt;p&gt;Do not connect an AI agent to every account simply because integration is available. Only provide access to the services it actually needs.&lt;/p&gt;

&lt;h3&gt;
  
  
  Review important actions
&lt;/h3&gt;

&lt;p&gt;Keep humans involved when an agent wants to make purchases, send sensitive information, change account settings, delete files, or perform other irreversible actions.&lt;/p&gt;

&lt;h3&gt;
  
  
  Keep connected accounts secure
&lt;/h3&gt;

&lt;p&gt;Use strong authentication and monitor connected accounts for unusual activity. If an AI agent is compromised, the accounts connected to it could become the next target.&lt;/p&gt;

&lt;h2&gt;
  
  
  What businesses should do
&lt;/h2&gt;

&lt;h3&gt;
  
  
  The human should remain in control
&lt;/h3&gt;

&lt;p&gt;Organizations should require human approval for high-risk activities such as accessing sensitive information, making financial decisions, changing critical systems, sending external communications, or executing code. Human oversight can also help detect unusual behavior and identify situations where an agent is operating outside its intended purpose. Humans should remain in control of decisions that could have serious security, financial, or operational consequences. &lt;/p&gt;

&lt;h3&gt;
  
  
  Apply least privilege
&lt;/h3&gt;

&lt;p&gt;Every agent should receive the minimum permissions necessary to perform its job. A reporting agent should not have administrator access. A document-reading agent should not have deletion privileges.&lt;/p&gt;

&lt;h3&gt;
  
  
  Monitor agent activity
&lt;/h3&gt;

&lt;p&gt;Companies should log important agent actions and monitor for unusual behavior. Sudden increases in tool calls, unusual data access, unexpected external communications, or repeated failed actions could indicate abuse or malfunction.&lt;/p&gt;

&lt;h3&gt;
  
  
  Have an emergency shutdown process
&lt;/h3&gt;

&lt;p&gt;Companies should know how to quickly disable an agent and revoke its credentials. This becomes important when agents can operate without continuous human supervision.&lt;/p&gt;

&lt;p&gt;Read more on my blog: &lt;a href="https://www.guardingpearsoftware.com" rel="noopener noreferrer"&gt;www.guardingpearsoftware.com&lt;/a&gt;!&lt;/p&gt;

</description>
    </item>
    <item>
      <title>AI Agent Risks: What Users and Businesses Should Know</title>
      <dc:creator>GuardingPearSoftware</dc:creator>
      <pubDate>Sat, 12 Sep 2026 13:17:11 +0000</pubDate>
      <link>https://dev.to/guardingpearsoftware/ai-agent-risks-what-users-and-businesses-should-know-34j7</link>
      <guid>https://dev.to/guardingpearsoftware/ai-agent-risks-what-users-and-businesses-should-know-34j7</guid>
      <description>&lt;p&gt;Tech companies are now promoting AI agents as the next big thing after chatbots. The technology is already moving rapidly into mainstream and business environments. According to McKinsey's 2026 State of AI survey, 40% of enterprise applications are expected to include task-specific AI agents by the end of 2026, up from  27% in 2025. &lt;br&gt;
As AI agents become more capable and gain access to more of our data, accounts, devices, and online services, the consequences of mistakes or abuse grow much larger.  As businesses and individuals give these systems more autonomy, they also need to understand what can go wrong, how attackers could abuse AI agents, and what safeguards can reduce the risk.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is an AI agent?
&lt;/h2&gt;

&lt;p&gt;An AI agent is a software system that can understand a goal, make decisions, use tools or external systems, and take multiple steps to complete a task with limited human intervention. Unlike a traditional chatbot, which responds to user prompts with generated text, an AI agent can actively perform actions on the user’s behalf, such as searching websites, managing schedules, analyzing data, sending messages, or interacting with other applications. In simple terms, a chatbot mainly talks, while an AI agent can plan, act, and complete tasks.&lt;br&gt;
The appeal of AI agents is easy to understand. People and businesses already have plenty of software. The big challenge is that people often spend a lot of time moving information between applications and checking different apps before making decisions.&lt;br&gt;
AI agents promise to reduce this friction. An agent can gather the necessary information, use connected tools, and move a task forward with less human involvement. This can help people and organizations save time, improve efficiency, and reduce the amount of manual work they have to handle.&lt;/p&gt;

&lt;h2&gt;
  
  
  Security risks of AI Agents
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Prompt injection attacks
&lt;/h3&gt;

&lt;p&gt;Imagine a company gives an AI agent access to an employee's inbox so it can summarize incoming emails. The employee receives a malicious email containing hidden instructions telling the AI to search the mailbox for sensitive documents and forward them to an external address.&lt;br&gt;
The employee may never see anything suspicious. The AI agent, however, could interpret the malicious instructions as part of the information it is processing. This is known as indirect prompt injection. &lt;br&gt;
The malicious instructions do not necessarily come directly from the user. They can be hidden inside emails, websites, documents, search results, or other external data. Prompt injection is already a major risk for generative AI, but the consequences can become more serious when an AI system has tools and permissions.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Memory poisoning
&lt;/h3&gt;

&lt;p&gt;Memory is one of the features that can make AI agents more useful. An agent that remembers previous interactions does not have to start from scratch every time.&lt;br&gt;
But persistent memory also creates another place where attackers can try to manipulate the system. An attacker may insert malicious or misleading information into an agent's memory.&lt;br&gt;
Later, the agent might treat that information as trusted context. This is known as memory poisoning.&lt;br&gt;
Imagine an employee uses an AI agent to manage projects. Someone manages to insert false instructions into its persistent memory, such as a fake rule saying that a particular external account is authorized to receive company documents. If the agent trusts that memory in a future session, the attacker could benefit long after the original interaction has ended.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Rogue agents
&lt;/h3&gt;

&lt;p&gt;Sometimes AI agents may drift away from their intended goals or instructions and begin taking actions that were not expected by their users or developers. In a recent case, independent researchers discovered several websites where AI agents believed to have been created by OpenAI appeared to take actions without authorization. The agents reportedly accessed websites, posted messages, and exchanged data with one another. The findings have raised further concerns about whether AI developers can effectively control increasingly autonomous agentic systems and prevent them from acting beyond their intended boundaries.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Agent goal hijack
&lt;/h3&gt;

&lt;p&gt;Agent goal hijacking occurs when an attacker manipulates an agent into changing or abandoning its intended objective. Unlike prompt injection, which targets a specific response from an AI model, goal hijacking can influence an agent’s broader, multi-step behavior. Attackers may use manipulated prompts, malicious data, compromised information sources, or fake communications to redirect an agent and make it perform actions that were never intended by its user.&lt;br&gt;
The risk exists because AI agents often rely on natural-language instructions and automated decision-making to determine their next steps. An attacker can therefore create content to influence the agent’s planning or decision-making without directly interacting with the user. If successful, the agent could be redirected toward actions that expose sensitive information, misuse connected tools, or otherwise benefit the attacker at the expense of the user or organization.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Supply Chain Vulnerabilities
&lt;/h3&gt;

&lt;p&gt;AI agents often depend on a complex supply chain that includes third-party models, plugins, APIs, libraries, tools, datasets, and external services. This creates more attack surface for attackers to compromise an agent. A malicious or compromised dependency could manipulate an agent’s behavior, steal sensitive information, introduce malicious instructions, or gain access to connected systems. &lt;br&gt;
The risk becomes greater when organizations use agents built from components they do not fully control or understand. If one trusted component in the AI supply chain is compromised, the attacker could use that trust to affect many downstream agents and organizations. &lt;/p&gt;

&lt;h3&gt;
  
  
  6. Insecure inter-agent communication
&lt;/h3&gt;

&lt;p&gt;Insecure inter-agent communication occurs when multiple AI agents exchange information or instructions without strong authentication, authorization, and validation controls. In a multi-agent system, one agent relies on information received from another. This creates an opportunity for an attacker to modify messages, inject malicious instructions, or manipulate the information being shared. &lt;br&gt;
For example, if a research agent sends findings to a purchasing agent through an unencrypted channel, an attacker who compromises that communication channel could alter the data and cause the purchasing agent to make an unauthorized decision. Because agents can automatically trust and act on information received from other agents, a compromised agent or communication channel could spread malicious instructions across an entire workflow.&lt;/p&gt;

&lt;h3&gt;
  
  
  7. AI agents can leak sensitive information
&lt;/h3&gt;

&lt;p&gt;AI agents often need access to information to perform their tasks. That information could include customer records, employee data, financial documents, passwords, internal communications, intellectual property, or confidential business plans.&lt;br&gt;
The problem becomes more complicated when an agent can combine information from multiple sources. For example, an employee might ask an AI assistant to prepare a customer report. The agent then accesses a CRM, internal documents, email messages, spreadsheets, and other systems. If those systems contain information the employee was never supposed to combine, the AI could unintentionally bring that information together.&lt;br&gt;
There is also a risk that sensitive information could appear in agent logs, tool calls, outputs, or persistent memory.&lt;/p&gt;

&lt;h3&gt;
  
  
  8. Shadow AI
&lt;/h3&gt;

&lt;p&gt;Sometimes employees use unauthorized or undocumented AI agents that operate outside an organization’s official IT and security controls. Individuals may use these agents to automate tasks or improve productivity. This can create major risks, as these unapproved agents may have excessive permissions, insecure configurations, or access to sensitive data that the organization is not aware of.&lt;br&gt;
Shadow AI also makes it harder for security teams to maintain visibility across the organization. This can create security blind spots and make it more difficult to identify, investigate, and respond to incidents when something goes wrong.&lt;/p&gt;

&lt;h2&gt;
  
  
  What users should do
&lt;/h2&gt;

&lt;p&gt;Consumers do not necessarily need to avoid AI agents.&lt;br&gt;
They should, however, treat them more like powerful digital assistants than ordinary chatbots.&lt;/p&gt;

&lt;h3&gt;
  
  
  Give agents limited access
&lt;/h3&gt;

&lt;p&gt;Do not connect an AI agent to every account simply because integration is available. Only provide access to the services it actually needs.&lt;/p&gt;

&lt;h3&gt;
  
  
  Review important actions
&lt;/h3&gt;

&lt;p&gt;Keep humans involved when an agent wants to make purchases, send sensitive information, change account settings, delete files, or perform other irreversible actions.&lt;/p&gt;

&lt;h3&gt;
  
  
  Keep connected accounts secure
&lt;/h3&gt;

&lt;p&gt;Use strong authentication and monitor connected accounts for unusual activity. If an AI agent is compromised, the accounts connected to it could become the next target.&lt;/p&gt;

&lt;h2&gt;
  
  
  What businesses should do
&lt;/h2&gt;

&lt;h3&gt;
  
  
  The human should remain in control
&lt;/h3&gt;

&lt;p&gt;Organizations should require human approval for high-risk activities such as accessing sensitive information, making financial decisions, changing critical systems, sending external communications, or executing code. Human oversight can also help detect unusual behavior and identify situations where an agent is operating outside its intended purpose. Humans should remain in control of decisions that could have serious security, financial, or operational consequences. &lt;/p&gt;

&lt;h3&gt;
  
  
  Apply least privilege
&lt;/h3&gt;

&lt;p&gt;Every agent should receive the minimum permissions necessary to perform its job. A reporting agent should not have administrator access. A document-reading agent should not have deletion privileges.&lt;/p&gt;

&lt;h3&gt;
  
  
  Monitor agent activity
&lt;/h3&gt;

&lt;p&gt;Companies should log important agent actions and monitor for unusual behavior. Sudden increases in tool calls, unusual data access, unexpected external communications, or repeated failed actions could indicate abuse or malfunction.&lt;/p&gt;

&lt;h3&gt;
  
  
  Have an emergency shutdown process
&lt;/h3&gt;

&lt;p&gt;Companies should know how to quickly disable an agent and revoke its credentials. This becomes important when agents can operate without continuous human supervision.&lt;/p&gt;

&lt;p&gt;Read more on my blog: &lt;a href="https://www.guardingpearsoftware.com" rel="noopener noreferrer"&gt;www.guardingpearsoftware.com&lt;/a&gt;!&lt;/p&gt;

</description>
    </item>
    <item>
      <title>AI Agent Risks: What Users and Businesses Should Know</title>
      <dc:creator>GuardingPearSoftware</dc:creator>
      <pubDate>Sat, 12 Sep 2026 12:46:53 +0000</pubDate>
      <link>https://dev.to/guardingpearsoftware/ai-agent-risks-what-users-and-businesses-should-know-5nd</link>
      <guid>https://dev.to/guardingpearsoftware/ai-agent-risks-what-users-and-businesses-should-know-5nd</guid>
      <description>&lt;p&gt;Tech companies are now promoting AI agents as the next big thing after chatbots. The technology is already moving rapidly into mainstream and business environments. According to McKinsey's 2026 State of AI survey, 40% of enterprise applications are expected to include task-specific AI agents by the end of 2026, up from  27% in 2025. &lt;br&gt;
As AI agents become more capable and gain access to more of our data, accounts, devices, and online services, the consequences of mistakes or abuse grow much larger.  As businesses and individuals give these systems more autonomy, they also need to understand what can go wrong, how attackers could abuse AI agents, and what safeguards can reduce the risk.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is an AI agent?
&lt;/h2&gt;

&lt;p&gt;An AI agent is a software system that can understand a goal, make decisions, use tools or external systems, and take multiple steps to complete a task with limited human intervention. Unlike a traditional chatbot, which responds to user prompts with generated text, an AI agent can actively perform actions on the user’s behalf, such as searching websites, managing schedules, analyzing data, sending messages, or interacting with other applications. In simple terms, a chatbot mainly talks, while an AI agent can plan, act, and complete tasks.&lt;br&gt;
The appeal of AI agents is easy to understand. People and businesses already have plenty of software. The big challenge is that people often spend a lot of time moving information between applications and checking different apps before making decisions.&lt;br&gt;
AI agents promise to reduce this friction. An agent can gather the necessary information, use connected tools, and move a task forward with less human involvement. This can help people and organizations save time, improve efficiency, and reduce the amount of manual work they have to handle.&lt;/p&gt;

&lt;h2&gt;
  
  
  Security risks of AI Agents
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Prompt injection attacks
&lt;/h3&gt;

&lt;p&gt;Imagine a company gives an AI agent access to an employee's inbox so it can summarize incoming emails. The employee receives a malicious email containing hidden instructions telling the AI to search the mailbox for sensitive documents and forward them to an external address.&lt;br&gt;
The employee may never see anything suspicious. The AI agent, however, could interpret the malicious instructions as part of the information it is processing. This is known as indirect prompt injection. &lt;br&gt;
The malicious instructions do not necessarily come directly from the user. They can be hidden inside emails, websites, documents, search results, or other external data. Prompt injection is already a major risk for generative AI, but the consequences can become more serious when an AI system has tools and permissions.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Memory poisoning
&lt;/h3&gt;

&lt;p&gt;Memory is one of the features that can make AI agents more useful. An agent that remembers previous interactions does not have to start from scratch every time.&lt;br&gt;
But persistent memory also creates another place where attackers can try to manipulate the system. An attacker may insert malicious or misleading information into an agent's memory.&lt;br&gt;
Later, the agent might treat that information as trusted context. This is known as memory poisoning.&lt;br&gt;
Imagine an employee uses an AI agent to manage projects. Someone manages to insert false instructions into its persistent memory, such as a fake rule saying that a particular external account is authorized to receive company documents. If the agent trusts that memory in a future session, the attacker could benefit long after the original interaction has ended.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Rogue agents
&lt;/h3&gt;

&lt;p&gt;Sometimes AI agents may drift away from their intended goals or instructions and begin taking actions that were not expected by their users or developers. In a recent case, independent researchers discovered several websites where AI agents believed to have been created by OpenAI appeared to take actions without authorization. The agents reportedly accessed websites, posted messages, and exchanged data with one another. The findings have raised further concerns about whether AI developers can effectively control increasingly autonomous agentic systems and prevent them from acting beyond their intended boundaries.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Agent goal hijack
&lt;/h3&gt;

&lt;p&gt;Agent goal hijacking occurs when an attacker manipulates an agent into changing or abandoning its intended objective. Unlike prompt injection, which targets a specific response from an AI model, goal hijacking can influence an agent’s broader, multi-step behavior. Attackers may use manipulated prompts, malicious data, compromised information sources, or fake communications to redirect an agent and make it perform actions that were never intended by its user.&lt;br&gt;
The risk exists because AI agents often rely on natural-language instructions and automated decision-making to determine their next steps. An attacker can therefore create content to influence the agent’s planning or decision-making without directly interacting with the user. If successful, the agent could be redirected toward actions that expose sensitive information, misuse connected tools, or otherwise benefit the attacker at the expense of the user or organization.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Supply Chain Vulnerabilities
&lt;/h3&gt;

&lt;p&gt;AI agents often depend on a complex supply chain that includes third-party models, plugins, APIs, libraries, tools, datasets, and external services. This creates more attack surface for attackers to compromise an agent. A malicious or compromised dependency could manipulate an agent’s behavior, steal sensitive information, introduce malicious instructions, or gain access to connected systems. &lt;br&gt;
The risk becomes greater when organizations use agents built from components they do not fully control or understand. If one trusted component in the AI supply chain is compromised, the attacker could use that trust to affect many downstream agents and organizations. &lt;/p&gt;

&lt;h3&gt;
  
  
  6. Insecure inter-agent communication
&lt;/h3&gt;

&lt;p&gt;Insecure inter-agent communication occurs when multiple AI agents exchange information or instructions without strong authentication, authorization, and validation controls. In a multi-agent system, one agent relies on information received from another. This creates an opportunity for an attacker to modify messages, inject malicious instructions, or manipulate the information being shared. &lt;br&gt;
For example, if a research agent sends findings to a purchasing agent through an unencrypted channel, an attacker who compromises that communication channel could alter the data and cause the purchasing agent to make an unauthorized decision. Because agents can automatically trust and act on information received from other agents, a compromised agent or communication channel could spread malicious instructions across an entire workflow.&lt;/p&gt;

&lt;h3&gt;
  
  
  7. AI agents can leak sensitive information
&lt;/h3&gt;

&lt;p&gt;AI agents often need access to information to perform their tasks. That information could include customer records, employee data, financial documents, passwords, internal communications, intellectual property, or confidential business plans.&lt;br&gt;
The problem becomes more complicated when an agent can combine information from multiple sources. For example, an employee might ask an AI assistant to prepare a customer report. The agent then accesses a CRM, internal documents, email messages, spreadsheets, and other systems. If those systems contain information the employee was never supposed to combine, the AI could unintentionally bring that information together.&lt;br&gt;
There is also a risk that sensitive information could appear in agent logs, tool calls, outputs, or persistent memory.&lt;/p&gt;

&lt;h3&gt;
  
  
  8. Shadow AI
&lt;/h3&gt;

&lt;p&gt;Sometimes employees use unauthorized or undocumented AI agents that operate outside an organization’s official IT and security controls. Individuals may use these agents to automate tasks or improve productivity. This can create major risks, as these unapproved agents may have excessive permissions, insecure configurations, or access to sensitive data that the organization is not aware of.&lt;br&gt;
Shadow AI also makes it harder for security teams to maintain visibility across the organization. This can create security blind spots and make it more difficult to identify, investigate, and respond to incidents when something goes wrong.&lt;/p&gt;

&lt;h2&gt;
  
  
  What users should do
&lt;/h2&gt;

&lt;p&gt;Consumers do not necessarily need to avoid AI agents.&lt;br&gt;
They should, however, treat them more like powerful digital assistants than ordinary chatbots.&lt;/p&gt;

&lt;h3&gt;
  
  
  Give agents limited access
&lt;/h3&gt;

&lt;p&gt;Do not connect an AI agent to every account simply because integration is available. Only provide access to the services it actually needs.&lt;/p&gt;

&lt;h3&gt;
  
  
  Review important actions
&lt;/h3&gt;

&lt;p&gt;Keep humans involved when an agent wants to make purchases, send sensitive information, change account settings, delete files, or perform other irreversible actions.&lt;/p&gt;

&lt;h3&gt;
  
  
  Keep connected accounts secure
&lt;/h3&gt;

&lt;p&gt;Use strong authentication and monitor connected accounts for unusual activity. If an AI agent is compromised, the accounts connected to it could become the next target.&lt;/p&gt;

&lt;h2&gt;
  
  
  What businesses should do
&lt;/h2&gt;

&lt;h3&gt;
  
  
  The human should remain in control
&lt;/h3&gt;

&lt;p&gt;Organizations should require human approval for high-risk activities such as accessing sensitive information, making financial decisions, changing critical systems, sending external communications, or executing code. Human oversight can also help detect unusual behavior and identify situations where an agent is operating outside its intended purpose. Humans should remain in control of decisions that could have serious security, financial, or operational consequences. &lt;/p&gt;

&lt;h3&gt;
  
  
  Apply least privilege
&lt;/h3&gt;

&lt;p&gt;Every agent should receive the minimum permissions necessary to perform its job. A reporting agent should not have administrator access. A document-reading agent should not have deletion privileges.&lt;/p&gt;

&lt;h3&gt;
  
  
  Monitor agent activity
&lt;/h3&gt;

&lt;p&gt;Companies should log important agent actions and monitor for unusual behavior. Sudden increases in tool calls, unusual data access, unexpected external communications, or repeated failed actions could indicate abuse or malfunction.&lt;/p&gt;

&lt;h3&gt;
  
  
  Have an emergency shutdown process
&lt;/h3&gt;

&lt;p&gt;Companies should know how to quickly disable an agent and revoke its credentials. This becomes important when agents can operate without continuous human supervision.&lt;/p&gt;

&lt;p&gt;Read more on my blog: &lt;a href="https://www.guardingpearsoftware.com" rel="noopener noreferrer"&gt;www.guardingpearsoftware.com&lt;/a&gt;!&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Prove your game ownership with watermarks</title>
      <dc:creator>GuardingPearSoftware</dc:creator>
      <pubDate>Sun, 06 Sep 2026 11:48:20 +0000</pubDate>
      <link>https://dev.to/guardingpearsoftware/prove-your-game-ownership-with-watermarks-1nmi</link>
      <guid>https://dev.to/guardingpearsoftware/prove-your-game-ownership-with-watermarks-1nmi</guid>
      <description>&lt;p&gt;In the new age of AI, proof of game ownership is becoming more and more important. Game clones and flips are being created faster than ever.&lt;/p&gt;

&lt;p&gt;Your Android APK or Windows build can be taken, the icon changed, a few textures swapped, the store listing renamed, and then uploaded as someone else's game. Stores will not always catch this on their own, unfortunately. You need proof that the game or app is yours.&lt;/p&gt;

&lt;p&gt;A code watermark can provide that proof. It does not stop the theft. What it does is let you go to &lt;a href="https://support.google.com/legal/troubleshooter/1114905" rel="noopener noreferrer"&gt;Google Play&lt;/a&gt;, &lt;a href="https://steamcommunity.com/dmca/create/" rel="noopener noreferrer"&gt;Steam&lt;/a&gt;, or another DMCA form and show that the clone was built from &lt;em&gt;your&lt;/em&gt; game or app.&lt;/p&gt;

&lt;p&gt;This is for game developers who ship Unity titles and want something stronger than "it looks like our game."&lt;/p&gt;

&lt;h2&gt;
  
  
  The problem is real
&lt;/h2&gt;

&lt;p&gt;But &lt;em&gt;clone&lt;/em&gt; and &lt;em&gt;flip&lt;/em&gt; can mean different things.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Stolen game.&lt;/strong&gt; An attacker dumps your APK or game folder. They replace the package name, ad SDK, icon, and some art, then republish it. They did not remake your game, they just took the copy you already shipped. This is called &lt;em&gt;repackaging&lt;/em&gt;, and it is the case a watermark is built to fight.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Asset flip.&lt;/strong&gt; A studio buys the assets from the Unity Asset Store as you and ships a junk title. That is shovelware, and it is usually not &lt;em&gt;your&lt;/em&gt; game.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Gameplay clone.&lt;/strong&gt; A publisher copies the idea of a hit like Flappy Bird, Fall Guys, or an idle shooter. Game mechanics are hard to copyright but your art, audio, and compiled code can be.&lt;/p&gt;

&lt;p&gt;A watermark is built for the first case. That case is common enough that researchers have measured it for more than ten years.&lt;/p&gt;

&lt;p&gt;Here is the picture, one store at a time.&lt;/p&gt;

&lt;h3&gt;
  
  
  Android is the biggest target
&lt;/h3&gt;

&lt;p&gt;On Google Play, &lt;a href="https://www.bitdefender.com/files/News/file/RepackagedApps_12_Percent_of_Google_Play_Store_is_Thief-Ware_Study_Shows.pdf" rel="noopener noreferrer"&gt;Bitdefender&lt;/a&gt; scanned 420,646 apps and found 5,077 of them, about &lt;strong&gt;1.2%&lt;/strong&gt;, that were full copies of other developers' work. Once shared libraries were set aside, more than 90% of each copy was identical. They watched one paid game pick up &lt;strong&gt;four free copies in a single week&lt;/strong&gt;. Columbia's &lt;a href="https://www.researchgate.net/publication/266656989_A_measurement_study_of_google_play" rel="noopener noreferrer"&gt;PlayDrone&lt;/a&gt; crawl found that about &lt;strong&gt;25%&lt;/strong&gt; of Play content was duplicate, though most of that was same-developer rebrands and spam. Of the similar free apps they labeled, &lt;strong&gt;42,308 were clones by different authors&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Off the official store, it gets worse. A tool called &lt;a href="https://nsl.cs.waseda.ac.jp/wp-content/uploads/2016/06/iwspa2016-submitted-version.pdf" rel="noopener noreferrer"&gt;APPraiser&lt;/a&gt; checked more than 1.3 million apps and found that only about &lt;strong&gt;6%&lt;/strong&gt; of Google Play apps looked similar to another app, and most of those were a studio reusing its own work. On the Chinese third-party store Anzhi, about &lt;strong&gt;26%&lt;/strong&gt; looked similar, and roughly half of those were true clones. Other studies of third-party Android markets agree: &lt;a href="https://scispace.com/papers/detecting-repackaged-smartphone-applications-in-third-party-20w36niaif" rel="noopener noreferrer"&gt;Zhou et al.&lt;/a&gt; measured &lt;strong&gt;5% to 13%&lt;/strong&gt; repackaged, a study of &lt;a href="https://doi.org/10.48550/arxiv.1810.07780" rel="noopener noreferrer"&gt;Chinese markets&lt;/a&gt; found about &lt;strong&gt;20%&lt;/strong&gt; clones with Google Play as the main source, and a &lt;a href="https://cragkhit.github.io/publications/2024_Sanamontre.pdf" rel="noopener noreferrer"&gt;2024 sample of "original" games&lt;/a&gt; found &lt;strong&gt;93 of 196 (47%)&lt;/strong&gt; were repackaged clones of Play titles.&lt;/p&gt;

&lt;p&gt;Those copies are not harmless. Of the clones that moved from Google Play onto third-party stores, APPraiser found &lt;strong&gt;76% carried malware&lt;/strong&gt;. It is an old trick: &lt;a href="https://www.ieee-security.org/TC/SP2012/papers/4681a095.pdf" rel="noopener noreferrer"&gt;Zhou and Jiang&lt;/a&gt; showed that &lt;strong&gt;1,083 of 1,260 Android malware samples (86%)&lt;/strong&gt; were real apps with an added payload, so someone steals the game, injects ads or spyware, then redistributes it. &lt;a href="https://clintgibler.com/assets/media/pubs/gibler2013adrob.pdf" rel="noopener noreferrer"&gt;AdRob&lt;/a&gt; estimated that cloned developers lost about &lt;strong&gt;14% of ad impressions&lt;/strong&gt; and &lt;strong&gt;10% of users&lt;/strong&gt; to the copies.&lt;/p&gt;

&lt;h3&gt;
  
  
  iOS looks safer than it is
&lt;/h3&gt;

&lt;p&gt;Apple says less about clones, but its store is not clean. Apple puts out a &lt;a href="https://asymco.com/2026/05/22/the-app-store-annual-fraud-prevention-analysis/" rel="noopener noreferrer"&gt;yearly fraud report&lt;/a&gt;, and in 2025 it turned away more than &lt;strong&gt;371,000&lt;/strong&gt; app submissions for being spam, copycats, or misleading, and it stopped nearly &lt;strong&gt;7,800&lt;/strong&gt; apps it judged deceptive from ever showing up in search. Researchers have studied this side too. One project trained a tool on &lt;a href="https://doi.org/10.1287/isre.2017.0735" rel="noopener noreferrer"&gt;&lt;strong&gt;10,100&lt;/strong&gt; iOS action games&lt;/a&gt; over five years just to tell copycats apart from originals. So on iPhone the problem is real and measured, even though Apple never prints a single "percent stolen" number. "It is on the App Store" does not mean anyone checked whether it is yours.&lt;/p&gt;

&lt;h3&gt;
  
  
  Steam and the PC stores
&lt;/h3&gt;

&lt;p&gt;Windows is a different market. There is no matching study on how much of Steam is stolen Unity executables. Selling someone else's finished &lt;code&gt;.exe&lt;/code&gt; under a new Steam page is a worse business than dumping a crack on a download site. What Steam does have is a lot of shovelware. In 2017 Valve &lt;a href="https://www.polygon.com/2017/9/26/16368178/steam-shovelware-removed-asset-flipping/" rel="noopener noreferrer"&gt;removed 173 titles&lt;/a&gt; from one operator who had been &lt;a href="https://www.gamesindustry.biz/valve-removes-173-asset-flipping-games-from-steam" rel="noopener noreferrer"&gt;mass-shipping nearly identical products&lt;/a&gt;. The flood is easy to see today. In 2024 about &lt;a href="https://www.tweaktown.com/news/102333/steam-saw-close-to-19-000-pc-games-released-throughout-2024-32-more-than-2023/index.html" rel="noopener noreferrer"&gt;&lt;strong&gt;19,000&lt;/strong&gt; games launched on Steam&lt;/a&gt;, and roughly &lt;strong&gt;79%&lt;/strong&gt; of them were tagged "Limited," a status Valve gives titles that have not sold or been played enough. Valve treats it as its main filter against shovelware, scams, and asset flips. It also runs cleanup waves, like a &lt;a href="https://www.pcgamer.com/steam-sends-90-low-effort-asset-flips-and-bootleg-games-off-to-the-great-trashcan-fire-in-the-sky/" rel="noopener noreferrer"&gt;2023 sweep&lt;/a&gt; that pulled about 90 asset-flip and bootleg games and banned the accounts behind them. Those cases are flips and clutter, not stolen copies of one indie game. If you ship on Steam, expect piracy first. If you ship a Unity game on Android, expect someone to try the APK.&lt;/p&gt;

&lt;h3&gt;
  
  
  The smaller stores lean on you
&lt;/h3&gt;

&lt;p&gt;The smaller stores have the least public data and the lightest screening, so there the work falls even more on you. Epic's store &lt;a href="https://dev.epicgames.com/docs/epic-games-store/requirements-guidelines/content-ratings/content-guidelines" rel="noopener noreferrer"&gt;bans scams and impersonation&lt;/a&gt; in its rules, and it does act. A crypto game called &lt;a href="https://www.thegamer.com/grand-theft-auto-gta-online-rip-off-steam-scam-malware-allegations-paradise/" rel="noopener noreferrer"&gt;Paradise&lt;/a&gt; faked an Epic partnership and reused Grand Theft Auto assets, Epic delisted it, and it came back under a new name. On itch.io there are no clean numbers at all, only a steady run of reports from developers whose games, and even profile pictures, were &lt;a href="https://itch.io/t/3694451/please-help-someone-stolen-my-game-to-distribute-malware" rel="noopener noreferrer"&gt;re-uploaded by fake accounts to spread malware&lt;/a&gt;. Itch's own staff say they mostly act once someone reports the page. On stores like these, the report you file, with proof attached, is the whole enforcement system.&lt;/p&gt;

&lt;h3&gt;
  
  
  Even well-funded games are wide open
&lt;/h3&gt;

&lt;p&gt;None of this needs a skilled hacker. Promon's &lt;a href="https://promon.io/hubfs/ToFu%20-%20App%20Threat%20Report%20-%20Gaming%20-%20Q1%202023/App-Threat-Report-The-State-of-Game-Security-Promon.pdf" rel="noopener noreferrer"&gt;2023 game security report&lt;/a&gt; tested 357 high-revenue mobile titles. Only &lt;strong&gt;15.7%&lt;/strong&gt; had any repackaging detection, and the testers could repackage about &lt;strong&gt;85%&lt;/strong&gt; of them. This is not only a game problem: in a separate test Promon repackaged &lt;a href="https://promon.io/resources/downloads/app-threat-report-repackaging" rel="noopener noreferrer"&gt;&lt;strong&gt;61%&lt;/strong&gt; of the banking and trading apps&lt;/a&gt; it looked at, and those are supposed to be the careful ones. If the top-grossing studios ship builds this open, an indie title is an easy target.&lt;/p&gt;

&lt;h2&gt;
  
  
  A real Unity case
&lt;/h2&gt;

&lt;p&gt;In 2020 a Unity developer posted that someone had &lt;a href="https://discussions.unity.com/t/stolen-unity-game-on-google-play/791946" rel="noopener noreferrer"&gt;stolen their Play APK&lt;/a&gt;. The thief replaced the bundle identifier and ad units, added location, calendar, and phone permissions, and published it on another account. It was not a remake, it was a full copy of files matched an older version &lt;strong&gt;by name and size&lt;/strong&gt;. The developer's company name was still sitting in &lt;code&gt;globalgamemanagers&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Google did not catch it on upload. The first DMCA reply was "are you the authorized copyright agent?" That is a paperwork problem, not a technical one, but it is also why the leftover strings and matching file sizes mattered. The store does not know the clone is yours until you can &lt;em&gt;show&lt;/em&gt; it.&lt;/p&gt;

&lt;p&gt;That leftover string worked as an accidental watermark, but you should not rely on accidents.&lt;/p&gt;

&lt;h2&gt;
  
  
  The stores remove millions and still miss yours
&lt;/h2&gt;

&lt;p&gt;The big stores are not sitting still. In 2024 Google &lt;a href="https://blog.google/security/how-we-kept-google-play-android-app-ecosystem-safe-2024/" rel="noopener noreferrer"&gt;blocked about &lt;strong&gt;2.36 million&lt;/strong&gt; apps&lt;/a&gt; that broke its rules and banned &lt;strong&gt;158,000&lt;/strong&gt; developer accounts. In 2025 it &lt;a href="https://www.helpnetsecurity.com/2026/02/20/google-strengthens-android-safe-app-ecosystem/" rel="noopener noreferrer"&gt;blocked another &lt;strong&gt;1.75 million&lt;/strong&gt;&lt;/a&gt; and banned &lt;strong&gt;80,000&lt;/strong&gt; more. Apple &lt;a href="https://asymco.com/2026/05/22/the-app-store-annual-fraud-prevention-analysis/" rel="noopener noreferrer"&gt;turned away over &lt;strong&gt;371,000&lt;/strong&gt;&lt;/a&gt; copycat, spam, or misleading submissions in 2025.&lt;/p&gt;

&lt;p&gt;Those are huge numbers, and none of them are your clone. Those systems hunt for malware, spam, and rule-breaking across millions of apps at once. They do not know that one reskin, with a new name and new ads, was built from your code. Making that link is the one part of the job only you can do, and only if you saved something to compare against before the theft. The watermark is that something.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why the store name will not save you
&lt;/h2&gt;

&lt;p&gt;Unity writes the &lt;a href="https://docs.unity3d.com/ScriptReference/Application-productName.html" rel="noopener noreferrer"&gt;product name&lt;/a&gt; and &lt;a href="https://docs.unity3d.com/ScriptReference/Application-identifier.html" rel="noopener noreferrer"&gt;application identifier&lt;/a&gt; into the player. Both can be read at runtime and they are useful for your UI, deep links, and telling which build a normal user has installed.&lt;/p&gt;

&lt;p&gt;But they are useless as proof of ownership against a copy cat.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Application.productName&lt;/code&gt; is just a display string, and the clone will have a new one. &lt;code&gt;Application.identifier&lt;/code&gt; is the Android package name or the bundle id you typed in Player Settings. The package name is the first thing a republisher changes, because they cannot sign and upload a second listing without changing it. On a normal Windows game there is no store-enforced package identity at all.&lt;/p&gt;

&lt;p&gt;So a runtime check that says "the package name must be &lt;code&gt;com.studio.mygame&lt;/code&gt;" fails the moment the APK is re-signed. And a listing that uses &lt;em&gt;their&lt;/em&gt; name proves nothing about whose code is inside.&lt;/p&gt;

&lt;p&gt;Platforms act on &lt;strong&gt;your rights&lt;/strong&gt;, not on a similar title. Google Play keeps &lt;a href="https://support.google.com/googleplay/android-developer/answer/16341334" rel="noopener noreferrer"&gt;impersonation&lt;/a&gt; (the listing misleads users) separate from &lt;a href="https://support.google.com/googleplay/android-developer/answer/9888072" rel="noopener noreferrer"&gt;copyright and trademark&lt;/a&gt; (they copied your work). Pick the wrong form and the case stalls. A &lt;a href="https://www.buzko.legal/content-eng/how-to-remove-copycat-app-app-store-google-play" rel="noopener noreferrer"&gt;practical takedown guide&lt;/a&gt; and &lt;a href="https://www.gamedeveloper.com/business/has-another-developer-stolen-your-app-use-this-dmca-template-" rel="noopener noreferrer"&gt;DMCA templates for game developers&lt;/a&gt; all come back to the same point: you have to show that the &lt;em&gt;content&lt;/em&gt; is yours.&lt;/p&gt;

&lt;p&gt;"It looks like our game" is a start. But "the binary is ours" is what gives you legal standing.&lt;/p&gt;

&lt;h2&gt;
  
  
  What a code watermark actually is
&lt;/h2&gt;

&lt;p&gt;A watermark is a secret you pick at build time, turn into a signature, and hide inside the game or app.&lt;/p&gt;

&lt;p&gt;You choose a phrase that only your team knows. Then place it in locations only you know, or in completely random places.&lt;/p&gt;

&lt;p&gt;That is the whole idea. The signature is not a license check, it is just a fingerprint you can identify later.&lt;/p&gt;

&lt;p&gt;Open or download the suspect game or app, and look for that fingerprint. A match tells you this game or app went through &lt;em&gt;your&lt;/em&gt; watermark pass, with &lt;em&gt;your&lt;/em&gt; text, for that build. It is much stronger than "this skins looks like ours." It says "this is our code."&lt;/p&gt;

&lt;h2&gt;
  
  
  Do not want to build this yourself? Use the GuardingPearSoftware Obfuscator
&lt;/h2&gt;

&lt;p&gt;You do not have to write any of this. The &lt;strong&gt;GuardingPearSoftware Obfuscator&lt;/strong&gt; brings with the release 2026.6.0 a feature called &lt;strong&gt;Assembly Watermark&lt;/strong&gt;. You turn it on enter a custom phrase and when you build, it writes a unique fingerprint into every assembly (compatible with Mono/CoreCLR and IL2CPP). Every module gets the same mark, tied to your app and your secret. Players never see it, and nothing runs while the game is playing. The created fingerprint then gets printed in the Unity console, for an easy copy and paste for later proof usage.&lt;/p&gt;

&lt;p&gt;If you suspect a clone, you can open the suspect game or app and look for that fingerprint. A match tells you this game or app went through &lt;em&gt;your&lt;/em&gt; watermark pass, with &lt;em&gt;your&lt;/em&gt; text, for that build.&lt;/p&gt;

&lt;h2&gt;
  
  
  How you use it against a platform
&lt;/h2&gt;

&lt;p&gt;When you find a listing that is your game with a new coat of paint:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Download their package.&lt;/strong&gt; Save any relevant infos. Screenshot the store page and the developer account.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Show the match.&lt;/strong&gt; Point at the same fingerprint in their binary that only your watermark pass would have written. Putting it side by side with your own build is stronger than a screenshot of gameplay.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;File the right claim, on the store's own form.&lt;/strong&gt; Each store has its own official page. Send the same evidence pack to whichever one hosts the clone.

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Google Play&lt;/strong&gt;: the &lt;a href="https://support.google.com/legal/troubleshooter/1114905" rel="noopener noreferrer"&gt;copyright complaint form&lt;/a&gt; or the &lt;a href="https://support.google.com/googleplay/android-developer/answer/9888072" rel="noopener noreferrer"&gt;Play IP policy&lt;/a&gt;. If they also faked your name or icon, add an &lt;a href="https://support.google.com/googleplay/android-developer/answer/16341334" rel="noopener noreferrer"&gt;impersonation report&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Apple App Store&lt;/strong&gt;: the &lt;a href="https://www.apple.com/legal/intellectual-property/dispute-forms/app-store/" rel="noopener noreferrer"&gt;App Store Content Dispute form&lt;/a&gt;, one of Apple's &lt;a href="https://www.apple.com/legal/intellectual-property/dispute-forms/" rel="noopener noreferrer"&gt;dispute forms&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Steam&lt;/strong&gt;: Valve's &lt;a href="https://steamcommunity.com/dmca/create/" rel="noopener noreferrer"&gt;Notice of Copyright Infringement form&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Epic Games Store&lt;/strong&gt;: Epic's &lt;a href="https://www.epicgames.com/site/en-US/infringement" rel="noopener noreferrer"&gt;copyright and trademark infringement page&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;itch.io&lt;/strong&gt;: use the report link in the page footer, or send a &lt;a href="https://itch.io/docs/legal/terms#6-digital-millennium-copyright-act" rel="noopener noreferrer"&gt;DMCA notice as described in its terms&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Say who you are.&lt;/strong&gt; The Unity thread above stalled first on "authorized copyright agent," not on any technical doubt. File as the rights holder, or attach the assignment.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Stores are not courts, this is important to know. They want a short, plain packet: you own it (with your proof), here is the clone, here is the overlap, take it down. A watermark turns "we think they stole it" into "here is a signature we put in before they ever saw the APK."&lt;/p&gt;

&lt;h2&gt;
  
  
  What a watermark is not
&lt;/h2&gt;

&lt;p&gt;It will not stop the dump. Promon's numbers are clear that most commercial mobile games can be repackaged. IL2CPP makes code theft harder, but it does not hide your textures.&lt;/p&gt;

&lt;p&gt;It will not survive someone who strips the unused metadata and rewrites the whole IL. Few people do that much work. Plenty of people do "new package name, new ads, old levels."&lt;/p&gt;

&lt;p&gt;It is not a runtime &lt;code&gt;Application.identifier&lt;/code&gt; check. Those APIs describe the install you are running right now, and the thief already changed them.&lt;/p&gt;

&lt;p&gt;It is not legal advice, and it is not a replacement for registering copyright where that helps you. It is evidence you can attach to the process platforms already run.&lt;/p&gt;

&lt;h2&gt;
  
  
  What to do on your next build
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Add a watermark or fingerprint to every next build you ship.&lt;/li&gt;
&lt;li&gt;Make sure to keep a reference build, and the watermark.&lt;/li&gt;
&lt;li&gt;When you find a clone, collect the package first, then file for copyright.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you have to file a claim to a store that has no custom form, feel free to use this template:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Subject: DMCA Takedown Notice - [YOUR GAME NAME] - [INFRINGING LISTING NAME]

To the Designated Copyright Agent of [STORE / HOST NAME],

This is a notice of copyright infringement under the Digital Millennium
Copyright Act, 17 U.S.C. § 512(c), or the equivalent provisions of your
local law.

1. The copyrighted work
I am [YOUR NAME], [YOUR ROLE] at [YOUR COMPANY NAME], the owner of the
copyright in the game "[YOUR GAME NAME]", a [GENRE] game for [PLATFORMS].
The work includes its compiled code, artwork, animations, audio, level
data, and characters. It was first published on [DATE] and is available
here: [URL TO YOUR OFFICIAL STORE LISTING]

2. The infringing material
The following listing is a repackaged copy of our build, republished under
a different name, icon, and developer account:
[URL TO THE INFRINGING APP / GAME]
Developer account: [INFRINGING DEVELOPER NAME]
Package or app ID: [INFRINGING PACKAGE NAME / APP ID], if known

3. Evidence
Our build carries a private code watermark that we embedded before release.
The same fingerprint is present in the infringing binary:
- Watermark: [THE WATERMARK PROOF]
- Location in the infringing file: [FILE NAME AND WHERE THE MATCH WAS FOUND]
Additional evidence is attached: [LIST OF ATTACHMENTS, e.g. side-by-side
screenshots, matching file names and sizes, hash of the downloaded package,
date of download]

The infringing listing profits from our work through [ADVERTISEMENTS /
IN-APP PURCHASES / PAID DOWNLOAD].

4. Statements
I have a good-faith belief that the use of the material described above is
not authorized by the copyright owner, its agent, or the law.
I swear, under penalty of perjury, that the information in this notice is
accurate and that I am the copyright owner or am authorized to act on the
owner's behalf.

5. Request
Please remove or disable access to the infringing listing and let me know
once this has been done. If I do not hear back within [10] business days,
I will take further steps to protect our rights.

6. Contact and signature
[FULL LEGAL NAME]
[ROLE], [YOUR COMPANY NAME]
[STREET ADDRESS]
[CITY, POSTAL CODE, COUNTRY]
[PHONE NUMBER]
[EMAIL ADDRESS]

Signed: [FULL LEGAL NAME]  (typed name counts as an electronic signature)
Date: [DATE]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Read more on my blog: &lt;a href="https://www.guardingpearsoftware.com" rel="noopener noreferrer"&gt;www.guardingpearsoftware.com&lt;/a&gt;!&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Will GPT-6 Astra change game development forever?</title>
      <dc:creator>GuardingPearSoftware</dc:creator>
      <pubDate>Sat, 05 Sep 2026 12:36:58 +0000</pubDate>
      <link>https://dev.to/guardingpearsoftware/will-gpt-6-astra-change-game-development-forever-2eio</link>
      <guid>https://dev.to/guardingpearsoftware/will-gpt-6-astra-change-game-development-forever-2eio</guid>
      <description>&lt;p&gt;OpenAI released &lt;a href="https://openai.com/index/gpt-6-astra/" rel="noopener noreferrer"&gt;GPT-6 Astra&lt;/a&gt;, a brand new model. They promise a near-AGI-ready model, and the release interestingly focuses on game development.&lt;/p&gt;

&lt;p&gt;You might already have seen videos of GPT-6 Astra-built games in Unity or Godot on X (Twitter) or other social platforms. The demos look really great, but does it really change game development forever? And will it change the industry?&lt;/p&gt;

&lt;p&gt;In this article, we will explore the release, the numbers, and the reality of GPT-6 Astra in game development and whether the AGI promise is real.&lt;/p&gt;

&lt;h2&gt;
  
  
  When GPT-6 Astra released
&lt;/h2&gt;

&lt;p&gt;OpenAI released GPT-6 Astra on &lt;strong&gt;September 3, 2026&lt;/strong&gt;. The &lt;a href="https://openai.com/index/gpt-6-astra/" rel="noopener noreferrer"&gt;official announcement&lt;/a&gt; calls it a new generation model for computer use, software engineering, science, and professional work.&lt;/p&gt;

&lt;p&gt;But not everyone got access on day one.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Who&lt;/th&gt;
&lt;th&gt;When they get it&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;A first wave of approved organizations&lt;/td&gt;
&lt;td&gt;September 3, 2026&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ChatGPT Plus, Pro, Business, and Enterprise&lt;/td&gt;
&lt;td&gt;Rolling out over the following days&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;OpenAI API (&lt;code&gt;gpt-6-astra&lt;/code&gt;) and Amazon Bedrock&lt;/td&gt;
&lt;td&gt;Same staged rollout&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Free ChatGPT&lt;/td&gt;
&lt;td&gt;No public date&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Usage inside ChatGPT counts against the usual subscription limits. Extra credits are for sale if you run out. Pro, Business, and Enterprise also get GPT-6 Astra Pro. On Enterprise, Astra starts &lt;strong&gt;off&lt;/strong&gt;. An admin has to turn it on.&lt;/p&gt;

&lt;p&gt;If you opened ChatGPT on launch day and did not see the model, that is the staged rollout. As of this writing, a few days after launch, paid users are still getting access.&lt;/p&gt;

&lt;p&gt;Here the current numbers:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Spec&lt;/th&gt;
&lt;th&gt;GPT-6 Astra&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Context window&lt;/td&gt;
&lt;td&gt;1.05 million tokens&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Max output&lt;/td&gt;
&lt;td&gt;128,000 tokens&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Knowledge cutoff&lt;/td&gt;
&lt;td&gt;April 30, 2026&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;API name&lt;/td&gt;
&lt;td&gt;&lt;code&gt;gpt-6-astra&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Takeaway:&lt;/strong&gt; Astra is out. But most ChatGPT and API users still have to wait.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  How it compares to GPT-5.6 Sol, Fable 5, and Fable 5.1
&lt;/h2&gt;

&lt;p&gt;OpenAi advertises Astra as the new frontier model, and sure it is really good. But it does not beat Anthropic's Claude Fable on every test.&lt;/p&gt;

&lt;p&gt;Claude Fable 5 shipped earlier in 2026. &lt;a href="https://platform.claude.com/docs/en/models/fable-5-1/overview" rel="noopener noreferrer"&gt;Claude Fable 5.1&lt;/a&gt; arrived on September 1, two days before Astra. GPT-5.6 Sol is still OpenAI's previous flagship, and it is much cheaper per token.&lt;/p&gt;

&lt;h3&gt;
  
  
  Token price
&lt;/h3&gt;

&lt;p&gt;Prices below are vendor list prices per 1 million tokens, short context. OpenAI charges more once a prompt goes past 272,000 input tokens. Sol's $4 / $20 rate is promotional through at least November 21, 2026.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Model&lt;/th&gt;
&lt;th&gt;Input&lt;/th&gt;
&lt;th&gt;Output&lt;/th&gt;
&lt;th&gt;Cache read&lt;/th&gt;
&lt;th&gt;Long context surcharge&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;GPT-5.6 Sol&lt;/td&gt;
&lt;td&gt;$4&lt;/td&gt;
&lt;td&gt;$20&lt;/td&gt;
&lt;td&gt;$0.40&lt;/td&gt;
&lt;td&gt;Yes, above 272K input&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;GPT-6 Astra&lt;/td&gt;
&lt;td&gt;$10&lt;/td&gt;
&lt;td&gt;$50&lt;/td&gt;
&lt;td&gt;$1.00&lt;/td&gt;
&lt;td&gt;Yes, above 272K input (2x input, 1.5x output)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Claude Fable 5&lt;/td&gt;
&lt;td&gt;$10&lt;/td&gt;
&lt;td&gt;$50&lt;/td&gt;
&lt;td&gt;$1.00&lt;/td&gt;
&lt;td&gt;No extra band like OpenAI's&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Claude Fable 5.1&lt;/td&gt;
&lt;td&gt;$10&lt;/td&gt;
&lt;td&gt;$50&lt;/td&gt;
&lt;td&gt;$0.25&lt;/td&gt;
&lt;td&gt;No extra band like OpenAI's&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Astra Fast mode runs about 2x Standard price for up to 2x speed. Batch and Flex are half of Standard.&lt;/p&gt;

&lt;p&gt;The list price is easy to compare. For an agent that builds a prototype, it is the wrong number to trust. An agent that finishes in fewer loops can cost less even when each token is more expensive.&lt;/p&gt;

&lt;p&gt;OpenAI's own &lt;a href="https://openai.com/index/gpt-6-astra/" rel="noopener noreferrer"&gt;Astra page&lt;/a&gt; says Astra beats Sol and Fable 5.1 on DeepSWE (a long software-engineering test) at about &lt;strong&gt;57% lower API cost per finished task&lt;/strong&gt; in the best-performing setup of each model. That is a vendor claim, not an independent lab result. Treat it as a hint, then measure on your own project.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Takeaway:&lt;/strong&gt; Sol is cheaper per token. Astra and Fable 5.1 cost the same on paper. Fable 5.1 is cheaper when the same big context gets re-read from cache. Astra can still win on total bill if it needs fewer retries.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  How well they solve tasks
&lt;/h3&gt;

&lt;p&gt;These scores here come mostly from OpenAI's &lt;a href="https://openai.com/index/gpt-6-astra/" rel="noopener noreferrer"&gt;Astra launch tables&lt;/a&gt;.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Task type&lt;/th&gt;
&lt;th&gt;Benchmark&lt;/th&gt;
&lt;th&gt;GPT-5.6 Sol&lt;/th&gt;
&lt;th&gt;Claude Fable 5&lt;/th&gt;
&lt;th&gt;Claude Fable 5.1&lt;/th&gt;
&lt;th&gt;GPT-6 Astra&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Terminal / agent coding&lt;/td&gt;
&lt;td&gt;Terminal-Bench 4.0&lt;/td&gt;
&lt;td&gt;37.3%&lt;/td&gt;
&lt;td&gt;42.0%&lt;/td&gt;
&lt;td&gt;55.8%&lt;/td&gt;
&lt;td&gt;57.9%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Long software work&lt;/td&gt;
&lt;td&gt;DeepSWE v1.1&lt;/td&gt;
&lt;td&gt;72.7%&lt;/td&gt;
&lt;td&gt;69.9%&lt;/td&gt;
&lt;td&gt;67.4%&lt;/td&gt;
&lt;td&gt;74.1%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Independent coding agents&lt;/td&gt;
&lt;td&gt;Artificial Analysis Coding Agent Index&lt;/td&gt;
&lt;td&gt;65.1&lt;/td&gt;
&lt;td&gt;67.2&lt;/td&gt;
&lt;td&gt;70 (Claude Code)&lt;/td&gt;
&lt;td&gt;67.0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Computer use&lt;/td&gt;
&lt;td&gt;OSWorld 2.0 (OpenAI setup)&lt;/td&gt;
&lt;td&gt;65.7%&lt;/td&gt;
&lt;td&gt;not in that table&lt;/td&gt;
&lt;td&gt;different setup&lt;/td&gt;
&lt;td&gt;72.6%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Computer use speed&lt;/td&gt;
&lt;td&gt;Time per OSWorld task&lt;/td&gt;
&lt;td&gt;about 75 min&lt;/td&gt;
&lt;td&gt;n/a&lt;/td&gt;
&lt;td&gt;n/a&lt;/td&gt;
&lt;td&gt;about 40 min&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Automation&lt;/td&gt;
&lt;td&gt;AutomationBench&lt;/td&gt;
&lt;td&gt;18.1%&lt;/td&gt;
&lt;td&gt;17.4%&lt;/td&gt;
&lt;td&gt;31.4%&lt;/td&gt;
&lt;td&gt;41.4%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Broad intelligence&lt;/td&gt;
&lt;td&gt;Artificial Analysis Intelligence Index&lt;/td&gt;
&lt;td&gt;60.9&lt;/td&gt;
&lt;td&gt;62.1&lt;/td&gt;
&lt;td&gt;65.7&lt;/td&gt;
&lt;td&gt;61.2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Hard exam with tools&lt;/td&gt;
&lt;td&gt;Humanity's Last Exam&lt;/td&gt;
&lt;td&gt;not listed&lt;/td&gt;
&lt;td&gt;63.8%&lt;/td&gt;
&lt;td&gt;65.0%&lt;/td&gt;
&lt;td&gt;57.2%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Spatial / CAD style work&lt;/td&gt;
&lt;td&gt;BenchCAD&lt;/td&gt;
&lt;td&gt;83.3%&lt;/td&gt;
&lt;td&gt;67.5%&lt;/td&gt;
&lt;td&gt;84.3%&lt;/td&gt;
&lt;td&gt;95.9%&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Astra is stronger when the job is "do the work inside software."&lt;/strong&gt; Computer use and automation both jump from Sol. So does finishing a loop in the terminal. OpenAI also says Astra finishes computer-use tasks about 47% faster than Sol on OSWorld, and about 1.9x faster than the current Sol Codex setup on Mind2Web.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fable 5.1 is stronger on some independent "how smart is this agent" scores.&lt;/strong&gt; It leads the Intelligence Index. In independent coding-agent tests, Claude Code still looks slightly ahead. If your workflow is a long reasoning session over a big repo, Fable 5.1 is not the old model.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fable 5 is the older sibling.&lt;/strong&gt; Same $10 / $50 list price as 5.1. The cache price is worse, and it is a clear step behind 5.1 on Terminal-Bench and AutomationBench.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sol is the budget workhorse.&lt;/strong&gt; It is close to Astra on DeepSWE. It is far behind on Terminal-Bench 4.0 (37.3% vs 57.9%) and AutomationBench (18.1% vs 41.4%). For "write me a player controller" it is often enough. For "open the editor, change the scene, play, fix, repeat" it is the previous generation.&lt;/p&gt;

&lt;p&gt;Astra also got better at spatial work and at judging how things look. That is the part game developers will feel. And Playco (Game Company) said the model placed objects in a way that made more sense. It also copied reference images better. Inside Unity, the UI it made responded more cleanly.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Takeaway:&lt;/strong&gt; Use Sol when tokens are the budget. Use Fable 5.1 when a long coding agent has to think through a big project. Use Astra when the agent has to act inside a tool, see the result, and keep going.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  What Playco and OpenAI actually did
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://www.play.co/about" rel="noopener noreferrer"&gt;Playco&lt;/a&gt; started as an instant-gaming studio. The idea was games you can play without installing an app, on platforms like Facebook, LINE, Zoom, Discord, and similar social apps. Titles such as &lt;em&gt;EverWing&lt;/em&gt; came from that world.&lt;/p&gt;

&lt;p&gt;What they built with Astra is &lt;strong&gt;Playbot&lt;/strong&gt;, an AI-powered IDE for professional game developers. OpenAI published the customer story on launch day: &lt;a href="https://openai.com/index/playco-game-prototyping-with-astra/" rel="noopener noreferrer"&gt;Playco cut manual fixes 50% prototyping games with GPT-6 Astra&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The important sentence in that story is this: Playbot &lt;strong&gt;connects directly to engines such as Unity and Godot&lt;/strong&gt;, so models can edit scenes, play and test games, check changes, and work in parallel inside the tools developers already use.&lt;/p&gt;

&lt;p&gt;The experiment they reported:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The team asked Astra to build an unthemed grey box from simple primitives.&lt;/li&gt;
&lt;li&gt;They made a few gameplay and art passes on that foundation.&lt;/li&gt;
&lt;li&gt;From the same grey box, Astra produced &lt;strong&gt;three themed prototypes in one go&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Most of those prototypes worked on the first take. One cyberpunk version needed a performance fix. The others did not need another engineering pass.&lt;/li&gt;
&lt;li&gt;Compared with the previous model, Playco reports &lt;strong&gt;about 50% fewer manual fixes&lt;/strong&gt;.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Joao Vieira, Playco's lead product engineer, said the first prototype was already strong. The remaining changes were about their gameplay taste, not about fixing a broken build.&lt;/p&gt;

&lt;p&gt;They also said Astra was better at placing objects in space, copying reference images, making UI that scales in Unity, and game feel. Because Playbot can let the model play the game, Astra caught bugs and flagged player-experience issues without waiting for a human to notice.&lt;/p&gt;

&lt;p&gt;Read that 50% figure as a customer story, not a lab benchmark. It still tells you something useful. Playco is paying for Astra and connecting it to Unity and Godot for real prototype work.&lt;/p&gt;

&lt;p&gt;The stack looks like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;You: "Make me a small zombie shooter"
        |
        v
GPT-6 Astra (the model)
        |
        v
Playco's tooling layer (Playbot)
        |
        v
Unity or Godot
  - create / edit scene
  - create / edit scripts
  - change objects and components
  - run the game
  - inspect the result
  - fix, then run again
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Playco sits in the middle box. OpenAI supplies the model. Unity and Godot stay the engines. The unanswered public question is what that middle box is made of. That is the next section.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Takeaway:&lt;/strong&gt; Playco developed with Playbot, a new AI native IDE. For the development they used Astra as the model.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  How Astra can be integrated: MCP, native tools, or desktop control
&lt;/h2&gt;

&lt;p&gt;OpenAI's demo video looked like Astra is a new desktop control agent. It can control the mouse and keyboard and the screen. But it is not the only way to integrate Astra into a game development workflow.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Native or custom engine tools
&lt;/h3&gt;

&lt;p&gt;This is the Playco-shaped path.&lt;/p&gt;

&lt;p&gt;The model does not click &lt;code&gt;GameObject &amp;gt; Create Empty&lt;/code&gt;. It calls operations the engine already understands:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;create a game object&lt;/li&gt;
&lt;li&gt;add a component&lt;/li&gt;
&lt;li&gt;set a transform&lt;/li&gt;
&lt;li&gt;create or open a scene&lt;/li&gt;
&lt;li&gt;attach a script&lt;/li&gt;
&lt;li&gt;enter Play Mode&lt;/li&gt;
&lt;li&gt;read the console&lt;/li&gt;
&lt;li&gt;capture a screenshot or a bit of game state&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Those calls can be a custom OpenAI connector, a Unity Editor plugin, a Godot editor plugin, or a mix. OpenAI's public Playco write-up does &lt;strong&gt;not&lt;/strong&gt; say the transport is MCP. It only says the model is connected to Unity and Godot and can edit, play, and check the result.&lt;/p&gt;

&lt;p&gt;This difference matters in Unity. A Unity scene is not just a folder of &lt;code&gt;.cs&lt;/code&gt; files. It is saved editor data: GameObjects, prefabs, components, lighting, UI canvases, addressable groups. A model that only edits scripts is not the same as an agent that can change the scene.&lt;/p&gt;

&lt;p&gt;Godot is easier if you only edit files, because scenes are text (&lt;code&gt;.tscn&lt;/code&gt;) and scripts are ordinary files. Even there, being able to run the game, read errors, and tweak nodes through the editor is a different product than a chat that dumps GDScript.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. MCP (Model Context Protocol)
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://modelcontextprotocol.io/" rel="noopener noreferrer"&gt;MCP&lt;/a&gt; is one standard way to expose those same operations.&lt;/p&gt;

&lt;p&gt;Think of MCP as a plug format. ChatGPT, Codex, Cursor, or another host speaks MCP. A Unity or Godot MCP server offers tools. The model then reasons in a loop:&lt;/p&gt;

&lt;p&gt;"I need a player, so I call &lt;code&gt;create_game_object()&lt;/code&gt;, add a character controller, attach a script, run the game, read the console, fix the jump bug, run again."&lt;/p&gt;

&lt;p&gt;A Unity MCP server might offer tools such as:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;create_game_object()
modify_component()
create_scene()
set_transform()
run_game()
inspect_console()
capture_game_state()
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is much more powerful than generating a C# file in chat. It is also not magic. The model can only do what the server exposes, and only with the permissions you gave it.&lt;/p&gt;

&lt;p&gt;You can already try this path. Community Unity MCP bridges exist, including &lt;a href="https://github.com/CoplayDev/unity-mcp" rel="noopener noreferrer"&gt;CoplayDev/unity-mcp&lt;/a&gt; and &lt;a href="https://github.com/codergamester/mcp-unity" rel="noopener noreferrer"&gt;CoderGamester/mcp-unity&lt;/a&gt;. Unity is also building a more official &lt;a href="https://unity.com/features/ai" rel="noopener noreferrer"&gt;AI Gateway&lt;/a&gt; with a relay, a tool registry, and project-level permissions. Godot has community MCP servers as well.&lt;/p&gt;

&lt;p&gt;None of those are Playbot. They are the same &lt;em&gt;kind&lt;/em&gt; of interface: structured tools into the editor.&lt;/p&gt;

&lt;p&gt;I already wrote more about the security side of MCP in &lt;a href="https://www.guardingpearsoftware.com/blog/is-mcp-a-security-concern-for-game-developers-26715" rel="noopener noreferrer"&gt;Is MCP a security concern for game developers?&lt;/a&gt;. Short version: tools that can edit your project are powerful, and they expand what a bad prompt or a bad server can touch.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Desktop control (computer use)
&lt;/h3&gt;

&lt;p&gt;The third setup is the one people picture from the videos.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;GPT-6 Astra
    |
    v
computer-use actions
    |
    v
mouse, keyboard, and screen
    |
    v
the Unity or Godot editor, used like a human
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Astra is unusually good at this. That is a big part of why OpenAI is pushing it. In principle it can open the editor, click through menus, type into the Inspector, press Play, and read the Game view.&lt;/p&gt;

&lt;p&gt;In practice this is the fragile path. UI layouts change. A modal dialog blocks the next click. A pixel-level miss creates the wrong object. A long playtest is expensive, because the model is watching frames instead of calling &lt;code&gt;run_game()&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Desktop control is a fallback when no engine API exists. It is a poor first choice if you can expose real tools.&lt;/p&gt;

&lt;h3&gt;
  
  
  A fourth path people mix in: the game never leaves ChatGPT
&lt;/h3&gt;

&lt;p&gt;There is another demo that looks like "Astra made a game" and has nothing to do with Unity or Godot.&lt;/p&gt;

&lt;p&gt;ChatGPT can host an interactive widget. Apps SDK or MCP can serve a small React (or similar) game that runs inside the chat:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ChatGPT
  ├── the conversation
  ├── MCP tools
  └── a game widget
         └── the game runs inside ChatGPT
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;OpenAI also points at &lt;a href="https://openai.com/index/gpt-6-astra/" rel="noopener noreferrer"&gt;Sites in ChatGPT&lt;/a&gt;, where Astra can create websites, web apps, and games from a prompt, then host and share them. That is fine for a toy or a pitch. It also works for a web mini-game. It is not your Unity player, and it is not your Godot export.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Takeaway:&lt;/strong&gt; If a video shows GPT building in Unity, do not assume it is driving your desktop. It may have a tool connection into the engine. It may also be a web game that never opened an editor.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  What is possible yet
&lt;/h2&gt;

&lt;p&gt;Here is the honest "today" list, a few days after launch.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Possible, if you have access and you build the connection:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Grey-box prototypes from a short brief, then several themes on the same foundation (this is the Playco result).&lt;/li&gt;
&lt;li&gt;An agent that edits scenes &lt;em&gt;and&lt;/em&gt; scripts, then plays the result, if you give it engine tools (Playbot-style, or MCP, or a custom plugin).&lt;/li&gt;
&lt;li&gt;Faster first takes on layout, simple combat loops, menus, and "make this look more like the reference image."&lt;/li&gt;
&lt;li&gt;Parallel helpers inside the same project, if your tools allow it. One agent can work on the player while another works on enemies or a UI screen.&lt;/li&gt;
&lt;li&gt;Supervision from ChatGPT or Codex: you review diffs, reject a bad scene edit, and steer the next pass.&lt;/li&gt;
&lt;li&gt;Small playable games &lt;em&gt;inside&lt;/em&gt; ChatGPT, with no engine install.&lt;/li&gt;
&lt;li&gt;Community MCP into a local Unity or Godot editor, if you accept the setup work and the security tradeoff.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Possible in principle, but a worse idea:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Letting Astra click through the Unity or Godot UI with computer use, the same way a junior would. It can work for a short demo. It will fight you on a real project.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;What from Playco's demo you can copy:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The big change is not better C#. It is this loop:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;old:  LLM → code → you paste → you press Play → you fix
new:  LLM → agent → engine → observe → test → modify → repeat
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The model is no longer only saying "here is a player controller." It is closer to "I will add the controller, put it in the scene, run the game, notice that jumping does not work, inspect the console, change the script, and run again."&lt;/p&gt;

&lt;p&gt;That is why the Playco demo looks more capable than a chat that only writes a script.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is not possible yet
&lt;/h2&gt;

&lt;p&gt;A short list, so hype does not set your sprint plan.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;You cannot install Playbot as a public Unity or Godot package today.&lt;/strong&gt; Playbot is Playco's product. OpenAI did not ship a "GPT-6 Astra for Unity" button.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The public story does not prove Playco uses MCP.&lt;/strong&gt; The connection exists. The protocol is not named. Do not wait for an official "OpenAI MCP for Unity" stamp that may never arrive. You can still build an MCP server yourself.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Astra will not ship your game.&lt;/strong&gt; Art direction, economy, live ops, platform cert, accessibility, and the last 20% of game feel still need people. Playco's own quote is about &lt;em&gt;taste&lt;/em&gt; being the remaining work after the first prototype.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A prompt is not a design document.&lt;/strong&gt; "Make me a small zombie shooter" can produce a grey box. It will not produce your combat identity. It also will not produce your retention loop or a store page that sells.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;File-only agents are not engine agents.&lt;/strong&gt; In Unity especially, generating &lt;code&gt;.cs&lt;/code&gt; files is not the same as editing the scene, prefabs, and serialized components.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Broad access is still rolling out.&lt;/strong&gt; If your team is not in the first wave, you cannot treat Astra as the default model on Monday morning.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tokens are not free.&lt;/strong&gt; A play-and-fix loop can burn a lot of context. Sol is cheaper per token. Fable 5.1 is cheaper on cache. Astra can be cheaper per &lt;em&gt;finished&lt;/em&gt; prototype, or it can be a surprise bill if the agent keeps retrying and never gets there.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Safety gates can stop a session.&lt;/strong&gt; Astra is a more tightly monitored model than Sol. Some long tool sessions may pause for review. That is annoying in a game jam. It is also why OpenAI shipped it this way.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;People still sit between the model and the engine. OpenAI's own Unity case study talks about developers who build these workflows, inspect them, and supervise them. They are describing a job that still needs a person.&lt;/p&gt;

&lt;h2&gt;
  
  
  How this changes Unity and Godot development
&lt;/h2&gt;

&lt;p&gt;Astra will not replace Unity or Godot developers. It will change a normal workday, first on prototypes, then on production chores.&lt;/p&gt;

&lt;h3&gt;
  
  
  For Unity developers
&lt;/h3&gt;

&lt;p&gt;Unity is where engine tools matter most. A lot of a Unity project lives in YAML scenes and prefabs. Inspector values are in there too, and a code model never sees that data.&lt;/p&gt;

&lt;p&gt;If you only let Astra write scripts, you will get the 2024 experience. You get a decent &lt;code&gt;PlayerController.cs&lt;/code&gt;. The scene is still broken, and a reference is missing in the Inspector.&lt;/p&gt;

&lt;p&gt;If you expose editor operations (native plugin or MCP), Astra can do the parts that used to eat a morning:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;spawn a player and a floor, add a camera, then wire the references&lt;/li&gt;
&lt;li&gt;add a canvas and a health bar that actually stretches&lt;/li&gt;
&lt;li&gt;press Play, notice the character falls through the floor, fix the collider, press Play again&lt;/li&gt;
&lt;li&gt;duplicate a grey box into a second theme without you rebuilding the hierarchy by hand&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That is a real change for pre-production. Grey boxes get cheaper, and so do theme variants. A solo developer can test more combat ideas in a day.&lt;/p&gt;

&lt;p&gt;It does not remove the Unity-shaped problems you already know: Addressables, IL2CPP, platform plugins, render pipelines, and "why is this prefab override different in the build." Those still need a person who has shipped a player.&lt;/p&gt;

&lt;p&gt;If you want to try a local version of the loop, start with a dedicated test project. Use a trusted MCP server or a small Editor tool API. Make a hard rule that the agent cannot touch your main branch. Watch the console. Treat every scene diff like a pull request.&lt;/p&gt;

&lt;h3&gt;
  
  
  For Godot developers
&lt;/h3&gt;

&lt;p&gt;Godot already stores a lot of the game as text. A strong coding agent (Astra, Fable 5.1, or even Sol) can get further on files alone than it can in Unity.&lt;/p&gt;

&lt;p&gt;The Playco story still applies. Prettier GDScript is not the win. The win is the agent running the scene. It can see that the character controller feels floaty, then change the node properties until a playtest looks right.&lt;/p&gt;

&lt;p&gt;Godot's lighter editor and smaller project sizes also make MCP or a custom plugin easier to set up than a giant Unity repo. If you already use version control and read &lt;code&gt;.tscn&lt;/code&gt; diffs, watching an agent is closer to reviewing a normal pull request.&lt;/p&gt;

&lt;h3&gt;
  
  
  What will actually change in studios
&lt;/h3&gt;

&lt;p&gt;In the near term, expect this:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Work&lt;/th&gt;
&lt;th&gt;What changes&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Grey box and first playable&lt;/td&gt;
&lt;td&gt;Much faster, if the engine connection exists&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Theme / skin variants of a prototype&lt;/td&gt;
&lt;td&gt;The Playco "three from one" pattern becomes normal&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Boilerplate systems&lt;/td&gt;
&lt;td&gt;Player move, simple AI, menus, debug overlays&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Playtest and "does jump work"&lt;/td&gt;
&lt;td&gt;Agents can run and report, not only write&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Direction and game feel&lt;/td&gt;
&lt;td&gt;Still human, including shipping. Maybe more human, because more prototypes exist&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Live title work&lt;/td&gt;
&lt;td&gt;Unchanged. A faster prototype is not a safer live game, and it does not fix cheats or economy&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The job shifts. You spend less time typing the first version. You spend more time defining the outcome and reviewing what the agent did. You also decide which tools the agent is allowed to use.&lt;/p&gt;

&lt;p&gt;That is a skill. Teams that treat the agent like an unpaid intern with root access will make a mess. Teams that treat it like a junior with a checklist will ship more experiments.&lt;/p&gt;

&lt;p&gt;So, will GPT-6 Astra change game development?&lt;/p&gt;

&lt;p&gt;It changes the &lt;strong&gt;prototype loop&lt;/strong&gt;. The model can act inside the editor instead of only generating code. For Unity and Godot, the teams that get there will not be the ones who paste better scripts. They will be the ones who give the model a safe, structured door into the editor. A person still owns taste and systems. They also own everything that happens after the grey box works.&lt;/p&gt;

&lt;p&gt;The rest of game development (the part players pay for) is still yours.&lt;/p&gt;

&lt;p&gt;Read more on my blog: &lt;a href="https://www.guardingpearsoftware.com" rel="noopener noreferrer"&gt;www.guardingpearsoftware.com&lt;/a&gt;!&lt;/p&gt;

</description>
    </item>
    <item>
      <title>How Cybercriminals Are Targeting Job Seekers</title>
      <dc:creator>GuardingPearSoftware</dc:creator>
      <pubDate>Fri, 04 Sep 2026 14:25:00 +0000</pubDate>
      <link>https://dev.to/guardingpearsoftware/how-cybercriminals-are-targeting-job-seekers-jf3</link>
      <guid>https://dev.to/guardingpearsoftware/how-cybercriminals-are-targeting-job-seekers-jf3</guid>
      <description>&lt;p&gt;As more companies recruit online and millions of professionals rely on remote work, freelance marketplaces, and job boards, attackers have found new ways to disguise scams as career opportunities.&lt;/p&gt;

&lt;p&gt;These scams can not only waste your time, but they can also lead to financial loss, steal your identity, or even compromise your entire digital life. As online recruitment continues to grow, so does the need for job seekers to stay vigilant. This guide will help you recognize the red flags, protect your personal information, and navigate your job search safely, without letting scammers derail your future.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why job seekers are targets of cybercriminals
&lt;/h2&gt;

&lt;p&gt;Job seekers are vulnerable because they are already expecting to receive communications from unfamiliar people and organizations.&lt;/p&gt;

&lt;p&gt;A recruiter contacting someone through LinkedIn, SEEK, or a freelance marketplace may therefore not immediately appear suspicious. A message offering a remote position, interview, contract, or freelance assignment fits naturally into the person's expectations.&lt;/p&gt;

&lt;p&gt;The same is true for freelancers. Professionals on platforms such as Upwork and Fiverr routinely communicate with strangers, receive project proposals, download documents, and exchange files with clients. This creates opportunities for attackers to hide malicious activity inside an otherwise normal business interaction.&lt;/p&gt;

&lt;p&gt;Employment-related information can be extremely valuable for cybercriminals. A resume may contain a person's full name, phone number, email address, employment history, education, professional qualifications, location, and other information that can be used for identity theft or additional social-engineering attacks.&lt;/p&gt;

&lt;h2&gt;
  
  
  How Cybercriminals target job seekers
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Fake job advertisements
&lt;/h3&gt;

&lt;p&gt;One of the simplest techniques is the fake job posting.&lt;/p&gt;

&lt;p&gt;Criminals create advertisements for positions that appear real but do not actually exist. The advertisements may promise unusually high salaries, remote work, flexible schedules, minimal qualifications, or immediate hiring.&lt;/p&gt;

&lt;p&gt;The objective varies. Some scammers simply attempt to steal money from applicants. Others collect personal information or direct victims to phishing websites.&lt;/p&gt;

&lt;p&gt;Freelance marketplaces are also affected. Upwork warns that common scams include unrealistic offers, vague job descriptions, requests to communicate outside the platform, phishing messages, and demands for money or gift cards.&lt;/p&gt;

&lt;p&gt;AI has made the creation of these fake advertisements easier. Attackers can generate polished descriptions tailored to specific professions.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. LinkedIn
&lt;/h3&gt;

&lt;p&gt;LinkedIn is a valuable platform for networking, sharing insights, and discovering career opportunities, but its visibility can also make users attractive targets for cybercriminals. Attackers create LinkedIn profiles using stolen photographs, copied employment histories, or AI-generated profile information. They can then approach professionals directly with supposedly attractive opportunities.&lt;/p&gt;

&lt;p&gt;Even seemingly casual conversations can be used to gather sensitive information about individuals or organizations.&lt;/p&gt;

&lt;p&gt;To reduce the risk, regularly review your LinkedIn privacy settings, avoid publicly sharing sensitive recruitment or workplace details, and be cautious when accepting connection requests from unfamiliar accounts. Check details such as the person's job title, email address, location, follower count, and how long the account has been active.&lt;/p&gt;

&lt;p&gt;If you don't know or trust someone, consider declining their connection request.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Malicious interview documents and coding tests
&lt;/h3&gt;

&lt;p&gt;Perhaps one of the most dangerous developments is the use of malware disguised as part of the hiring process. A candidate may receive a document described as an interview assignment, job description, technical test, company presentation, contract, or application form. Instead, the file may contain malicious code or direct the victim to a website designed to compromise their computer.&lt;/p&gt;

&lt;p&gt;North Korean-linked threat actors have repeatedly used this approach to target software developers on LinkedIn through a sophisticated social engineering campaign. The approach involves establishing a fabricated online persona with a credible professional background, which is used to build a rapport with a developer over an extended period.&lt;/p&gt;

&lt;p&gt;After gaining the target's trust, the attacker will usually steer the conversation toward a lucrative job opportunity or a coding project, eventually asking the developer to download and run a "test" file or a coding challenge. This file is usually malware. Once executed, the malware can compromise the developer's system, allowing the attackers to steal credentials or gain a foothold into the developer's corporate network for further espionage.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Building Trust Before Making Their Move
&lt;/h3&gt;

&lt;p&gt;The most sophisticated social engineering attacks don't necessarily look suspicious at the beginning. An attacker may spend considerable time communicating with the target.&lt;/p&gt;

&lt;p&gt;They can discuss the victim's experience, ask about career goals, explain the company's supposed culture, and answer questions about the position. They may even conduct multiple rounds of interviews. This gradual approach exploits an important psychological principle: people tend to become more comfortable with requests after establishing familiarity with the person making them.&lt;/p&gt;

&lt;p&gt;Once that relationship has been established, a malicious request can appear to be simply another step in the hiring process.&lt;/p&gt;

&lt;h2&gt;
  
  
  How job seekers can protect themselves
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Research the employer independently.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Do not rely solely on the contact information supplied by the recruiter. Search for the company through independent sources. Check whether the company's website, email domain, physical address, employee profiles, and job advertisements are consistent.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Verify recruiters.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Check whether the person's employment history is consistent, whether the profile appears recently created, and whether the recruiter can be independently verified through the organization's official channels. Never open or download unsolicited files, especially PDFs and Word documents, until you have verified the sender.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Use a dedicated email for job search&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;To minimize your exposure during a job search, it's wise to use a dedicated, separate email address exclusively for applications and outreach. This can help you organize and track which companies, platforms, or individuals have access to your contact information, and also protects your primary personal or work email.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Do not pay.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Requests for deposits, cryptocurrency payments, gift cards, or transfers are major warning signs. Do not pay for training, equipment, or background checks.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Apply through official channels&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Stick to secure application channels by submitting your applications directly through official company career pages or well-established, trusted recruitment platforms.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Slow down&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Social engineering depends heavily on urgency and emotional pressure. Taking time to independently verify an opportunity can break the attacker's momentum.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Alert others&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you encounter these kinds of scams, let your friends and family know about the scam so they can avoid falling for it too.&lt;/p&gt;

&lt;h2&gt;
  
  
  Companies Also Have a Role to Play
&lt;/h2&gt;

&lt;p&gt;The responsibility shouldn't fall entirely on job seekers. Organizations should recognize that attackers can impersonate their recruiters and hiring managers to target candidates.&lt;/p&gt;

&lt;p&gt;Companies can help by clearly communicating how their recruitment works. Companies should also monitor for fraudulent job advertisements and impersonating recruitment accounts, particularly when their brand is being used to target large numbers of candidates.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Job seekers are becoming targets because the hiring process naturally requires people to communicate with strangers, exchange documents, share professional information, and trust unfamiliar organizations. As remote employment and freelance work continue to expand, the job search itself is becoming another major vector in the fight against cybercrime.&lt;/p&gt;

&lt;p&gt;Read more on my blog: &lt;a href="https://www.guardingpearsoftware.com" rel="noopener noreferrer"&gt;www.guardingpearsoftware.com&lt;/a&gt;!&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Unity is replacing Mono with CoreCLR. What changes</title>
      <dc:creator>GuardingPearSoftware</dc:creator>
      <pubDate>Mon, 31 Aug 2026 06:13:47 +0000</pubDate>
      <link>https://dev.to/guardingpearsoftware/unity-is-replacing-mono-with-coreclr-what-changes-1cmo</link>
      <guid>https://dev.to/guardingpearsoftware/unity-is-replacing-mono-with-coreclr-what-changes-1cmo</guid>
      <description>&lt;p&gt;When you build a Unity player today, you pick a scripting backend. For a long time the choices were Mono or IL2CPP.&lt;/p&gt;

&lt;p&gt;That list is about to change. Unity is replacing Mono with CoreCLR. But no worries, IL2CPP stays. So the new choice is CoreCLR or IL2CPP.&lt;/p&gt;

&lt;p&gt;It is a real change after many years of Mono.&lt;/p&gt;

&lt;p&gt;So let us explore what this switch mean for you as a game developer and your games runtime.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is a runtime?
&lt;/h2&gt;

&lt;p&gt;A runtime is the program that takes your compiled C# and makes it run. It loads assemblies, manages memory, starts threads, and talks to the operating system.&lt;/p&gt;

&lt;p&gt;You do not write the runtime. You write &lt;code&gt;MonoBehaviour&lt;/code&gt; scripts. Unity then picks a backend and that backend runs those scripts.&lt;/p&gt;

&lt;p&gt;The backend is why a Windows Mono build ships &lt;code&gt;Assembly-CSharp.dll&lt;/code&gt;, and why an IL2CPP build ships &lt;code&gt;GameAssembly.dll&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is Mono?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Mono&lt;/strong&gt; is the runtime Unity has used for years for JIT (Just In Time) builds and for the Editor. JIT means the runtime compiles your C# on the machine that runs the game.&lt;/p&gt;

&lt;p&gt;In a Mono player, your game scripts usually live in managed DLLs. &lt;code&gt;Assembly-CSharp.dll&lt;/code&gt; is the common one. A Mono virtual machine loads those DLLs and runs them.&lt;/p&gt;

&lt;p&gt;Unity does not use stock Mono from the wider C# world. It uses a custom fork. That fork is why Unity C# often sat behind current .NET. New language features, a newer garbage collector, and many current libraries arrived late or not at all.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is CoreCLR?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;CoreCLR&lt;/strong&gt; is Microsoft's current open source .NET runtime. It is the runtime that powers modern .NET apps. Which Unity now also will use for its games.&lt;/p&gt;

&lt;p&gt;CoreCLR is still a JIT runtime. Your C# is still managed code, but the runtime under that C# is newer.&lt;/p&gt;

&lt;p&gt;A few concrete differences:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Feature&lt;/th&gt;
&lt;th&gt;Mono&lt;/th&gt;
&lt;th&gt;CoreCLR&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Runtime&lt;/td&gt;
&lt;td&gt;Old fork&lt;/td&gt;
&lt;td&gt;Modern .NET&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;JIT&lt;/td&gt;
&lt;td&gt;Old JIT&lt;/td&gt;
&lt;td&gt;RyuJIT with tiered compilation&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Garbage collector&lt;/td&gt;
&lt;td&gt;Boehm GC (slow)&lt;/td&gt;
&lt;td&gt;CLR GC (fast)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;.NET surface&lt;/td&gt;
&lt;td&gt;Older APIs&lt;/td&gt;
&lt;td&gt;Newer APIs (.NET 10, C# 14 planned)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Tiered compilation means the runtime compiles your code twice. The first pass is fast to produce but not fully optimized, so your game starts quickly. Then, while the game runs, the runtime recompiles the hot paths (the code that runs most often) with heavier optimizations. Because of this, a fresh start can measure slower than a session that has already warmed up. Unity also notes that the CoreCLR player is still in active development, so don't treat a first timed run as the final performance number.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Takeaway&lt;/strong&gt;: CoreCLR is not a new language. You still write C#. The runtime under that C# is changing.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Where this lands in Unity versions
&lt;/h2&gt;

&lt;p&gt;Unity has used both "6.8" and "Unity 7" in public posts while this work landed. The order of the work is easier to follow than the names.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Release&lt;/th&gt;
&lt;th&gt;What happens&lt;/th&gt;
&lt;th&gt;What you do&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Unity 6.6&lt;/td&gt;
&lt;td&gt;Fast Enter Play Mode is the default for new projects. You can serialize &lt;code&gt;Dictionary&lt;/code&gt; fields. Unity starts using the mimalloc allocator. Burst becomes a built-in module.&lt;/td&gt;
&lt;td&gt;Turn on Fast Enter Play Mode in an existing project. Fix static state that Play Mode used to wipe.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Unity 6.7 LTS&lt;/td&gt;
&lt;td&gt;Last release built on Mono. An experimental CoreCLR player exists for Windows, macOS, and Linux, next to Mono and IL2CPP.&lt;/td&gt;
&lt;td&gt;Test CoreCLR in a branch. Do not ship that experimental player.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Unity 6.8 / Unity 7&lt;/td&gt;
&lt;td&gt;Mono is removed as a scripting option. CoreCLR becomes the C# foundation. Unity 7 (beta planned for December 2026, full release in Q1 2027) is built on that core.&lt;/td&gt;
&lt;td&gt;This is the upgrade you plan for.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Unity's 6.7 manual is clear about the experimental player. It is a technical preview for testing. It is not for production. It is only for macOS, Windows, and Linux build profiles. It also stays on the current .NET Standard 2.1 and C# 9 surface. You do not get .NET 10 in that preview.&lt;/p&gt;

&lt;p&gt;Unity is also aiming for performance parity at the cutover. Some things will be faster, others will be slower. The bigger speed work is planned after the new runtime is in place.&lt;/p&gt;

&lt;p&gt;And one detail that is easy to miss: the 6.7 Editor still embeds Mono. If you pick CoreCLR in Player Settings, that choice is for the desktop player you &lt;em&gt;build&lt;/em&gt;. Play Mode in the Editor is still Mono.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Takeaway&lt;/strong&gt;: With Unity 6.7, you can test the CoreCLR player in the Editor. But you should not ship it yet.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  The garbage collector
&lt;/h2&gt;

&lt;p&gt;Mono uses the Boehm–Demers–Weiser Garbage Collector (Boehm GC). It is very conservative, that means it does not move objects in memory. It cannot always tell a live object from a random number that looks like a pointer, and it never packs memory back together. That is one reason GC spikes show up as frame hitches.&lt;/p&gt;

&lt;p&gt;CoreCLR uses a precise, moving, generational collector. It knows which objects are still alive. It can compact memory. Unity staff have said the CoreCLR large object threshold is 85 KB. That is a different rule than the old Boehm setup on desktop and mobile.&lt;/p&gt;

&lt;p&gt;If you profile a Mono editor or a Mono desktop player, this is the change you will notice first. If you ship on IL2CPP, you unfortunately will not see this change at the moment. IL2CPP keeps the Boehm collector.&lt;/p&gt;

&lt;p&gt;Unity 6.6 also starts using mimalloc, Microsoft's allocator. It handles multithreaded allocation better than the old path. Code that uses the C# Job System can get more stable allocation from the engine update alone.&lt;/p&gt;

&lt;h2&gt;
  
  
  Faster Play Mode, and static fields that stop resetting
&lt;/h2&gt;

&lt;p&gt;For years, entering Play Mode meant a full domain reload. Static fields reset. The editor paused while that happened.&lt;/p&gt;

&lt;p&gt;Fast Enter Play Mode has existed since 2019 but finally in 6.6 it becomes the default for new projects. By the CoreCLR cutover it is the only option. Unity will no longer unload the whole managed world for a script change. Later they want finer reloads, so only the assemblies you changed come back in.&lt;/p&gt;

&lt;p&gt;Static variables then stop resetting for free. If your game "works" because Play Mode wiped a static cache, it will look broken until you clear that cache yourself.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight csharp"&gt;&lt;code&gt;&lt;span class="c1"&gt;// This used to look fine. Domain reload reset the list every time you pressed Play.&lt;/span&gt;
&lt;span class="c1"&gt;// With Fast Enter Play Mode, the list keeps growing across Play sessions.&lt;/span&gt;
&lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;static&lt;/span&gt; &lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;EnemyCache&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;static&lt;/span&gt; &lt;span class="k"&gt;readonly&lt;/span&gt; &lt;span class="n"&gt;List&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;Enemy&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;Alive&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="n"&gt;List&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;Enemy&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;();&lt;/span&gt;

    &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nf"&gt;RuntimeInitializeOnLoadMethod&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;RuntimeInitializeLoadType&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;SubsystemRegistration&lt;/span&gt;&lt;span class="p"&gt;)]&lt;/span&gt;
    &lt;span class="k"&gt;static&lt;/span&gt; &lt;span class="k"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;Reset&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="n"&gt;Alive&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Clear&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Unity also added helpers such as &lt;code&gt;[AutoStaticsCleanup]&lt;/code&gt;. Project Auditor can list the static fields that will keep old values.&lt;/p&gt;

&lt;h2&gt;
  
  
  Serialization and BinaryFormatter
&lt;/h2&gt;

&lt;p&gt;Unity 6.6 can serialize &lt;code&gt;Dictionary&amp;lt;TKey, TValue&amp;gt;&lt;/code&gt; with &lt;code&gt;[SerializeField]&lt;/code&gt;. You can stop writing wrapper lists or &lt;code&gt;ISerializationCallbackReceiver&lt;/code&gt; just to keep a dictionary in the Inspector.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;BinaryFormatter&lt;/code&gt; is on the way out. .NET 10 marks it obsolete cause of long standing security problems. If your save system or a plugin still uses it, replace it before the cutover. Unity points people at &lt;code&gt;JsonUtility&lt;/code&gt;, &lt;code&gt;DataContractSerializer&lt;/code&gt;, &lt;code&gt;System.Text.Json&lt;/code&gt;, or a plain &lt;code&gt;BinaryReader&lt;/code&gt; / &lt;code&gt;BinaryWriter&lt;/code&gt; pair.&lt;/p&gt;

&lt;h2&gt;
  
  
  IL2CPP is not going away
&lt;/h2&gt;

&lt;p&gt;CoreCLR is a JIT runtime, which works well on desktop players and will work in the Editor once CoreCLR ships there. For now, in 6.7, the Editor's Play Mode still runs on Mono.&lt;/p&gt;

&lt;p&gt;iOS, the consoles, and some other platforms do not allow JIT. Those targets need ahead of time compilation. That is what IL2CPP already does. Unity compiles your C# to IL first. Then &lt;code&gt;il2cpp&lt;/code&gt; turns that IL into C++, and a native compiler turns the C++ into a platform binary.&lt;/p&gt;

&lt;p&gt;Unity has said it has no plan to retire IL2CPP. CoreCLR's NativeAOT path does not cover every Unity platform.&lt;/p&gt;

&lt;p&gt;So the old Mono versus IL2CPP choice becomes CoreCLR versus IL2CPP.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Target&lt;/th&gt;
&lt;th&gt;Backend after Mono is gone&lt;/th&gt;
&lt;th&gt;What you get&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Editor (6.7)&lt;/td&gt;
&lt;td&gt;Mono (even if the player uses CoreCLR)&lt;/td&gt;
&lt;td&gt;Fast Enter Play Mode practice, not a CoreCLR test&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Windows / macOS / Linux player&lt;/td&gt;
&lt;td&gt;CoreCLR (JIT)&lt;/td&gt;
&lt;td&gt;New GC now, current .NET later&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;iOS, consoles, many mobile stores&lt;/td&gt;
&lt;td&gt;IL2CPP (AOT)&lt;/td&gt;
&lt;td&gt;The same AOT path as today&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;IL2CPP desktop or mobile&lt;/td&gt;
&lt;td&gt;IL2CPP&lt;/td&gt;
&lt;td&gt;Still Boehm GC; .NET 10 / C# 14 later&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;If you ship on iOS or a console, your production build will very likely still go out through IL2CPP. The editor will be faster and the C# version will be newer. But the on-device GC is still Boehm.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Takeaway&lt;/strong&gt;: Check where CoreCLR actually runs before you promise a smoother frame time on every platform.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  What will break
&lt;/h2&gt;

&lt;p&gt;Unity says most gameplay C# should keep compiling. The problems sit at the edges, mostly where C# meets native code.&lt;/p&gt;

&lt;p&gt;Mono's garbage collector did not move objects. A lot of native plugin code assumed that. CoreCLR's collector can move objects. Unity had to rework its own marshaling. Third party plugins that pin memory the old way, or pass raw pointers into C++, need a close look.&lt;/p&gt;

&lt;p&gt;Calls into Mono helper libraries such as &lt;code&gt;MonoPosixHelper.dll&lt;/code&gt; will not even fail at compile time. Unity will stop shipping those libraries. At runtime you get &lt;code&gt;DllNotFoundException&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Some old .NET habits will compile and then fail later:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;BinaryFormatter&lt;/code&gt; and some other old serializers&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Thread.Abort&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;AppDomain.CreateDomain&lt;/code&gt; and the old &lt;code&gt;DomainUnload&lt;/code&gt; cleanup path&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;AppDomain.CurrentDomain.GetAssemblies()&lt;/code&gt; during reload&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;Assembly.Location&lt;/code&gt; (it can come back empty)&lt;/li&gt;
&lt;li&gt;Direct P/Invoke into Mono libraries&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If your code still has &lt;code&gt;#if ENABLE_MONO&lt;/code&gt;, plan a replacement. Unity documents &lt;code&gt;ENABLE_MONO&lt;/code&gt; and &lt;code&gt;ENABLE_IL2CPP&lt;/code&gt; today, but there is no public &lt;code&gt;ENABLE_CORECLR&lt;/code&gt; symbol in the 6.7 scripting reference. When Mono leaves, those Mono-only branches go with it.&lt;/p&gt;

&lt;p&gt;A few behaviors also change. CoreCLR follows IEEE 754 more strictly than Mono's JIT did, so a few float results can differ. IL2CPP and Burst are not affected the same way. Static constructors can run later, or on a background thread, because they fire when the type is first used. CoreCLR is stricter about &lt;code&gt;public&lt;/code&gt; and &lt;code&gt;internal&lt;/code&gt; at runtime (reflection still works). Some conversions throw &lt;code&gt;OverflowException&lt;/code&gt; where they used to wrap, for example &lt;code&gt;IntPtr.ToInt32()&lt;/code&gt; on a 64-bit build.&lt;/p&gt;

&lt;p&gt;A green Editor compile is not a CoreCLR test. You have to build a player and play it.&lt;/p&gt;

&lt;h2&gt;
  
  
  What to check before you upgrade
&lt;/h2&gt;

&lt;p&gt;You can start with a list.&lt;/p&gt;

&lt;p&gt;Write down your native plugins, &lt;code&gt;DllImport&lt;/code&gt; calls, and any code that pins managed memory for C++. Gameplay scripts are usually fine. The native edge is where things break.&lt;/p&gt;

&lt;p&gt;Search your project and your plugin DLLs for &lt;code&gt;BinaryFormatter&lt;/code&gt;, &lt;code&gt;SoapFormatter&lt;/code&gt;, and &lt;code&gt;Thread.Abort&lt;/code&gt;. Grep will miss a compiled vendor DLL, so open those assemblies too.&lt;/p&gt;

&lt;p&gt;Turn on Fast Enter Play Mode and run Project Auditor's domain reload checks. Fix static lists, static events, and caches that never clear.&lt;/p&gt;

&lt;p&gt;Check Asset Store packages and SDKs for CoreCLR notes. An old analytics plugin can block the whole upgrade.&lt;/p&gt;

&lt;p&gt;On a spare branch, open Player Settings, find Scripting Backend, and pick CoreCLR (Experimental). Build a Windows, macOS, or Linux player. Play through login, saves, purchases, and any native store or video SDK.&lt;/p&gt;

&lt;p&gt;If the project compiles in the Editor but the CoreCLR build fails, start small. Build fewer scenes. Turn off optional plugins one at a time. Read the first real error in the log, not the pile of errors that follow it.&lt;/p&gt;

&lt;p&gt;If the player starts and then dies, open the player log first. Look for &lt;code&gt;TypeLoadException&lt;/code&gt;, &lt;code&gt;FileNotFoundException&lt;/code&gt;, or a static constructor that threw. A missing native file next to a managed wrapper is a common cause.&lt;/p&gt;

&lt;p&gt;Unity's Path to CoreCLR upgrade guide is the page to keep open. They have been updating it through 2026.&lt;/p&gt;

&lt;h2&gt;
  
  
  Does it affect the Obfuscator?
&lt;/h2&gt;

&lt;p&gt;The GuardingPearSoftware Obfuscator is built on Mono.Cecil. Despite the name, Mono.Cecil is not the Mono runtime; it is a library for reading and editing .NET assemblies. So yes, the Obfuscator will keep working with CoreCLR.&lt;/p&gt;

&lt;h2&gt;
  
  
  A practical mindset
&lt;/h2&gt;

&lt;p&gt;The CoreCLR switch is a runtime change. Your gameplay C# stays C#. The Editor, the player, and IL2CPP do not all switch on the same day.&lt;/p&gt;

&lt;p&gt;The work is at the native boundary, in old serializers, and in static state that Play Mode used to wipe for you. The time to look is while 6.7 still lets you compare Mono and CoreCLR side by side.&lt;/p&gt;

&lt;p&gt;Read more on my blog: &lt;a href="https://www.guardingpearsoftware.com" rel="noopener noreferrer"&gt;www.guardingpearsoftware.com&lt;/a&gt;!&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Cybercrime-as-a-Service: How Hacking is Becoming a Subscription Business</title>
      <dc:creator>GuardingPearSoftware</dc:creator>
      <pubDate>Sat, 29 Aug 2026 13:27:46 +0000</pubDate>
      <link>https://dev.to/guardingpearsoftware/cybercrime-as-a-service-how-hacking-is-becoming-a-subscription-business-30ld</link>
      <guid>https://dev.to/guardingpearsoftware/cybercrime-as-a-service-how-hacking-is-becoming-a-subscription-business-30ld</guid>
      <description>&lt;p&gt;For decades, launching a serious cyberattack required a combination of technical knowledge, programming skills, patience, and access to specialized infrastructure. That barrier has steadily eroded.&lt;/p&gt;

&lt;p&gt;Today, someone with limited technical knowledge can gain access to capabilities that once required an experienced hacker. The result is a fundamental change in the cyberthreat landscape.&lt;/p&gt;

&lt;p&gt;The arrests of individuals linked to the Scattered Spider collective are an example. A 19-year-old was allegedly involved in $115 million in extortion targeting thousands of organizations after joining the cybercrime collective at the age of 15 or 16.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why The Barrier to Entry Is Falling
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Cybercrime-as-a-Service
&lt;/h3&gt;

&lt;p&gt;One of the biggest forces behind this transformation is the rise of Cybercrime-as-a-Service (CaaS).&lt;/p&gt;

&lt;p&gt;The concept mirrors legitimate cloud and software businesses. Rather than building infrastructure from scratch, customers purchase access to an existing service.&lt;/p&gt;

&lt;p&gt;Criminal markets have adopted a similar model. This creates an environment in which cybercriminals can specialize while relying on other criminals for capabilities they do not possess.&lt;/p&gt;

&lt;p&gt;A technically inexperienced individual does not necessarily need to become proficient in penetration testing, reverse engineering, exploit development, or malware programming. They may only need enough knowledge to operate an existing platform.&lt;/p&gt;

&lt;h3&gt;
  
  
  Phishing Kits
&lt;/h3&gt;

&lt;p&gt;Phishing provides one of the clearest examples of how cyberattacks have become easier to launch.&lt;/p&gt;

&lt;p&gt;Historically, creating a convincing phishing campaign required some combination of web development, hosting knowledge, email infrastructure, social engineering expertise, and an understanding of how authentication systems worked.&lt;/p&gt;

&lt;p&gt;Modern phishing kits can package much of that complexity into relatively accessible tools.&lt;/p&gt;

&lt;p&gt;Criminals can obtain templates that imitate familiar login pages, configure campaigns, collect credentials, and monitor victims through centralized interfaces.&lt;/p&gt;

&lt;p&gt;Some kits imitate widely used services and corporate authentication portals. Tycoon 2FA, currently considered one of the best phishing kits on the market, costs around $120 for 10 days of access through Telegram. It comes with documentation, customer-support channels, and regular feature updates.&lt;/p&gt;

&lt;h3&gt;
  
  
  Stolen Credentials Eliminate the Need to Break In
&lt;/h3&gt;

&lt;p&gt;Another major factor is the enormous supply of stolen credentials available to criminals.&lt;/p&gt;

&lt;p&gt;Why spend time discovering how to compromise an organization when valid credentials may already exist?&lt;/p&gt;

&lt;p&gt;Infostealing malware has created a large underground supply of usernames, passwords, session information, cookies, and other authentication data. Criminals can trade this information, and specialized actors can use it to obtain access to corporate environments.&lt;/p&gt;

&lt;p&gt;This has helped create the market for initial access brokers.&lt;/p&gt;

&lt;p&gt;Initial-access brokers specialize in obtaining access to organizations and selling that access to other criminals. The buyer may have little interest in how the original compromise occurred.&lt;/p&gt;

&lt;p&gt;They simply want access. That separation between access acquisition and attack execution lowers the barrier to entry. A criminal who lacks the skills to compromise a corporate network may be able to purchase access and then use other services to conduct the next stages of an attack.&lt;/p&gt;

&lt;h3&gt;
  
  
  Automation Is Replacing Technical Labor
&lt;/h3&gt;

&lt;p&gt;Automation is another reason the barrier to entry is falling.&lt;/p&gt;

&lt;p&gt;Cyberattacks involve many repetitive tasks: identifying potential targets, scanning systems, testing credentials, distributing messages, monitoring compromised machines, and processing stolen information. Automation allows criminals to perform these activities at a scale that would be impossible manually.&lt;/p&gt;

&lt;p&gt;A tool that automatically identifies potential targets can replace hours of reconnaissance. Automated credential testing can replace manual login attempts. Automated phishing infrastructure can handle large numbers of victims.&lt;/p&gt;

&lt;p&gt;Botnets can distribute malicious activity across thousands of compromised devices. Automation therefore changes the economics of cybercrime. Instead of asking how many targets one attacker can handle, criminals can ask how many targets their infrastructure can handle.&lt;/p&gt;

&lt;h3&gt;
  
  
  Artificial Intelligence
&lt;/h3&gt;

&lt;p&gt;AI does not magically turn someone with no cybersecurity knowledge into an elite hacker. Advanced attacks still require expertise, operational security, infrastructure, and an understanding of complex environments. However, AI can reduce the amount of technical expertise required to carry out many individual tasks.&lt;/p&gt;

&lt;p&gt;An inexperienced attacker can use AI systems to create convincing social-engineering messages, translate the messages, and research potential targets.&lt;/p&gt;

&lt;p&gt;They can use AI to fill gaps in their knowledge and overcome technical obstacles they might otherwise struggle with. This lowers the knowledge threshold for cybercrime. This may lead to more people experimenting with offensive capabilities, while criminal marketplaces can develop new services to serve these less-skilled users. &lt;/p&gt;

&lt;p&gt;Group-IB reported that organizations worldwide suffered nearly $350 million in verifiable losses from deepfake fraud during the second quarter of 2025 alone.&lt;/p&gt;

&lt;h2&gt;
  
  
  Humans remain the weakest link
&lt;/h2&gt;

&lt;p&gt;The falling technical barrier also reinforces the importance of social engineering.&lt;/p&gt;

&lt;p&gt;Technical vulnerabilities remain critically important, but criminals do not always need to exploit a sophisticated software flaw if they can convince an employee to surrender access. The human element can be considerably easier to manipulate than a hardened technical system.&lt;/p&gt;

&lt;p&gt;AI-generated text, voice cloning, fake profiles, and convincing websites can make these impersonation campaigns more persuasive. An example is when a company’s CFO transferred $25 million to an attacker-controlled account after participating in a Zoom call with individuals who appeared to be the company’s CEO and other executives. The attackers used deepfake technology to impersonate company leaders and persuade the CFO to complete the transaction. &lt;/p&gt;

&lt;h2&gt;
  
  
  Why Organizations Should Be Concerned
&lt;/h2&gt;

&lt;p&gt;The democratization of cyberattacks changes the threat model for organizations.&lt;/p&gt;

&lt;p&gt;Today, the organization may face thousands of low-skilled attackers using automated tools simultaneously. Most of those attempts will fail.&lt;/p&gt;

&lt;p&gt;But attackers do not need a high success rate when the cost of attempting an attack is extremely low. If automation allows one criminal to target thousands of organizations, even a tiny success rate can produce meaningful results.&lt;/p&gt;

&lt;p&gt;This also increases the workload for defenders, who may need to investigate alerts, protect accounts, patch vulnerabilities, monitor endpoints, and respond to incidents individually.&lt;/p&gt;

&lt;h2&gt;
  
  
  What organizations can do
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Defenders Must Also Democratize Security
&lt;/h3&gt;

&lt;p&gt;If attackers benefit from automation and commoditized expertise, defenders need to do the same. Security teams should increasingly automate repetitive defensive tasks.&lt;/p&gt;

&lt;p&gt;The objective is not to automate security completely. It is to ensure that defenders can operate at a scale comparable to the threats they face.&lt;/p&gt;

&lt;p&gt;Defensive artificial intelligence can be particularly useful here, provided organizations maintain appropriate controls and human oversight. The same technologies that help attackers reduce technical barriers can help defenders reduce the workload created by increasingly automated attacks.&lt;/p&gt;

&lt;h3&gt;
  
  
  Train employees
&lt;/h3&gt;

&lt;p&gt;Security awareness training also needs to evolve. Traditional training often teaches employees to identify obvious phishing emails. That is no longer enough. Employees may encounter highly personalized messages that reference real projects, coworkers, suppliers, job opportunities, invoices, or business relationships.&lt;/p&gt;

&lt;p&gt;Organizations therefore need security cultures built around verification rather than suspicion alone. Employees should have simple ways to verify unusual payment requests, credential requests, account changes, and sensitive instructions.&lt;/p&gt;

&lt;p&gt;The goal is not to expect employees to become cybersecurity experts. It is to create processes that prevent a single convincing interaction from becoming a catastrophic compromise.&lt;/p&gt;

&lt;h3&gt;
  
  
  Collective defense
&lt;/h3&gt;

&lt;p&gt;One of the strongest defenses against the growing cybercrime-as-a-service ecosystem is collective defense, where organizations rapidly share threat intelligence, indicators of compromise, and emerging attack patterns rather than confronting threats in isolation. If security teams can identify a new phishing infrastructure, impersonation tactic, or credential-theft campaign early and distribute that intelligence across industries, other organizations can strengthen their defenses before they become targets. &lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Organizations may be putting themselves at greater risk by assuming that sophisticated attacks can only be carried out by highly skilled attackers. Security teams must now prepare for a much larger pool of threat actors whose access to automated tools, AI, and ready-made services gives them a far higher baseline level of capability. This does not mean technical hackers are disappearing. Sophisticated threat actors still develop advanced exploits, custom malware, and novel intrusion techniques. Instead, their expertise is increasingly being packaged into products and services that other criminals can consume.&lt;/p&gt;

&lt;p&gt;Read more on my blog: &lt;a href="https://www.guardingpearsoftware.com" rel="noopener noreferrer"&gt;www.guardingpearsoftware.com&lt;/a&gt;!&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Designing Aevryn Candy: Five Lessons From Building a Match-3 Around "No Ads. Ever."</title>
      <dc:creator>GuardingPearSoftware</dc:creator>
      <pubDate>Thu, 27 Aug 2026 11:57:28 +0000</pubDate>
      <link>https://dev.to/guardingpearsoftware/designing-aevryn-candy-five-lessons-from-building-a-match-3-around-no-ads-ever-4jbl</link>
      <guid>https://dev.to/guardingpearsoftware/designing-aevryn-candy-five-lessons-from-building-a-match-3-around-no-ads-ever-4jbl</guid>
      <description>&lt;p&gt;&lt;strong&gt;Aevryn Candy&lt;/strong&gt; is a colorful Android match-3 game I’ve been building around a simple idea: a relaxing mobile puzzle game should let you play without advertising constantly interrupting the experience.&lt;/p&gt;

&lt;p&gt;That led to one of the project’s core rules: &lt;strong&gt;No Ads. Ever.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;At first, that sounds mainly like a monetization decision. During development, though, I realized it affects much more than monetization. It influences pacing, progression, feature decisions, and even how I think about the scope of the game.&lt;/p&gt;

&lt;p&gt;Here are five lessons I’ve taken from building it so far.&lt;/p&gt;

&lt;h2&gt;
  
  
  "No Ads" became a design constraint
&lt;/h2&gt;

&lt;p&gt;A lot of free mobile games use advertising as part of the gameplay loop: an ad between levels, a rewarded video for another attempt, or a video to obtain an extra resource.&lt;/p&gt;

&lt;p&gt;Once I decided Aevryn Candy wouldn’t do that, those interruptions disappeared from the design toolbox.&lt;/p&gt;

&lt;p&gt;That means the game itself has to create the rhythm. A player should be able to open it, play a few levels, enjoy the puzzle, and stop naturally. Optional in-app purchases can exist, but watching an advertisement is never required to continue playing.&lt;/p&gt;

&lt;p&gt;The broader lesson for me was that monetization choices are also game-design choices. Removing a system can influence the experience just as much as adding one.&lt;/p&gt;

&lt;h2&gt;
  
  
  Difficulty doesn’t have to be a straight line
&lt;/h2&gt;

&lt;p&gt;Once those interruptions were gone, the remaining rhythm had to come from the levels themselves. Balancing progression has been one of the more interesting problems.&lt;/p&gt;

&lt;p&gt;The obvious approach is to make each group of levels progressively harder. But if the goal is a relaxing game, an endless upward difficulty curve eventually works against that goal.&lt;/p&gt;

&lt;p&gt;Around level 100, I started experimenting with a different rhythm. On selected groups of levels, I reduce the number of candy colors available, making useful matches easier to find, while keeping harder levels between those groups.&lt;/p&gt;

&lt;p&gt;Instead of thinking:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;hard → harder → harder → harder&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I started thinking:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;challenge → breathing room → challenge → breathing room&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It’s a relatively small balancing change, but it has changed the way I think about progression. Difficulty can have pacing just like music or storytelling does.&lt;/p&gt;

&lt;h2&gt;
  
  
  Change a parameter before inventing another mechanic
&lt;/h2&gt;

&lt;p&gt;When a level or system doesn’t feel right, the developer instinct is often to add something: another booster, another rule, another mechanic.&lt;/p&gt;

&lt;p&gt;Aevryn Candy has taught me to try the opposite first.&lt;/p&gt;

&lt;p&gt;The candy-color example is a good illustration. Changing how many colors are present can substantially change the probability of matches, cascades, and available moves. The player experiences a noticeably different level without having to learn anything new.&lt;/p&gt;

&lt;p&gt;Before adding another system, I now try to ask: can the mechanics that already exist solve this problem?&lt;/p&gt;

&lt;p&gt;For a small project, that can also mean less UI, less balancing, fewer edge cases, and less maintenance later.&lt;/p&gt;

&lt;h2&gt;
  
  
  Scope is itself a design problem
&lt;/h2&gt;

&lt;p&gt;The same instinct — try the smaller change first — also applies to the project as a whole.&lt;/p&gt;

&lt;p&gt;It’s easy to keep adding ideas to a game, especially when you’re close to implementation and can imagine dozens of possible features.&lt;/p&gt;

&lt;p&gt;But every feature has a cost beyond the initial code. It needs presentation, balancing, testing, maintenance, and eventually compatibility with everything that comes after it.&lt;/p&gt;

&lt;p&gt;So one question has become increasingly useful during development:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Does this actually make the puzzle experience better, or am I adding it simply because I can?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That question doesn’t mean the game should never grow. It means additions should earn their place.&lt;/p&gt;

&lt;h2&gt;
  
  
  Decide what your game will not do
&lt;/h2&gt;

&lt;p&gt;This may be the most useful lesson I’ve taken from Aevryn Candy.&lt;/p&gt;

&lt;p&gt;We usually define games by their features: what mechanics they have, what progression they offer, what players can unlock. But constraints can create identity too.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;“No Ads. Ever.”&lt;/strong&gt; is one of those constraints for Aevryn Candy. It gives me a simple test for future decisions: if something damages the relaxed, interruption-free experience I’m trying to create, it probably doesn’t belong — even if it is common practice elsewhere in mobile gaming.&lt;/p&gt;

&lt;p&gt;Having a clear list of things a project won’t do can make the things it should do much easier to see.&lt;/p&gt;

&lt;h2&gt;
  
  
  Still learning
&lt;/h2&gt;

&lt;p&gt;Aevryn Candy is still evolving, and releasing a game changes the learning process: design assumptions eventually meet real players.&lt;/p&gt;

&lt;p&gt;But these five ideas have already changed how I approach the project — particularly the idea that good design isn’t always about adding more. Sometimes it’s about removing an interruption, changing a small variable, giving the player some breathing room, or deliberately saying no to a feature.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Play Aevryn Candy&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Aevryn Candy is a game by Aevryn Studios developed by Ricardo Tavares Santos. You can find it on Google Play.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://play.google.com/store/apps/details?id=com.aevrynstudios.aevryncandy" rel="noopener noreferrer"&gt;Google Play&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Read more on my blog: &lt;a href="https://www.guardingpearsoftware.com" rel="noopener noreferrer"&gt;www.guardingpearsoftware.com&lt;/a&gt;!&lt;/p&gt;

</description>
    </item>
    <item>
      <title>GuardingPearSoftware Obfuscator vs Eazfuscator.NET</title>
      <dc:creator>GuardingPearSoftware</dc:creator>
      <pubDate>Thu, 27 Aug 2026 10:09:20 +0000</pubDate>
      <link>https://dev.to/guardingpearsoftware/guardingpearsoftware-obfuscator-vs-eazfuscatornet-4me</link>
      <guid>https://dev.to/guardingpearsoftware/guardingpearsoftware-obfuscator-vs-eazfuscatornet-4me</guid>
      <description>&lt;p&gt;Unity does not encrypt your gameplay code when you press Build. A .NET decompiler or an IL2CPP metadata dump can still show type names, walk your systems, and print the strings you left in your original C# code.&lt;/p&gt;

&lt;p&gt;To protect your code, you might come across: &lt;strong&gt;Eazfuscator.NET&lt;/strong&gt; (a well-known commercial C# obfuscator from Gapotchenko) and also &lt;a href="https://www.guardingpearsoftware.com/product/obfuscator" rel="noopener noreferrer"&gt;GuardingPearSoftware Obfuscator&lt;/a&gt; (a dedicated Unity asset and tool).&lt;/p&gt;

&lt;p&gt;Both tools make C# code harder to reverse engineer, but they serve different environments. Eazfuscator is designed for a .NET SDK project: add the NuGet package, and Release builds are protected. Unity is not that project. GuardingPearSoftware Obfuscator lives in the Unity Editor and the player or cloud build.&lt;/p&gt;

&lt;p&gt;This comparison breaks down how both tools work, where their features differ, and which one fits your game development workflow.&lt;/p&gt;

&lt;h2&gt;
  
  
  Short answer
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;GuardingPearSoftware Obfuscator Pro&lt;/strong&gt; costs $79.99 (one-time purchase). It includes symbol renaming, string obfuscation, fake code injection, method control flow, anti-tamper checks and more hardening features. It runs directly inside your Unity build pipeline and patches your game assets when it renames &lt;code&gt;MonoBehaviour&lt;/code&gt; classes and other serialized types.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Eazfuscator.NET&lt;/strong&gt; offers renaming, string encryption, control flow, and code virtualization. A single developer license is $399 perpetual (1 year of updates, then $99 to renew). A site license is $1,699 ($419 to renew). The single-dev license caps CPU cores at 16. There is no Unity asset patcher and no full licensing API.&lt;/p&gt;

&lt;p&gt;In simple words:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Choose &lt;strong&gt;GuardingPearSoftware Obfuscator&lt;/strong&gt; for Unity games.&lt;/li&gt;
&lt;li&gt;Choose &lt;strong&gt;Eazfuscator.NET&lt;/strong&gt; for a normal .NET app where you want virtualization with almost no extra build UI.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Eazfuscator does not understand Unity assets. It cannot patch prefabs or Addressables when code names change.&lt;/p&gt;

&lt;h2&gt;
  
  
  Quick comparison
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Topic&lt;/th&gt;
&lt;th&gt;GuardingPearSoftware Obfuscator&lt;/th&gt;
&lt;th&gt;Eazfuscator.NET&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Vendor&lt;/td&gt;
&lt;td&gt;GuardingPearSoftware&lt;/td&gt;
&lt;td&gt;Gapotchenko&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Based in&lt;/td&gt;
&lt;td&gt;Germany&lt;/td&gt;
&lt;td&gt;Ukraine&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Main focus&lt;/td&gt;
&lt;td&gt;Unity games&lt;/td&gt;
&lt;td&gt;.NET SDK / Visual Studio&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Price&lt;/td&gt;
&lt;td&gt;$79.99 one-time&lt;/td&gt;
&lt;td&gt;$399 or $1,699&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Integration&lt;/td&gt;
&lt;td&gt;Unity build pipeline&lt;/td&gt;
&lt;td&gt;NuGet and attributes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Deterministic builds&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Site license feature&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Unity prefab patching&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;String obfuscation&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Control flow&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Virtualization&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Homomorphic encryption&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Anti-tamper&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Watermarking&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Best fit&lt;/td&gt;
&lt;td&gt;From Indie to Enterprise Studio&lt;/td&gt;
&lt;td&gt;C# app teams&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The table is simple on purpose. Eazfuscator wins on virtualization and a quiet .csproj workflow. GuardingPearSoftware Obfuscator wins on Unity daily use and price.&lt;/p&gt;

&lt;h2&gt;
  
  
  What GuardingPearSoftware Obfuscator does
&lt;/h2&gt;

&lt;p&gt;GuardingPearSoftware Obfuscator is a Unity cybersecurity asset. After you enable it, protection runs when you press Build. You do not export a DLL, open a second Windows GUI, then copy files back. The same hooks fire for a custom &lt;code&gt;BuildPipeline.BuildPlayer&lt;/code&gt; script and for cloud builders that run a normal Unity player build.&lt;/p&gt;

&lt;p&gt;The package can rename namespaces, classes, methods, fields, properties, and events. And also rename the Unity types that most generic tools skip: &lt;code&gt;MonoBehaviour&lt;/code&gt;, &lt;code&gt;ScriptableObject&lt;/code&gt;, and Playable classes. After the rename pass, it updates scenes, prefabs, and other assets that still store those names.&lt;/p&gt;

&lt;p&gt;Unity stores a lot of meaning as text. A button in the Inspector may keep the method name it should call. An animation event may keep a string. A serialized field on a component keeps its field name. Addressable bundles can keep script references too. Obfuscator has compatibility settings for those cases: Inspector values, UnityEvents, animation events, reflection and coroutines, UI Toolkit, and Addressables (JSON and binary catalogs, custom local or remote paths, and Addressable Shield on Unity 6 and newer).&lt;/p&gt;

&lt;p&gt;It also hides strings, adds random fake code, and can suppress simple ILDasm inspection. Mono builds can get control flow and assembly signing. Standalone builds can get integrity checks. Mapping files stay available so crash logs are still readable after release. A Free tier exists if you want to test the pipeline first. MonoBehaviour and namespace renaming are Obfuscator Pro features.&lt;/p&gt;

&lt;p&gt;The tool stays local. You do not send the game to a cloud protector. Because it runs inside Unity and Tuanjie, it works on any platform where those editors run, including Windows, macOS, and Linux build machines.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Eazfuscator.NET does
&lt;/h2&gt;

&lt;p&gt;Eazfuscator is known for a quiet workflow. You install &lt;code&gt;Gapotchenko.Eazfuscator.NET&lt;/code&gt;, and Release builds get protected. Settings live in C# attributes, not a second GUI if you do not want one.&lt;/p&gt;

&lt;p&gt;Feature notes from public pages:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Full lexical obfuscation&lt;/li&gt;
&lt;li&gt;String encryption&lt;/li&gt;
&lt;li&gt;Control flow&lt;/li&gt;
&lt;li&gt;A custom VM that can change its instruction set per run&lt;/li&gt;
&lt;li&gt;Claims around homomorphic-style work on encrypted values&lt;/li&gt;
&lt;li&gt;Resource encryption and compression&lt;/li&gt;
&lt;li&gt;Assemblies merging and embedding&lt;/li&gt;
&lt;li&gt;Deterministic obfuscation on the site license&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It does not sell a Unity story. You would export or hook assemblies yourself, then keep every Unity-required name by hand. Sometimes people try it on a Unity assembly. Support and success depend on your Unity version, backend, and how much reflection you use. It is not the documented happy path.&lt;/p&gt;

&lt;p&gt;You pay for a general .NET product with a VM, not for Unity scene patching. Pro does not include virtualization. Its depth is Unity coverage, not a custom IL VM.&lt;/p&gt;

&lt;h2&gt;
  
  
  The biggest difference
&lt;/h2&gt;

&lt;p&gt;Eazfuscator is a polished .NET developer tool. GuardingPearSoftware Obfuscator is a polished Unity developer tool.&lt;/p&gt;

&lt;p&gt;Virtualization can hide a payment formula in a desktop app. It will not fix a missing script on a prefab if the class name changed and the scene file did not.&lt;/p&gt;

&lt;p&gt;A renamed &lt;code&gt;PlayerHealth&lt;/code&gt; on a prefab that still says &lt;code&gt;PlayerHealth&lt;/code&gt; in the scene is still easy to find. Unity tools that patch assets attack that problem. Eazfuscator has no such pass.&lt;/p&gt;

&lt;p&gt;If you run it on a Unity assembly, it can rename your &lt;code&gt;MonoBehaviour&lt;/code&gt; classes in the DLL. It cannot update your binary scene files, prefab assets, or Addressables bundles. When you launch the game, Unity reports missing script errors and your game objects break.&lt;/p&gt;

&lt;p&gt;To avoid that, you must exclude every &lt;code&gt;MonoBehaviour&lt;/code&gt;, &lt;code&gt;ScriptableObject&lt;/code&gt;, serialized field, and UnityEvent callback. That leaves your most important game logic exposed with plain names.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Unity-aware renaming matters
&lt;/h2&gt;

&lt;p&gt;Unity does not only compile C#. It also saves type names and member names inside assets. That is how the Inspector, scenes, and prefabs keep working after you close the Editor.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight csharp"&gt;&lt;code&gt;&lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;PlayerHealth&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;MonoBehaviour&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;SerializeField&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
    &lt;span class="k"&gt;private&lt;/span&gt; &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;maxHealth&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="m"&gt;100&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

    &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;TakeDamage&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;amount&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="n"&gt;maxHealth&lt;/span&gt; &lt;span class="p"&gt;-=&lt;/span&gt; &lt;span class="n"&gt;amount&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If a generic protector renames &lt;code&gt;PlayerHealth&lt;/code&gt; or &lt;code&gt;maxHealth&lt;/code&gt;, the prefab can lose the script or reset the value. If it leaves those names alone so the prefab stays valid, attackers still search for &lt;code&gt;PlayerHealth&lt;/code&gt; and find the logic.&lt;/p&gt;

&lt;p&gt;GuardingPearSoftware Obfuscator is built for that tradeoff. It can rename the class and the serialized field, then update the related assets so the GameObject still points at the new names. Eazfuscator has no such Unity pass. Its safe default is to skip the names Unity stores as data.&lt;/p&gt;

&lt;h2&gt;
  
  
  Which one should you pick?
&lt;/h2&gt;

&lt;p&gt;Pick &lt;strong&gt;GuardingPearSoftware Obfuscator&lt;/strong&gt; if you want:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Unity integration&lt;/li&gt;
&lt;li&gt;Asset-aware renaming&lt;/li&gt;
&lt;li&gt;A lower one-time price&lt;/li&gt;
&lt;li&gt;Mapping files for crash reports&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Pick &lt;strong&gt;Eazfuscator.NET&lt;/strong&gt; if you want:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Virtualization on a .csproj&lt;/li&gt;
&lt;li&gt;Attribute-based config in C#&lt;/li&gt;
&lt;li&gt;No game engine in the stack&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Final thoughts
&lt;/h2&gt;

&lt;p&gt;Eazfuscator.NET is one of the nicer commercial C# obfuscators for normal software.&lt;/p&gt;

&lt;p&gt;For Unity, GuardingPearSoftware Obfuscator is the better choice on workflow and price. Use Eazfuscator when the app is not a Unity player.&lt;/p&gt;

&lt;p&gt;Read more on my blog: &lt;a href="https://www.guardingpearsoftware.com" rel="noopener noreferrer"&gt;www.guardingpearsoftware.com&lt;/a&gt;!&lt;/p&gt;

</description>
    </item>
    <item>
      <title>What 920 indie developers actually expect from their games</title>
      <dc:creator>GuardingPearSoftware</dc:creator>
      <pubDate>Wed, 26 Aug 2026 13:18:07 +0000</pubDate>
      <link>https://dev.to/guardingpearsoftware/what-920-indie-developers-actually-expect-from-their-games-2hbk</link>
      <guid>https://dev.to/guardingpearsoftware/what-920-indie-developers-actually-expect-from-their-games-2hbk</guid>
      <description>&lt;p&gt;I have been working with the Unity platform around 12 years now. I have met many developers working with many engines like Unity, Unreal Engine, GameMaker, and later newer engines like Godot. All of them created lovely games, but they all have one thing in common: they did not enjoy getting out there and marketing their games. But they all want to make money. And that is where the marketing comes in.&lt;/p&gt;

&lt;p&gt;Many did not know how to get started with marketing their games. What competition is out there? What are the best practices? And so on.&lt;/p&gt;

&lt;p&gt;So to give a first head start, I created a small free market insights calculator for game developers.&lt;/p&gt;

&lt;p&gt;I researched a lot of statistics, and based on that, I created a calculator that gives developers a better insight into where they stand with their game and their expectations. It also includes info on wishlists, revenue, etc., showing how important marketing is.&lt;/p&gt;

&lt;p&gt;I made it public in August 2025, and now one year later, in 2026, I wanted to share the results. At that point the calculator only supported the desktop platform, but now it also supports the mobile platform. So the following stats are based on 920 developers who filled out the calculator for the desktop platform.&lt;/p&gt;

&lt;p&gt;So in the following sections I share results I found interesting.&lt;/p&gt;

&lt;h2&gt;
  
  
  Development Platform Distribution
&lt;/h2&gt;

&lt;p&gt;You can select a variety of development platforms in the calculator. But the three biggest, by far, as submitted by the developers, are Unity, Unreal Engine, and Godot.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Unity&lt;/strong&gt;: 50.2%&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Godot&lt;/strong&gt;: 33.6%&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Unreal Engine&lt;/strong&gt;: 10.4%&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;As you can see, Unity is the clear winner here. But it is not really surprising that Godot is in second place here too, because Godot is currently the top platform by developer usage. Still very interesting for me, because my website focuses on the Unity platform, but &lt;em&gt;34%&lt;/em&gt; still entered Godot.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Platform&lt;/th&gt;
&lt;th&gt;Submissions&lt;/th&gt;
&lt;th&gt;%&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Unity&lt;/td&gt;
&lt;td&gt;460&lt;/td&gt;
&lt;td&gt;50.2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Godot&lt;/td&gt;
&lt;td&gt;308&lt;/td&gt;
&lt;td&gt;33.6&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Unreal Engine&lt;/td&gt;
&lt;td&gt;95&lt;/td&gt;
&lt;td&gt;10.4&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Other&lt;/td&gt;
&lt;td&gt;22&lt;/td&gt;
&lt;td&gt;2.4&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Custom&lt;/td&gt;
&lt;td&gt;18&lt;/td&gt;
&lt;td&gt;2.0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;GameMaker Studio&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;1.1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Construct&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;0.1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Flutter&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;0.1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;React Native&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;0.1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Android Studio&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;0.1&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;em&gt;Table 1: The development platform distribution&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Some interesting observations:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Unity and Godot together make up almost 84% of all submissions. After that, the drop-off is steep: Unreal sits at 10%, and everything else is noise.&lt;/li&gt;
&lt;li&gt;Custom engines (2.0%) outnumber GameMaker (1.1%). For a tool with such a long indie history, GameMaker is almost absent here.&lt;/li&gt;
&lt;li&gt;Tools built for mobile (Flutter, React Native, Android Studio) barely appear, which makes sense: this dataset is desktop only.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Platform vs. Genre Breakdown
&lt;/h2&gt;

&lt;p&gt;A game also has a main genre, next to keywords like tags. First place is the &lt;em&gt;Action&lt;/em&gt; genre across the big three platforms:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Unity&lt;/strong&gt;: 30.0%&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Godot&lt;/strong&gt;: 18.8%&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Unreal Engine&lt;/strong&gt;: 28.4%&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Here is a detailed breakdown of how each development platform's submissions split across genres. Each row adds up to 100% of that platform's entries. This can help you see which genres are the most popular on each platform.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Platform&lt;/th&gt;
&lt;th&gt;Action&lt;/th&gt;
&lt;th&gt;Strategy&lt;/th&gt;
&lt;th&gt;Casual&lt;/th&gt;
&lt;th&gt;Adventure&lt;/th&gt;
&lt;th&gt;Simulation&lt;/th&gt;
&lt;th&gt;Other&lt;/th&gt;
&lt;th&gt;Role Playing&lt;/th&gt;
&lt;th&gt;Racing&lt;/th&gt;
&lt;th&gt;Sports&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Unity&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;30.0&lt;/td&gt;
&lt;td&gt;12.2&lt;/td&gt;
&lt;td&gt;10.9&lt;/td&gt;
&lt;td&gt;11.5&lt;/td&gt;
&lt;td&gt;12.8&lt;/td&gt;
&lt;td&gt;11.3&lt;/td&gt;
&lt;td&gt;7.4&lt;/td&gt;
&lt;td&gt;2.6&lt;/td&gt;
&lt;td&gt;1.3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Godot&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;18.8&lt;/td&gt;
&lt;td&gt;17.2&lt;/td&gt;
&lt;td&gt;14.9&lt;/td&gt;
&lt;td&gt;11.7&lt;/td&gt;
&lt;td&gt;9.4&lt;/td&gt;
&lt;td&gt;12.7&lt;/td&gt;
&lt;td&gt;12.7&lt;/td&gt;
&lt;td&gt;1.9&lt;/td&gt;
&lt;td&gt;0.6&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Unreal Engine&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;28.4&lt;/td&gt;
&lt;td&gt;16.8&lt;/td&gt;
&lt;td&gt;11.6&lt;/td&gt;
&lt;td&gt;14.7&lt;/td&gt;
&lt;td&gt;14.7&lt;/td&gt;
&lt;td&gt;4.2&lt;/td&gt;
&lt;td&gt;6.3&lt;/td&gt;
&lt;td&gt;3.2&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;GameMaker Studio&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;40.0&lt;/td&gt;
&lt;td&gt;30.0&lt;/td&gt;
&lt;td&gt;10.0&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;td&gt;10.0&lt;/td&gt;
&lt;td&gt;10.0&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Custom&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;16.7&lt;/td&gt;
&lt;td&gt;27.8&lt;/td&gt;
&lt;td&gt;11.1&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;td&gt;11.1&lt;/td&gt;
&lt;td&gt;22.2&lt;/td&gt;
&lt;td&gt;5.6&lt;/td&gt;
&lt;td&gt;5.6&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Other&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;4.5&lt;/td&gt;
&lt;td&gt;9.1&lt;/td&gt;
&lt;td&gt;13.6&lt;/td&gt;
&lt;td&gt;31.8&lt;/td&gt;
&lt;td&gt;13.6&lt;/td&gt;
&lt;td&gt;4.5&lt;/td&gt;
&lt;td&gt;22.7&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Android Studio&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;td&gt;100.0&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Flutter&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;td&gt;100.0&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Construct&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;100.0&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;React Native&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;td&gt;100.0&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;em&gt;Table 2: Genre share of each development platform's submissions (%)&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Some interesting observations:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Action is the default on Unity (30.0%) and Unreal (28.4%), but Godot is much more even: Action is only 18.8%, with Strategy close behind at 17.2%.&lt;/li&gt;
&lt;li&gt;Role Playing is much more common on Godot (12.7%) than on Unity (7.4%).&lt;/li&gt;
&lt;li&gt;Sports is basically dead across the board: 1.3% Unity, 0.6% Godot, 0% Unreal.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Platform vs. Revenue Expectations
&lt;/h2&gt;

&lt;p&gt;You want to make money with your game. And that is why you are here. So let's see what the developers expect in terms of revenue. The median revenue expectation per unit:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Unity&lt;/strong&gt;: $10.00&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Godot&lt;/strong&gt;: $9.99&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Unreal Engine&lt;/strong&gt;: $12.00&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;As you can see, Unity and Godot developers have similar expectations of a listing price of $10 per unit, median-wise. Unreal is at $12, which is 20% higher.&lt;/p&gt;

&lt;p&gt;Here is how each development platform's submissions split across expected revenue per unit buckets. Each row adds up to 100% of that platform's entries.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Platform&lt;/th&gt;
&lt;th&gt;Free&lt;/th&gt;
&lt;th&gt;$0-5&lt;/th&gt;
&lt;th&gt;$6-10&lt;/th&gt;
&lt;th&gt;$11-15&lt;/th&gt;
&lt;th&gt;$16-20&lt;/th&gt;
&lt;th&gt;$21-25&lt;/th&gt;
&lt;th&gt;$26-30&lt;/th&gt;
&lt;th&gt;$36-40&lt;/th&gt;
&lt;th&gt;$46-50&lt;/th&gt;
&lt;th&gt;$56-60&lt;/th&gt;
&lt;th&gt;$96-100&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Unity&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;13.0&lt;/td&gt;
&lt;td&gt;12.2&lt;/td&gt;
&lt;td&gt;34.3&lt;/td&gt;
&lt;td&gt;17.4&lt;/td&gt;
&lt;td&gt;13.0&lt;/td&gt;
&lt;td&gt;4.1&lt;/td&gt;
&lt;td&gt;4.8&lt;/td&gt;
&lt;td&gt;0.4&lt;/td&gt;
&lt;td&gt;0.2&lt;/td&gt;
&lt;td&gt;0.2&lt;/td&gt;
&lt;td&gt;0.2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Godot&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;11.4&lt;/td&gt;
&lt;td&gt;24.0&lt;/td&gt;
&lt;td&gt;28.9&lt;/td&gt;
&lt;td&gt;18.2&lt;/td&gt;
&lt;td&gt;12.7&lt;/td&gt;
&lt;td&gt;2.3&lt;/td&gt;
&lt;td&gt;1.9&lt;/td&gt;
&lt;td&gt;0.3&lt;/td&gt;
&lt;td&gt;0.3&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Unreal Engine&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;9.5&lt;/td&gt;
&lt;td&gt;8.4&lt;/td&gt;
&lt;td&gt;30.5&lt;/td&gt;
&lt;td&gt;22.1&lt;/td&gt;
&lt;td&gt;15.8&lt;/td&gt;
&lt;td&gt;7.4&lt;/td&gt;
&lt;td&gt;5.3&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;td&gt;1.1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;GameMaker Studio&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;20.0&lt;/td&gt;
&lt;td&gt;20.0&lt;/td&gt;
&lt;td&gt;10.0&lt;/td&gt;
&lt;td&gt;30.0&lt;/td&gt;
&lt;td&gt;20.0&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Custom&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;27.8&lt;/td&gt;
&lt;td&gt;11.1&lt;/td&gt;
&lt;td&gt;22.2&lt;/td&gt;
&lt;td&gt;27.8&lt;/td&gt;
&lt;td&gt;5.6&lt;/td&gt;
&lt;td&gt;5.6&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Other&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;22.7&lt;/td&gt;
&lt;td&gt;40.9&lt;/td&gt;
&lt;td&gt;13.6&lt;/td&gt;
&lt;td&gt;18.2&lt;/td&gt;
&lt;td&gt;4.5&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Android Studio&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;100.0&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Flutter&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;100.0&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Construct&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;td&gt;100.0&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;React Native&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;td&gt;100.0&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;em&gt;Table 3: Expected revenue per unit share of each development platform's submissions (%)&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Some brief observations:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;$6-10 is the most common bucket for all three big engines, which matches the ~$10 median.&lt;/li&gt;
&lt;li&gt;Godot is the cheap-game engine: 24.0% sit in $0-5, vs 12.2% Unity and 8.4% Unreal.&lt;/li&gt;
&lt;li&gt;Almost nobody prices above $30. The $36+ tail is 1.0% of Unity, 0.6% of Godot, and 1.1% of Unreal (one $96-100 outlier).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The share of free desktop games is around 10% for all of them, which makes sense. In the desktop market, a large share of revenue comes from the unit price. For mobile it is mostly ads-based, so free is the way to go (but that is not included in these charts) — just my guess.&lt;/p&gt;

&lt;h2&gt;
  
  
  Platform vs. Team Size
&lt;/h2&gt;

&lt;p&gt;Developing a game is a team effort. So let's see how many people are working on a game on each platform. The average team size for the big three platforms:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Unity&lt;/strong&gt;: 4&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Godot&lt;/strong&gt;: 2&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Unreal Engine&lt;/strong&gt;: 4&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;As you can see, Unity and Unreal Engine developers have similar average team sizes, around 4 people. Godot is at 2, half the size.&lt;/p&gt;

&lt;p&gt;Here is how each development platform's submissions split across team size buckets. Each row adds up to 100% of that platform's entries.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Platform&lt;/th&gt;
&lt;th&gt;Personal (1)&lt;/th&gt;
&lt;th&gt;Small (2-5)&lt;/th&gt;
&lt;th&gt;Medium (5-25)&lt;/th&gt;
&lt;th&gt;Large (25-100)&lt;/th&gt;
&lt;th&gt;Major (100+)&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Unity&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;55.9&lt;/td&gt;
&lt;td&gt;35.9&lt;/td&gt;
&lt;td&gt;7.2&lt;/td&gt;
&lt;td&gt;0.7&lt;/td&gt;
&lt;td&gt;0.4&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Godot&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;70.5&lt;/td&gt;
&lt;td&gt;27.9&lt;/td&gt;
&lt;td&gt;1.6&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Unreal Engine&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;46.3&lt;/td&gt;
&lt;td&gt;46.3&lt;/td&gt;
&lt;td&gt;6.3&lt;/td&gt;
&lt;td&gt;1.1&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Other&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;63.6&lt;/td&gt;
&lt;td&gt;36.4&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Custom&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;88.9&lt;/td&gt;
&lt;td&gt;5.6&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;td&gt;5.6&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;GameMaker Studio&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;80.0&lt;/td&gt;
&lt;td&gt;10.0&lt;/td&gt;
&lt;td&gt;10.0&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Construct&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;td&gt;100.0&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Flutter&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;100.0&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;React Native&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;td&gt;100.0&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Android Studio&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;100.0&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;em&gt;Table 4: Team size share of each development platform's submissions (%)&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Some interesting observations:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Godot is a solo engine in this sample: 70.5% personal vs 55.9% Unity and 46.3% Unreal. That is why the average team size is 2.&lt;/li&gt;
&lt;li&gt;Unreal is the most team-shaped of the three: personal and small (2-5) are tied at 46.3% each.&lt;/li&gt;
&lt;li&gt;Large studios barely show up here: 1.1% of Unity, 1.1% of Unreal, and 0% of Godot.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;What do you think? Did you expect such numbers?&lt;/p&gt;

&lt;p&gt;If you are interested, please feel free to check out the calculator here:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.guardingpearsoftware.com/calculator/market" rel="noopener noreferrer"&gt;https://www.guardingpearsoftware.com/calculator/market&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Read more on my blog: &lt;a href="https://www.guardingpearsoftware.com" rel="noopener noreferrer"&gt;www.guardingpearsoftware.com&lt;/a&gt;!&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
