<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Epic Games on Mamadou Babaei</title>
    <link>https://www.babaei.net/tags/epic-games/</link>
    <description>Recent content in Epic Games on Mamadou Babaei</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-us</language>
    <lastBuildDate>Mon, 17 Nov 2025 23:44:00 +0100</lastBuildDate><atom:link href="https://www.babaei.net/tags/epic-games/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Unreal Engine 5.7 Android Packaging &amp; APK Build Tutorial | Meta Quest &amp; HTC VIVE Standalone</title>
      <link>https://www.babaei.net/blog/unreal-engine-android-packaging-apk-build-tutorial-meta-quest-htc-vive-standalone/</link>
      <pubDate>Mon, 17 Nov 2025 23:44:00 +0100</pubDate>
      
      <guid>https://www.babaei.net/blog/unreal-engine-android-packaging-apk-build-tutorial-meta-quest-htc-vive-standalone/</guid>
      <description>&lt;link rel=&#34;stylesheet&#34; href=&#34;https://www.babaei.net/css/hugo-easy-gallery.css&#34; /&gt;
&lt;div class=&#34;box&#34; &gt;
  &lt;figure  itemprop=&#34;associatedMedia&#34; itemscope itemtype=&#34;http://schema.org/ImageObject&#34;&gt;
    &lt;div class=&#34;img&#34;&gt;
      &lt;img itemprop=&#34;thumbnail&#34; src=&#34;https://www.babaei.net/blog/unreal-engine-android-packaging-apk-build-tutorial-meta-quest-htc-vive-standalone/unreal-engine-android-packaging-apk-build-tutorial-meta-quest-htc-vive-standalone.webp&#34; alt=&#34;Unreal Engine 5.7 Android Packaging &amp;amp; APK Build Tutorial | Meta Quest &amp;amp; HTC VIVE Standalone&#34;/&gt;
    &lt;/div&gt;
    &lt;a href=&#34;https://www.babaei.net/blog/unreal-engine-android-packaging-apk-build-tutorial-meta-quest-htc-vive-standalone/unreal-engine-android-packaging-apk-build-tutorial-meta-quest-htc-vive-standalone.webp&#34; itemprop=&#34;contentUrl&#34;&gt;&lt;/a&gt;
      &lt;figcaption&gt;
          &lt;p&gt;Unreal Engine 5.7 Android Packaging &amp;amp; APK Build Tutorial | Meta Quest &amp;amp; HTC VIVE Standalone&lt;/p&gt;
      &lt;/figcaption&gt;
  &lt;/figure&gt;
&lt;/div&gt;

&lt;p&gt;Let&amp;rsquo;s cut the noise. You want quick, clean, and painless Unreal Engine APK builds and packaging? You&amp;rsquo;re in the right place.&lt;/p&gt;
&lt;p&gt;A while back, I released two videos: one on &lt;a href=&#34;https://www.babaei.net/blog/deploy-unreal-engine-projects-android-meta-quest-standalone-mode/&#34;&gt;deploying Unreal Engine projects to Android and Meta Quest&lt;/a&gt;, and another on &lt;a href=&#34;https://www.babaei.net/blog/unreal-engine-openxr-hand-tracking-android-meta-xr-htc-vive/&#34;&gt;enabling proper hand-tracking using the Meta XR Plugin and HTC VIVE OpenXR plugins&lt;/a&gt;. I also tackled a frustrating issue on HTC VIVE devices, where APKs were launching as 2D apps instead of immersive VR experiences.&lt;/p&gt;
&lt;p&gt;That first video blew up; it became one of my best-performing uploads to this date, with tons of positive feedback. But one thing stood out in the comments: Unreal developers everywhere are struggling to set up the Android development environment and package APKs correctly.&lt;/p&gt;
&lt;p&gt;So, back by demand, and with something even better, welcome to the Ultimate Guide for deploying Unreal Engine projects to Android standalone-mode.&lt;/p&gt;
&lt;p&gt;This video combines everything from the previous tutorials; refined, updated, and streamlined. And to make things even easier, I&amp;rsquo;ve just open-sourced a brand-new one-click installer that sets up your entire Android development environment for Unreal Engine automagically. It downloads, installs, and configures Android Studio, SDK, NDK, and JDK, so you don&amp;rsquo;t have to lift even a finger.&lt;/p&gt;
&lt;p&gt;Whether you&amp;rsquo;re building for Meta Quest or HTC VIVE, this guide takes you from zero to packaged APK, with full VR support, working hand-tracking, and seamless integration of both Meta XR and HTC VIVE OpenXR plugins.&lt;/p&gt;
&lt;p&gt;Let&amp;rsquo;s dive in.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Optimizing Unreal Engine VR Projects for Higher Framerates (Meta Quest, HTC VIVE, FFR, ETFR, NVIDIA DLSS, AMD FSR, and Intel XeSS Tips Included!)</title>
      <link>https://www.babaei.net/blog/optimizing-unreal-engine-vr-projects-higher-framerate/</link>
      <pubDate>Mon, 09 Jun 2025 14:18:00 +0200</pubDate>
      
      <guid>https://www.babaei.net/blog/optimizing-unreal-engine-vr-projects-higher-framerate/</guid>
      <description>&lt;link rel=&#34;stylesheet&#34; href=&#34;https://www.babaei.net/css/hugo-easy-gallery.css&#34; /&gt;
&lt;div class=&#34;box&#34; &gt;
  &lt;figure  itemprop=&#34;associatedMedia&#34; itemscope itemtype=&#34;http://schema.org/ImageObject&#34;&gt;
    &lt;div class=&#34;img&#34;&gt;
      &lt;img itemprop=&#34;thumbnail&#34; src=&#34;https://www.babaei.net/blog/optimizing-unreal-engine-vr-projects-higher-framerate/optimizing-unreal-engine-vr-projects-higher-framerate.webp&#34; alt=&#34;Optimizing Unreal Engine VR Projects for Higher Framerates (Meta Quest, HTC VIVE, FFR, ETFR, NVIDIA DLSS, AMD FSR, and Intel XeSS Tips Included!)&#34;/&gt;
    &lt;/div&gt;
    &lt;a href=&#34;https://www.babaei.net/blog/optimizing-unreal-engine-vr-projects-higher-framerate/optimizing-unreal-engine-vr-projects-higher-framerate.webp&#34; itemprop=&#34;contentUrl&#34;&gt;&lt;/a&gt;
      &lt;figcaption&gt;
          &lt;p&gt;Optimizing Unreal Engine VR Projects for Higher Framerates (Meta Quest, HTC VIVE, FFR, ETFR, NVIDIA DLSS, AMD FSR, and Intel XeSS Tips Included!)&lt;/p&gt;
      &lt;/figcaption&gt;
  &lt;/figure&gt;
&lt;/div&gt;

&lt;p&gt;Ever felt like your VR project is running so slow it could be a snail&amp;rsquo;s day job? 🐌 Or maybe your framerate is auditioning for a role in The Matrix—dodging bullets, but also every performance standard? 😅&lt;/p&gt;
&lt;p&gt;Well, today, we&amp;rsquo;re fixing that! I’ll show you how to take your Unreal Engine VR game from ‘meh’ to chef’s kiss smooth. Although enhancing the performance and framerate of Unreal Engine VR applications, whether running in standalone mode (Android mobile) or PCVR mode (PC streaming), can feel daunting, especially when dealing with varying project requirements, this guide breaks down practical and easy-to-implement strategies that deliver noticeable results with minimal hassle, helping you achieve smoother gameplay.&lt;/p&gt;
&lt;p&gt;So, let’s get started before that snail finishes its coffee break!&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Building Unreal Engine 5.6 From the GitHub Source Code on GNU/Linux With Android Support</title>
      <link>https://www.babaei.net/blog/build-unreal-engine-from-github-source-code-gnu-linux-with-android-support/</link>
      <pubDate>Sun, 08 Jun 2025 10:07:00 +0200</pubDate>
      
      <guid>https://www.babaei.net/blog/build-unreal-engine-from-github-source-code-gnu-linux-with-android-support/</guid>
      <description>&lt;link rel=&#34;stylesheet&#34; href=&#34;https://www.babaei.net/css/hugo-easy-gallery.css&#34; /&gt;
