{"id":32535,"date":"2023-07-20T16:00:43","date_gmt":"2023-07-20T16:00:43","guid":{"rendered":"https:\/\/devblogs.microsoft.com\/cppblog\/?p=32535"},"modified":"2023-08-22T22:50:10","modified_gmt":"2023-08-22T22:50:10","slug":"partnering-with-the-coalition","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/cppblog\/partnering-with-the-coalition\/","title":{"rendered":"Partnering with The Coalition to Bring Unreal Engine Find All Blueprint References to Visual Studio 2022"},"content":{"rendered":"<h2>Introduction<\/h2>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2023\/07\/ueannouncementp3_s-scaled.jpg\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-32611\" src=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2023\/07\/ueannouncementp3_s-scaled.jpg\" alt=\"screenshot of gears 5 with unreal engine and visual studio logos\" width=\"2500\" height=\"1406\" srcset=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2023\/07\/ueannouncementp3_s-scaled.jpg 2500w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2023\/07\/ueannouncementp3_s-300x169.jpg 300w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2023\/07\/ueannouncementp3_s-1024x576.jpg 1024w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2023\/07\/ueannouncementp3_s-768x432.jpg 768w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2023\/07\/ueannouncementp3_s-1536x864.jpg 1536w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2023\/07\/ueannouncementp3_s-2048x1152.jpg 2048w\" sizes=\"(max-width: 2500px) 100vw, 2500px\" \/><\/a><\/p>\n<p>We are thrilled to bring you the 3rd batch of exciting Unreal Engine integrations in Visual Studio 2022! Since our initial announcements, our team has been hard at work building additional integrations based on your invaluable feedback. Recently, we have been working closely with our partners at <strong>The Coalition<\/strong>. Their work on the popular <strong>Gears of War<\/strong> franchise inspired us to ship a new feature that allows you to search for Blueprint UFUNCTION references. Today, we are excited to unveil additional performance improvements and a host of new features that will take your game development productivity to new heights.<\/p>\n<p>In this article, we will explore how you can check whether your code follows UE Naming Convention, apply special indentation rules for UE Macros, and see how Find All Blueprint References works! In addition, we will share a list of valuable productivity features that will benefit all C++ developers. All these powerful features and performance improvements are available in the latest Visual Studio 2022 17.7 Preview 2.<\/p>\n<blockquote><p>\u201cIt\u2019s awesome to be able to partner and collaborate with the Visual Studio team on features such as \u2018Find All Blueprint References\u2019 as it brings great value not only to our development team but anyone using the Unreal Engine. Additions like this show that the Visual Studio team not only listen to the gaming community but are also actively working to make iteration in engines like Unreal better than ever.\u201d<\/p>\n<p>&#8211; Phil Cousins, Tech Director, The Coalition<\/p><\/blockquote>\n<p><div  class=\"d-flex justify-content-center\"><a class=\"cta_button_link btn-primary mb-24\" href=\"https:\/\/visualstudio.microsoft.com\/vs\/preview\" target=\"_blank\">Download Visual Studio 2022 17.7 Preview 2<\/a><\/div><\/p>\n<h2>Visual Studio Toolbox<\/h2>\n<p>See Unreal Integrations in action on the latest episode of Visual Studio Toolbox Live<\/p>\n<p><iframe title=\"YouTube video player\" src=\"\/\/www.youtube.com\/embed\/GGz5BGPUgZw?start=159\" width=\"560\" height=\"315\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\"><\/iframe><\/p>\n<h2>Using Unreal Engine Integrations<\/h2>\n<p>Unreal Engine integrations will only show up when you are working on an Unreal Engine project. To ensure these features are active, double check that \u201cIDE support for Unreal Engine\u201d component is enabled in the \u201cGame development for C++\u201d workload in the VS Installer.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2023\/05\/vc5.png\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-32184\" src=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2023\/05\/vc5.png\" alt=\"A list of components in the VS installer. Ensure IDE support for Unreal Engine is selected\" width=\"618\" height=\"629\" srcset=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2023\/05\/vc5.png 618w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2023\/05\/vc5-295x300.png 295w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2023\/05\/vc5-24x24.png 24w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2023\/05\/vc5-48x48.png 48w\" sizes=\"(max-width: 618px) 100vw, 618px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<h2>Unreal Engine Blueprint Find All References<\/h2>\n<p>Get ready to level up your Blueprints workflow! Available now, you can easily search for UFUNCTION references from within Visual Studio. Start by right clicking on the symbol and click \u201cFind All Blueprint References\u201d.<\/p>\n<p>&nbsp;<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2023\/07\/uebpfar-entry-1.png\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-32625\" src=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2023\/07\/uebpfar-entry-1.png\" alt=\"Image uebpfar entry\" width=\"1980\" height=\"663\" srcset=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2023\/07\/uebpfar-entry-1.png 1980w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2023\/07\/uebpfar-entry-1-300x100.png 300w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2023\/07\/uebpfar-entry-1-1024x343.png 1024w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2023\/07\/uebpfar-entry-1-768x257.png 768w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2023\/07\/uebpfar-entry-1-1536x514.png 1536w\" sizes=\"(max-width: 1980px) 100vw, 1980px\" \/><\/a><\/p>\n<p>After the search is completed, you will be able to view the references of UFUNCTIONs and perform filtering or grouping actions.<\/p>\n<p>&nbsp;<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2023\/07\/uebpfar-example.png\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-32540\" src=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2023\/07\/uebpfar-example.png\" alt=\"An example output of the UE blueprint find all refereces.\" width=\"1176\" height=\"662\" srcset=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2023\/07\/uebpfar-example.png 1176w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2023\/07\/uebpfar-example-300x169.png 300w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2023\/07\/uebpfar-example-1024x576.png 1024w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2023\/07\/uebpfar-example-768x432.png 768w\" sizes=\"(max-width: 1176px) 100vw, 1176px\" \/><\/a><\/p>\n<p>The\u00a0<strong>latest<\/strong>\u00a0version of our Unreal Engine plugin &#8220;Visual Studio Integration Tool&#8221; from the Unreal Engine\u00a0<a href=\"https:\/\/aka.ms\/vsuemarketplace\" target=\"_blank\" rel=\"noopener noreferrer\">Marketplace<\/a>\u00a0or\u00a0<a href=\"https:\/\/aka.ms\/vsuegithub\" target=\"_blank\" rel=\"noopener noreferrer\">GitHub<\/a> is required.<\/p>\n<p>&nbsp;<\/p>\n<h2>Code Analysis for Unreal Engine: Naming Convention Checker<\/h2>\n<p>Visual Studio will now help you keep your code conformant to the Unreal Engine Naming Convention. By adding a <a href=\"https:\/\/aka.ms\/uenamingconvention\">.editorconfig file<\/a> to your project at the solution root level, you will receive real-time hints in the Error List window when your symbols do not match the UE naming convention. In addition, Quick Fixes are available at your fingertips for an easy resolution.<\/p>\n<p>&nbsp;<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2023\/07\/ue-naming-example.png\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-32541\" src=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2023\/07\/ue-naming-example.png\" alt=\"A quick fix showing ue naming convention suggestion\" width=\"1861\" height=\"1047\" srcset=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2023\/07\/ue-naming-example.png 1861w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2023\/07\/ue-naming-example-300x169.png 300w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2023\/07\/ue-naming-example-1024x576.png 1024w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2023\/07\/ue-naming-example-768x432.png 768w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2023\/07\/ue-naming-example-1536x864.png 1536w\" sizes=\"(max-width: 1861px) 100vw, 1861px\" \/><\/a><\/p>\n<p>While this results from Unreal Engine developer feedback, the feature is not specific to Unreal Engine. You can <a href=\"https:\/\/learn.microsoft.com\/en-us\/visualstudio\/ide\/cpp-editorconfig-properties\">customize your own .editorconfig<\/a> file for Visual Studio for your general C++ project. More information is coming at a later date, please use the UE .editorconfig as a template for now.<\/p>\n<p>This feature is on-by-default. To change whether Visual Studio should treat the checks as Warnings or Suggestions, go to Tools &gt; Options &gt; Text Editor &gt; C\/C++ &gt; Code Style &gt; Linter and change &#8220;Naming Convention (experimental)&#8221;.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2023\/07\/ue-naming-settings.png\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-32542\" src=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2023\/07\/ue-naming-settings.png\" alt=\"A Options page allowing to change the severity level of UE naming convention\" width=\"1372\" height=\"909\" srcset=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2023\/07\/ue-naming-settings.png 1372w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2023\/07\/ue-naming-settings-300x199.png 300w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2023\/07\/ue-naming-settings-1024x678.png 1024w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2023\/07\/ue-naming-settings-768x509.png 768w\" sizes=\"(max-width: 1372px) 100vw, 1372px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<h2>Special Macro Indentation Rules for Unreal Engine<\/h2>\n<p>We\u2019ve listened to your <a href=\"https:\/\/developercommunity.visualstudio.com\/t\/Auto-indentation-with-Unreal-Engine---C\/10155238\">feedback<\/a> and added special indentation rules for UE Macros and Slate Declarative syntax. Visual Studio will now apply formatting rules in your Unreal Engine Projects.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2023\/07\/ue-macro-format-example.png\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-32543\" src=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2023\/07\/ue-macro-format-example.png\" alt=\"An example of proper UE style indentation in VS\" width=\"1061\" height=\"596\" srcset=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2023\/07\/ue-macro-format-example.png 1061w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2023\/07\/ue-macro-format-example-300x169.png 300w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2023\/07\/ue-macro-format-example-1024x575.png 1024w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2023\/07\/ue-macro-format-example-768x431.png 768w\" sizes=\"(max-width: 1061px) 100vw, 1061px\" \/><\/a><\/p>\n<p>This feature is on-by-default. To verify Unreal Engine specific formatting is enabled, search &#8220;Unreal Engine&#8221; in Options or go to Tools -&gt; Options -&gt; Text Editor -&gt; C\/C++ -&gt; Code Style -&gt; Formatting -&gt; Unreal Engine and check &#8220;Apply special formatting for Slate declarative syntax and Unreal Engine reflection macros.&#8221;<\/p>\n<p>Visual Studio will properly indent code on lines after reflection macros and use special rules for the Slate declarative syntax.<\/p>\n<p>&nbsp;<\/p>\n<h2>Improved Doxygen Comments Support for Unreal Engine<\/h2>\n<p>We have added additional support for Doxygen Comments that exposes descriptions that are shared for all overloads of a function. When hovering over an overloaded function, you will now see Quick Info display descriptions written in the Doxygen Comment. This feature is especially helpful for you in Unreal Engine development where you may encounter many of these overloaded functions. To learn more, please visit this <a href=\"https:\/\/devblogs.microsoft.com\/cppblog\/improved-doxygen-overload-resolution\/\">blog<\/a>.<\/p>\n<p><figure id=\"attachment_32544\" aria-labelledby=\"figcaption_attachment_32544\" class=\"wp-caption aligncenter\" ><a href=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2023\/07\/uedoxygen.png\"><img decoding=\"async\" class=\"size-full wp-image-32544\" src=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2023\/07\/uedoxygen.png\" alt=\"A snippet of UE code with doxygen comments\" width=\"1579\" height=\"366\" srcset=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2023\/07\/uedoxygen.png 1579w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2023\/07\/uedoxygen-300x70.png 300w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2023\/07\/uedoxygen-1024x237.png 1024w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2023\/07\/uedoxygen-768x178.png 768w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2023\/07\/uedoxygen-1536x356.png 1536w\" sizes=\"(max-width: 1579px) 100vw, 1579px\" \/><\/a><figcaption id=\"figcaption_attachment_32544\" class=\"wp-caption-text\">The cope snippet above shows an overloaded function with Doxygen comments.<\/figcaption><\/figure><\/p>\n<p>&nbsp;<\/p>\n<p><figure id=\"attachment_32545\" aria-labelledby=\"figcaption_attachment_32545\" class=\"wp-caption aligncenter\" ><a href=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2023\/07\/uedoxygenbefore.png\"><img decoding=\"async\" class=\"size-full wp-image-32545\" src=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2023\/07\/uedoxygenbefore.png\" alt=\"A quick info tooltip in VS prior to the new feature. It does not show shared descriptions\" width=\"875\" height=\"179\" srcset=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2023\/07\/uedoxygenbefore.png 875w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2023\/07\/uedoxygenbefore-300x61.png 300w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2023\/07\/uedoxygenbefore-768x157.png 768w\" sizes=\"(max-width: 875px) 100vw, 875px\" \/><\/a><figcaption id=\"figcaption_attachment_32545\" class=\"wp-caption-text\"><strong><span style=\"text-decoration: underline;\">[<\/span>Before<span style=\"text-decoration: underline;\">]<\/span><\/strong> Prior to this feature, Visual Studio does not show shared descriptions for overloaded functions.<\/figcaption><\/figure>&nbsp;<\/p>\n<p><figure id=\"attachment_32546\" aria-labelledby=\"figcaption_attachment_32546\" class=\"wp-caption aligncenter\" ><a href=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2023\/07\/uedoxygenafter.png\"><img decoding=\"async\" class=\"size-full wp-image-32546\" src=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2023\/07\/uedoxygenafter.png\" alt=\"A quick info tooltip in VS that shows shared descriptions in overloaded functions\" width=\"853\" height=\"322\" srcset=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2023\/07\/uedoxygenafter.png 853w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2023\/07\/uedoxygenafter-300x113.png 300w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2023\/07\/uedoxygenafter-768x290.png 768w\" sizes=\"(max-width: 853px) 100vw, 853px\" \/><\/a><figcaption id=\"figcaption_attachment_32546\" class=\"wp-caption-text\"><strong>[After]<\/strong> With the new Doxygen improvements, Visual Studio will now show shared descriptions on all overloaded functions.<\/figcaption><\/figure>&nbsp;<\/p>\n<h2>Build Insights Integration<\/h2>\n<p>We are thrilled to announce that Build Insights is now seamlessly integrated. Build Insights provides you with valuable information needed when optimizing your C++ build times.\u00a0Try it today with your Unreal Engine project!<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2023\/07\/uebuildinsights-1.jpg\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-32634\" src=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2023\/07\/uebuildinsights-1.jpg\" alt=\"screen shot showing to how run build insights on UE projects\" width=\"1110\" height=\"575\" srcset=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2023\/07\/uebuildinsights-1.jpg 1110w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2023\/07\/uebuildinsights-1-300x155.jpg 300w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2023\/07\/uebuildinsights-1-1024x530.jpg 1024w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2023\/07\/uebuildinsights-1-768x398.jpg 768w\" sizes=\"(max-width: 1110px) 100vw, 1110px\" \/><\/a><\/p>\n<p>Start your Build Insights trace capture with the click of a button for your UE project, or selected projects.<\/p>\n<p>&nbsp;<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2023\/07\/uebuildinsights.jpg\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-32623\" src=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2023\/07\/uebuildinsights.jpg\" alt=\"Screenshot of Build Insights integration window\" width=\"1208\" height=\"508\" srcset=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2023\/07\/uebuildinsights.jpg 1208w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2023\/07\/uebuildinsights-300x126.jpg 300w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2023\/07\/uebuildinsights-1024x431.jpg 1024w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2023\/07\/uebuildinsights-768x323.jpg 768w\" sizes=\"(max-width: 1208px) 100vw, 1208px\" \/><\/a><\/p>\n<p>After compilation, Build Insights will both generate a diagnostic report that enables you to identify costly includes and provide you with an option to navigate directly to header files.<\/p>\n<p>&nbsp;<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2023\/07\/uebuildinsightswpa.jpg\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-32624\" src=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2023\/07\/uebuildinsightswpa.jpg\" alt=\"Screenshot of the build insights integration window\" width=\"932\" height=\"716\" srcset=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2023\/07\/uebuildinsightswpa.jpg 932w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2023\/07\/uebuildinsightswpa-300x230.jpg 300w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2023\/07\/uebuildinsightswpa-768x590.jpg 768w\" sizes=\"(max-width: 932px) 100vw, 932px\" \/><\/a><\/p>\n<p>For power users, you can open Windows Performance Analyzer (WPA) from within the report.<\/p>\n<p>We are working hard to continually improve Build Insights Integration. What you see today is only the beginning! For more information, please see this <a href=\"https:\/\/devblogs.microsoft.com\/cppblog\/build-insights-now-available-in-visual-studio-2022\/\">blog<\/a>.<\/p>\n<p>&nbsp;<\/p>\n<h2>Performance Boosts for C++ Game Development<\/h2>\n<p>Since our <a href=\"https:\/\/devblogs.microsoft.com\/cppblog\/faster-cpp-source-code-indexing\/\">blog<\/a> last year, the team has continued to work on additional performance improvements for large C++ projects. We have significantly sped-up Solution Load and Solution Close scenarios. In addition, the time it takes to parse C++ solutions for the first time is also greatly reduced. Lastly, we made further improvements for the time it takes to get to your code. While these improvements are significant for large projects, you should still notice a speedup if your project is smaller in nature. For more information, please visit this <a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/visual-studio-2022-17-6-performance-enhancements\/\">Visual Studio blog<\/a>.<\/p>\n<p>&nbsp;<\/p>\n<h3>Testing Methodology<\/h3>\n<p>We used a real-world AAA Unreal Engine 5 game to benchmark the performance improvements in Visual Studio 2022. We measured the scenarios by capturing internal logs. The graphs below illustrate the improvements over the course of one year, from version 17.2 in May 2022 to version 17.6 in May 2023. To replicate real-world game developer workflow, we used a gaming PC with high RAM and core count.<\/p>\n<p>&nbsp;<\/p>\n<h3>Results<\/h3>\n<p><figure id=\"attachment_32538\" aria-labelledby=\"figcaption_attachment_32538\" class=\"wp-caption aligncenter\" ><a href=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2023\/07\/slnload.png\"><img decoding=\"async\" class=\"size-full wp-image-32538\" src=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2023\/07\/slnload.png\" alt=\"A bar chart showing VS performing faster in C++ Solution parse, and solution load\" width=\"2585\" height=\"1264\" srcset=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2023\/07\/slnload.png 2585w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2023\/07\/slnload-300x147.png 300w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2023\/07\/slnload-1024x501.png 1024w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2023\/07\/slnload-768x376.png 768w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2023\/07\/slnload-1536x751.png 1536w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2023\/07\/slnload-2048x1001.png 2048w\" sizes=\"(max-width: 2585px) 100vw, 2585px\" \/><\/a><figcaption id=\"figcaption_attachment_32538\" class=\"wp-caption-text\">When Parsing C++ solutions for the first time, you will see the task complete 3.2x faster. There are also improvements when loading a solution for the first (cold) time, and subsequent times (warm).<\/figcaption><\/figure><\/p>\n<p><figure id=\"attachment_32537\" aria-labelledby=\"figcaption_attachment_32537\" class=\"wp-caption aligncenter\" ><a href=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2023\/07\/slnclose.png\"><img decoding=\"async\" class=\"size-full wp-image-32537\" src=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2023\/07\/slnclose.png\" alt=\"A bar graph showing VS performing faster for solution close, colorization and search\" width=\"2595\" height=\"1213\" srcset=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2023\/07\/slnclose.png 2595w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2023\/07\/slnclose-300x140.png 300w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2023\/07\/slnclose-1024x479.png 1024w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2023\/07\/slnclose-768x359.png 768w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2023\/07\/slnclose-1536x718.png 1536w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2023\/07\/slnclose-2048x957.png 2048w\" sizes=\"(max-width: 2595px) 100vw, 2595px\" \/><\/a><figcaption id=\"figcaption_attachment_32537\" class=\"wp-caption-text\">For both closing the solution for the first (cold) time, and subsequent times (warm), you will see Visual Studio complete the task 1.9X and 2.2X faster, respectively.<\/figcaption><\/figure><\/p>\n<p>&nbsp;<\/p>\n<h3>Impact Analysis<\/h3>\n<p>Our biggest performance improvement is a 3.2x speed-up in Visual Studio&#8217;s parsing of C++ projects during the first run. We received valuable feedback from game developers on how to enhance this area, and we&#8217;re eager to hear how much more productive you&#8217;ll be when opening projects for the first time.<\/p>\n<p>Next, thanks to community and game developer feedback, we allocated additional resources to focus on the Solution Load and Close scenarios. We heard that these are important workflow scenarios, especially from those who may open and close solutions multiple times a day. While the numerical reduction is a few seconds, we hope that this improvement will further improve productivity and reduce mental task switching throughout the day.<\/p>\n<p>Lastly, we have made additional performance improvements to colorization and search on top of previous improvements. Please stay tuned as we continue to make investments in the performance of Visual Studio in these areas.<\/p>\n<p>&nbsp;<\/p>\n<h2>Feedback Wanted!<\/h2>\n<p>With the latest Unreal Engine Integrations in Visual Studio 2022 17.7 Preview 2, we aim to empower game developers and enhance their productivity through innovative and powerful tools. Our dedication to this goal is ongoing and this release is just one step towards our vision of a streamlined game development process. Your feedback has been instrumental in shaping our development path.\u00a0 Whether or not you use Unreal Engine to develop your games, we encourage you to continue to share your thoughts and ideas with us by reaching out through Developer Community, surveys, Twitter (@VisualC), or email at <a href=\"mailto:visualcpp@microsoft.com\">visualcpp@microsoft.com<\/a>. Thank you for your continued support. Together, we can drive game development to new heights with Visual Studio 2022.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Introduction We are thrilled to bring you the 3rd batch of exciting Unreal Engine integrations in Visual Studio 2022! Since our initial announcements, our team has been hard at work building additional integrations based on your invaluable feedback. Recently, we have been working closely with our partners at The Coalition. Their work on the popular [&hellip;]<\/p>\n","protected":false},"author":39811,"featured_media":32611,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[270,1,3927],"tags":[],"class_list":["post-32535","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-announcement","category-cplusplus","category-game-development"],"acf":[],"blog_post_summary":"<p>Introduction We are thrilled to bring you the 3rd batch of exciting Unreal Engine integrations in Visual Studio 2022! Since our initial announcements, our team has been hard at work building additional integrations based on your invaluable feedback. Recently, we have been working closely with our partners at The Coalition. Their work on the popular [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/posts\/32535","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/users\/39811"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/comments?post=32535"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/posts\/32535\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/media\/32611"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/media?parent=32535"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/categories?post=32535"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/tags?post=32535"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}