Choosing & Preparing Integrated Development Environment for Unreal C++
What do you need to efficiently work with Unreal C++?
There are few IDE (Integrated Development Environment) supported by Unreal Engine.
Rider
Unreal Engine Support Lands in Rider 2022.1 EAP. However, you can use Preview build until March 31, 2022.
Rider is a new option for C++ in general and Unreal Engine from JetBrains. This company is well-known for providing excellent tools for programmers, especially multiple IDEs specialized in specific languages and industries. Rider itself becomes the "gamedev IDE". For years, it was supporting Unity with C#. Now you can use it for both, Unity and Unreal.
Pros
-
Nearly as lightweight and responsive as Visual Studio Code, despite providing much more features. It's extremely pleasant to jump from the Visual Studio which often runs very slow, hangs for many seconds during editing or using a debugger.
-
UI is modern, clean, very customizable. It's so much easier to find information, read debugger values.
-
ReSharper is built-in, providing almost every feature from ReSharper C++ (Visual Studio plugin). This gives us advanced (and fast!) code search, navigation, refactoring actions and code inspection! That's priceless while working with such a huge codebase as the Unreal Engine.
-
ReSharper simplifies maintaining the coding standard and a healthy codebase in the entire team.
-
It does, thanks to auto-formatting and code inspection that works great, and you can tweak every single detail.
-
You can extract such settings as Code Style and Code Inspection to the team-shared settings saved to the repository.
-
-
Rider for Unreal Engine adds some voodoo magic. It's able to analyze assets in the Unreal project, so it can do things like(no other IDE does that, there are no such Unreal-specific features in VS or VSC):
-
Displays blueprint classes inheriting after viewed C++ header. It creates links to these blueprints allowing to open the blueprint editor with a single click.
-
Displays default values overridden by blueprints and .ini files! The editor also creates links to assets, i.e. material assigned to the property.
-
Find usages of C++ function in blueprints.
-
It can create property or class redirect in .ini if you rename property or class exposed to blueprints.
-
-
It supports all Version Control Systems out-of-the-box, including Perforce.
-
It's available on Windows, Mac, Linux. You can use a single IDE on any system, both for Unreal with C++ and Unity with C#.
Cons
-
It's only free during the Preview phase. The free license is valid till March 2022. Later on, you need to pay for it. See Pricing options. That's no issue for professional programmers, but might be a barrier for enthusiasts.
-
It's not a default IDE in Unreal Engine. We might expect excellent support from JetBrains, but most probably Epic gonna stick with a free and proven Visual Studio as the default IDE.
-
JetBrains team needed to write their own C++ debugger, as VS debugger is an integral part of the Visual Studio. It works great, but lacks some advanced debugging features.
-
It doesn't yet support debugging consoles. Work in progress, as Sony and Nintendo offered some support.
-
It doesn't yet provide a full equivalent to UnrealVS extension. JetBrains created its own EzArgs plugin, which gives us a convenient way to set command line parameters for the Unreal Engine process. Batch Builder is still a feature available in UnrealVS, but missing in the Rider.
Visual Studio
You can grab Visual Studio Community for free!
Pros
-
It's a proven and well-known editor for gamedev programmers. It's recommened IDE if you wouldn't use Rider for any reason.
-
C++ debugger is excellent, as is developed by the same company that develops Microsoft Visual C++ compiler.
-
For these reasons, it's the default IDE for Unreal Engine. Used by Epic Games for a very long time, so they provided these resources:
-
Setting Up Visual Studio for Unreal Engine - official guide installation and basic setup.
-
UnrealVS Extension - it's a very useful extension, lets you easily add launch parameters and build many configurations at once.
-
Cons
-
The free Community Edition is only applicable for students, open-source and commercial studios with 5 or fewer concurrent (VS) developers. The bigger company should use a paid Visual Studio edition.
-
It's surprising, but VS support for editing C++ is... almost non-existent. There's Intellisense, but it doesn't work properly with huge codebases like the game engine and with macros which are ubiquitous in the Unreal Engine. Many programmers simply prefer to disable Intellisense and use Visual Assist that has included support for Unreal Engine and better syntax highlighting. There are also many features for code search, navigating, refactoring that some of which are implemented very badly for often usage, but with Visual Assist this process much better simplifies.
-
Vanilla Visual Studio doesn't provide any Unreal-specific support.
-
Perforce plug-in isn't part of the Visual Studio itself. You need to add P4VS plug-in yourself, but it's free. This plug-in automatically checks out (marked as edited) every source file you're starting to edit. This way working with Perforce is convenient for programmers.
-
Until 2022 version, VS is a 32-bit process that may use only 2-4 GB of RAM. That's for IDE, all the plugins, loaded project data. ReSharper C++ itself needs hundreds of MBs. That's the main reason why VS is so sluggish when used for big projects, and every Unreal Engine project is considered big since it includes engine source code.
-
Note! Some of these issues became things of the past with the release of VS 2022! Keep in mind that VS 2022 is only supported by UE 4.27 and not-yet-released UE5.
-
- Visual Studio 2022 is finally a 64-bit application!
- 18x Faster IntelliSense for Unreal Engine Projects in Visual Studio 2022.
- Resharper C++ supports VS 2022 since version 2021.3.
- Some Rider features might be enabled in Resharper C++ plugin as memory constraints will go away.
Fixing VS Usability
Unreal Engine 4 codebase contains a few millions of lines of code. It's too much for clean Visual Studio to handle such an enormous codebase, so nearly every programmer needs a supporting plugin, and these also come with many editing features and Unreal-specific support.
You can choose one of these two described below. Both are paid, but definitely worth it.
-
ReSharper C++ - yep, that's a JetBrains plugin described in the Rider section. Provides more features than Visual Assist, especially when it comes to code navigation and refactoring. It's also part of Rider, so it's super easy to switch between VS + ReSharper and Rider.
-
Visual Assist (also know as VAX). It was the only choice for programmers for a long time. Not only for Unreal Engine programmers but also for devs working on in-house engines. VAX includes exclusive features for working with Unreal Engine.
- Simply learn these top features. These few shortcuts are priceless time-savers.
-
UE4 Smarter Macro Indenting properly handles the indentation of the next line after UE4 macros. Thanks to this, your code will look closer to the engine's Coding Standard and gonna be a bit easier to read.
- This might be not needed if you already using ReSharper C++ or a recent version of VAX.
Visual Studio Code
It's not really an IDE, it's more like a smart Notepad. Although it's quite popular among programmers for few reasons.
Pros
-
It's totally and forever free.
-
It's built from the scratch, to be lightweight and modular. It's amazing at that. VSC code search can quickly find any string in the entire codebase of the Unreal Engine.
-
It's available on Windows, Mac, Linux.
Cons
-
Epic Games provide basic support for VSC, but it's sometimes broken with the new engine release.
-
It doesn't provide advanced editing or debugging features, and it can't because of its architecture. This is the answer of JetBrains engineer: explanation why there won't be ReSharper for VSC.
-
Studios often expect programmers to be familiar with proper IDE, like Visual Studio or Rider. It's because advanced features of these IDEs, VAX and ReSharper helps tremendously to write better code and follow the coding standard.