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 Gears of War 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.
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.
“It’s awesome to be able to partner and collaborate with the Visual Studio team on features such as ‘Find All Blueprint References’ 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.”
– Phil Cousins, Tech Director, The Coalition
Visual Studio Toolbox
See Unreal Integrations in action on the latest episode of Visual Studio Toolbox Live
Using Unreal Engine Integrations
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 “IDE support for Unreal Engine” component is enabled in the “Game development for C++” workload in the VS Installer.
Unreal Engine Blueprint Find All References
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 “Find All Blueprint References”.
After the search is completed, you will be able to view the references of UFUNCTIONs and perform filtering or grouping actions.
The latest version of our Unreal Engine plugin “Visual Studio Integration Tool” from the Unreal Engine Marketplace or GitHub is required.
Code Analysis for Unreal Engine: Naming Convention Checker
Visual Studio will now help you keep your code conformant to the Unreal Engine Naming Convention. By adding a .editorconfig file 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.
While this results from Unreal Engine developer feedback, the feature is not specific to Unreal Engine. You can customize your own .editorconfig 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.
This feature is on-by-default. To change whether Visual Studio should treat the checks as Warnings or Suggestions, go to Tools > Options > Text Editor > C/C++ > Code Style > Linter and change “Naming Convention (experimental)”.
Special Macro Indentation Rules for Unreal Engine
We’ve listened to your feedback and added special indentation rules for UE Macros and Slate Declarative syntax. Visual Studio will now apply formatting rules in your Unreal Engine Projects.
This feature is on-by-default. To verify Unreal Engine specific formatting is enabled, search “Unreal Engine” in Options or go to Tools -> Options -> Text Editor -> C/C++ -> Code Style -> Formatting -> Unreal Engine and check “Apply special formatting for Slate declarative syntax and Unreal Engine reflection macros.”
Visual Studio will properly indent code on lines after reflection macros and use special rules for the Slate declarative syntax.
Improved Doxygen Comments Support for Unreal Engine
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 blog.
Build Insights Integration
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. Try it today with your Unreal Engine project!
Start your Build Insights trace capture with the click of a button for your UE project, or selected projects.
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.
For power users, you can open Windows Performance Analyzer (WPA) from within the report.
We are working hard to continually improve Build Insights Integration. What you see today is only the beginning! For more information, please see this blog.
Performance Boosts for C++ Game Development
Since our blog 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 Visual Studio blog.
Testing Methodology
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.
Results
Impact Analysis
Our biggest performance improvement is a 3.2x speed-up in Visual Studio’s parsing of C++ projects during the first run. We received valuable feedback from game developers on how to enhance this area, and we’re eager to hear how much more productive you’ll be when opening projects for the first time.
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.
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.
Feedback Wanted!
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. 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 visualcpp@microsoft.com. Thank you for your continued support. Together, we can drive game development to new heights with Visual Studio 2022.
0 comments