&lt;div class=&#34;box&#34; &gt;
  &lt;figure  itemprop=&#34;associatedMedia&#34; itemscope itemtype=&#34;http://schema.org/ImageObject&#34;&gt;
    &lt;div class=&#34;img&#34;&gt;
      &lt;img itemprop=&#34;thumbnail&#34; src=&#34;https://www.babaei.net/blog/build-unreal-engine-from-github-source-code-gnu-linux-with-android-support/build-unreal-engine-from-github-source-code-gnu-linux-with-android-support.webp&#34; alt=&#34;Building Unreal Engine 5.6 from the GitHub Source Code With Android Support&#34;/&gt;
    &lt;/div&gt;
    &lt;a href=&#34;https://www.babaei.net/blog/build-unreal-engine-from-github-source-code-gnu-linux-with-android-support/build-unreal-engine-from-github-source-code-gnu-linux-with-android-support.webp&#34; itemprop=&#34;contentUrl&#34;&gt;&lt;/a&gt;
      &lt;figcaption&gt;
          &lt;p&gt;Building Unreal Engine 5.6 from the GitHub Source Code With Android Support&lt;/p&gt;
      &lt;/figcaption&gt;
  &lt;/figure&gt;
&lt;/div&gt;

&lt;p&gt;Alright, I’m back with another video.&lt;/p&gt;
&lt;p&gt;If you caught the &lt;a href=&#34;https://www.babaei.net/blog/build-unreal-engine-from-github-source-code-microsof-windows/&#34;&gt;last one on building Unreal Engine 5.6 from source on Windows&lt;/a&gt;, you already know the drill. As promised—this is the GNU/Linux edition.&lt;/p&gt;
&lt;p&gt;We’re doing it the Linux way this time: clean, efficient, and just a bit different. Let’s dive in.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;UPDATE [2025/07/04]&lt;/strong&gt;: &lt;em&gt;The original &lt;code&gt;NDK_ROOT&lt;/code&gt; and &lt;code&gt;NDKROOT&lt;/code&gt; environment variables values used during the video shoot were misconfigured. That has now been corrected.&lt;/em&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Building Unreal Engine 5.6 From the GitHub Source Code on Microsoft Windows</title>
      <link>https://www.babaei.net/blog/build-unreal-engine-from-github-source-code-microsof-windows/</link>
      <pubDate>Mon, 05 May 2025 23:00:00 +0200</pubDate>
      
      <guid>https://www.babaei.net/blog/build-unreal-engine-from-github-source-code-microsof-windows/</guid>
      <description>&lt;link rel=&#34;stylesheet&#34; href=&#34;https://www.babaei.net/css/hugo-easy-gallery.css&#34; /&gt;
&lt;div class=&#34;box&#34; &gt;
  &lt;figure  itemprop=&#34;associatedMedia&#34; itemscope itemtype=&#34;http://schema.org/ImageObject&#34;&gt;
    &lt;div class=&#34;img&#34;&gt;
      &lt;img itemprop=&#34;thumbnail&#34; src=&#34;https://www.babaei.net/blog/build-unreal-engine-from-github-source-code-microsof-windows/build-unreal-engine-from-github-source-code-microsof-windows.webp&#34; alt=&#34;Building Unreal Engine 5.6 from the GitHub Source Code&#34;/&gt;
    &lt;/div&gt;
    &lt;a href=&#34;https://www.babaei.net/blog/build-unreal-engine-from-github-source-code-microsof-windows/build-unreal-engine-from-github-source-code-microsof-windows.webp&#34; itemprop=&#34;contentUrl&#34;&gt;&lt;/a&gt;
      &lt;figcaption&gt;
          &lt;p&gt;Building Unreal Engine 5.6 from the GitHub Source Code&lt;/p&gt;
      &lt;/figcaption&gt;
  &lt;/figure&gt;
&lt;/div&gt;

&lt;p&gt;Alright&amp;hellip; I’m back.
Yes, I know—I vanished for a while. But just like the upcoming Unreal Engine &lt;code&gt;5.6&lt;/code&gt; release, I’ve been quietly cooking in the shadows. And now… we’re both making a comeback.&lt;/p&gt;
&lt;p&gt;Today’s tutorial is all about how to build Unreal Engine &lt;code&gt;5.6&lt;/code&gt; from source—on Windows. That’s right, &lt;code&gt;5.6&lt;/code&gt; isn’t officially out yet, but we’re not waiting around. If you’re impatient like me—or just curious to see what Epic’s brewing before the rest of the world—this video is for you.&lt;/p&gt;
&lt;p&gt;Now, some of you patient folks out there might be thinking:
“Why bother? Can’t I just wait for the release?”
Fair question. But here’s the deal—I work for a company that publishes Unreal Engine plugins on the Fab Store. And they want their plugin ready on day zero when the new engine drops. The catch? Epic only allows you to submit plugins once the final version is officially released. So to stay ahead of the curve, we grab the source early, build it, test it, and make sure everything works before the launch day.&lt;/p&gt;
&lt;p&gt;And hey, if you’re a Linux user—don’t worry—I’ve got a separate video coming soon. Just not today. Because building on Linux is like dating in your forties… not complicated, exactly—just different.&lt;/p&gt;
&lt;p&gt;We’ll be diving into more Unreal Engine &lt;code&gt;5.6&lt;/code&gt; goodness over the coming months, so buckle up, hit that subscribe button, and let’s get nerdy.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Unreal Engine OpenXR Hand-Tracking on Android with Meta XR (Quest 3S/3/Pro/2) and HTC VIVE OpenXR (Focus Vision/XR Elite/Focus 3) Plugins</title>
      <link>https://www.babaei.net/blog/unreal-engine-openxr-hand-tracking-android-meta-xr-htc-vive/</link>
      <pubDate>Wed, 15 Jan 2025 12:12:00 +0100</pubDate>
      
      <guid>https://www.babaei.net/blog/unreal-engine-openxr-hand-tracking-android-meta-xr-htc-vive/</guid>
      <description>&lt;link rel=&#34;stylesheet&#34; href=&#34;https://www.babaei.net/css/hugo-easy-gallery.css&#34; /&gt;
&lt;div class=&#34;box&#34; &gt;
  &lt;figure  itemprop=&#34;associatedMedia&#34; itemscope itemtype=&#34;http://schema.org/ImageObject&#34;&gt;
    &lt;div class=&#34;img&#34;&gt;
      &lt;img itemprop=&#34;thumbnail&#34; src=&#34;https://www.babaei.net/blog/unreal-engine-openxr-hand-tracking-android-meta-xr-htc-vive/unreal-engine-openxr-hand-tracking-android-meta-xr-htc-vive.webp&#34; alt=&#34;Unreal Engine OpenXR Hand-Tracking on Android with Meta XR (Quest 3S/3/Pro/2) and HTC VIVE OpenXR (Focus Vision/XR Elite/Focus 3) Plugins&#34;/&gt;
    &lt;/div&gt;
    &lt;a href=&#34;https://www.babaei.net/blog/unreal-engine-openxr-hand-tracking-android-meta-xr-htc-vive/unreal-engine-openxr-hand-tracking-android-meta-xr-htc-vive.webp&#34; itemprop=&#34;contentUrl&#34;&gt;&lt;/a&gt;
      &lt;figcaption&gt;
          &lt;p&gt;Unreal Engine OpenXR Hand-Tracking on Android with Meta XR (Quest 3S/Pro/3/2) and HTC VIVE OpenXR (Focus Vision/XR Elite/Focus 3) Plugins&lt;/p&gt;
      &lt;/figcaption&gt;
  &lt;/figure&gt;
&lt;/div&gt;

