<?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: Umberto Giacobbi</title>
    <description>The latest articles on DEV Community by Umberto Giacobbi (@umbertogiacobbi).</description>
    <link>https://dev.to/umbertogiacobbi</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%2F4186539%2F949fee00-5391-4b47-8617-30ad34b0f79a.png</url>
      <title>DEV Community: Umberto Giacobbi</title>
      <link>https://dev.to/umbertogiacobbi</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/umbertogiacobbi"/>
    <language>en</language>
    <item>
      <title>PSEC-99: A 3D Browser Game in C# and WASM, Without WebGL</title>
      <dc:creator>Umberto Giacobbi</dc:creator>
      <pubDate>Mon, 19 Oct 2026 03:46:47 +0000</pubDate>
      <link>https://dev.to/umbertogiacobbi/psec-99-a-3d-browser-game-in-c-and-wasm-without-webgl-2a0i</link>
      <guid>https://dev.to/umbertogiacobbi/psec-99-a-3d-browser-game-in-c-and-wasm-without-webgl-2a0i</guid>
      <description>&lt;p&gt;Take a look at what the OpenSilver team has built. This game shows what C# and WebAssembly can do in the browser. How fast? Play it and see for yourself.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Disclosure: I used to work with this team, so I know what they’re capable of.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;For those who don't know, OpenSilver was born long ago as a replacement for Silverlight, a kind of competitor to Flash (but way better). But, as usual, Microsoft killed it. Classic: from "this is the future" to "nah, HTML5 and React are the future." It compiles high-level code into pure WebAssembly, which is fast, really fast. It can do a lot more nowadays (it supports WPF, third-party controls, MAUI, full C#/WebAssembly interop and more).&lt;/p&gt;

&lt;p&gt;To be honest, a demo like this also raises an awkward question: &lt;strong&gt;why do so many web apps struggle with CPU and memory usage just to display a few hundred divs?&lt;/strong&gt; One day I will have an answer to this.&lt;/p&gt;

&lt;p&gt;So, what did they do? They took a 1982 TI-99/4A game and turned it into a 3D browser experience using C#/WASM and an &lt;code&gt;int[]&lt;/code&gt; pixel buffer. No WebGL. In other words, they write the pixels directly, without a middleman. Everything is done through their code. I repeat their buffer is one pixel!&lt;/p&gt;

&lt;p&gt;The result is &lt;strong&gt;PSEC-99&lt;/strong&gt;, an unofficial 3D tribute to &lt;strong&gt;PARSEC&lt;/strong&gt;.&lt;/p&gt;


  


&lt;h2&gt;
  
  
  Try it yourself
&lt;/h2&gt;

&lt;p&gt;Both the game and OpenSilver are open source, so you can study the code, extend it or just play.&lt;/p&gt;

&lt;p&gt;What caught my attention is the rendering approach. Their entire 3D scene is drawn in C# into a &lt;strong&gt;single pixel buffer&lt;/strong&gt; (yes, just one!) in .NET memory, then displayed on an HTML canvas through OpenSilver 3.4 Preview’s new &lt;code&gt;WriteableImage&lt;/code&gt; XAML control.&lt;/p&gt;

&lt;p&gt;That means no game engine, WebGL or WebGPU renderer: the 3D math, projection and rasterization happen in C#. Terrain, stars, buildings, enemies, lasers and explosions all end up in that array.&lt;/p&gt;

&lt;p&gt;They kept other parts deliberately old-school too:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The terrain is rendered row by row, filling pixels directly rather than drawing terrain polygons.&lt;/li&gt;
&lt;li&gt;Buildings start as ASCII grids in C#.&lt;/li&gt;
&lt;li&gt;Sounds and voices are synthesized at runtime.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you remember PARSEC on the TI-99/4A, give it a try. And if you’re into .NET, retro computing or software rendering, the source is well worth exploring.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://lnkd.in/eMuABH2Z" rel="noopener noreferrer"&gt;Explore the MIT-licensed source code&lt;/a&gt;&lt;/strong&gt; — open it in the .NET IDE to run, edit, fork or download it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://psec99.xaml.cloud" rel="noopener noreferrer"&gt;Play directly in your browser&lt;/a&gt;&lt;/strong&gt; — it runs on .NET 10/WASM, including on phones. Heads up: it has sound!&lt;/p&gt;

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