<?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: ER</title>
    <description>The latest articles on DEV Community by ER (@arcademakersources).</description>
    <link>https://dev.to/arcademakersources</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%2F3939784%2Fbf791f83-30a0-4885-b981-564da473fd9f.png</url>
      <title>DEV Community: ER</title>
      <link>https://dev.to/arcademakersources</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/arcademakersources"/>
    <language>en</language>
    <item>
      <title>My biggest C# project: Game engine with its own scripting language &amp; IDE</title>
      <dc:creator>ER</dc:creator>
      <pubDate>Sun, 16 Aug 2026 07:18:11 +0000</pubDate>
      <link>https://dev.to/arcademakersources/my-biggest-c-project-game-engine-with-its-own-scripting-language-ide-o0l</link>
      <guid>https://dev.to/arcademakersources/my-biggest-c-project-game-engine-with-its-own-scripting-language-ide-o0l</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fey2wd8ynglhrydwj7vmf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fey2wd8ynglhrydwj7vmf.png" alt="More screenshots at the end of the post" width="800" height="435"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/ArcadeMakerSources/ArcadeMaker" rel="noopener noreferrer"&gt;GitHub repo&lt;/a&gt;&lt;br&gt;
(first of all, i want to say that I made this project for fun and challenge. I always wanted to create my own language. This has no business goal or something.)&lt;/p&gt;

&lt;p&gt;So the project is a 2D game engine (MonoGame backend) inspired by GameMaker 8. It includes its own IDE (built with WinForms) and an interpreted programming language that I wrote myself.&lt;/p&gt;

&lt;p&gt;The language—definitely the biggest challenge in the project—is a simple dynamically typed language. When I started, I had zero knowledge of how to build something like this. I didn’t even know I was making an interpreter; at first I called it a compiler. It was a personal challenge, and I wanted to figure everything out without using any resources or tutorials. My mindset was basically: “I need to write software that takes a text file containing code and just does what it says.”&lt;/p&gt;

&lt;p&gt;Somehow, I made it work. In the beginning, running an empty loop counting to 1M took 7 seconds. After a lot of performance work and rebuilding parts of the system, the same machine can now run a 30M loop in 2–3 seconds. Pretty nice improvement.&lt;/p&gt;

&lt;p&gt;The language itself is a bit unusual, and I want to share one small feature I really like: loop counters.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;foreach item in ['a', 'b', 'c'] : counter c
{
   println(c + ": " + item)
} 
// Output: 
// 0: a 
// 1: b 
// 2: c
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Not a complicated feature, but pretty useful.&lt;/p&gt;

&lt;p&gt;Anyway, these days I barely have time to work on the project, so I decided to open-source it. I’m hoping people here will find it interesting and help turn it into something real.&lt;/p&gt;

&lt;p&gt;Would love to get feedback! 🙂&lt;/p&gt;

&lt;p&gt;&lt;a href="https://youtu.be/KRDHFFZZdIQ?si=0wRoB_ipmlsru0Tl" rel="noopener noreferrer"&gt;A YouTube video showing a little game I made with the engine&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fj8tv3l8j985s7ezz3c7d.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fj8tv3l8j985s7ezz3c7d.png" alt="Path editor" width="800" height="435"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F3l0f28tmv3cgtxt8ru85.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F3l0f28tmv3cgtxt8ru85.png" alt="Code autocomplete with hints" width="800" height="435"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>csharp</category>
      <category>dotnet</category>
      <category>monogame</category>
      <category>gamedev</category>
    </item>
    <item>
      <title>Open Source Game Engine with its Own Programming Language</title>
      <dc:creator>ER</dc:creator>
      <pubDate>Tue, 19 May 2026 08:33:27 +0000</pubDate>
      <link>https://dev.to/arcademakersources/open-source-game-engine-with-its-own-programming-language-2oj4</link>
      <guid>https://dev.to/arcademakersources/open-source-game-engine-with-its-own-programming-language-2oj4</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fupxew4l2bx29ocspaboq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fupxew4l2bx29ocspaboq.png" alt="IDE screenshot" width="800" height="435"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxxo6ur6xt26na22zvjwe.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxxo6ur6xt26na22zvjwe.png" alt="IDE screenshot" width="800" height="435"&gt;&lt;/a&gt;&lt;br&gt;
I've made a prototype game engine that has its own IDE and programming language. It's based on GameMaker8 and has a MonoGame backend engine. &lt;br&gt;
Look at this little game i made with the engine: &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe7dku5fqqdjneaspx4p1.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe7dku5fqqdjneaspx4p1.gif" alt="I hope the GIF works" width="638" height="510"&gt;&lt;/a&gt;&lt;br&gt;
Full source on GitHub: &lt;a href="https://github.com/ArcadeMakerSources/ArcadeMaker" rel="noopener noreferrer"&gt;https://github.com/ArcadeMakerSources/ArcadeMaker&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Would love to get some feedback here🙂&lt;/p&gt;

</description>
      <category>csharp</category>
      <category>monogame</category>
      <category>gamedev</category>
      <category>opensource</category>
    </item>
  </channel>
</rss>