&lt;p&gt;Hey everyone! Welcome back to the channel! In the last tutorial, we tackled deploying Unreal Engine projects to Android and Meta Quest in standalone mode—because who doesn’t love the thrill of watching their code actually work on a headset? But if you caught that episode, you’ll remember I dropped a little plot twist: Unreal Engine’s built-in OpenXR plugin&amp;hellip; yeah, it’s like that friend who shows up at your party and forgets to bring their own hand-tracking support for Android. Awkward, right?&lt;/p&gt;
&lt;p&gt;Well, today, we’re fixing that. We’re making sure the hand-tracking projects we developed together earlier in this series, have non-broken, fully functional hand-tracking and play nice on your Meta Quest and HTC Vive HMDs in standalone mode. Whether you’re team Meta or team HTC, I’ve got you covered.&lt;/p&gt;
&lt;p&gt;Let’s jump right in and get the hand-tracking working exactly the way it’s supposed to!&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Deploy Unreal Engine Projects to Android and Meta Quest 3S/3/Pro/2 in Standalone Mode</title>
      <link>https://www.babaei.net/blog/deploy-unreal-engine-projects-android-meta-quest-standalone-mode/</link>
      <pubDate>Fri, 20 Dec 2024 17:28:00 +0100</pubDate>
      
      <guid>https://www.babaei.net/blog/deploy-unreal-engine-projects-android-meta-quest-standalone-mode/</guid>
      <description>&lt;link rel=&#34;stylesheet&#34; href=&#34;https://www.babaei.net/css/hugo-easy-gallery.css&#34; /&gt;
&lt;div class=&#34;box&#34; &gt;
  &lt;figure  itemprop=&#34;associatedMedia&#34; itemscope itemtype=&#34;http://schema.org/ImageObject&#34;&gt;
    &lt;div class=&#34;img&#34;&gt;
      &lt;img itemprop=&#34;thumbnail&#34; src=&#34;https://www.babaei.net/blog/deploy-unreal-engine-projects-android-meta-quest-standalone-mode/deploy-unreal-engine-projects-android-meta-quest-standalone-mode.webp&#34; alt=&#34;Deploy Unreal Engine Projects to Android and Meta Quest 3S/3/Pro/2 in Standalone Mode&#34;/&gt;
    &lt;/div&gt;
    &lt;a href=&#34;https://www.babaei.net/blog/deploy-unreal-engine-projects-android-meta-quest-standalone-mode/deploy-unreal-engine-projects-android-meta-quest-standalone-mode.webp&#34; itemprop=&#34;contentUrl&#34;&gt;&lt;/a&gt;
      &lt;figcaption&gt;
          &lt;p&gt;Deploy Unreal Engine Projects to Android and Meta Quest 3S/3/Pro/2 in Standalone Mode&lt;/p&gt;
      &lt;/figcaption&gt;
  &lt;/figure&gt;
&lt;/div&gt;

&lt;p&gt;All right… so… you might be wondering—where have I been? Did I fall into a virtual void or some digital black hole? Did I get sucked into a never-ending loading screen? Did Unreal Engine finally crash me for good? Well, almost.&lt;/p&gt;
&lt;p&gt;But I’m back! Back from the digital abyss. And let me tell you, I was this close to naming this video: ‘How to Deploy Your Soul to Standalone Mode’… because burnout is real, my friends.&lt;/p&gt;
&lt;p&gt;Jokes aside, YOU—yes, you awesome people—kept me going. I read your comments. I saw your feedback. And honestly, some of those messages… they were half encouragement, half passive-aggressive ‘Bro, where’s the next tutorial?!’ You all have zero chills. But… I like that. That’s what got me here today.&lt;/p&gt;
&lt;p&gt;So, by popular demand and an ungodly amount of coffee, here we are. Today, we will deploy your Unreal Engine projects to Meta Quest. We’re talking Android standalone mode, baby!&lt;/p&gt;
&lt;p&gt;And if you’ve been struggling with this process, don’t worry. I’ve suffered so you don’t have to. You’re welcome!&lt;/p&gt;
&lt;p&gt;But, before we dive into the screen-sharing and the real stuff, you know the drill. Smash that like button, subscribe, and drop a comment. If you don’t, I’ll deploy you into an infinite loop of beginner VR setup tutorials. Trust me, you don’t want that. So, it&amp;rsquo;s your call!&lt;/p&gt;
&lt;p&gt;All right! Let’s get into it.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Procedural Virtual Hand Mesh Animation Using OpenXR Hand-Tracking in Unreal Engine</title>
      <link>https://www.babaei.net/blog/unreal-engine-openxr-hand-tracking-procedural-virtual-hand-mesh-animation/</link>
      <pubDate>Sat, 07 Dec 2024 18:31:00 +0100</pubDate>
      
      <guid>https://www.babaei.net/blog/unreal-engine-openxr-hand-tracking-procedural-virtual-hand-mesh-animation/</guid>
      <description>&lt;link rel=&#34;stylesheet&#34; href=&#34;https://www.babaei.net/css/hugo-easy-gallery.css&#34; /&gt;
&lt;div class=&#34;box&#34; &gt;
  &lt;figure  itemprop=&#34;associatedMedia&#34; itemscope itemtype=&#34;http://schema.org/ImageObject&#34;&gt;
    &lt;div class=&#34;img&#34;&gt;
      &lt;img itemprop=&#34;thumbnail&#34; src=&#34;https://www.babaei.net/blog/unreal-engine-openxr-hand-tracking-procedural-virtual-hand-mesh-animation/unreal-engine-openxr-hand-tracking-procedural-virtual-hand-mesh-animation.webp&#34; alt=&#34;Procedural Virtual Hand Mesh Animation Using OpenXR Hand-Tracking in Unreal Engine&#34;/&gt;
    &lt;/div&gt;
    &lt;a href=&#34;https://www.babaei.net/blog/unreal-engine-openxr-hand-tracking-procedural-virtual-hand-mesh-animation/unreal-engine-openxr-hand-tracking-procedural-virtual-hand-mesh-animation.webp&#34; itemprop=&#34;contentUrl&#34;&gt;&lt;/a&gt;
      &lt;figcaption&gt;
          &lt;p&gt;Procedural Virtual Hand Mesh Animation Using OpenXR Hand-Tracking in Unreal Engine&lt;/p&gt;
      &lt;/figcaption&gt;
  &lt;/figure&gt;
&lt;/div&gt;

&lt;p&gt;Building on the &lt;a href=&#34;https://www.babaei.net/blog/virtual-reality-openxr-hand-tracking-gesture-recognition-detection-unreal-engine/&#34;&gt;Introduction to Virtual Reality, OpenXR Hand-Tracking, and Gesture Recognition in Unreal Engine&lt;/a&gt; tutorial, this slightly more advanced tutorial will dive deeper into the following topics:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Transitioning seamlessly between motion controller and hand-tracking modes in Unreal Engine.&lt;/li&gt;
&lt;li&gt;Adding custom debugging gizmos to improve development and testing workflows.&lt;/li&gt;
&lt;li&gt;Visualizing debug virtual hands by incorporating the custom gizmos.&lt;/li&gt;
&lt;li&gt;Animating virtual hand meshes with OpenXR hand-tracking data, moving beyond basic joint representation with cubes.&lt;/li&gt;
&lt;li&gt;Re-using and adapting the gesture recognition code from the introductory tutorial to integrate with the new animated virtual hand meshes.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This guide will help you take your VR projects to the next level with polished and practical implementations.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Introduction to Virtual Reality, OpenXR Hand-Tracking, and Gesture Recognition in Unreal Engine</title>
      <link>https://www.babaei.net/blog/virtual-reality-openxr-hand-tracking-gesture-recognition-detection-unreal-engine/</link>
      <pubDate>Sat, 09 Nov 2024 01:10:00 +0100</pubDate>
      
      <guid>https://www.babaei.net/blog/virtual-reality-openxr-hand-tracking-gesture-recognition-detection-unreal-engine/</guid>
      <description>&lt;link rel=&#34;stylesheet&#34; href=&#34;https://www.babaei.net/css/hugo-easy-gallery.css&#34; /&gt;
