<?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: Mohamed Ashraf</title>
    <description>The latest articles on DEV Community by Mohamed Ashraf (@vbspexe).</description>
    <link>https://dev.to/vbspexe</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%2F3176693%2Fe2372de3-c3cc-4648-91a8-ffabda12bab7.jpeg</url>
      <title>DEV Community: Mohamed Ashraf</title>
      <link>https://dev.to/vbspexe</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/vbspexe"/>
    <language>en</language>
    <item>
      <title>I Ported CS:GO to the Browser With WebAssembly</title>
      <dc:creator>Mohamed Ashraf</dc:creator>
      <pubDate>Sun, 18 May 2025 16:45:30 +0000</pubDate>
      <link>https://dev.to/vbspexe/i-ported-csgo-to-the-browser-with-webassembly-2445</link>
      <guid>https://dev.to/vbspexe/i-ported-csgo-to-the-browser-with-webassembly-2445</guid>
      <description>&lt;p&gt;Hello guys! I've been on a wile ride the past couple of months, working on something kinda stupid. Running CS:GO on the browser, yes you read that right, Its slow, janky, and held together with duct tape and hope but it runs... well its running...&lt;/p&gt;

&lt;h2&gt;
  
  
  Backstory
&lt;/h2&gt;

&lt;p&gt;Back in 2023, a user made a feature request/issue to the nillerusr/source-engine repository on GitHub requesting that there should be support for compiling to Emscripten and WebAssembly platforms. I'd never seen it during that time, but I had the same thought back then, I wanted to play Half-Life 2 on my crappy chromebook. I was inspired by the Xash3D port for Emscripten, I tried to do it back then, but I was a script kiddie (Before, not now), and I didn't know how to code.&lt;/p&gt;

&lt;p&gt;Fast forward, 2025, I started a project named "&lt;strong&gt;CSGO: Plus&lt;/strong&gt;" - a Linux-focused CS:GO remake, which was like a Kisak Strike clone but not cmake, and didn't have a hundred commits, and was pretty bad. I did add support for usage of emcc, but I never compiled it with emcc back then and I am sure that it never compiled with emscripten, but later, the repo and the account that owned the repo got deleted (RIP).&lt;/p&gt;

&lt;p&gt;Then Came EmSource or Emscripten Source, a port of the Source 2013 engine branch to WebAssembly. It was.. a pretty bad implementation, and VPC wanted to make me rip my eyes out. I made NeoSource next, but honestly, I won’t get into the mess. Finally, I had an old mod laying around named "Lambda Complex: Source" which was based under Source SDK 2013, so I rebooted it under the CS:GO code, and actually worked on Emscripten, my best implementation thus far.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Goal
&lt;/h2&gt;

&lt;p&gt;The goal is simple. Bring the Source Engine to the web platform so it can be played universally accross all platforms (aka so people can play it with crappy computers)&lt;/p&gt;

&lt;h2&gt;
  
  
  The result
&lt;/h2&gt;

&lt;p&gt;Well... it’s rough. Performance is garbage, memory is tight, and everything feels like it’s taped together with dreams. But hey, it runs. That’s something!&lt;/p&gt;

&lt;h2&gt;
  
  
  The Chaos &amp;amp; Legal Stuff
&lt;/h2&gt;

&lt;p&gt;I licensed this beast under GNU Public License version 3, which probably makes this whole think kinda illegal (sorry, Valve). To do it "by the book", I'd need an MIT license and an official Source Engine license; but I am not giving up this mod that I loved, and poured hours of work onto.&lt;br&gt;
SO yeah its a mess.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;Is this legal? Probably not.&lt;br&gt;
Should you try it? Unless you’re into agony, nah.&lt;br&gt;
Was it fun? Hell yes.&lt;/p&gt;

&lt;p&gt;If you want the source code, you can find it in the Links section. Its called Lambda Complex: Source which is a remake of Opposing Force.&lt;/p&gt;

&lt;h2&gt;
  
  
  Links
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/OrbitaStudios/LambdaComplexSource" rel="noopener noreferrer"&gt;GitHub source code&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Thanks for reading, please star the repository, and drop feedback&lt;/p&gt;

</description>
      <category>webassembly</category>
      <category>emscripten</category>
      <category>gamedev</category>
      <category>programming</category>
    </item>
  </channel>
</rss>
