<?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: Gesee-y</title>
    <description>The latest articles on DEV Community by Gesee-y (@geseey).</description>
    <link>https://dev.to/geseey</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2915359%2Fb048d808-f693-44ee-a154-66d0012e1c8b.png</url>
      <title>DEV Community: Gesee-y</title>
      <link>https://dev.to/geseey</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/geseey"/>
    <language>en</language>
    <item>
      <title>Reactive ECS: A Radical Alternative to Traditional ECS Architectures</title>
      <dc:creator>Gesee-y</dc:creator>
      <pubDate>Sat, 07 Jun 2025 13:52:14 +0000</pubDate>
      <link>https://dev.to/geseey/event-driven-ecs-a-system-that-outsmart-unity-bevy-and-entt-1mec</link>
      <guid>https://dev.to/geseey/event-driven-ecs-a-system-that-outsmart-unity-bevy-and-entt-1mec</guid>
      <description>&lt;p&gt;The Entity-Component-System (ECS) model has become the industry standard for game engine design. However, most ECS implementations rely heavily on &lt;strong&gt;query-based systems&lt;/strong&gt; to retrieve relevant entities every frame — an approach that introduces unnecessary overhead and runtime cost.&lt;/p&gt;

&lt;p&gt;That's why I propose an alternative architecture: the &lt;strong&gt;Reactive ECS&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Instead of querying entities each frame, systems &lt;strong&gt;subscribe once&lt;/strong&gt; to specific combinations of components. A centralized &lt;code&gt;ECSManager&lt;/code&gt; then &lt;strong&gt;conditionally dispatches&lt;/strong&gt; the relevant entities to each system, based on these subscriptions. In other words, the only "query" is done up-front, at subscription time.&lt;/p&gt;

&lt;h3&gt;
  
  
  🚀 Benefits of this approach:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Zero per-frame query cost&lt;/strong&gt;: Systems receive only what they need, when they need it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Modular and dynamic&lt;/strong&gt;: Entities and systems can be added or removed at runtime; the subscription logic handles everything.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Scalable and performant&lt;/strong&gt;: 1 million entities dispatched to 3 systems in just &lt;strong&gt;980 ns&lt;/strong&gt;, on a dual-thread CPU.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Better memory locality&lt;/strong&gt;: Archetype grouping makes processing cache-friendly.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Naturally parallelizable&lt;/strong&gt;: Systems are decoupled and only receive their relevant data.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You can check the full implementation and architecture (written in Julia) here:&lt;br&gt;&lt;br&gt;
👉 &lt;a href="https://github.com/Gesee-y/RECS.jl" rel="noopener noreferrer"&gt;https://github.com/Gesee-y/RECS.jl&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Feedback and contributions are welcome!&lt;/p&gt;

</description>
      <category>gamedev</category>
      <category>architecture</category>
      <category>programming</category>
      <category>julialang</category>
    </item>
    <item>
      <title>Game Engine Architecture: An Evolution of the ECS Paradigm</title>
      <dc:creator>Gesee-y</dc:creator>
      <pubDate>Fri, 06 Jun 2025 22:47:54 +0000</pubDate>
      <link>https://dev.to/geseey/game-engine-architecture-an-evolution-of-the-ecs-paradigm-27ap</link>
      <guid>https://dev.to/geseey/game-engine-architecture-an-evolution-of-the-ecs-paradigm-27ap</guid>
      <description>&lt;p&gt;Game engine architecture is the foundation upon which every feature stands. And like any foundation, if it's weak, everything on top crumbles. A solid, scalable architecture is critical.&lt;/p&gt;

&lt;p&gt;Today, ECS (Entity-Component-System) is the dominant model in the industry — but it's not without trade-offs.&lt;/p&gt;

&lt;p&gt;So, at first I was doing a funny experiment, making an FNF engine from scratch. But while exploring game architecture, I decided to explore a different take:&lt;br&gt;
A &lt;strong&gt;variant of ECS&lt;/strong&gt; that aims to be:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🚀 Faster (reduced redundant queries)&lt;/li&gt;
&lt;li&gt;🔌 Modular and extensible&lt;/li&gt;
&lt;li&gt;🧵 Naturally parallelizable&lt;/li&gt;
&lt;li&gt;🌐 Better suited for real-time and online systems&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This led to what I call &lt;strong&gt;RECS&lt;/strong&gt; — a &lt;strong&gt;Reactive ECS&lt;/strong&gt; written in Julia.&lt;br&gt;
Systems &lt;em&gt;subscribe&lt;/em&gt; to archetypes (shapes of components) and get dispatched relevant entities per tick.&lt;/p&gt;

&lt;p&gt;📄 Full architecture overview + source code:&lt;br&gt;
👉 &lt;a href="https://github.com/Gesee-y/RECS.jl" rel="noopener noreferrer"&gt;https://github.com/Gesee-y/RECS.jl&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Would love to get your feedback — and hear how others approach scalable engine design.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>A Julia game engine: Cruise</title>
      <dc:creator>Gesee-y</dc:creator>
      <pubDate>Wed, 05 Mar 2025 22:43:12 +0000</pubDate>
      <link>https://dev.to/geseey/a-julia-game-engine-cruise-3jph</link>
      <guid>https://dev.to/geseey/a-julia-game-engine-cruise-3jph</guid>
      <description>&lt;p&gt;Hi everyone. I'm here to talk about one of my biggest project, Cruise. It's a flexible and extensible 2D/3D game engine made in Julia. I actually made the window manager ( github.com/Gesee-y/Outdoors.jl ) that's is an API-agnostic windows manager meaning we can use SDL or GLFW window in the same manner and with the same hierarchy.&lt;br&gt;
Next I was working on the renderer engine Horizons ( github.com/Gesee-y/Horizons.jl ) that is supposed to be a multiple backend rendering engine. It's a work in progress but my pc actually died so I can't continue for now.&lt;br&gt;
I am a Cameroonian and I have 17 years old and I would appreciate any feedback on my work, thank for listening to me 😸&lt;/p&gt;

</description>
      <category>julialang</category>
      <category>gamedev</category>
    </item>
  </channel>
</rss>