&lt;div class=&#34;box&#34; &gt;
  &lt;figure  itemprop=&#34;associatedMedia&#34; itemscope itemtype=&#34;http://schema.org/ImageObject&#34;&gt;
    &lt;div class=&#34;img&#34;&gt;
      &lt;img itemprop=&#34;thumbnail&#34; src=&#34;https://www.babaei.net/blog/virtual-reality-openxr-hand-tracking-gesture-recognition-detection-unreal-engine/virtual-reality-openxr-hand-tracking-gesture-recognition-detection-unreal-engine.webp&#34; alt=&#34;Introduction to Virtual Reality, OpenXR Hand-Tracking, and Gesture Recognition in Unreal Engine&#34;/&gt;
    &lt;/div&gt;
    &lt;a href=&#34;https://www.babaei.net/blog/virtual-reality-openxr-hand-tracking-gesture-recognition-detection-unreal-engine/virtual-reality-openxr-hand-tracking-gesture-recognition-detection-unreal-engine.webp&#34; itemprop=&#34;contentUrl&#34;&gt;&lt;/a&gt;
      &lt;figcaption&gt;
          &lt;p&gt;Introduction to Virtual Reality, OpenXR Hand-Tracking, and Gesture Recognition in Unreal Engine&lt;/p&gt;
      &lt;/figcaption&gt;
  &lt;/figure&gt;
&lt;/div&gt;

&lt;p&gt;Here&amp;rsquo;s a lesser-known fact about me. Once upon a time, when it was just me and the dinosaurs&amp;hellip; Okay, maybe not that far back, but long before VR headsets, the Metaverse, and the social media craze, I used to teach people things for 8 years! I loved it so much that, honestly, I could talk for hours (don&amp;rsquo;t worry, I won&amp;rsquo;t in this video)!&lt;/p&gt;
&lt;p&gt;Anyway, enough of my rambling! Recently, I rediscovered that passion for teaching, and I&amp;rsquo;m thrilled to kick off a VR tutorial series in Unreal Engine. That&amp;rsquo;s why, as the introductory step into this series, we&amp;rsquo;re diving hands-first into the fascinating world of virtual reality.&lt;/p&gt;
&lt;p&gt;But, before we jump in, make sure to hit that subscribe button so you don&amp;rsquo;t miss any of my VR adventures.&lt;/p&gt;
&lt;p&gt;Ready? Let&amp;rsquo;s bring those virtual hands to life!&lt;/p&gt;
&lt;p&gt;Find the link to the video tutorial and the project repository down below.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>A quick workaround for Unreal Engine Modeling Tools Editor Mode plugin not showing up on Linux and macOS</title>
      <link>https://www.babaei.net/blog/unreal-engine-modeling-tools-editor-mode-plugin-not-showing-up-linux-macos-workaround/</link>
      <pubDate>Mon, 08 Nov 2021 01:10:00 +0100</pubDate>
      
      <guid>https://www.babaei.net/blog/unreal-engine-modeling-tools-editor-mode-plugin-not-showing-up-linux-macos-workaround/</guid>
      <description>&lt;p&gt;&lt;strong&gt;UPDATE [2021/11/08]&lt;/strong&gt;: &lt;em&gt;For whitelisting macOS, one could simply add &lt;code&gt;Mac&lt;/code&gt; to &lt;code&gt;PlatformAllowList&lt;/code&gt; inside the &lt;code&gt;.uplugin&lt;/code&gt; file. e.g.&lt;/em&gt;:&lt;/p&gt;
&lt;div class=&#34;codeblock&#34;&gt;
    
    &lt;span class=&#34;title&#34;&gt;Whitelisting Linux inside ModelingToolsEditorMode.uplugin&lt;/span&gt;
    
    
    
    &lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Modules&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#f92672&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Name&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;ModelingToolsEditorMode&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Type&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Editor&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;LoadingPhase&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Default&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;PlatformAllowList&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Win64&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Linux&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Mac&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#f92672&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt;,&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
    
    
&lt;/div&gt;

&lt;hr /&gt;
&lt;p&gt;I&amp;rsquo;ve been trying to enable and make use of &lt;a href=&#34;https://www.unrealengine.com/en-US/tech-blog/unreal-engine-5-s-modeling-mode-takes-shape&#34;&gt;UE5&amp;rsquo;s Modeling Tools Editor Mode Plugin&lt;/a&gt; inside the editor built from &lt;code&gt;ue5-main&lt;/code&gt; and &lt;code&gt;5.0&lt;/code&gt; and struggled to some extent. According to Epic Games, this should suffice:&lt;/p&gt;











  
  
  
  





  


&lt;blockquote&gt;
  &lt;p&gt;If you are starting up a new project, the modeling mode plugin may need to be turned on. From the Plugins window, enable the Modeling Tools Editor Mode Plugin and restart Unreal Engine.&lt;/p&gt;
  &lt;footer&gt;
    &lt;strong&gt;Russell Paul from Unreal Engine&amp;#39;s blog&lt;/strong&gt;
    
      
        &lt;cite&gt;
          &lt;a href=&#34;https://www.unrealengine.com/en-US/tech-blog/unreal-engine-5-s-modeling-mode-takes-shape&#34; title=&#34;https://www.unrealengine.com/en-US/tech-blog/unreal-engine-5-s-modeling-mode-takes-shape&#34;&gt;Unreal Engine 5’s modeling mode takes shape&lt;/a&gt; 
        &lt;/cite&gt;
      
    
  &lt;/footer&gt;
&lt;/blockquote&gt;

&lt;p&gt;So, I did enable the plugin from inside the editor:&lt;/p&gt;

&lt;link rel=&#34;stylesheet&#34; href=&#34;https://www.babaei.net/css/hugo-easy-gallery.css&#34; /&gt;
&lt;div class=&#34;box&#34; &gt;
  &lt;figure  itemprop=&#34;associatedMedia&#34; itemscope itemtype=&#34;http://schema.org/ImageObject&#34;&gt;
    &lt;div class=&#34;img&#34;&gt;
      &lt;img itemprop=&#34;thumbnail&#34; src=&#34;https://www.babaei.net/blog/unreal-engine-modeling-tools-editor-mode-plugin-not-showing-up-linux-macos-workaround/enabling-unreal-engine-modeling-tools-editor-mode-plugin.webp&#34; alt=&#34;Enabling Unreal Engine Modeling Tools Editor Mode plugin&#34;/&gt;
    &lt;/div&gt;
    &lt;a href=&#34;https://www.babaei.net/blog/unreal-engine-modeling-tools-editor-mode-plugin-not-showing-up-linux-macos-workaround/enabling-unreal-engine-modeling-tools-editor-mode-plugin.webp&#34; itemprop=&#34;contentUrl&#34;&gt;&lt;/a&gt;
      &lt;figcaption&gt;
          &lt;p&gt;Enabling Unreal Engine Modeling Tools Editor Mode Plugin&lt;/p&gt;
      &lt;/figcaption&gt;
  &lt;/figure&gt;
&lt;/div&gt;

&lt;p&gt;To no avail and I was never able to find it inside the UE5 editor:&lt;/p&gt;


&lt;div class=&#34;box&#34; &gt;
  &lt;figure  itemprop=&#34;associatedMedia&#34; itemscope itemtype=&#34;http://schema.org/ImageObject&#34;&gt;
    &lt;div class=&#34;img&#34;&gt;
      &lt;img itemprop=&#34;thumbnail&#34; src=&#34;https://www.babaei.net/blog/unreal-engine-modeling-tools-editor-mode-plugin-not-showing-up-linux-macos-workaround/unreal-engine-modeling-tools-editor-mode-plugin-not-showing-up-linux-macos.webp&#34; alt=&#34;Unreal Engine Modeling Tools Editor Mode plugin not showing up after being enabled&#34;/&gt;
    &lt;/div&gt;
    &lt;a href=&#34;https://www.babaei.net/blog/unreal-engine-modeling-tools-editor-mode-plugin-not-showing-up-linux-macos-workaround/unreal-engine-modeling-tools-editor-mode-plugin-not-showing-up-linux-macos.webp&#34; itemprop=&#34;contentUrl&#34;&gt;&lt;/a&gt;
      &lt;figcaption&gt;
          &lt;p&gt;Unreal Engine Modeling Tools Editor Mode plugin not showing up after being enabled&lt;/p&gt;
      &lt;/figcaption&gt;
  &lt;/figure&gt;
