Generated by All in One SEO v4.9.7.2, this is an llms.txt file, used by LLMs to index the site. # Iman's Blog ## Sitemaps - [XML Sitemap](https://imanirt.com/sitemap.xml): Contains all public & indexable URLs for this website. ## Posts - [Blog](https://imanirt.com/blog/) - [DLSS: How AI Redefines Game Rendering](https://imanirt.com/2025/10/03/dlss-how-ai-redefines-game-rendering/) - If you’ve played a recent PC game and noticed a setting called DLSS (Deep Learning Super Sampling), you might have wondered what magic is happening behind the scenes. At first glance, it looks like a toggle that somehow gives you higher performance and better image quality - a rare win-win in graphics. Let’s break down - [AI in Game Development](https://imanirt.com/2025/09/27/ai-in-game-development/) - We are being bombed with AI these days and it's taking over industries one after another. Let's take a look at its impact on game development. Artificial intelligence in game development isn’t new - pathfinding enemies and procedural level generation have been around for decades. But today’s AI, powered by machine learning and generative models, - [Physics in Video Game Engines: Torque and Inertia](https://imanirt.com/2025/01/14/physics-in-video-game-engines-torque-and-inertia/) - Have you ever wondered what makes a car in a racing game drift around a corner, or why a ball bounces realistically off the ground? That’s all thanks to physics in video game engines. Physics simulation is the backbone of believable interactions in games, making objects behave like they would in the real world. Let’s - [Unity 6 Has Just Been Released!](https://imanirt.com/2024/10/17/unity-6-has-just-been-released/) - Today marks a significant milestone for developers and creators around the world with the official release of Unity 6! This latest iteration of the Unity platform continues to revolutionize the way we design, develop, and deploy interactive content across multiple platforms. What’s New in Unity 6? Enhanced Performance: Unity 6 introduces significant performance improvements that - [What is Game Analytics?](https://imanirt.com/2024/08/12/what-is-game-analytics/) - In the competitive world of game development, understanding player behavior and engagement is crucial for creating games that resonate with audiences and succeed in the market. Analytics servers, like Unity Analytics, provide valuable insights that help developers make informed decisions to enhance gameplay and optimize monetization strategies. This article explores the purpose of analytics servers - [Mastering Input Handling in Unity: A Guide to the New Input System](https://imanirt.com/2024/08/06/mastering-input-handling-in-unity-a-guide-to-the-new-input-system/) - In the world of game development, responsive and intuitive input handling is crucial for creating engaging player experiences. Unity has long provided tools for handling input, but its newer Input System package offers a more flexible and robust framework for managing diverse input devices. Whether you're developing a single-player game or a multiplayer experience with - [The Power of ScriptableObjects in Unity](https://imanirt.com/2024/07/29/the-power-of-scriptableobjects-in-unity/) - In the world of Unity development, ScriptableObjects offer a powerful yet often underutilized tool that can significantly streamline your workflow and improve the efficiency of your game’s architecture. Understanding how and when to use ScriptableObjects can make a substantial difference in your game development process, particularly when compared to using classic GameObjects. Let’s dive into - [Understanding the Moiré Effect in Computer Graphics](https://imanirt.com/2024/07/12/understanding-the-moire-effect-in-computer-graphics/) - In the world of computer graphics and game development, visual artifacts can sometimes detract from the immersive experience we strive to create. One such artifact is the moiré effect, a phenomenon that can appear in digital images and textures, particularly in 3D environments. This article will explore what the moiré effect is, how it manifests - [How We Helped Fix a Critical Unity WebGL Bug](https://imanirt.com/2024/06/24/how-we-helped-fix-a-critical-unity-webgl-bug/) - In the fast-paced world of game development, encountering and resolving bugs is an inevitable part of the process. Recently, our team at 7-Shapes played a crucial role in identifying and fixing a significant bug in Unity’s WebGL build process. This bug, which affected the "Append Hash" option in Unity version 2022.3.8f1, was causing major headaches - [What is OpenGL and How to Start Learning It](https://imanirt.com/2024/06/14/what-is-opengl-and-how-to-start-learning-it/) - OpenGL is a widely-used graphics API that's fundamental for anyone interested in computer graphics and game development. But how does it stack up against other graphics APIs, and what makes it so special? Let’s explore what OpenGL is, why it's valuable, and how it compares to other graphics APIs like DirectX and Vulkan. We'll also - [Texels in Game Development: What They Are and How They Work](https://imanirt.com/2024/06/05/texels-in-game-development-what-they-are-and-how-they-work/) - When you're diving into game development or 3D graphics, you quickly encounter the term "texel." Understanding texels is crucial for anyone working with textures, as they play a fundamental role in how images are displayed on 3D models. What Are Texels? Texels, short for texture elements, are the smallest units of a texture map. Think - [Triangle Rasterization in Game Engines: A Deep Dive into Computer Graphics](https://imanirt.com/2024/05/31/triangle-rasterization-in-game-engines-a-deep-dive-into-computer-graphics/) - In the realm of computer graphics, particularly in game development, triangles play a pivotal role. From rendering intricate 3D models to defining the simplest shapes, understanding triangle rasterization is fundamental. This article explores the mechanics of triangle rasterization in game engines, the significance of vertex ordering, and why triangles are the preferred shape in computer - [Human Interface Devices in Game Development: Understanding Input Handling](https://imanirt.com/2024/05/20/human-interface-devices-in-game-development-understanding-input-handling/) - In the dynamic world of game development, understanding how human interface devices (HIDs) like keyboards, mice, and game controllers interact with game engines is crucial for crafting responsive and immersive gameplay. This article dives deep into the mechanisms of how game engines handle input from HIDs, the role of CPU interrupts, and the differences between - [Mastering Git Hooks: Automating Workflows with Pre-Commit, Post-Commit, and More](https://imanirt.com/2024/05/13/mastering-git-hooks-automating-workflows-with-pre-commit-post-commit-and-more/) - In the world of software development, efficiency and consistency are keys to successful project outcomes. Git, the widely used version control system, offers a powerful feature known as hooks, which are scripts you can set up to trigger actions at certain phases in the git workflow. Understanding how to use these hooks, such as pre-commit, - [Embracing Open Source with Godot Engine: A New Era of Game Development](https://imanirt.com/2024/05/06/embracing-open-source-with-godot-engine-a-new-era-of-game-development/) - In the ever-evolving world of game development, finding the right tools can significantly impact your project's success. One such tool gaining traction among indie developers and seasoned professionals alike is the Godot Engine (pronounced ge-do or go-dot). With its open-source nature and user-friendly scripting options, Godot is making waves. Let’s dive into what Godot Engine - [Overcoming Unity's Limitations with OpenType and Ligatures](https://imanirt.com/2024/05/01/overcoming-unitys-limitations-with-opentype-and-ligatures/) - Unity's capabilities often hit a bump when it comes to advanced typographic features, particularly its lack of support for OpenType fonts and languages that use ligatures, such as Arabic, Persian or Kannada. This article explores the nature of OpenType, the challenges with ligatures in Unity, and practical solutions to navigate these limitations. What is OpenType? - [Enhancing Game Performance with Object Pooling in Unity](https://imanirt.com/2024/04/23/enhancing-game-performance-with-object-pooling-in-unity/) - As game projects grow more complex, maintaining smooth performance becomes increasingly challenging. One effective technique to manage resources efficiently is object pooling. This approach is particularly beneficial in Unity for managing instances of prefabricated objects (prefabs) such as bullets, enemies, or particles. Let’s explore what object pooling is, why it’s beneficial, and how you can - [Demystifying Random Number Generators in C++ and Beyond: The Illusion of Randomness](https://imanirt.com/2024/04/16/demystifying-random-number-generators-in-c-and-beyond-the-illusion-of-randomness/) - Random number generators (RNGs) are indispensable in programming for tasks ranging from simulations and gaming to cryptography. Yet, the "randomness" they produce isn't truly random. In this discussion, we'll explore how RNGs function in C++, spotlight different types of RNGs, and explain why they can't achieve complete randomness. Understanding Random Number Generators RNGs in programming - [Mastering Coordination Systems: A Game Developer’s Guide to Spatial Thinking](https://imanirt.com/2024/03/16/mastering-coordination-systems-a-game-developers-guide-to-spatial-thinking/) - In the vast universe of game development, the way we define and interact with space directly influences the realism, complexity, and immersion of our virtual environments. Among the foundational concepts that enable such interactions are coordination systems. While the Cartesian coordinate system is widely recognized, understanding and utilizing cylindrical and spherical coordinate systems can unlock - [Elevating Replayability in Game Design: A Key to Lasting Engagement](https://imanirt.com/2024/04/06/elevating-replayability-in-game-design-a-key-to-lasting-engagement/) - In the vast, dynamic world of video games, crafting experiences that keep players coming back is both an art and a science. Replayability— or the aspect of a game that entices players to replay it after completion—stands as a critical metric of a game's success and longevity. Let's dive into what makes a game replayable - [Understanding Texture vs. RenderTexture in Unity](https://imanirt.com/2024/03/12/understanding-texture-vs-rendertexture-in-unity/) - In the visually rich world of Unity game development, textures play a pivotal role in bringing realism and depth to the gaming experience. However, as developers dive deeper into Unity's graphics pipeline, the distinction between Texture and RenderTexture becomes crucial. Both serve the purpose of storing image data, but they cater to different needs and - [Fibers vs. Threads vs. Coroutines: Navigating Multithreading in Software Development](https://imanirt.com/2024/03/19/fibers-vs-threads-vs-coroutines-navigating-multithreading-in-software-development/) - In the world of software development, efficient management of concurrent operations is key to maximizing performance, especially in applications that require high levels of responsiveness and speed. Multithreading, an essential tool in a developer's arsenal, comes in various forms, including traditional threads, fibers, and coroutines. Each has its unique advantages and use cases. Let’s delve - [Data-Oriented vs. Object-Oriented Programming: Choosing the Right Paradigm for Your Project](https://imanirt.com/2024/03/04/data-oriented-vs-object-oriented-programming-choosing-the-right-paradigm-for-your-project/) - In the diverse world of software development, the choice of programming paradigm can significantly impact the performance, scalability, and maintainability of your projects. Two popular paradigms, Data-Oriented Programming (DOP) and Object-Oriented Programming (OOP), offer distinct approaches to organizing and manipulating data. Let's explore the pros and cons of each, along with simple examples, to help - [Mastering Memory Management in C++: Optimizing Data Structures for Game Development](https://imanirt.com/2024/02/27/management-in-c-optimizing-data-structures-for-game-development/) - Diving deep into the roots of C++ unveils many optimization strategies critical for performance. One such strategy, revolves around understanding how data structures like structs are stored in memory, their memory consumption, and how strategic re-ordering of variables can lead to significant memory savings. Let's explore this optimization technique with a practical example. How Data - [Navigating the Diamond Problem in C++](https://imanirt.com/2024/02/20/navigating-the-diamond-problem-in-c/) - In the intricate world of C++ programming, the "Diamond Problem" presents a unique challenge, especially as developers venture into more complex object-oriented designs. Understanding this problem and knowing how to navigate it is crucial for maintaining robust and efficient codebases. Let's delve into what the diamond problem is, illustrate it with an example, and explore - [Optimizing Your Unity Game with Code Stripping: A Deep Dive](https://imanirt.com/2024/02/13/optimizing-your-unity-game-with-code-stripping-a-deep-dive/) - As we push the boundaries of what's possible in game development, performance optimization becomes increasingly crucial. One of Unity's powerful features for optimization is code stripping, a process that reduces the final build size and improves runtime performance by removing unused code. Let's explore how code stripping works in Unity and navigate through its different - [Addressing Complex Script Rendering in Unity: Beyond Basic Fonts](https://imanirt.com/2024/02/06/addressing-complex-script-rendering-in-unity-beyond-basic-fonts/) - A significant challenge in global game development is rendering complex scripts - languages where characters change form based on their context within a word, not limited to some Right-to-Left (RTL) languages but also including others like Kannada. Unity, by default, struggles with these scripts due to the way it handles glyph tables in fonts. Let's - [Top Books Every Game Developer Should Read](https://imanirt.com/2024/01/26/top-books-every-game-developer-should-read/) - As game developers, we constantly seek knowledge and inspiration to refine our craft and push the boundaries of creativity and technical excellence. Whether you're a designer, artist, or programmer, immersing yourself in the wisdom found in books can be transformative. Here are some must-read books that cater to various facets of game development. 1. "Game - [Mastering Unit Testing in Unity with C#: A Guide to Ensuring Game Quality](https://imanirt.com/2024/01/17/mastering-unit-testing-in-unity-with-c-a-guide-to-ensuring-game-quality/) - In the world of game development, ensuring your game is bug-free and performs as expected is paramount. Unit testing is a powerful practice that helps achieve this by automatically testing parts of your project. Unity offers comprehensive support for unit testing in C# with its Test Framework, allowing tests to run in both Play mode - [Render Pipelines in Game Engines](https://imanirt.com/2024/01/14/render-pipelines-in-game-engines/) - Are you ever curious about how the stunning visuals in video games are brought to life? Much of this magic happens through something called a 'render pipeline.' Today, we're going to demystify render pipelines, especially focusing on Unity and Unreal engines, and compare the different pipelines available in Unity. Let's break this down into simple - [Unraveling UV Mapping in 3D Modeling](https://imanirt.com/2024/01/07/unraveling-uv-mapping-in-3d-modeling/) - In the realm of 3D modeling, one concept that often puzzles beginners is UV mapping. It's a crucial step in the texturing process, defining how a 2D texture wraps around a 3D model. Let's demystify UV mapping and understand its significance in bringing 3D models to life. What is UV Mapping? UV mapping is the - [Navigating the Transition from Unity Plastic SCM to Git: A Step-by-Step Guide](https://imanirt.com/2024/01/02/navigating-the-transition-from-unity-plastic-scm-to-git-a-step-by-step-guide/) - Are you considering transitioning your version control system from Unity Plastic SCM to Git? Whether it's for better community support, familiarity, or integration with other tools, moving to Git can be a beneficial step for many development teams. Let's walk through this migration process to ensure a smooth transition. Understanding the Basics Before diving in, - [Migration of tutorials to Youtube](https://imanirt.com/2023/01/25/migration-of-tutorials-to-youtube/) - Due to the strict limitations of Skillshare, I will be moving the tutorials from the Skillshare website to a new Youtube channel. The contents are the same and will be 100% free. To access the Youtube channel, follow this link. - [Skillshare Classes](https://imanirt.com/2021/12/25/skillshare-classes/) - What is Skillshare? Skillshare is an online learning website. Users can choose to watch tutorials from marketing and web development, to lifestyle and other categories. Is Skillshare free? No, skillshare is a paid service, however, it provides users some free video tutorials as well. Also you can use reference links to get free premium membership. - [Contentgraphy](https://imanirt.com/2021/09/18/contentgraphy/) - What is Contentgraphy for me? It's a made-up term I use for a place (like a website) that gathers all the content in one place. Imagine you're an Artist and you share your art on multiple websites, but you're also a musician and you use Spotify to share your music. A Contentgraphy -Like a biography- ## Pages - [Front Page](https://imanirt.com/) - ./$system/sudo who Iman Irajdoostoutput:this.name="Iman Irajdoost"; this.job="Game Developer and Software Engineer"; this.expertise=['Unity','C#','C++','C','Java, 'Javascript', 'etc.']; this.description = "Developer who loves learning and sharing what he knows with others. I create tutorials about different subjects from time to time (mostly programming and game developement). I play the piano in my spare time. You can listen to some of - [Portfolio](https://imanirt.com/portfolio/) - You can take a look at some of my personal projects on itch.io. Take a look at Bomball - A thrilling 2D top-down shooter PvP game where players juggle a bomb-ball to score against their opponent's car. It is available on Steam. Gameplay trailer: If you're curious about my codes, here are some of some - [Downloads](https://imanirt.com/downloads/) - Download "Assisted translation and evaluation by AI" research article A research about using AI translation tools to translate and evaluate the precision of the translations in English. The article is written in French and uses two artificial intelligence models; one using text and the other using number paramteters as training data. This research evaluates and - [Privacy Policy](https://imanirt.com/privacy-policy/) - Privacy Policy for imanirt.com At imanirt.com, accessible from imanirt.com, one of our main priorities is the privacy of our visitors. This Privacy Policy document contains types of information that is collected and recorded by imanirt.com and how we use it. If you have additional questions or require more information about our Privacy Policy, do not - [Newsletter](https://imanirt.com/newsletter/) ## My Templates - [Default Kit](https://imanirt.com/?elementor_library=default-kit) ## Categories - [General](https://imanirt.com/category/general/) - [Learning](https://imanirt.com/category/learning/) - [GameDev](https://imanirt.com/category/gamedev/) - [Computer Graphics](https://imanirt.com/category/computer-graphics/) - [Physics](https://imanirt.com/category/physics/) - [AI](https://imanirt.com/category/ai/) ## Tags - [general](https://imanirt.com/tag/general/) - [skillshare](https://imanirt.com/tag/skillshare/) - [unity](https://imanirt.com/tag/unity/) - [learning](https://imanirt.com/tag/learning/) - [gamedevelopment](https://imanirt.com/tag/gamedevelopment/) - [UnityDevelopement](https://imanirt.com/tag/unitydevelopement/) - [PlasticSCMToGit](https://imanirt.com/tag/plasticscmtogit/) - [VersionControl](https://imanirt.com/tag/versioncontrol/) - [GitMigration](https://imanirt.com/tag/gitmigration/) - [GameDev](https://imanirt.com/tag/gamedev/) - [UnityTips](https://imanirt.com/tag/unitytips/) - [DevOps](https://imanirt.com/tag/devops/) - [SCM](https://imanirt.com/tag/scm/) - [Git](https://imanirt.com/tag/git/) - [DevelopmentWorkflow](https://imanirt.com/tag/developmentworkflow/) - [uvmapping](https://imanirt.com/tag/uvmapping/) - [rendering](https://imanirt.com/tag/rendering/) - [pipeline](https://imanirt.com/tag/pipeline/) - [graphics](https://imanirt.com/tag/graphics/) - [unittesting](https://imanirt.com/tag/unittesting/) - [test](https://imanirt.com/tag/test/) - [learn](https://imanirt.com/tag/learn/) - [books](https://imanirt.com/tag/books/) - [gamedesign](https://imanirt.com/tag/gamedesign/) - [localization](https://imanirt.com/tag/localization/) - [CodeStripping](https://imanirt.com/tag/codestripping/) - [Codingtips](https://imanirt.com/tag/codingtips/) - [c++](https://imanirt.com/tag/c/) - [cplusplus](https://imanirt.com/tag/cplusplus/) - [memorymanagement](https://imanirt.com/tag/memorymanagement/) - [programmingparadigm](https://imanirt.com/tag/programmingparadigm/) - [oop](https://imanirt.com/tag/oop/) - [dop](https://imanirt.com/tag/dop/) - [objectOrientedProgramming](https://imanirt.com/tag/objectorientedprogramming/) - [dataOrientedProgramming](https://imanirt.com/tag/dataorientedprogramming/) - [texture](https://imanirt.com/tag/texture/) - [rendertexture](https://imanirt.com/tag/rendertexture/) - [dev](https://imanirt.com/tag/dev/) - [concurrency](https://imanirt.com/tag/concurrency/) - [multithreading](https://imanirt.com/tag/multithreading/) - [fibers](https://imanirt.com/tag/fibers/) - [coroutines](https://imanirt.com/tag/coroutines/) - [async](https://imanirt.com/tag/async/) - [coordinationsystem](https://imanirt.com/tag/coordinationsystem/) - [math](https://imanirt.com/tag/math/) - [replayability](https://imanirt.com/tag/replayability/) - [random](https://imanirt.com/tag/random/) - [random_generator](https://imanirt.com/tag/random_generator/) - [performance](https://imanirt.com/tag/performance/) - [optimization](https://imanirt.com/tag/optimization/) - [godotengine](https://imanirt.com/tag/godotengine/) - [godot](https://imanirt.com/tag/godot/) - [opensource](https://imanirt.com/tag/opensource/) - [githooks](https://imanirt.com/tag/githooks/) - [hid](https://imanirt.com/tag/hid/) - [interface](https://imanirt.com/tag/interface/) - [cpu](https://imanirt.com/tag/cpu/) - [triangle](https://imanirt.com/tag/triangle/) - [rasterization](https://imanirt.com/tag/rasterization/) - [computergraphics](https://imanirt.com/tag/computergraphics/) - [texel](https://imanirt.com/tag/texel/) - [gpu](https://imanirt.com/tag/gpu/) - [mipmapping](https://imanirt.com/tag/mipmapping/) - [opengl](https://imanirt.com/tag/opengl/) - [graphicsprogramming](https://imanirt.com/tag/graphicsprogramming/) - [directx](https://imanirt.com/tag/directx/) - [vulkan](https://imanirt.com/tag/vulkan/) - [shaders](https://imanirt.com/tag/shaders/) - [debug](https://imanirt.com/tag/debug/) - [webgl](https://imanirt.com/tag/webgl/) - [bug](https://imanirt.com/tag/bug/) - [moire](https://imanirt.com/tag/moire/) - [visual](https://imanirt.com/tag/visual/) - [alisasing](https://imanirt.com/tag/alisasing/) - [anti-aliasing](https://imanirt.com/tag/anti-aliasing/) - [scriptableobjects](https://imanirt.com/tag/scriptableobjects/) - [input](https://imanirt.com/tag/input/) - [inputhandling](https://imanirt.com/tag/inputhandling/) - [controller](https://imanirt.com/tag/controller/) - [analytics](https://imanirt.com/tag/analytics/) - [physics](https://imanirt.com/tag/physics/) - [simulation](https://imanirt.com/tag/simulation/) - [AI](https://imanirt.com/tag/ai/) - [dlss](https://imanirt.com/tag/dlss/)