Partnering with The Coalition to Bring Unreal Engine Find All Blueprint References to Visual Studio 2022

David Li

Introduction

screenshot of gears 5 with unreal engine and visual studio logos

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.

A list of components in the VS installer. Ensure IDE support for Unreal Engine is selected

 

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”.

 

Image uebpfar entry

After the search is completed, you will be able to view the references of UFUNCTIONs and perform filtering or grouping actions.

 

An example output of the UE blueprint find all refereces.

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.

 

A quick fix showing ue naming convention suggestion

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)”.

A Options page allowing to change the severity level of UE naming convention

 

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.

An example of proper UE style indentation in VS

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.

A snippet of UE code with doxygen comments
The cope snippet above shows an overloaded function with Doxygen comments.

 

A quick info tooltip in VS prior to the new feature. It does not show shared descriptions
[Before] Prior to this feature, Visual Studio does not show shared descriptions for overloaded functions.
 

A quick info tooltip in VS that shows shared descriptions in overloaded functions
[After] With the new Doxygen improvements, Visual Studio will now show shared descriptions on all overloaded functions.
 

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!

screen shot showing to how run build insights on UE projects

Start your Build Insights trace capture with the click of a button for your UE project, or selected projects.

 

Screenshot of Build Insights integration window

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.

 

Screenshot of the build insights integration window

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

A bar chart showing VS performing faster in C++ Solution parse, and solution load
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).

A bar graph showing VS performing faster for solution close, colorization and search
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.

 

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

Discussion is closed.

Feedback usabilla icon