&lt;/div&gt;

&lt;p&gt;Despite that, I was able to figure out what&amp;rsquo;s wrong. Here&amp;rsquo;s how I fixed it on Linux and it&amp;rsquo;s an easy fix. It probably works on macOS, too. Though I have no idea why Epic Games has disabled it on non-Windows platforms in spite of the fact that it works just fine.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Host Unreal Engine 4 projects on Microsoft Azure DevOPS with unlimited cost-free Git LFS quota</title>
      <link>https://www.babaei.net/blog/host-unreal-engine-projects-microsoft-azure-devops-unlimited-cost-free-git-lfs-quota/</link>
      <pubDate>Sat, 17 Jul 2021 16:12:00 +0200</pubDate>
      
      <guid>https://www.babaei.net/blog/host-unreal-engine-projects-microsoft-azure-devops-unlimited-cost-free-git-lfs-quota/</guid>
      <description>&lt;link rel=&#34;stylesheet&#34; href=&#34;https://www.babaei.net/css/hugo-easy-gallery.css&#34; /&gt;
&lt;div class=&#34;box&#34; &gt;
  &lt;figure  itemprop=&#34;associatedMedia&#34; itemscope itemtype=&#34;http://schema.org/ImageObject&#34;&gt;
    &lt;div class=&#34;img&#34;&gt;
      &lt;img itemprop=&#34;thumbnail&#34; src=&#34;https://www.babaei.net/blog/host-unreal-engine-projects-microsoft-azure-devops-unlimited-cost-free-git-lfs-quota/unreal-engine-microsoft-azure-devops-git-lfs.webp&#34; alt=&#34;Host Unreal Engine 4 projects on Microsoft Azure DevOPS with unlimited cost free Git LFS quota&#34;/&gt;
    &lt;/div&gt;
    &lt;a href=&#34;https://www.babaei.net/blog/host-unreal-engine-projects-microsoft-azure-devops-unlimited-cost-free-git-lfs-quota/unreal-engine-microsoft-azure-devops-git-lfs.webp&#34; itemprop=&#34;contentUrl&#34;&gt;&lt;/a&gt;
      &lt;figcaption&gt;
          &lt;p&gt;Host Unreal Engine 4 projects on Microsoft Azure DevOPS with unlimited cost free Git LFS quota&lt;/p&gt;
      &lt;/figcaption&gt;
  &lt;/figure&gt;
