<?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: Stuyk</title>
    <description>The latest articles on DEV Community by Stuyk (@stuyk).</description>
    <link>https://dev.to/stuyk</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%2F291366%2F6d2b2a69-c0d3-472f-b63a-39835ff205f5.png</url>
      <title>DEV Community: Stuyk</title>
      <link>https://dev.to/stuyk</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/stuyk"/>
    <language>en</language>
    <item>
      <title>5 Reason to Switch to Bun</title>
      <dc:creator>Stuyk</dc:creator>
      <pubDate>Mon, 11 Sep 2023 17:15:47 +0000</pubDate>
      <link>https://dev.to/stuyk/5-reason-to-switch-to-bun-294l</link>
      <guid>https://dev.to/stuyk/5-reason-to-switch-to-bun-294l</guid>
      <description>&lt;p&gt;I recently started testing out bun to see where I could save myself some time. I can without a doubt say that bun is going to flip the entire Node ecosystem on its head. Here are 5 reasons why I'm switching to Bun for good.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;You can run TSX, TS out of the box without Transpiling. You've already saved seconds by just using #bun.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;bun has a built in test framework, no more installing jest, mocha, chai, whatever to start testing your code. It's there. It's ready. You can write tests immediately and even has a built in watch mode. No more nodemon, or tsc --watch or whatever other flavor of file watcher you're using.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;bun has a built in HTTP API that will let you construct new REST APIs with minimal code. I can have a working REST API up and running in less than 3 minutes and get it deployed within the hour.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;bun has a built in bundling system that makes all code whether it's ESM (import), or CommonJS (require) Transpile down into a fully browser compatible format. This is huge because now nobody needs to trudge through why imports might be acting funny in a module based package. Everything just works. Period.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;bun is compatible with 99% of npm packages out-of-the-box which means that switching over existing projects to bun is probably already compatible.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Bonus:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;FFI isn't anything new to Node.js but in bun it's very easy. FFI allows for us to write function calls to lower level languages such as C, C++, Rust, etc. Which in turn increases the performance of our applications when it makes sense.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Don't sleep on bun, do your due diligence and build something with it. It's an incredible runtime and LOWERS the overall complexity of your project by 10 fold.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://bun.sh/"&gt;https://bun.sh/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>bunjs</category>
      <category>typescript</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Writing Game Mods Changed My Life</title>
      <dc:creator>Stuyk</dc:creator>
      <pubDate>Mon, 08 May 2023 16:50:41 +0000</pubDate>
      <link>https://dev.to/stuyk/writing-game-mods-changed-my-life-17i</link>
      <guid>https://dev.to/stuyk/writing-game-mods-changed-my-life-17i</guid>
      <description>&lt;p&gt;Modifying a game can be as simple as using existing tools that are supported by a game developer; to utilizing reverse engineered libraries. Being exposed to certain games and letting your creativity drive your learning can be a very rewarding experience. I went from working a part time job at a restaurant to becoming a full-stack developer that works as a blockchain engineer fulltime. &lt;/p&gt;

&lt;p&gt;I was learning about all of these games, and teaching myself while working part time and keeping my monthly needs at a minimum. There was a time in my life where I was only eating a single meal a day and renting out a room just so I could continue focusing on what I loved to do.&lt;/p&gt;

&lt;p&gt;I spent a single semester in College before I decided that it was not the path for me, and wanted to focus on more fundamental parts of game design, programming, etc.&lt;/p&gt;

&lt;h2&gt;
  
  
  What happened?
&lt;/h2&gt;

&lt;p&gt;Around 16 years ago is when I really started dabbling in game development but I would only go as far as modifying game files or the game itself. I never thought I would be able to program because I could not get my brain to understand the concepts. I was young and around 14~ years old when I started teaching myself.&lt;/p&gt;

&lt;h3&gt;
  
  
  Alien Swarm
&lt;/h3&gt;

&lt;p&gt;Alien Swarm was a game released by Valve in 2010 that exposed me to the hammer editor and I was able to build a handful of maps utilizing this one tool.&lt;/p&gt;

&lt;p&gt;Using this tool let me explore other tools such as Photoshop that would teach me about texturing objects, and brushes.&lt;/p&gt;

&lt;p&gt;Building some maps actually got a handful of them featured in PC Gamer Magazine in 2011. Here's a horrible video of one of those maps.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/h7iPettGy4w"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h3&gt;
  
  
  Papyrus Scripting
&lt;/h3&gt;

&lt;p&gt;This game was a gateway drug to getting exposed to other game communities with more complex mods. Games such as Skyrim, Fallout, &lt;a href="https://www.sa-mp.com/"&gt;San Andreas Multiplayer&lt;/a&gt;, etc. These communities gave me exposure to my first programming language which was Papyrus. This language was utilized in &lt;a href="https://www.creationkit.com/index.php?title=Landing_page"&gt;Creation Kit&lt;/a&gt; which was supported by Bethesda. &lt;/p&gt;