&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;UPDATE 1 [2021/07/25]&lt;/strong&gt;: &lt;em&gt;It seems that Git LFS is able to resume your pushes after a network failure. At least it&amp;rsquo;s like that on Microsoft Azure DevOPS. So, it should be totally redundant to divide huge commits into smaller ones. How have I noticed this? Today, I pushed a huge single commit (around 53GBs) and it failed at 39GB due to a connection error without me noticing it for some time. A few hours later, when I made another attempt by issuing the push command again, it picked up and resumed the push at 39GB, which was really exciting.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;UPDATE 2 [2021/07/25]&lt;/strong&gt;: &lt;em&gt;After pushing the repository to Azure DevOPS, if you find your self stuck in git pull without doing anything, the following command will fix the consecutive pulls:&lt;/em&gt;&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ git pull origin master&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;em&gt;Or, alternatively&lt;/em&gt;:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ git fetch origin master
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ git reset --hard FETCH_HEAD&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;UPDATE 3 [2021/07/28]&lt;/strong&gt;: &lt;em&gt;I&amp;rsquo;ve noticed due to the fact that the files modification times affect how Rsync and Git work by default, my approach in writing the original script was totally wrong, which in turn caused a bug where on each update it committed all tracked files over again causing huge bloat in the repository, despite the fact that the content of the files was unchanged. Thus, it led me to completely rewrite the script. Hopefully, the new script has been extensively tested with two repositories/projects and works as expected. In addition to that, the script now shows progress for every step, which is a nice addition in order to keep you informed and give an estimation of the time it is going to take to get the job done. And, last but not least, I have edited and improved the blog post a bit.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;UPDATE 4 [2021/08/04]&lt;/strong&gt;: &lt;em&gt;Due to nested &lt;code&gt;.gitignore&lt;/code&gt; files inside the Unreal Engine dependencies, I noticed tiny bits of dependencies for building UE4/UE5 on Microsoft Windows are not getting copied over to the repository. As a result, I fixed the script in order to also take care of that.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;UPDATE 5 [2021/11/30]&lt;/strong&gt;: &lt;em&gt;Sometimes it&amp;rsquo;s possible that the amount of renamed Unreal Engine files surpass the Git&amp;rsquo;s optimal rename limit inside the Sync repository (the intermediary local git repository that we are going to use for syncing the engine source code with upstream):&lt;/em&gt;&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;warning: exhaustive rename detection was skipped due to too many files.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;warning: you may want to set your diff.renameLimit variable to at least &lt;span style=&#34;color:#ae81ff&#34;&gt;13453&lt;/span&gt; and retry the command.&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;em&gt;So, you could set that to a really large number in order to keep track of file renames:&lt;/em&gt;&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ cd ~/dev/MamadouArchives-Sync
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ git config diff.renameLimit &lt;span style=&#34;color:#ae81ff&#34;&gt;999999&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ git config merge.renameLimit &lt;span style=&#34;color:#ae81ff&#34;&gt;999999&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: &lt;em&gt;You will get this warning only when the Git option &lt;code&gt;diff.renames&lt;/code&gt; is set to &lt;code&gt;true&lt;/code&gt; (default behavior). Likewise, the above settings does not have any effects when the copy/rename detection is turned off. Nonetheless, you can always check your settings with:&lt;/em&gt;&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ git config -l&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;UPDATE 6 [2021/12/18]&lt;/strong&gt;: &lt;em&gt;I&amp;rsquo;ve added a step regarding &lt;code&gt;EngineAssociation&lt;/code&gt; in the project&amp;rsquo;s &lt;code&gt;.uproject&lt;/code&gt; file, which I forgot to mention in the original post.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;UPDATE 7 [2023/03/03]&lt;/strong&gt;: &lt;em&gt;In UE5 &lt;code&gt;UE4Games.uprojectdirs&lt;/code&gt; file shas been renamed to &lt;code&gt;Default.uprojectdirs&lt;/code&gt;. Though the syntax and the contents of the file has remained the same.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;UPDATE 8 [2023/03/04]&lt;/strong&gt;: &lt;em&gt;After upgrading my project to Unreal Engin 5.1 despite the fact that I&amp;rsquo;ve already set the git configuration &lt;code&gt;http.version&lt;/code&gt; to &lt;code&gt;HTTP/1.1&lt;/code&gt; as instructed in this article, despite the commit size of no bigger than &lt;code&gt;166.30 MB&lt;/code&gt; and the acceptable upload bandwidth I&amp;rsquo;ve got, I was getting &lt;code&gt;HTTP 413 Request Entity Too Large&lt;/code&gt; error:&lt;/em&gt;&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Enumerating objects: 190058, &lt;span style=&#34;color:#66d9ef&#34;&gt;done&lt;/span&gt;.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Counting objects: 100% &lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;164439/164439&lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt;, &lt;span style=&#34;color:#66d9ef&#34;&gt;done&lt;/span&gt;.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Delta compression using up to &lt;span style=&#34;color:#ae81ff&#34;&gt;16&lt;/span&gt; threads
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Compressing objects: 100% &lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;113439/113439&lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt;, &lt;span style=&#34;color:#66d9ef&#34;&gt;done&lt;/span&gt;.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Writing objects: 100% &lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;138834/138834&lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt;, 166.30 MiB | 47.32 MiB/s, &lt;span style=&#34;color:#66d9ef&#34;&gt;done&lt;/span&gt;.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Total &lt;span style=&#34;color:#ae81ff&#34;&gt;138834&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;delta 35613&lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt;, reused &lt;span style=&#34;color:#ae81ff&#34;&gt;121343&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;delta 22206&lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt;, pack-reused &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;error: RPC failed; HTTP &lt;span style=&#34;color:#ae81ff&#34;&gt;413&lt;/span&gt; curl &lt;span style=&#34;color:#ae81ff&#34;&gt;22&lt;/span&gt; The requested URL returned error: &lt;span style=&#34;color:#ae81ff&#34;&gt;413&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;send-pack: unexpected disconnect &lt;span style=&#34;color:#66d9ef&#34;&gt;while&lt;/span&gt; reading sideband packet
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;fatal: the remote end hung up unexpectedly
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Everything up-to-date&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;em&gt;I tried every suggestion that I came across in order to debug and resolve the issue to no avail. Including enabling git verbose logging:&lt;/em&gt;&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ export GIT_TRACE_PACKET&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;                      
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ export GIT_TRACE&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ export GIT_CURL_VERBOSE&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;em&gt;And then maxing out on all the size limits, buffer, packet sizes, and other hints:&lt;/em&gt;&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt;core&lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	compression &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    packedGitLimit &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; 512m
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    packedGitWindowSize &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; 512m
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt;http&lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    postBuffer &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;2147483648&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt;https&lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    postBuffer &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;2147483648&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt;init&lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    defaultBranch &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; master
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt;pack&lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    deltaCacheSize &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; 2047m
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    packSizeLimit &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; 2047m
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	window &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    windowMemory &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; 2047m&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;em&gt;Then I tried to change the origin URL to SSH:&lt;/em&gt;&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt;remote &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;origin&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	url &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; https://SOME-ORGANIZATION@dev.azure.com/SOME-ORGANIZATION/MamadouArchives/_git/MamadouArchives
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#75715e&#34;&gt;#url = git@ssh.dev.azure.com:v3/SOME-ORGANIZATION/MamadouArchives/MamadouArchives&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;em&gt;And then pushing without LFS:&lt;/em&gt;&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ git push --set-upstream origin 5.1 --no-verify&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;em&gt;This attempt was futile as well, that made me revert back to https. Then I tried to push commit by commit since I had made a few commits using (&lt;code&gt;5.1&lt;/code&gt; which has been repeated twice in the following command, is the name of the new local branch intended to be pushed):&lt;/em&gt;&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ git rev-list --reverse 5.1 | ruby -ne &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;i ||= 0; i += 1; puts $_ if i % 1 == 0&amp;#39;&lt;/span&gt; | xargs -I&lt;span style=&#34;color:#f92672&#34;&gt;{}&lt;/span&gt; git push origin +&lt;span style=&#34;color:#f92672&#34;&gt;{}&lt;/span&gt;:refs/heads/5.1 --no-verify&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;em&gt;And sadly, the approach of pushing one commit at a time was frutiless as well :/&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Thus, for the time being I&amp;rsquo;m stuck pushing the updated project from my Linux machine and pulling it from my Windows machine. I&amp;rsquo;ll do another updated once I&amp;rsquo;ve figured what&amp;rsquo;s going wrong.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;UPDATE 9 [2023/03/04]&lt;/strong&gt;: &lt;em&gt;As an experiment, I did create a new organiation and a new repository inside it. Then prior to changing the origin URL, I fetched all LFS objects issuing:&lt;/em&gt;&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ git lfs fetch --all
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;fetch: &lt;span style=&#34;color:#ae81ff&#34;&gt;78618&lt;/span&gt; objects found, &lt;span style=&#34;color:#66d9ef&#34;&gt;done&lt;/span&gt;.                                                                      
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;fetch: Fetching all references...&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Then, I decided to first push the Git comnmits without the LFS objects, so after updating the origin URL inside the &lt;code&gt;.git/config&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ git push --set-upstream origin 5.1 --no-verify
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Enumerating objects: 296578, &lt;span style=&#34;color:#66d9ef&#34;&gt;done&lt;/span&gt;.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Counting objects: 100% &lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;296578/296578&lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt;, &lt;span style=&#34;color:#66d9ef&#34;&gt;done&lt;/span&gt;.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Delta compression using up to &lt;span style=&#34;color:#ae81ff&#34;&gt;16&lt;/span&gt; threads
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Compressing objects: 100% &lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;210384/210384&lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt;, &lt;span style=&#34;color:#66d9ef&#34;&gt;done&lt;/span&gt;.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Writing objects: 100% &lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;296578/296578&lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt;, 360.11 MiB | 5.78 MiB/s, &lt;span style=&#34;color:#66d9ef&#34;&gt;done&lt;/span&gt;.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Total &lt;span style=&#34;color:#ae81ff&#34;&gt;296578&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;delta 78143&lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt;, reused &lt;span style=&#34;color:#ae81ff&#34;&gt;296578&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;delta 78143&lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt;, pack-reused &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;remote: Analyzing objects... &lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;296578/296578&lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;77738&lt;/span&gt; ms&lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;remote: Storing packfile... &lt;span style=&#34;color:#66d9ef&#34;&gt;done&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;10303&lt;/span&gt; ms&lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;remote: Storing index... &lt;span style=&#34;color:#66d9ef&#34;&gt;done&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;3740&lt;/span&gt; ms&lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;To https://dev.azure.com/SOME-ORGANIZATION/MamadouArchives/_git/MamadouArchives
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; * &lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt;new branch&lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt;            5.1 -&amp;gt; 5.1
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;branch &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;5.1&amp;#39;&lt;/span&gt; set up to track &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;origin/5.1&amp;#39;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;em&gt;¯\_(ツ)&lt;/em&gt;/¯ as unexpected as it seems, it worked! As you can see my actual Git objects without the LFS objects on this repository are in no way near the &lt;code&gt;10 GB&lt;/code&gt; size limit:_&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ git count-objects -vH                         
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;count: &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;               
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;size: &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt; bytes
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;in-pack: &lt;span style=&#34;color:#ae81ff&#34;&gt;296583&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;packs: &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;size-pack: 366.76 MiB
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;prune-packable: &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;garbage: &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;size-garbage: &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt; bytes&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;em&gt;The issue might be that I&amp;rsquo;ve reached some kind of limit on the main organization that I&amp;rsquo;m not aware of.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Anyways, then I pushed the master and checked out back the new brnach for continuation on the upgrade:&lt;/em&gt;&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ git checkout master
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ git push origin master --no-verify
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ git checkout 5.1&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;em&gt;And, then proceeded to pushing all LFS objects:&lt;/em&gt;&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ git lfs push origin --all&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;UPDATE 10 [2023/03/05]&lt;/strong&gt;: &lt;em&gt;Yesterday, I removed a large redundant repository from the previous organization, in order to see if I could still push my updates and the error I am getting was not due to hitting some kind of ceiling limit. It didn&amp;rsquo;t work. I did also cleanup the limit hacks I&amp;rsquo;ve added to my &lt;code&gt;~/.gitconfig&lt;/code&gt; in UPDATE 8. Then, after successfully pushing to the new organization/repository, I&amp;rsquo;ve decided to revert back the URL section for the orgin inside my &lt;code&gt;.git/config&lt;/code&gt; inside the local repository and try to push once more to the old repository and guess what? It worked! Weird Microsoft/Azure! Not sure what fixed the issue. It could be even I had to wait for Microsoft to clean up the repository&amp;rsquo;s space I&amp;rsquo;ve deleted if the organization size limit was the issue. Don&amp;rsquo;t really know.&lt;/em&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;Among the gamedev industry, it&amp;rsquo;s a well-known fact that Unreal Engine projects sizes have always been huge and a pain to manage properly. And it becomes more painful by the day as your project moves forward and grows in size. Some even keep the Engine source and its monstrous binary dependencies inside their source control management software. In case you are a AAA game development company or you are working for one, there&amp;rsquo;s probably some system in place with an unlimited quota to take care of that. But, for most of us indie devs, or individual hobbyists, it seems there are not lots of affordable options, especially that your team is scattered across the globe.&lt;/p&gt;
&lt;p&gt;There are plenty of costly solutions to keep UE4 projects under source control; ranging from maintaining a local physical server or renting a VPS with plenty of space on the cloud, equipped with a self-hosted Git, SVN, or Perforce, to use cloud SCM providers such as GitHub, GitLab, BitBucket, or Perforce. Since I prefer cloud SCM providers and Git + Git LFS (which also supports file locking), let&amp;rsquo;s take a look at some popular ones such as GitHub and GitLab.&lt;/p&gt;
&lt;p&gt;GitHub for one, provides data packs, but the free offering is far from enough for collaborative UE4 projects:&lt;/p&gt;











  
  
  
  





  


&lt;blockquote&gt;
  &lt;p&gt;&lt;p&gt;Every account using Git Large File Storage receives 1 GB of free storage and 1 GB a month of free bandwidth. If the bandwidth and storage quotas are not enough, you can choose to purchase an additional quota for Git LFS. Unused bandwidth doesn&amp;rsquo;t roll over month-to-month.&lt;/p&gt;
&lt;p&gt;&amp;hellip;&lt;/p&gt;
&lt;p&gt;Additional storage and bandwidth is offered in a single data pack. One data pack costs $5 per month, and provides a monthly quota of 50 GB for bandwidth and 50 GB for storage. You can purchase as many data packs as you need. For example, if you need 150 GB of storage, you&amp;rsquo;d buy three data packs.&lt;/p&gt;
&lt;/p&gt;
  &lt;footer&gt;
    &lt;strong&gt;github.com&lt;/strong&gt;
    
      
        &lt;cite&gt;
          &lt;a href=&#34;https://docs.github.com/en/billing/managing-billing-for-git-large-file-storage/about-billing-for-git-large-file-storage&#34; title=&#34;https://docs.github.com/en/billing/managing-billing-for-git-large-file-storage/about-billing-for-git-large-file-storage&#34;&gt;About billing for Git Large File Storage&lt;/a&gt; 
        &lt;/cite&gt;
      
    
  &lt;/footer&gt;
&lt;/blockquote&gt;

&lt;p&gt;For GitLab, although the initial generous &lt;code&gt;10GB&lt;/code&gt; repository size is way beyond the &lt;code&gt;1GB&lt;/code&gt; repository size offer by GitHub, the LFS pricing is insanely high:&lt;/p&gt;











  
  
  
  





  


&lt;blockquote&gt;
  &lt;p&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Additional repository storage for a namespace (group or personal) is sold in annual subscriptions of $60 USD/year in increments of 10GB. This storage accounts for the size calculated from Repositories, which includes the git repository itself and any LFS objects.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;When adding storage to an existing subscription, you will be charged the prorated amount for the remaining term of your subscription. (ex. If your subscription ends in 6 months and you buy storage, you will be charge for 6 months of the storage subscription, i.e. $30 USD)&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/p&gt;
  &lt;footer&gt;
    &lt;strong&gt;gilab.com&lt;/strong&gt;
    
      
        &lt;cite&gt;
          &lt;a href=&#34;https://about.gitlab.com/pricing/licensing-faq/#about-supplemental-storage&#34; title=&#34;https://about.gitlab.com/pricing/licensing-faq/#about-supplemental-storage&#34;&gt;Licensing and subscription FAQ, About Supplemental Storage&lt;/a&gt; 
        &lt;/cite&gt;
      
    
  &lt;/footer&gt;
&lt;/blockquote&gt;

&lt;p&gt;Well, before this all get you disappointed, let&amp;rsquo;s hear the good news from the Microsoft Azure DevOPS team:&lt;/p&gt;











  
  
  
  





  


&lt;blockquote&gt;
  &lt;p&gt;In uncommon circumstances, repositories may be larger than 10GB. For instance, the Windows repository is at least 300GB. For that reason, we do not have a hard block in place. If your repository grows beyond 10GB, consider using Git-LFS, Scalar, or Azure Artifacts to refactor your development artifacts.&lt;/p&gt;
  &lt;footer&gt;
    &lt;strong&gt;microsoft.com&lt;/strong&gt;
    
      
        &lt;cite&gt;
          &lt;a href=&#34;https://docs.microsoft.com/en-us/azure/devops/repos/git/limits?view=azure-devops&#34; title=&#34;https://docs.microsoft.com/en-us/azure/devops/repos/git/limits?view=azure-devops&#34;&gt;Git limits&lt;/a&gt; 
        &lt;/cite&gt;
      
    
  &lt;/footer&gt;
&lt;/blockquote&gt;

&lt;p&gt;Before we proceed any further, there are some catches to consider about Microsoft Azure DevOPS:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1&lt;/strong&gt;. The maximum Git repository size is &lt;code&gt;10GB&lt;/code&gt;, which considering that we keep binary assets and huge files in LFS, is way beyond any project&amp;rsquo;s actual needs. For Git LFS it seems that &lt;a href=&#34;https://devblogs.microsoft.com/devops/announcing-git-lfs-on-all-vso-git-repos/&#34;&gt;Microsoft since at least 2015 has been providing unlimited free storage&lt;/a&gt;. For comparison, the engine source code for &lt;code&gt;4.27&lt;/code&gt; is &lt;code&gt;1.4GB&lt;/code&gt;, which in turn when it&amp;rsquo;s getting committed to the git repo becomes less than &lt;code&gt;230MB&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ cd /path/to/ue4.27/source
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ du -h
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;1.4G	.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ git init
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ git add .
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ git commit -m &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;add unreal engine 4.27 source code&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ git count-objects -vH
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;count: &lt;span style=&#34;color:#ae81ff&#34;&gt;97545&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;size: 900.25 MiB
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;in-pack: &lt;span style=&#34;color:#ae81ff&#34;&gt;110815&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;packs: &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;size-pack: 227.80 MiB
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;prune-packable: &lt;span style=&#34;color:#ae81ff&#34;&gt;97545&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;garbage: &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;size-garbage: &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt; bytes&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;2&lt;/strong&gt;. The maximum push size is limited to &lt;code&gt;5GB&lt;/code&gt; at a time. The &lt;code&gt;5GB&lt;/code&gt; limit is only for files in the actual repository and it won&amp;rsquo;t affect LFS objects. Thus, there are no limits for LFS objects&amp;rsquo; pushes. Despite that, if your internet connection is not stable, you could divide your files into multiple commits and push them separately. For example, the initial git dependencies for UE &lt;code&gt;4.27&lt;/code&gt; is around &lt;code&gt;40GB&lt;/code&gt; spanned across &lt;code&gt;~70,000&lt;/code&gt; files. Instead of committing and pushing a &lt;code&gt;40GB&lt;/code&gt; chunk all at once, one could divide that into multiple commits and push those commits one by one using the following command:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ git rev-list --reverse master &lt;span style=&#34;color:#ae81ff&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;&lt;/span&gt;    | ruby -ne &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;i ||= 0; i += 1; puts $_ if i % 1 == 0&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;&lt;/span&gt;    | xargs -I&lt;span style=&#34;color:#f92672&#34;&gt;{}&lt;/span&gt; git push origin +&lt;span style=&#34;color:#f92672&#34;&gt;{}&lt;/span&gt;:refs/heads/master&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;3&lt;/strong&gt;. Sadly, at the moment Azure DevOPS does not support LFS over SSH. So, you are bound to git push/pull over https, which for some might be annoying. Especially, that it keeps asking for the https token &lt;code&gt;3&lt;/code&gt; consecutive times on any push or pull!&lt;/p&gt;











  
  
  
  





  


&lt;blockquote&gt;
  &lt;p&gt;&lt;p&gt;Q: I&amp;rsquo;m using Git LFS with Azure DevOps Services and I get errors when pulling files tracked by Git LFS.&lt;/p&gt;