&lt;p&gt;This one programming language allowed me to do very simple things such as pressing a button and triggering various game components based on that one button press.&lt;/p&gt;

&lt;p&gt;A simple cause and effect.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/0KNlZlKHkGE"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h3&gt;
  
  
  3DS Max
&lt;/h3&gt;

&lt;p&gt;While learning these tools I got interested in programs such as 3DS Max which taught me more game development concepts and the 3D side of game development.&lt;/p&gt;

&lt;p&gt;Here's a few things I learned just from 3DS Max:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Rigging&lt;/li&gt;
&lt;li&gt;UV Mapping&lt;/li&gt;
&lt;li&gt;3D Design&lt;/li&gt;
&lt;li&gt;Utilizing Game Model Files&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/tNTNiwaVLCI"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h3&gt;
  
  
  GTA:V
&lt;/h3&gt;

&lt;p&gt;Then GTA:V came along with third-party clients such as &lt;a href="https://altv.mp/#/"&gt;alt:V&lt;/a&gt;, &lt;a href="https://www.gtanet.work/"&gt;GTA:Network&lt;/a&gt;, &lt;a href="https://fivem.net/"&gt;FiveM&lt;/a&gt;, etc.&lt;/p&gt;

&lt;p&gt;GTA:V itself exposed me to a plethora of new concepts and new programming languages. It was at this time when I started taking programming more seriously. It took me about a year to understand the basics of programming and actually write scripts that did something inside of GTA:V itself.&lt;/p&gt;

&lt;p&gt;I was able to learn the following languages:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;C#&lt;/li&gt;
&lt;li&gt;TypeScript&lt;/li&gt;
&lt;li&gt;JavaScript&lt;/li&gt;
&lt;li&gt;HTML&lt;/li&gt;
&lt;li&gt;CSS&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I was able to learn the following frontend frameworks:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Preact&lt;/li&gt;
&lt;li&gt;Vue&lt;/li&gt;
&lt;li&gt;React&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I was able to learn both NoSQL and SQL based databases at a minimum level. Everything from these simple GTA:V mods were some of the best teachers I have ever had. A little bit of documentation allowed me to create all sorts of fun scripts and game modes.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/K8vw1zBjieg"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  Where Everything Exploded
&lt;/h2&gt;

&lt;p&gt;At some point during my career I started mixing knowledge with real world usage. I mixed my love of game modding with a blockchain and suddenly I was someone who could be hired. I made an inventory system hooked into an EOS smart contract that would allow players to transact inside of GTA:V to buy / sell items. It was pretty much a non-fungible token smart contract. I just didn't know the term at the time.&lt;/p&gt;

&lt;p&gt;This is where I picked up C++ since Smart Contracts on the EOS Blockchain are done with this programming language.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where I Headed
&lt;/h2&gt;

&lt;p&gt;Posting some videos on Reddit of my work actually landed me a job out of &lt;strong&gt;pure luck&lt;/strong&gt;. However, the work that I did before was not discounted as I was able to continue building off what I learned by doing game modifications.&lt;/p&gt;

&lt;p&gt;I was working fulltime as a blockchain engineer while learning from my peers but also still learning more things through GTA:V's third-party game mods.&lt;/p&gt;

&lt;p&gt;I started learning frontend frameworks and actually learning the systems that are utilized for creating backends. I was able to dig into oAuth2, create Discord Bots, build documentation websites, build tools and utilities.&lt;/p&gt;

&lt;p&gt;Mixing my hobbies with my work actually proved to be a massive gain for my knowledge and ability to write anything that I could ever dream of.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tips for a Younger Me
&lt;/h2&gt;

&lt;p&gt;If I could go back to the early years I wish I could have told my younger self that if you bang your head against a wall enough times you will eventually break ground. &lt;/p&gt;

&lt;p&gt;Don't give up so easily and keep pushing until it makes sense.&lt;/p&gt;

&lt;p&gt;You will try a lot and you will fail a lot but when it does work it's almost like a switch has been turned on.&lt;/p&gt;

&lt;p&gt;Nothing happens without putting yourself out there in a vulnerable position and trying to swim in a sea of problems.&lt;/p&gt;

&lt;p&gt;Do something every day and you will get better at it, even if it you are not entirely sure what you are doing.&lt;/p&gt;

&lt;p&gt;Work hard and you might just be a bit more successful tomorrow.&lt;/p&gt;

</description>
      <category>gamedev</category>
      <category>typescript</category>
      <category>javascript</category>
    </item>
  </channel>
</rss>