&lt;p&gt;A: Azure DevOps Services currently doesn&amp;rsquo;t support LFS over SSH. Use HTTPS to connect to repos with Git LFS tracked files.&lt;/p&gt;
&lt;/p&gt;
  &lt;footer&gt;
    &lt;strong&gt;microsoft.com&lt;/strong&gt;
    
      
        &lt;cite&gt;
          &lt;a href=&#34;https://docs.microsoft.com/en-us/azure/devops/repos/git/use-ssh-keys-to-authenticate?view=azure-devops&#34; title=&#34;https://docs.microsoft.com/en-us/azure/devops/repos/git/use-ssh-keys-to-authenticate?view=azure-devops&#34;&gt;Use SSH key authentication&lt;/a&gt; 
        &lt;/cite&gt;
      
    
  &lt;/footer&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;4&lt;/strong&gt;. Last but not least, there is an issue with the Microsoft implementation of LFS, which rejects large LFS objects and spits out a bunch of HTTP &lt;code&gt;413&lt;/code&gt; and &lt;code&gt;503&lt;/code&gt; errors at the end of your &lt;code&gt;git push&lt;/code&gt;. It happened to me when I was pushing &lt;code&gt;40GB&lt;/code&gt; of UE4 binary dependencies. The weird thing was I tried twice and both times it took a few good hours till the end of the push operation and based on measuring the bandwidth usage, the LFS upload size appeared to be more than the actual upload size. According to some answers on &lt;a href=&#34;https://github.com/MicrosoftDocs/azure-devops-docs/issues/4179&#34;&gt;this GitHub issue&lt;/a&gt; and &lt;a href=&#34;https://developercommunity.visualstudio.com/t/git-lfs-push-got-413-error/867488&#34;&gt;this Microsoft developer community question&lt;/a&gt;, it seems the solution is running the following command inside the root of your local repository, before any git pull/push operations:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ git config http.version HTTP/1.1&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Well, not only it did the trick and worked like a charm, but also the push time on the following git push dropped dramatically to &lt;code&gt;30&lt;/code&gt; minutes for that hefty &lt;code&gt;40GB&lt;/code&gt; UE4 binary dependencies.&lt;/p&gt;
&lt;p&gt;OK, after getting ourselves familiarized with all the limits, if you deem this solution a worthy one for managing UE4 projects along with the engine source in the same repository, in the rest of this blog post I&amp;rsquo;m going to share my experiences and a script to keep the engine updated with ease using a Git + LFS setup.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>HackYourFuture First Game Development Workshop Report</title>
      <link>https://www.babaei.net/blog/hackyourfuture-first-game-development-workshop-report/</link>
      <pubDate>Sun, 13 Jan 2019 20:19:00 +0100</pubDate>
      
      <guid>https://www.babaei.net/blog/hackyourfuture-first-game-development-workshop-report/</guid>
      <description>&lt;link rel=&#34;stylesheet&#34; href=&#34;https://www.babaei.net/css/hugo-easy-gallery.css&#34; /&gt;
&lt;div class=&#34;box&#34; &gt;
  &lt;figure  itemprop=&#34;associatedMedia&#34; itemscope itemtype=&#34;http://schema.org/ImageObject&#34;&gt;
    &lt;div class=&#34;img&#34;&gt;
      &lt;img itemprop=&#34;thumbnail&#34; src=&#34;https://www.babaei.net/blog/hackyourfuture-first-game-development-workshop-report/hackyour-future-first-game-development-workshop-report.webp&#34; alt=&#34;HackYourFuture First Game Development Workshop Report&#34;/&gt;
    &lt;/div&gt;
    &lt;a href=&#34;https://www.babaei.net/blog/hackyourfuture-first-game-development-workshop-report/hackyour-future-first-game-development-workshop-report.webp&#34; itemprop=&#34;contentUrl&#34;&gt;&lt;/a&gt;
      &lt;figcaption&gt;
          &lt;p&gt;HackYourFuture First Game Development Workshop Report&lt;/p&gt;
      &lt;/figcaption&gt;
  &lt;/figure&gt;
&lt;/div&gt;

&lt;p&gt;OK! Today, &lt;a href=&#34;https://www.hackyourfuture.net/&#34;&gt;HackYourFuture&lt;/a&gt; held their first-ever gamedev workshop titled &amp;ldquo;Introduction to Unreal Engine 4 Game Development Using Blueprint&amp;rdquo; at their Amsterdam office, which I&amp;rsquo;ve been given the opportunity to present to their alumni on HackYourFuture&amp;rsquo;s behalf.&lt;/p&gt;
&lt;p&gt;Since I&amp;rsquo;m still very excited and fascinated by the culture of sharing and the friendly environment governed by HackYourFuture, I decided to share the presentation file which I did prepare for this four hour workshop under the terms of &lt;a href=&#34;http://creativecommons.org/licenses/by-sa/3.0/&#34;&gt;(CC BY-SA 3.0) Creative Commons Attribution-ShareAlike 3.0 Unported License&lt;/a&gt;, to be used by anyone who is either new to game development or is intersted in the topic. It&amp;rsquo;s jam packed with so much information for absolute beginners. Feel free to share and adapt according to your own needs under the terms of the license.&lt;/p&gt;
&lt;p&gt;The presentation can be found at the end of this post in PDF, OpenDocument Presentation, or Microsoft PowerPoint formats.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Get nFringe to Work with Visual Studio 2012</title>
      <link>https://www.babaei.net/blog/get-nfringe-to-work-with-visual-studio-2012/</link>
      <pubDate>Sun, 10 Feb 2013 17:53:00 +0330</pubDate>
      
      <guid>https://www.babaei.net/blog/get-nfringe-to-work-with-visual-studio-2012/</guid>
      <description>&lt;p&gt;As you&amp;rsquo;ve noticed there&amp;rsquo;s still no official support for Microsoft Visual Studio 2012 in recent Pixel Mine nFringe releases. While ago I came across &lt;a href=&#34;http://forums.epicgames.com/threads/874296-debug-Unreal-Script-error-at-vs2011?p=30795357&amp;amp;viewfull=1#post30795357&#34;&gt;an awesome forum post at Epic Games Forums&lt;/a&gt; which describs a simple process of getting nFringe to work with VS2012. Since then I&amp;rsquo;ve used it in my day to day development tasks and I had no difficulties at all using it. And damn, it&amp;rsquo;s pretty stable despite the fact that not officially supported by Pixel Mine. Even nFringe version 1.1 which I&amp;rsquo;ve tested is playing nice with VS2012.&lt;/p&gt;
&lt;p&gt;The only prerequisite that you need is your previous VS2010 + nFringe installation to obtain some files from it. Once you&amp;rsquo;ve acquired these files you don&amp;rsquo;t need VS2010 or nFringe installer for further installations.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1.&lt;/strong&gt; Open Windows Command Prompt (cmd.exe) and run the following commands:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-cmd&#34; data-lang=&#34;cmd&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&amp;gt; xcopy /E &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\Extensions\Pixel Mine&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\Extensions\&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&amp;gt; xcopy /E &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;C:\Program Files (x86)\Microsoft Visual Studio 10.0\UnrealScript&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;C:\Program Files (x86)\Microsoft Visual Studio 11.0\&amp;#34;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;2.&lt;/strong&gt; Open up &lt;strong&gt;extension.vsixmanifest&lt;/strong&gt; in Notepad or your favorite editor and change &lt;strong&gt;VisualStudio Version&lt;/strong&gt; to &lt;strong&gt;11&lt;/strong&gt; (Note: In the following path change &lt;strong&gt;1.1&lt;/strong&gt; with your nfringe version, e.g. 1.2).&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-cmd&#34; data-lang=&#34;cmd&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&amp;gt; notepad &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\Extensions\Pixel Mine nFringe (UnrealScript)\1.1\extension.vsixmanifest&amp;#34;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;div class=&#34;codeblock&#34;&gt;
    
    &lt;span class=&#34;title&#34;&gt;extension.vsixmanifest&lt;/span&gt;
    
    
    
    &lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-xml&#34; data-lang=&#34;xml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;InstalledByMsi&amp;gt;&lt;/span&gt;true&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;/InstalledByMsi&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;SupportedProducts&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;VisualStudio&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;Version=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;11.0&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
    
    
&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;3.&lt;/strong&gt; Run the following command to register nFringe extension in Visual Studio 2012:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-cmd&#34; data-lang=&#34;cmd&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&amp;gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\devenv.exe&amp;#34;&lt;/span&gt; /setup&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;4.&lt;/strong&gt; Finally, you need to re-validate your nFringe license in VS2012.&lt;/p&gt;
&lt;p&gt;Happy coding ;)&lt;/p&gt;</description>
    </item>
    
  </channel>
</rss>
