Rider for unreal engine
Rider for unreal engine
Before you start
This Getting Started video will take you through the initial steps, getting the app installed once you’ve registered, and setting Rider as the default source code editor for Unreal:
Software requirements
MSVC compiler (Visual Studio 2013, 2015, 2017, or 2019) for Unreal Engine projects, or Clang for other C++ projects
Unreal Engine 4.26+
For the C# projects: Mono
Unreal Engine 4.26.2+
For the C# projects: Mono
Set up integration with Unreal Editor
Starting with 4.25 on Windows and 4.26.2 on macOS, Unreal Editor has built-in support for JetBrains Rider with Unreal Engine features. If you’re using an earlier version of Unreal Engine, you need to install the RiderSourceCodeAccess plugin manually. For details, refer to the plugin page on GitHub.
Once the plugin is installed into the engine and enabled, Unreal Editor will list JetBrains Rider as a supported source code editor ( Editor Preferences | General | Source Code ). You can select a specific version, or just select Rider to always use the latest installed version.
To enable Open C++ with Rider in Unreal Editor on Linux, as a temporary workaround, use the absolute path to JetBrains Rider’s binary file in RiderSourceCodeAccess.
Install plugins
The first time you open an Unreal Engine project, you’ll see a notification that the RiderLink plugin is missing. This plugin is very useful as it enables advanced integration between JetBrains Rider and Unreal Editor with features such as opening a blueprint in Unreal Editor when JetBrains Rider finds usages of code inside this blueprint.
Another useful plugin is EzArgs providing functionality for working with command-line arguments.
Open an Unreal Engine project
UnrealLink and RiderLink
The UnrealLink plugin enables advanced integration between JetBrains Rider and Epic Games’ Unreal Editor. The plugin brings Blueprints information to the editor, adds settings to manage game launch, and provides a more convenient version of the Unreal Editor log.
Plugin structure
There are two plugins under the hood, the UnrealLink plugin for JetBrains Rider and the RiderLink plugin for Unreal Editor, packed together.
Installation
UnrealLink is bundled with JetBrains Rider. Starting with Rider for Unreal Engine 2020.2.1, it’s also distributed via the JetBrains plugin marketplace.
RiderLink is installed by JetBrains Rider itself, there is no need to install it manually. The first time you open an Unreal Engine project in JetBrains Rider, you’ll see a notification that the RiderLink plugin is missing and an invitation to install it. If you skip this popup message, you can install the plugin later on the Languages & Frameworks | Unreal Engine page of JetBrains Rider settings Ctrl+Alt+S
Both the popup message and the settings page offer two installation options:
Engine : Select this option to install the plugin in the engine and use it for all game projects based on the current engine version. The plugin will appear in the Engine/Plugins/Developer folder.
Game : Select this option to install the plugin in the game project and use it for the current project only. The plugin will appear in the Game/Plugins/Developer folder.
If you later decide to change the installation location, use Force Install RiderLink in Engine / Force Install RiderLink in Game actions via Find Action( Ctrl+Shift+A ).
Features
UnrealLink extends the JetBrains Rider blueprints functionality and introduces the ability to navigate to the Blueprint inside the Unreal Editor from your C++ code.
Manage the game
The plugin allows you to manage your game right inside the IDE: select the running mode, run a server for your multiplayer game, specify the number of players, and more.
Browse the Unreal Editor log
UnrealLink offers you an enhanced version of the Unreal Editor log output panel with colored text for easy reading, as well as verbosity and event category filters. You can also click any highlighted link to navigate to the related source code line.
What could possibly go wrong?
The plugin and Rider for Unreal Engine itself are in active development now, so there could be some issues. Please share your feedback and report any bugs you encounter:
Submit plugin-specific issues to the GitHub Issues page.
Rider-specific issues should be directed to the Rider tracker.
Send a message with any questions and feature suggestions to our support engineers and the Rider for Unreal Engine developers at rider-cpp-support@jetbrains.com.
A few typical issues, and what to do in such cases:
Failed to build RiderLink plugin
There are several reasons you might get this message:
There’s a problem with your current Game or Unreal Engine code. Make sure that you can build them correctly.
You have an instance of Unreal Editor with the RiderLink plugin running. Close Unreal Editor and try installing RiderLink again.
Finally, if Unreal Editor is closed and your project builds fine, and you have an old version of RiderLink installed, move the old version of RiderLink to a temp folder manually and try reinstalling RiderLink.
Failed to backup old plugin
You tried to install a new version of RiderLink while you have a running instance of Unreal Editor with the plugin installed.
Close Unreal Editor and try again to install the plugin.
Failed to refresh project files
This warning message means that installation was successful, but updating the project files in Rider failed. Everything should work fine, except the plugin will not appear in the /Plugins/Developer folder in the Explorer view.
If you have any issues with the plugin that you can’t resolve, please contact the developers via GitHub Issues.
free 30-day trial
Derek Comartin
Director of Engineering, Full Circle TMS
What is Rider?
Feature-rich and fast
Rider provides 2200+ live code inspections, hundreds of context actions and refactorings brought by ReSharper, and combines them with the IntelliJ platform’s solid IDE features. Despite a heavy feature set, Rider is designed to be fast and responsive.
Cross-platform
As well as running and debugging multiple runtimes, Rider itself runs on multiple platforms: Windows, macOS, and Linux.
Features
Code analysis
Rider boasts 2,200+ live code inspections, with automated quick-fixes to resolve detected issues individually or in bulk. Solution-wide error analysis will monitor code issues and let you know if anything goes wrong, even in files that are not currently open.
Code editing
Rider’s rich editor features different kinds of code completion and code templates, auto-inserting matching braces and import directives, quick info tooltips and gutter icons for inheritance navigation, context actions, and much more.
Refactorings
Most of ReSharper’s 60+ refactorings are already available in Rider, and its 450+ context actions are all there. Rename, extract methods, interfaces and classes, move and copy types, use alternative syntax, and a lot more!
Unit test runner
Rider helps you run and debug unit tests based on NUnit, xUnit.net, or MSTest. You can explore tests, group them in different ways, break them down into individual sessions, see test output and navigate to source code from stack traces.
Debugger and more tools
Databases and SQL
Work with SQL and databases without leaving Rider. Connect to databases, edit schemas and table data, run queries, and even analyze schemas with UML diagrams.
Navigation and search
Jump to any file, type, or member in your code base instantly, as well as quickly find settings and actions. Find usages of any symbol, or navigate from a symbol to the base and derived symbols, extension methods, or implementations.
Front-end technologies
Rider comes with JavaScript, TypeScript, HTML, CSS and Sass support built in. Take advantage of the refactorings, debugging, and unit testing capabilities included from WebStorm.
Extensibility
The Many Sides of Rider
What’s new in Rider
Performance improvements
Optimized startup times
Defaults for per-solution settings
Shared window layout settings
Redesigned solution configurations
Better presentation of configurations, targets, and platforms combinations
C# 11 features
Required members, checked user-defined operators, and raw strings
Better support for solution filters
Easier to work with filtered solutions
F# support
Completely rewritten Parameter Info popup
Early preview of MAUI support
Run and debug iOS and Android projects
Safe delete refactoring
Refactoring for projects in a solution
Resizable Run/Debug widget
Extendable to fit space on the toolbar
.NET 6 runtime
For the backend on Windows
Unreal Engine support
New actions, Unreal Module and New Unreal Plugin, and symbol servers for the debugger
Memory profiler
dotMemory with Rider, *Windows only
Rider
ReSharper
ReSharper C++
Visual Studio extension for C++ developers
dotCover
.NET unit test runner and code coverage plugin for Rider
dotTrace
.NET performance profiling plugin for Rider
dotMemory
.NET memory profiler
dotPeek
.NET decompiler and assembly browser (it’s free anyway)
Customers
JetBrains Rider is the first tool I install after repaving my development machine.
I haven’t launched Visual Studio for months after I switched to JetBrains Rider.
Working with branches has never been so smooth since I started using JetBrains Rider.
Dennis Doomen,
Continuous Improver at Aviva Solutions and author of Fluent Assertions
JetBrains Rider is my C# development tool of choice these days on both OS X and Windows. If you’re a longstanding ReSharper user, you’ll find it to be an almost seamless transition. I highly recommend the developer-friendly keystroke navigation and fine grained debugger support.
Frans Bouma,
lead developer, LLBLGen Pro
Switching to JetBrains Rider was a great decision. Our team has never experienced an IDE that can communicate with Unity in such a flawless and efficient manner. We would highly recommend JetBrains Rider to anyone who aims at improving the efficiency and accuracy of their workflows.
An IDE can make or break a developer’s day. When JetBrains introduced Rider (C#) we jumped on board as fast as we could. Having been there at every step of the way in Unity’s evolution of IDE integrations; working with Rider has been nothing but an absolute joy. With the introduction of CLion (C++), we were so excited we created an integration plugin for Unreal. Both of these tools help our team on a daily basis, allowing developers to perform their tasks quickly and efficiently, all the while seamlessly integrating with numerous parts of our pipeline.
Really pleased with how well JetBrains Rider works on my MacBook. It’s blazingly fast and the debugging experience in C# is at least as good as Visual Studio. Also, it gives me all the benefits of ReSharper out of the box! Loving it. Thanks JetBrains for another great product!
JetBrains Rider — теперь для Unreal Engine
На прошлой неделе, после релизов версии 2020.1, для всех наших десктопных продуктов случилось еще одно большое событие — мы открыли публичный доступ к пробной версии Rider for Unreal Engine. На данный момент это отдельный продукт, версия нашей среды для разработки Rider, но с поддержкой C++ и Unreal Engine.
Так, стоп! Среда разработки на C++. Еще одна?! Давайте разбираться по порядку.
Начнем с небольшой истории. Несколько лет назад мы собрали всех, кто в JetBrains делает инструменты для C++, чтобы обсудить, насколько пользователям тяжело ориентироваться в многообразии наших предложений. Ведь есть и CLion, и ReSharper C++, и поддержка для C++ в AppCode. Через несколько часов обсуждений пришли к таким выводам:
Заходя ко многим нашим пользователям из области разработки игр, мы заметили, что у многих студий нет четкого разделения — делать игры только на Unity или только на Unreal Engine. Сегодня у них игра на одной технологии, а завтра — на другой, или одна команда использует Unreal Engine, а другая Unity или вообще свой кастомный движок. При этом понятно, что разработчикам и компаниям в целом очень не нравится “прыгать” между разными средами разработки. И вот тут-то мы и решили, что, если мы смогли сделать Rider успешным для Unity, то мы можем пойти дальше и сделать его успешным в целом для мира игровой разработки. Так родилась идея Rider как универсальной среды разработки для Game Dev.
Из чего состоит Rider for Unreal Engine
Дальнейшее развитие событий довольно очевидно для тех, кто знаком с технологией, на которой построен Rider. Rider состоит из front-end части на базе платформы IntelliJ и back-end части на базе ReSharper. Все языковая поддержка работает на back-end. Поэтому мы просто подключили уже имеющуюся в ReSharper C++ поддержку C++ и Unreal Engine к Rider по той же технологии. Из специфичного пришлось дополнительно реализовать:
Отладчик на основе LLDB
Значительная часть разработки игр происходит сейчас на платформе Windows и в рамках тулчейна от Microsoft. Если посмотреть на то, какие инструменты для отладки существуют для кода, который скомпилирован с помощью компилятора Microsoft Visual C++, то мы увидим:
Поддержка C++
Повторю — вся функциональность языковой поддержки из ReSharper C++ теперь доступна в Rider for Unreal Engine Preview. Она включает:
Поддержка HLSL, C#, диалектов uproject/uplugin
В этом году мы начали работать над поддержкой языка для написания шейдеров HLSL в ReSharper C++, и она сразу попала и в раннее превью Rider for Unreal Engine. Поддержка включает в себя подсветку синтаксиса, тултипы с документацией, подсказки имен параметров и типов, действия навигации, автодополнение, поддержка виртуальных путей файлов, и даже рефакторинги.
Интеграция с Blueprints
Файлы Blueprints представляют собой данные в бинарном формате, редактирование которых происходит как правило в визуальном редакторе внутри Unreal Editor. Объекты в этих файлах наследуются от классов на C++, переопределяют проперти из C++ части игры. И вот тут Rider for Unreal Engine является той уникальной средой разработки, которая зачитывает все необходимые файлы Blueprints и показывает эти связи в редакторе кода на C++:
При этом, если поменять, например, значение свойства в редакторе Unreal Engine и сохранить asset, то значение тут же автоматически обновится и в Rider (у нас повешены watchers на изменение asset-файлов):
Без сохранения файлов, мы надеемся, это тоже скоро заработает (подготовка к этому сейчас ведется в плагине UnrealLink).
Вызов поиска использований (Find usages) включает не только использования в коде на C++, но и в файлах Blueprints. Двойной клик по таким использованиям открывает Unreal Editor.
Понимание механизма рефлексии UE4
Рефлексия в Unreal Engine реализована с помощью специальных макросов (UCLASS, UFUNCTION, UPROPERTY и др). Rider знает, что параметры таких макросов — это не просто текст. Парсер языка C++ в ReSharper C++ и Rider умеет действительно “понимать” значение этих макросов, даже не запуская Unreal Header Build tool (то есть еще до того, как реально сгенерируется содержимое файлов .generated.h).
Кстати, говоря про файлы .generated.h, ReSharper C++ и Rider знают, что автоматически добавляемые пропущенные директивы #include надо вставлять строго до подключения файлов .generated.h. А также учитывают эти генерируемые файлы в рефакторингах переименования.
Возвращаясь к механизму рефлексии, стоит сказать, что спецификаторы рефлексии — это в ReSharper C++ и Rider тоже не просто текст. Для них есть автодополнение и подсказки документации:
Подсказки документации доступны и для самих макросов рефлексии.
А еще анализатор кода проверяет использование макросов рефлексии и указывает на связанные с этим ошибки. Например:
Поддержка вызовов удаленных процедур (RPC) в действиях навигации и генерации кода
Знание правил именования Unreal Engine 4
ReSharper C++ и Rider осведомлены об официальных правилах именования в коде Unreal Engine. Эти правила используются средой разработки во всех действиях по работе с кодом, вроде генерации getters и setters или рефакторинге добавления переменной (Introduce Variable). А главное, что существует проверка кода Inconsistent UE4 naming inspections и соответствующее быстрое исправление, которое вызовет рефакторинг Rename и переименует все использования имени, не соответствующего правилам.
Производительность редактора
Мы довольно давно делаем поддержку разработки на Unreal Engine в ReSharper C++ и, конечно, видим, что производительность редактора является основной жалобой. Rider в силу особенностей архитектуры избавлен от многих проблем с производительностью, которые присутствуют в ReSharper (там они есть отчасти из-за ограничений студии на 32-разрядные процессы, в рамках которых происходит работа ReSharper, но не только).
Помимо этого, мы специально настраиваем работу IDE для улучшения производительности на Unreal Engine. Мы сначала индексируем код пользовательской игры, мгновенно включая все умные действия редактора на пользовательском коде. А индексация уже кода самого движка происходит после этого в фоне. Есть и еще несколько дополнительных опций по управлению индексацией:
В результате, те, кто уже начал пользоваться Rider for Unreal Engine, отзываются о производительности редактора очень положительно! А мы уверены, что можем сделать еще лучше.
Видеодемо и еще раз о том, как получить доступ
Эти и многие другие возможности можно посмотреть в действии в демо-ролике (на английском) от нашего девелопер-адвоката:
Rider Source Code Access
Use «Rider for Unreal Engine» as your IDE of choice in Unreal Editor.
Description
Reviews
Questions
Rider for Unreal Engine is an IDE that provides smart C++ and Blueprints support to help you craft the best games. It brings profound knowledge of C++ and Unreal Engine specifics, as well as building navigation, refactorings, and code analysis features for them. On top of that, it is knowledgeable about Blueprints and HLSL, and it understands C# Build and Target files. Last but not least, it is quite fast.
Use this plugin to add an option to select Rider for Unreal Engine as your IDE of choice in Unreal Editor.
Rider for Unreal Engine is not available inside JetBrains Toolbox application. The only way to get Rider for Unreal Engine IDE is through the dedicated form. Regular Rider doesn’t have an option to work with Unreal Engine and/or C++ projects.
This plugin is bundled with Unreal Engine starting from version 4.25.
Update 1.1
Cross-platform Development for Unreal Engine With Rider, Now Also on Linux
Table of Contents
Rider for Unreal Engine Preview is widely used by game developers around the world. More than 38,000 people are registered in the program, and we’ve received extremely positive feedback from them. Now we are finally planning to release Rider for Unreal Engine as part of our Rider IDE in 2022! This also means that, quite likely, Unreal Engine/Blueprints/C++ support will be enabled during the Rider 2022.1 EAP.
Rider for Unreal Engine is feature rich, fast, and used by many game developers for their work and personal projects on Windows and macOS, and today we have made it available on Linux!
Rider for Unreal Engine on Linux
With Rider, we’ve always targeted cross-platform development, doing our best to deliver the same user experience and product benefits on all three major platforms. Unreal Engine is no exception here. We started with Rider for Unreal Engine being Windows-only and later added macOS support. Today we are happy to share the first ever Linux build of Rider for Unreal Engine. It generally works for any Linux version that meets both the Rider and Unreal Engine system requirements. For compilation, clang will be used from your Unreal Engine installation; for debugging, Rider brings the patched LLDB 13. This means, you only need to get the engine itself and install Rider to start working on Linux.
There are a few known limitations and issues, but before we move on to them, let me briefly share what Rider for Unreal Engine on Linux is capable of.
You can open a project in Rider for Unreal Engine directly via .uproject file – you don’t need to generate any extra project models like Makefiles. The project will be loaded and indexed, and then it will be ready for you to commence work. You can launch your project targets from Rider, like in the game we have here – we used a demo project from Tom Looman’s course as an example:
You can debug your project from Rider using the bundled LLDB:
Set breakpoints, step through the code, evaluate arbitrary expressions, and inspect the values of variables, which are shown right in the code editor or in the debugger tool window.
Code assistance actions, navigation, code analysis, support for the Unreal Engine reflection mechanism and Blueprints – everything you benefit from in your Unreal Engine development on Windows and macOS is now also available on Linux. For example, you can complete UE reflection specifiers and read the built-in documentation for them in the completion pop-up:
Or search for implementations in Blueprints:
Ready to give it a try? Before you join our Rider for Unreal Engine Preview, you should consider the following known issues and limitations.
Known issues and limitations of Rider for Unreal Engine on Linux
As we mentioned above, any version of Linux that meets both the Rider and Unreal Engine system requirements is fine for running Rider for Unreal Engine. However, to make it work as smoothly as possible, we contributed a few patches to the engine itself, and some of them are still under review. We’ll share the links so that you can apply them on your own instead of having to wait for the official Unreal Engine release with them.
Unreal Engine versions:
On Linux, Rider works with Unreal Engine versions 4.26.2 and higher. For Unreal Engine 5, check out our pull request that fixes the standard header resolve in Rider by fixing the include path to Libcxx. It’s better to avoid spaces in paths to Unreal Engine.
For the debugger:
Unit testing:
Other fixes in Rider for Unreal Engine 2021.3
Among other important enhancements:
Merging Unreal Engine support into Rider
The Rider 2022.1 EAP will likely include Unreal Engine support merged from Rider for Unreal Engine. This will allow us to test this major functionality in our main Rider IDE before the official release. Thus, you might consider Rider for Unreal Engine 2021.3 to be the last update separate from regular Rider. There will no longer be any patch updates or update notifications in Rider for Unreal Engine once it has been merged with Rider. You’ll have to download a Rider 2022.1 EAP build from our site or install one via the Toolbox App. The preview license won’t be valid for the regular Rider build, but the Rider 2022.1 EAP builds will be free as usual.
Your Rider team
JetBrains
The Drive to Develop
Rider for Unreal Engine Public Preview Starts Now!
Table of Contents
Today we are launching the Rider for Unreal Engine Public Preview! This marks another important step toward making Rider a standalone, all-in-one, cross-platform Game Dev IDE!
In this post I will describe the tool and how you can try it, but first, let me briefly go through the family of C* tools we have and comment on why Rider is right for developing with the Unreal Engine.
We now offer the following tools for C++ and Game Development:
This made us think… Rider is a cross-platform IDE based on the IntelliJ Platform, with its language engine borrowed from ReSharper. If we were to add ReSharper C++’s language engine to Rider, implement a debugger, and finally optimize it all for the Unreal Engine, wouldn’t that be a perfect fit for UE4 game development? We thought it would! And we decided to make it so.
Today we are happy to present to you Rider for Unreal Engine Public Preview. This is a special edition of Rider available as an Early Preview, currently for Windows only. If you are ready to jump in, click the button and proceed with the form:
Below you may find some details on the functionality and a brief FAQ section:
Rider for Unreal Engine: What it can do for you
In brief, Rider for Unreal Engine aggregates all the C++ and Unreal Engine features that come from ReSharper C++. On top of that, it is knowledgeable about Blueprints, HLSL, understands C# Build and Target files. Last but not least, it is quite fast.
Our own Matt Ellis is happy to give you a detailed overview of the tool in this video:
As the video shows, Rider for Unreal Engine, while still in Public Preview for now, already brings a lot of value to Unreal Engine game developers.
A full-featured IDE with native C++ support
ReSharper C++ implements a full-featured C++ parser which boasts a deep understanding of the notoriously tricky C++ language. Its many useful features are now available in Rider for Unreal Engine.
Here’s what you can do:
For more details, check out this part of Matt’s video that’s dedicated to the basic C++ features.
If you’re used to working in Visual Studio, you may be wondering about the other essential features that good IDEs are expected to provide. Rider is a full-featured IDE based on the IntelliJ Platform, which means it includes VCS integration, database tooling, extensive plugin support, and widely used plugins for emulating Vim and integrating with different cloud vendors.
Performance as the top priority
Making an IDE from the ground up, without any limitations imposed by Visual Studio (as is the case with ReSharper), means that the sky’s our only limit in terms of performance. And we’re doing our best to soar as high as possible!
Initial project indexing is designed to be fast, with incremental updates as you keep working on your game. We realize you want to start with your own game files first (not the Engine code) in many cases. So we index them and enable all the IDE features first, continuing with Engine source code indexing in the background.
If you stumble across any lags while you use the Preview, do let us know!
Knowledgeable about Blueprints
JetBrains is all about coding – and of course providing you with smart support for your coding. Though Blueprints (BP) offer a slightly different experience compared to what we usually provide with our tools, Blueprint (BP) files promote these overall goals. BP files are written in binary form and are usually edited visually. Still, they contain a whole set of useful information for the developers of the C++ part of the game, which we decided Rider needed to be aware of:
Rider reads BP files from your project and the Unreal Editor, along with plugins from both, and extracts all the information from the above:
For more details, check out this part of Matt’s video that’s dedicated to Blueprints support.
Understands the UE4 reflection system
If you are a happy ReSharper C++ user, you may have seen this in action already. To our language engine, the UE4 reflection mechanism is much more than just macros with plain text parameters.
For more details, tune in to this part of Matt’s video.
Gets the semantics of Remote Procedure Calls
Enforces the UE4 naming rules
Another thing Rider borrowed from ReSharper C++ is support for UE4 naming convention rules. This is available for every action, from Introduce Variable to generating getters and setters. Meanwhile, the Inconsistent UE4 naming inspection check detects any names that don’t match the rules and suggests a quick-fix (which triggers a Rename refactoring).
Understands HLSL and C#, JSON, and uproject/uplugin dialects
Do you often need more than C++ and BP for your Unreal Engine projects? We imagine you surely do!
You might have seen the presentation of the initial HLSL shader files language support in ReSharper C++ 2020.1. You’ll be glad to know the same support has come to Rider for Unreal Engine! Our tools provide you with the following benefits for working with HLSL files:
Rider for Unreal Engine wouldn’t be Rider without support for C# Build and Target files, as well as completion and validation for module names in the .uproject and .uplugin files.
Includes its own debugger
This was the toughest challenge, and indeed it prevented us from starting the Preview earlier. No one is allowed to use the Microsoft debugger outside of MS tools, so we had to implement our own debugger based on LLDB. And we’ve already tested it on some real-world projects – thanks to CLion users, who got this particular debugger delivered for their Windows projects a few releases ago.
With Rider for Unreal Engine, you can set line breakpoints, watchpoints, conditional breakpoints, and others. You can also use evaluate expressions or set values during debugging sessions. It has support for NatVis files and automatically finds and loads the UE4.natvis, providing user-friendly views of Unreal Engine data types.
See the debugger in action in Matt’s video. Please note it is still at a very early stage and we plan to improve it significantly during the Public Preview times.
RiderSourceCodeAccess
To be able to select Rider for Unreal Engine as your IDE of choice in Unreal Editor, make sure you download RiderSourceCodeAccess plugin from the marketplace. (Check out this short instruction on GitHub on how to use it). And version 4.25 makes things even easier. Unreal Editor will automatically recognize Rider, and it will list all compatible versions in the drop-down list of source code editors in Unreal’s preferences.
Rider for Unreal Engine: FAQ
Is Rider for Unreal Engine Public Preview free?
Yes, it is. But you have to register to get a license from us for your JetBrains Account. This license will only be valid for Rider for Unreal Engine Public Preview. It won’t work for a regular Rider release.
This license is an individual subscription valid for 1 year. We hope this will be enough time to cover the final stages before the official release. There are no restrictions on using it for commercial purposes, but you do so on your own risk.
OK, how can I get a license?
To get a license, you just need to fill out this form. The license will be created for you automatically and added to your JetBrains Account, and you’ll be notified via email. To activate the license:
I own a license for Rider. Will I get Rider for Unreal Engine when it’s released officially?
Yes! Rider for Unreal Engine will be an official part of our JetBrains Rider IDE, which we see as our main offering for game developers.
Who qualifies for the Preview builds?
Rider for Unreal Engine Public Preview is open for everyone. Fill out the form, get the build and the license, and start using it right away.
Can I develop my regular C++ projects with Rider for Unreal Engine?
Rider for Unreal Engine comes with all the C++ support offered by ReSharper C++. So if you get your VS solution and want to open it in Rider on Windows, go ahead! However, please keep in mind that our main focus with this preview is Unreal Engine and Game Development. We’ve dedicated significant efforts to it, and we are expecting feedback specific to the Unreal Engine from our previewers.
On macOS, Rider for Unreal Engine only works with .uproject, so it’s not suitable for general-purpose C++ development. If you need a C++ IDE for macOS, try CLion or AppCode.
Rider is a cross-platform IDE. Is Unreal Engine support available on all three platforms as well?
For now, Rider for Unreal Engine only operates on Windows and macOS. We plan to extend it to Linux in the future.
Do I need a specific project model to start working on my Unreal Engine project?
You can work with your .uproject directly in Rider, without generating a Visual Studio solution or Xcode project files. This requires Unreal Engine 4.25.4+ on Windows, or Unreal Engine 4.26.2+ on macOS. On Windows, you can alternatively open your .sln files in Rider for Unreal Engine.
When will the official release happen?
We still don’t have a strict estimate. We’ve just launched a Public Preview, and we would like to collect and handle as much feedback as possible. When we determine that the product is mature enough and ready for extensive use in production, we’ll merge all the functionality into JetBrains Rider. This could happen before the end of 2020, or it may not, depending on the feedback we get.
Where should I submit my feedback?
This is simple! You actually have several options here:
It’s time to try Rider for Unreal Engine! Click the button and proceed with the form:
Your Rider team
JetBrains
The Drive to Develop
What’s New in Rider
Rider 2022.2 includes overall performance improvements, with optimizations to the startup performance and the solution-wide analysis engine. The support for C# 11 has been extended to cover required members, checked user-defined operators, raw strings, and list patterns. In this release, you can apply the same window layout settings to all of the solutions you are working on. Also, the Unreal Engine support has two new actions, New Unreal Module and New Unreal Plugin, and the ability to specify symbol servers to get library symbols when debugging.
Free 30-day trial available
Performance
.NET 6 runtime for the Windows backend
Please note that Rider doesn’t run CrossGen during installation, but only when you first launch Rider. This means that the first launch can take slightly longer, but all subsequent launches will be faster.
“Cold startup” improvements
Solutions start up faster when you open them for the very first time (“cold startup”) and Rider has no information about them. On cold startup, all the projects are loaded twice: first the IDE loads the projects to get the information about each one, then it runs “NuGet restore”, and then, when everything is ready, it loads the projects a second time.
We’ve optimized the first project-loading stage so that Rider fetches only the information it needs for restoring NuGet packages. Our internal metrics show that the new implementation is approximately 40% faster.
Solution-wide analysis optimizations
In this release, we’ve greatly optimized the memory usage of Rider with the Solution-Wide Analysis mode turned ON, both in terms of memory traffic (number of memory allocations) and in terms of memory consumption.
The Solution-Wide Analysis engine uses memory to store the list of issues in the solution and to store the type/member usage information to perform solution-wide usage reporting (code inspections like «public member is never used»). The usage data is «hot», meaning it needs to be constantly updated while you are editing the code, and can’t be off-loaded to the disk. This can consume a significant amount of memory if your solution contains lots of types and type members. We reviewed the data stored in memory and found patterns that allowed us to deduplicate/normalize the data. We also utilized specialized collection types to further reduce the working set. These optimizations resulted in a 5-10x memory consumption improvement and faster Solution-Wide Analysis loading.
This release brings support for several more features from the C# 11 preview.
Required Members
We’ve added a new Add initializer for required members quick-fix for cases where you’ve created a type’s object but haven’t initialized the members yet. It automatically generates all of the missing required members for your object – you just need to fill in the members’ values with meaningful data.
Checked user-defined operators
Checked user-defined operators help developers create user-defined operators that operate on types where arithmetic overflow is a valid concept. Rider shows all of the compiler errors and warnings. To fully support checked user-defined operators, Rider has a couple more inspections and a context action.
We’ve updated the Unchecked/checked context is redundant inspection to take into account checked operators when they are used in this context.
If you have a set of user-defined operators and some of them already have a checked version, Rider will help you propagate checked operators to the whole set. A new inspection called The operator does not have a matching checked operator while other operators do will notify you which operators don’t have a checked operator yet and suggest a quick-fix to generate the checked versions automatically.
If you haven’t used checked operators in your codebase yet, but want to start adding them, a new context action called Create matching checked operator will come in quite handy. It is available on every user-defined operator and generates a checked version of an operator right from the Alt + Enter menu in one click.
Raw strings
C# 11 improves the ability to embed other languages or text formats into C# code by introducing the concept of «raw» strings.
Rider has basic “raw” string support including compiler errors and correct parsing and color highlighting for «»» syntax, pairs of double quotes, and placeholders inside interpolated strings ( {{. }} syntax).
List patterns
Rider 2022.2 fully supports list patterns with error checking, code completion, and code analysis. We are still working to add code inspections to suggest using the list patterns in existing code and additional refactoring actions.
Rider for Unreal Engine Public Preview Starts Now!
Table of Contents
Today we are launching the Rider for Unreal Engine Public Preview! This marks another important step toward making Rider a standalone, all-in-one, cross-platform Game Dev IDE!
In this post I will describe the tool and how you can try it, but first, let me briefly go through the family of C* tools we have and comment on why Rider is right for developing with the Unreal Engine.
We now offer the following tools for C++ and Game Development:
This made us think… Rider is a cross-platform IDE based on the IntelliJ Platform, with its language engine borrowed from ReSharper. If we were to add ReSharper C++’s language engine to Rider, implement a debugger, and finally optimize it all for the Unreal Engine, wouldn’t that be a perfect fit for UE4 game development? We thought it would! And we decided to make it so.
Today we are happy to present to you Rider for Unreal Engine Public Preview. This is a special edition of Rider available as an Early Preview, currently for Windows only. If you are ready to jump in, click the button and proceed with the form:
Below you may find some details on the functionality and a brief FAQ section:
Rider for Unreal Engine: What it can do for you
In brief, Rider for Unreal Engine aggregates all the C++ and Unreal Engine features that come from ReSharper C++. On top of that, it is knowledgeable about Blueprints, HLSL, understands C# Build and Target files. Last but not least, it is quite fast.
Our own Matt Ellis is happy to give you a detailed overview of the tool in this video:
As the video shows, Rider for Unreal Engine, while still in Public Preview for now, already brings a lot of value to Unreal Engine game developers.
A full-featured IDE with native C++ support
ReSharper C++ implements a full-featured C++ parser which boasts a deep understanding of the notoriously tricky C++ language. Its many useful features are now available in Rider for Unreal Engine.
Here’s what you can do:
For more details, check out this part of Matt’s video that’s dedicated to the basic C++ features.
If you’re used to working in Visual Studio, you may be wondering about the other essential features that good IDEs are expected to provide. Rider is a full-featured IDE based on the IntelliJ Platform, which means it includes VCS integration, database tooling, extensive plugin support, and widely used plugins for emulating Vim and integrating with different cloud vendors.
Performance as the top priority
Making an IDE from the ground up, without any limitations imposed by Visual Studio (as is the case with ReSharper), means that the sky’s our only limit in terms of performance. And we’re doing our best to soar as high as possible!
Initial project indexing is designed to be fast, with incremental updates as you keep working on your game. We realize you want to start with your own game files first (not the Engine code) in many cases. So we index them and enable all the IDE features first, continuing with Engine source code indexing in the background.
If you stumble across any lags while you use the Preview, do let us know!
Knowledgeable about Blueprints
JetBrains is all about coding – and of course providing you with smart support for your coding. Though Blueprints (BP) offer a slightly different experience compared to what we usually provide with our tools, Blueprint (BP) files promote these overall goals. BP files are written in binary form and are usually edited visually. Still, they contain a whole set of useful information for the developers of the C++ part of the game, which we decided Rider needed to be aware of:
Rider reads BP files from your project and the Unreal Editor, along with plugins from both, and extracts all the information from the above:
For more details, check out this part of Matt’s video that’s dedicated to Blueprints support.
Understands the UE4 reflection system
If you are a happy ReSharper C++ user, you may have seen this in action already. To our language engine, the UE4 reflection mechanism is much more than just macros with plain text parameters.
For more details, tune in to this part of Matt’s video.
Gets the semantics of Remote Procedure Calls
Enforces the UE4 naming rules
Another thing Rider borrowed from ReSharper C++ is support for UE4 naming convention rules. This is available for every action, from Introduce Variable to generating getters and setters. Meanwhile, the Inconsistent UE4 naming inspection check detects any names that don’t match the rules and suggests a quick-fix (which triggers a Rename refactoring).
Understands HLSL and C#, JSON, and uproject/uplugin dialects
Do you often need more than C++ and BP for your Unreal Engine projects? We imagine you surely do!
You might have seen the presentation of the initial HLSL shader files language support in ReSharper C++ 2020.1. You’ll be glad to know the same support has come to Rider for Unreal Engine! Our tools provide you with the following benefits for working with HLSL files:
Rider for Unreal Engine wouldn’t be Rider without support for C# Build and Target files, as well as completion and validation for module names in the .uproject and .uplugin files.
Includes its own debugger
This was the toughest challenge, and indeed it prevented us from starting the Preview earlier. No one is allowed to use the Microsoft debugger outside of MS tools, so we had to implement our own debugger based on LLDB. And we’ve already tested it on some real-world projects – thanks to CLion users, who got this particular debugger delivered for their Windows projects a few releases ago.
With Rider for Unreal Engine, you can set line breakpoints, watchpoints, conditional breakpoints, and others. You can also use evaluate expressions or set values during debugging sessions. It has support for NatVis files and automatically finds and loads the UE4.natvis, providing user-friendly views of Unreal Engine data types.
See the debugger in action in Matt’s video. Please note it is still at a very early stage and we plan to improve it significantly during the Public Preview times.
RiderSourceCodeAccess
To be able to select Rider for Unreal Engine as your IDE of choice in Unreal Editor, make sure you download RiderSourceCodeAccess plugin from the marketplace. (Check out this short instruction on GitHub on how to use it). And version 4.25 makes things even easier. Unreal Editor will automatically recognize Rider, and it will list all compatible versions in the drop-down list of source code editors in Unreal’s preferences.
Rider for Unreal Engine: FAQ
Is Rider for Unreal Engine Public Preview free?
Yes, it is. But you have to register to get a license from us for your JetBrains Account. This license will only be valid for Rider for Unreal Engine Public Preview. It won’t work for a regular Rider release.
This license is an individual subscription valid for 1 year. We hope this will be enough time to cover the final stages before the official release. There are no restrictions on using it for commercial purposes, but you do so on your own risk.
OK, how can I get a license?
To get a license, you just need to fill out this form. The license will be created for you automatically and added to your JetBrains Account, and you’ll be notified via email. To activate the license:
I own a license for Rider. Will I get Rider for Unreal Engine when it’s released officially?
Yes! Rider for Unreal Engine will be an official part of our JetBrains Rider IDE, which we see as our main offering for game developers.
Who qualifies for the Preview builds?
Rider for Unreal Engine Public Preview is open for everyone. Fill out the form, get the build and the license, and start using it right away.
Can I develop my regular C++ projects with Rider for Unreal Engine?
Rider for Unreal Engine comes with all the C++ support offered by ReSharper C++. So if you get your VS solution and want to open it in Rider on Windows, go ahead! However, please keep in mind that our main focus with this preview is Unreal Engine and Game Development. We’ve dedicated significant efforts to it, and we are expecting feedback specific to the Unreal Engine from our previewers.
On macOS, Rider for Unreal Engine only works with .uproject, so it’s not suitable for general-purpose C++ development. If you need a C++ IDE for macOS, try CLion or AppCode.
Rider is a cross-platform IDE. Is Unreal Engine support available on all three platforms as well?
For now, Rider for Unreal Engine only operates on Windows and macOS. We plan to extend it to Linux in the future.
Do I need a specific project model to start working on my Unreal Engine project?
You can work with your .uproject directly in Rider, without generating a Visual Studio solution or Xcode project files. This requires Unreal Engine 4.25.4+ on Windows, or Unreal Engine 4.26.2+ on macOS. On Windows, you can alternatively open your .sln files in Rider for Unreal Engine.
When will the official release happen?
We still don’t have a strict estimate. We’ve just launched a Public Preview, and we would like to collect and handle as much feedback as possible. When we determine that the product is mature enough and ready for extensive use in production, we’ll merge all the functionality into JetBrains Rider. This could happen before the end of 2020, or it may not, depending on the feedback we get.
Where should I submit my feedback?
This is simple! You actually have several options here:
It’s time to try Rider for Unreal Engine! Click the button and proceed with the form:
Your Rider team
JetBrains
The Drive to Develop
Разработка новой игры от компании Wargaming с помощью Rider for Unreal Engine
Последние полтора года открыта программа раннего доступа к Rider for Unreal Engine — IDE для разработки игр на C++ с использованием Unreal Engine. На сегодняшний день в программе участвуют десятки тысяч индивидуальных разработчиков игр, a также множество студий и больших компаний, занимающихся игровой разработкой. Нам стало интересно узнать, за что эти люди ценят наш продукт, что им нравится и чего не хватает.
Вячеслав, расскажите о проекте, которым вы занимаетесь. Что за игра?
Мы еще не анонсировали проект, из-за NDA рассказать о нем подробно пока не могу. Но это будет новый сессионный Sci-Fi шутер от третьего лица.
Я правильно понимаю, что в качестве игрового движка вы используете Unreal Engine?
Да, все так. Мы пишем игру на C++ с использованием Unreal Engine (пока это версия 4.26, но потихоньку мигрируем на 4.27). На Unreal Engine 5 проект вряд ли переедет, так как в этой версии меняется рендеринг и поэтому потребуется менять весь арт, уже подготовленный для игры.
Расскажите вкратце об устройстве проекта. Есть ли какие-то особенности? Какие технологии используете?
Как я уже говорил, проект написан на C++ и построен на движке Unreal Engine. Мы активно используем как возможности рефлексии из Unreal Engine, так и шаблонное метапрограммирование на C++. Наш проект представляет собой два больших монорепозитория: собственно сама игра и ее движок. Базовая игровая логика находится в общем модуле.
Основную проблему при работе в редакторах кода представляет механизм рефлексии UE. Немногие могут работать с кодом, обернутым таким количеством макроопределений, которые с точки зрения языка, в общем-то, ничего не значат. Тут Rider for Unreal Engine, бесспорно, отлично справляется!
Сколько разработчиков участвует в проекте? Какие инструменты они в основном используют?
В команде около 25 программистов. Треть из них использует Rider for UE, остальные работают в различных версиях Visual Studio. До Rider мы пользовались Visual Studio — без плагинов, с плагином Visual Assist либо с ReSharper C++. Однако мы часто сталкивались с проблемой производительности редактора — независимо от того, подключали мы ReSharper C++ или работали без плагинов. При использовании Visual Assist нам не хватало точности языковых возможностей (хотя допускаю, что сейчас что-то уже поменялось). В то же время Rider for Unreal Engine нам кажется явным лидером по производительности — по крайней мере, при работе с кодом Unreal Engine.
Легко ли проходила миграция на Rider for Unreal Engine?
Моим первым впечатлением было: «Как классно, что тут есть поддержка раскладки клавиш Visual Studio! Теперь я могу применять здесь все знания и умения, полученные при работе в VS». Поскольку интерфейс Visual Studio мне более знаком, в ряде аспектов (например, при работе в отладчике) он мне кажется более удобным. С другой стороны, интерфейс Rider очень приятен визуально.
Менять инструмент, которым пользуешься много лет, конечно, не всем легко. Так что многие пока продолжают пользоваться Visual Studio.
Какие возможности Rider for Unreal Engine оказались наиболее полезными для вашего проекта?
Во-первых, это навигация, поиск использований, переход к декларации символа, поиск наследников и предков символа — то, что мы делаем постоянно, и не только в своем коде, но и в коде Unreal Engine, ведь код движка является основной документацией для разработчиков. Также одним из ключей к эффективной работе с Unreal Engine является умение быстро находить ссылки на поля и функции и мгновенно перемещаться по коду — тут Rider for UE отлично справляется.
Дальше, это статический анализ кода, то есть подсказки об ошибках, допущенных при его написании. Возможность увидеть ошибки в редакторе до компиляции позволяет сэкономить много времени. Ведь если мы дойдем с этими ошибками до стадии компиляции, это может обернуться часами «пинг-понга» между компилятором и разработчиком. Конечно, не все ошибки можно так выловить, особенно в шаблонизированном коде. Но сам Unreal Engine почти не использует шаблоны, поэтому остается лишь небольшой процент ошибок. Подсказки об отсутствующих директивах include и их автоматическая подстановка также помогают сэкономить время: Rider избавляет от необходимости залезать в шапку файла и разбираться, какие заголовочные файлы подключены, а какие нет.
Очень круто, что Rider знает о механизме рефлексии, реализованном в Unreal Engine, и предлагает автодополнение для идентификаторов и макросов рефлексии. Сам обычно плохо помнишь такие вещи, поэтому эти подсказки существенно ускоряют разработку.
Также стоит упомянуть интеграцию с редактором Unreal, а именно плагины RiderLink/UnrealLink. Обычный подход к разработке — это запуск редактора Unreal из отладчика Rider, после чего разработка ведется непосредственно из редактора с использованием Live Coding. Возможность видеть логи, запуская и останавливая игру прямо из Rider, иногда существенно ускоряет разработку. К примеру, если мы работаем со сторонними плагинами (интеграция со Steam, интеграция со сторонними чатами, разработка пайплайна игры и т. п.), нам даже не нужно переходить в редактор — достаточно видеть логи, запускать и останавливать редактор.
Кстати, по Unreal-логу у меня есть несколько пожеланий:
Добавить больше возможностей фильтрации. Логов очень много, поэтому тяжело выбрать нужные категории из имеющихся, ведь их могут быть сотни.
Подсвечивать в логе сразу несколько введенных терминов (это частая ситуация).
Спасибо за идеи! Скажите, а отладчиком Rider вы пользуетесь?
Конечно. Без отладчика редактор не может стать полноценным инструментом разработки. В прошлом были проблемы: отладчик мог не остановиться в указанных точках. Но, кажется, эти проблемы были исправлены. Самая часто используемая возможность отладчика — это, конечно, пошаговая отладка. Иногда мы используем условные точки останова. И нам нравится, как содержимое объектов Unreal Engine отображается в отладчике.
Отладка происходит в основном на десктопе?
Пока да. В будущем мы планируем работу с консолями, но пока не дошли до этого.
Примечание: пока, к сожалению, отладка на консолях из Rider невозможна. Мы ведем переговоры с основными производителями консолей. Такие процессы занимают долгое время, отчасти — из-за бюрократии.
Еще мы хотели поговорить о системах контроля версий. Какие из них вы используете?
В основном это Git и активный процесс разработки новых фичей в ветках. Мы пользуемся интеграцией Git с Rider. Только для операции rebase мы используем клиент Tortoise: там мы видим больше информации об общей картине. Rebase — наверное, самая сложная операция в Git. Наши попытки ее автоматизировать и при этом сделать удобной в использовании пока что успехом не увенчались.
Что касается других проектов, то я работал с Perforce и PlasticSCM.
А вы профилируете свой код? Используете для этого какие-то сторонние инструменты?
Да, мы анализируем код с помощью Unreal Insights. Вряд ли можно сделать внешний инструмент более эффективным, чем нативный от Unreal Engine. Это если говорить о сборе информации о профилировании. Для визуализации, конечно, возможны улучшения, и у нас есть свой внутренний инструмент, который строит графики расхода процессорного времени. Содержимое кадра можно рассмотреть и через Unreal Insight, а вот картину целиком в динамике увидеть трудно, и для этого мы решили создать собственный инструмент.
Спасибо большое за разговор, Вячеслав! Удачи вам с проектом!
Rider for Unreal Engine 2021.1.1 Update: Mac Build, Support for uproject, EzArgs Plugin, and C++ Enhancements
Read this post in other languages:
한국어
Table of Contents
A year ago, on April 22, 2020, we announced the launch of the Rider for Unreal Engine Public Preview! We took some great strides this past year, welcoming more than 20 thousand subscribers to the Public Preview program. Rider for Unreal Engine is now used by more than 4300 users every week, including both individual game developers and big game studios. We greatly appreciate all the feedback we’ve received so far!
Rider for Unreal Engine is celebrating 1 year in Public Preview!
Over this year we’ve:
We’ve accomplished our objectives for this first year, and now it’s time to look to the future! The second year of the Preview starts with:
Rider for Unreal Engine on Mac
Are you developing Unreal Engine games on macOS? The Mac build of Rider for Unreal Engine is finally here! Register now to get a free Preview license and links to the builds both for Windows and Mac. Download the .dmg package, install it, and then simply open the
.uproject file as a project in Rider for Unreal Engine.
Users will find that the Mac version of Rider has nearly all the same features and benefits as the Windows version:
There are still a few known limitations to keep in mind:
Please note that Rider for Unreal Engine only works with .uproject on macOS, so it’s not suitable for general-purpose C++ development. If you need a C++ IDE for macOS, try CLion or AppCode.
A note on Rider plugins:
If you are developing Unreal Engine games on macOS, this is a great time to join the Preview! Register now, get a build, try it out, and let us know what you think! You can learn about submitting feedback for the Preview Program here.
Working directly with the uproject model on any platform
Just as on Mac, on Windows you can now also simply open a
.uproject file as a project in Rider. You no longer need to generate a Visual Studio .sln file from the Unreal Editor! On Windows, this requires Unreal Engine 4.25.4+.
Support for the uproject model is still in its early stages, so if you encounter any issues with projects opened in this way, please report them to us.
EzArgs plugin
The UnrealVS plugin provides useful functionality for working with command-line arguments, and it came as no surprise that Rider for Unreal Engine users requested similar support. We now present the EzArgs plugin. It provides a convenient option for passing arguments to C++ run/debug configurations by simply writing them in a dropdown box on the toolbar.
C++ Syntax Style checks
There are many coding guidelines in the world of C++ and many opinions about whether to use regular or trailing return types, typedefs or type aliases, and East Const or West Const, or about whether to omit redundant braces or to keep them to improve code readability, and so on. Sometimes guidelines recommend contradictory approaches. For example, C++ Core Guidelines advise that overriding functions should have exactly one of the override and final specifiers, and no virtual ones. Conversely, the Unreal Engine coding standard requires explicit virtual. To cover all the cases and help you enforce a common style throughout your codebase, we’ve collected the Syntax Style settings and implemented the corresponding checks and quick-fixes. Learn about them in detail in this blog post. It’s also important to mention that for Unreal Engine projects, the default settings are adjusted to comply with the Unreal Engine coding standard.
Debugger fixes
We continue to improve the debugger, and while a huge overhaul is still in progress and will likely be delivered in the next builds, there are still a few valuable fixes inside this build:
Unreal Engine Support Lands in Rider 2022.1 EAP
Table of Contents
Rider is already widely used in the Unity development world. There are many well-known Unity game development studios in the list of Rider customers, and the Unity team itself is one of the product’s biggest fans. The drive we feel from this market is so great that several years ago we decided to move forward and make Rider a stellar prospect for game developers.
We noticed some of our Unity customers also use Unreal Engine for their projects, and some other C++-based engines, so we decided that one tool for all of them would be more beneficial.
In 2020, we launched a preview of Rider for Unreal Engine as a separate IDE build. In order to enter the preview, users had to fill out a form on our website. Well, today we are merging Unreal Engine support into Rider 2022.1 EAP! The official release of Unreal Engine support in Rider will follow later this year.
How Rider can enhance your Unreal Engine development
Why use Rider for creating Unreal Engine games? Here are several compelling reasons.
Smart cross-platform C++ support
First and foremost, Rider can now help you write C++ code.
If you’re wondering how this works under the hood, here’s the short story. We initially developed Rider based on ReSharper, using a proprietary technology to combine ReSharper’s C# capabilities with the IntelliJ Platform. We’ve now re-used this technology to bring ReSharper C++’s understanding of C++ to Rider, including support for C++ proper as well as specific support for Unreal Engine and Blueprints.
The bottomline is that, thanks to the ReSharper C++ engine, hundreds of code analysis checks, instant navigation actions, refactorings, code hints, and other smart abilities for C++ are now available in Rider.
Please note that, although you can use Rider for general C++ development on Windows, you’ll need a .sln file. And on Linux and macOS, Rider is limited to the .uproject model for C++ projects.
Tuned for Unreal Engine
The .uproject model is natively supported by Rider on all three major platforms. You don’t need to generate any other project model for your Unreal Engine game to develop it in Rider. This shortens the loop when adding new entities to your game from the Unreal Editor.
Rider reads the Blueprints from your project, shows the usages of such files in your C++ code, and displays the values of the overridden properties.
You can also manage your game right inside the IDE and follow the enhanced version of the Unreal Editor log. The UnrealLink and RiderLink plugins enable the integration with Unreal Editor. You can learn more about them in our documentation.
Unreal Engine reflection mechanism
For the regular C++ IDE, the Unreal Engine reflection mechanism is just a collection of macros, and reflection specifiers are mere text. But not for Rider! To speed up the process of game development, Rider provides code completion for reflection specifiers and shows their documentation in a Quick Documentation popup:
And for Unreal Engine RPC functions, Rider matches them correctly in code navigation and code generation.
Code analysis, UnrealHeaderTool integration, and the Unreal Engine naming convention
Thanks to the ReSharper C++ engine, Rider comes with checks that are generally useful in any C++ code. We’ve also implemented several more specific checks for Unreal Engine code and integrated them with UnrealHeaderTool. The first time you build a UE project, JetBrains Rider finds the UnrealHeaderTool used for the code compilation and then runs the tool in the background as a separate process. This lets it check the file you are editing and show the same errors and warnings that you would normally see at compilation time.
Check out the full list of checks in the documentation.
Debugger
Here you might ask, what about a debugger? Visual Studio comes with its own proprietary debugger, which can’t be used in other tools. In Rider on Windows, we implemented our own debugger, based on LLDB. It comes with Natvis support, so Rider automatically finds and loads UE4.natvis, providing user-friendly views of Unreal Engine data types. On Linux and macOS, the debugger is also LLDB but from LLVM upstream.
Unit Testing
Rider comes with out-of-the-box support for the Unreal Engine Automation Testing framework. Launch tests from the Unit Test tool window or directly from the editor, review their results, and rerun failed, all, or specific tests. For now, this is only available on Windows. Linux and macOS support is coming shortly!
Check out Unreal Engine support in action in this video from Matt Ellis, our developer advocate.
Frequently asked questions
I’m a Rider/dotUltimate/All Products Pack customer, when and how will I get UE support? If your subscription to Rider, dotUltimate, or the All Products Pack is active by the time Rider 2022.1 is released (approximately end of March 2022), you’ll get a new update with UE support included for free.
Why not CLion? CLion is still our general-purpose cross-platform C and C++ IDE. It’s a great choice for embedded development, IOT and self-driving innovations, trading and financial software, telecommunications, and others. But for game development our focus is on Rider.
Do I still need Visual Studio or some of its tools? If you develop on Windows – yes. Microsoft Visual C++ compiler, Windows SDK, and other Visual Studio build tools have to be installed in advance (if you have Visual Studio with C++ support installed, that is enough). There is no such requirement on Linux or macOS.
What about Unreal Engine support in ReSharper C++? ReSharper C++ is an extension for C++ developers for Visual Studio. As it’s used as a backend in Rider, the Unreal Engine support in both products is identical. However, Rider has a few benefits:
Your Rider team
JetBrains
The drive to develop
Testing with Rider for Unreal Engine
Read this post in other languages:
Français, 한국어, Türkçe
Rider for Unreal Engine Preview is widely used by many game developers around the world. We have more than 32,000 people registered in the program and we’ve gotten very positive feedback from them. According to our survey of early previewers:
81.7% of the respondents think that Rider for UE is much better than any other editor they have used before! We’re encouraged by the results and are happy to keep improving the product.
The majority of the users are impressed by the helpful integrations provided by Rider for Unreal Engine, like code completion and documentation for the Unreal Engine reflection specifiers and macros, integration with the Unreal Editor, Unreal Engine log, code visions showing Blueprints usages, and many others. Today we’re adding another piece to this game development puzzle – Unreal Engine Automation Testing framework support.
Unreal Engine tests running in Rider
To add tests to your game, there is an Unreal Engine testing framework built in (check out this 3rd party tutorial). Rider can now launch tests and show their results in the Unit Test tool window:
In this tool window you can review the results of the tests, reruns failed, and all or specific tests.
In the Unit Tests window, you can explore all the existing categories in the current solution. The categories are defined by the flags passed to the tests. Use Group By switcher to change the grouping in the tool window:
You can also run tests directly from the Unit Test tool window. Or from the Rider editor.You’ll see run icons in the left gutter near the test – click them to run the tests. These icons also show the status of the recently run tests:
Tests with EAutomationTestFlags::Disabled flag will stay disabled in Rider, and will be marked with the corresponding Ignored symbol. Inconclusive tests are aborted tests, or other tests which were started but Rider could not read the test runner output.
Configuration and known issues
Engine tests work without any additional configuration. To get Unreal Engine plugin tests running in Rider, you need to:
Later, we plan to improve the UX and show a warning in this case (RIDER-68729).
There are a few known issues that are worth mentioning here:
Your Rider team
JetBrains
The Drive to Develop
Rider for Unreal Engine is now available as Public Preview, with a general release aimed for 2021. Today we are happy to share a new 2020.3.3 update that is packed with lots of long-awaited improvements.
Use a patch to update to this build right from the IDE (Help | Check for Updates) if you already use the product, or sign up to join the Preview program.
Create new Unreal Engine class
You no longer need to switch to Unreal Editor to create a new class – Rider enables you to create Unreal Engine classes based on predefined templates. Go to Solution Explorer and right-click on it to invoke the New menu (or use Ctrl+Alt+Insert ), select Unreal Class, enter the name, and choose a template from the list. Rider will generate header and source files with some predefined code for you. It will also remind you to rebuild the project to make this new class available in the Unreal Editor.
Cool, right? You can see it in action in this short demo:
Support for Unreal Engine .ini files
Rider can now make use of the information inside UE configuration files. Because we now bundle the .ini files support plugin, you get correct code highlighting in such files. But there is much more!
Let’s say you have a property in your game’s code and you set its value in the configuration file. The Code Vision feature in Rider will show you the values from the config, even mentioning those which are not in effect (overridden). For example, with the following config file:
You’ll get this in Rider:
You can see config file usages grouped under a dedicated node in the Find Usages results. And if you rename the property using the Rename refactoring in Rider, it will not only update all the usages, including the ones from the config files, but it will also automatically add the required CoreRedirects for you! It is now much harder to break the game accidentally by renaming things.
This, of course, works not only for properties but also for classes, as well as in the context of the configuration hierarchy.
And finally, there is code completion for action names in the BindAction and BindAxis functions in PlayerInputComponent :
Other enhancements
Other notable fixes include:
Kind regards,
The JetBrains Rider team
Rider for Unreal Engine Update Comes With Significant Debugger Enhancements
We want to thank everyone who shared their feedback on Unreal Engine 5 in Rider for Unreal Engine Preview! We are happy to see that so many people are using Rider on a daily basis to create fantastic Unreal Engine games.
It’s time to share a new version with our community! It brings more fixes for Unreal Engine 5 projects and unveils our debugger overhaul, which significantly improves the way variables are rendered in the debugger.
Improved Natvis support
Rider for Unreal Engine comes with an LLDB-based debugger that has been implemented by our team. It offers support for Natvis files and automatically finds and loads UE4.natvis, providing user-friendly views of Unreal Engine data types.
In this update we’ve added major improvements to the debugger renderers and Natvis support.
The following Visual Studio Natvis customization features are now supported:
And other fixes:
Fixes for Unreal Engine 5 and others
We’ve quite recently rolled out a significant number of new things, like Rider for Unreal Engine on macOS and support for Unreal Engine 5 Preview. We are delighted to see that so many new users are giving Rider Preview a try, and we are also thrilled by the amount of feedback and the number of bug reports you all have submitted! We’ve even managed to address quite a few of them in this build:
Make sure you update to UnrealLink plugin v12.
That’s it for today! Take part in our preview and enjoy Unreal Engine development with Rider.
The JetBrains Rider team
The Drive to Develop
Code analysis
Code inspections
In addition to hundreds of code inspections that check general aspects of C++ code, there are some inspections that are specific to Unreal Engine projects.
UnrealHeaderTool (2 inspections)
Unreal Engine (16 inspections)
Inspections in this category are specific to Unreal Engine projects.
Action with this name does not exist
Axis with this name does not exist
BlueprintCallable function can be made const
BlueprintCallable function can be made static
BlueprintCallable function is never used in Blueprint or C++ code
BlueprintImplementableEvent function is not implemented in any blueprint
C++ standard library headers not found
Inconsistent UE4 UClass Naming
Non-UProperty object member can be garbage collected at any time
Objects stored in non-uproperty member can be garbage collected at any time
Specified version of the engine project is not found
UFUNCTION macro call before declaration has no effect
Unreal Engine source file without predefined Unreal macros
Unreal Engine version file does not exist
UPROPERTY macro call before declaration has no effect
UnrealHeaderTool integration
UnrealHeaderTool is a parsing and code-generation tool for Unreal Engine. In the Unreal Engine code compilation workflow, the tool parses the C++ header files, looking for Unreal related macros and metadata, and uses this to generate additional code to support the UObject system, such as reflection and networking.
JetBrains Rider provides seamless integration with UnrealHeaderTool: the first time you build the Unreal Engine project, JetBrains Rider finds the UnrealHeaderTool used for the code compilation and can then run the tool in the background as a separate process to check the file you are editing and show the same errors and warnings that you would normally see at compile time. The code analysis results are displayed right in the editor, just like other JetBrains Rider’s inspections.
JetBrains Rider runs UnrealHeaderTool only on the file that is currently open, and the process is optimized to have a minimal impact on overall performance.
Watch this video for the integrated UnrealHeaderTool inspections in action:
UnrealHeaderTool inspections
UnrealHeaderTool can detect lots of different issues with your code, such as using a specific meta tag without the required reflection specifier, using the GENERATED_BODY macro in a private scope, when an invalid entity is exposed to a blueprint, and a lot more. Here are some examples:
Using the UFUNCTION macro inside a struct.
Invalid BlueprintType enum base.
To distinguish between UnrealHeaderTool checks and JetBrains Rider’s inspections, you can look at the name of the check in square brackets, appended to the inspection message.
Configuring UnrealHeaderTool inspections
All UnrealHeaderTool inspections have corresponding configurable severity levels, which can be adjusted to meet your needs.
As with the built-in inspections, you can use the inspection context menu to quickly change the severity of an UnrealHeaderTool check, suppress it via a comment (in specific scope or globally), or find and investigate all similar issues.
Debug Unreal Engine Project
With JetBrains Rider, you can set line breakpoints, watchpoints, conditional breakpoints, and others. You can also use evaluate expressions or set values during debugging sessions.
Natvis support
The LLDB-based debugger has support for Natvis files and automatically finds and loads the UE4.natvis, providing user-friendly views of Unreal Engine data types.
The following Visual Studio Natvis customization features are supported:
Inheritable attribute, which specifies whether a visualization applies only to a base type, or to a base type and all derived types.
Format specifiers, which control the format in which a value is displayed.
JetBrains Rider automatically generates one-line summaries for all structures not covered by Natvis, and summaries are colored to increase readability.
JetBrains Rider shows the [Raw View] for Natvis-generated values.
Symbol servers on Windows
When debugging, sometimes the library symbols are not available on your local machine. In this case, you can use symbol servers.
The symbol server is a file server that stores your debug symbols centrally, on a server, rather than on each developer’s machine. Then, you can point your debugger to the symbol server to resolve symbol names. Everyone can share the same server.
In JetBrains Rider on Windows, you can point the debugger to the symbol server of your choice in Settings / Preferences | Build, Execution, Deployment | Debugger | Symbol Servers :
JetBrains Rider lets you configure symbol servers (or indexed storages) and non-indexed shared folders separately. If you need to add a public Microsoft symbol server, click the corresponding link.
When configured for the first time, the download is triggered on the debugger session start. When the symbols are downloaded, library symbols will be correctly resolved. For example, frames from Windows system libraries will be shown.
Symbol server: OFF
Symbol server: ON
The Enable symbol servers support setting allows a debugger in JetBrains Rider to use any downloaded symbols cache locally. The directory of this cache is configurable in the settings.
Rider for UE Public Preview Now Works With Unreal Engine 5
The Unreal Engine 5 Early Preview looks exciting, doesn’t it? We’re happy to help you to get the most out of it with Rider for Unreal Engine.
We spent the last few days after the announcement polishing our support and fixing various glitches here and there, and now we are happy to say:
Rider for UE is ready to help you create the best Unreal Engine 5 games!
Before we cover the key changes in more detail, we’d like to remind you that Rider for Unreal Engine Preview is now available on Windows and macOS! It also works natively with the .uproject model, which saves you time on generating additional project models. You can get access for free by just registering here: jb.gg/unreal.
There are still a few known issues with Unreal Engine 5:
In addition to the UE5-related fixes, some other highlights of this build include:
The JetBrains Rider team
The Drive to Develop
Rider for Unreal Engine 2020.3 Preview
Rider for Unreal Engine is now at the Public Preview stage, targeting the release in 2021.
We would love to know how you are finding the Rider for Unreal Engine Preview. Are you enjoying the product? Leave your feedback in comments here.
Meanwhile, we’ve released the new 2020.3 update! Use a patch to update right from the IDE (Help | Check for Updates) if you already use the product, or sign in to get into the Preview program.
This version brings Rider for Unreal Engine into alignment with the recent updates to the ReSharper C++ and Rider IDEs.
Some of the key highlights include:
Unreal Engine
Debugger
Finally, we just want to confirm that Rider for Unreal Engine Preview will soon be available on platforms other than Windows, and we are targeting 2021 for the full public general release!
Kind regards,
The JetBrains Rider team
Development with Jetbrains Rider For Unreal Engine
Recently, it was discovered that Jetbrains has released a version of Rider specifically developed for UE. The development experience feels great. It can automatically configure all the prompts by default and recognize the blueprint content.
Download software
After installing rider, you need to restart windows
unreal configuration item
1. Modify the unreal source code editor to rider
2. After restarting unreal, refresh the rider project
rider configuration
1. Open rider through the unreal menu
2. Wait for the code index to complete (the speed is determined by the CPU performance, the slower it will take a while)
3. Install the Rider Link plug-in as prompted by rider (This step is more critical, but I forgot to take a screenshot. )
Function introduction
1. Directory structure
rider divides the code into engine part and game part, our game logic code will be in Games/[Project Name]/[Project Name]/Source/[Project Name] the following
2. Compile
In the rider project, directly click the «hammer» in the upper right corner to build. After success, you can run it directly in unreal to see the result. Or edit the code in rider and click compile in unreal
3. Log
The toolbar below the rider integrates unreal log output, so you can easily see the feedback of the program
4. Breakpoint debugging
Select DebugGameEditor mode, and then click the «bug» button, rider will open a debug mode unreal window, and then a few breakpoints. Then click the «start handle», which is the first button in the red box, the game will start running and start a breakpoint
JetBrains Rider — теперь для Unreal Engine
На прошлой неделе, после релизов версии 2020.1, для всех наших десктопных продуктов случилось еще одно большое событие — мы открыли публичный доступ к пробной версии Rider for Unreal Engine. На данный момент это отдельный продукт, версия нашей среды для разработки Rider, но с поддержкой C++ и Unreal Engine.
Так, стоп! Среда разработки на C++. Еще одна?! Давайте разбираться по порядку.
Начнем с небольшой истории. Несколько лет назад мы собрали всех, кто в JetBrains делает инструменты для C++, чтобы обсудить, насколько пользователям тяжело ориентироваться в многообразии наших предложений. Ведь есть и CLion, и ReSharper C++, и поддержка для C++ в AppCode. Через несколько часов обсуждений пришли к таким выводам:
Заходя ко многим нашим пользователям из области разработки игр, мы заметили, что у многих студий нет четкого разделения — делать игры только на Unity или только на Unreal Engine. Сегодня у них игра на одной технологии, а завтра — на другой, или одна команда использует Unreal Engine, а другая Unity или вообще свой кастомный движок. При этом понятно, что разработчикам и компаниям в целом очень не нравится “прыгать” между разными средами разработки. И вот тут-то мы и решили, что, если мы смогли сделать Rider успешным для Unity, то мы можем пойти дальше и сделать его успешным в целом для мира игровой разработки. Так родилась идея Rider как универсальной среды разработки для Game Dev.
Из чего состоит Rider for Unreal Engine
Дальнейшее развитие событий довольно очевидно для тех, кто знаком с технологией, на которой построен Rider. Rider состоит из front-end части на базе платформы IntelliJ и back-end части на базе ReSharper. Все языковая поддержка работает на back-end. Поэтому мы просто подключили уже имеющуюся в ReSharper C++ поддержку C++ и Unreal Engine к Rider по той же технологии. Из специфичного пришлось дополнительно реализовать:
Отладчик на основе LLDB
Значительная часть разработки игр происходит сейчас на платформе Windows и в рамках тулчейна от Microsoft. Если посмотреть на то, какие инструменты для отладки существуют для кода, который скомпилирован с помощью компилятора Microsoft Visual C++, то мы увидим:
Поддержка C++
Повторю — вся функциональность языковой поддержки из ReSharper C++ теперь доступна в Rider for Unreal Engine Preview. Она включает:
Поддержка HLSL, C#, диалектов uproject/uplugin
В этом году мы начали работать над поддержкой языка для написания шейдеров HLSL в ReSharper C++, и она сразу попала и в раннее превью Rider for Unreal Engine. Поддержка включает в себя подсветку синтаксиса, тултипы с документацией, подсказки имен параметров и типов, действия навигации, автодополнение, поддержка виртуальных путей файлов, и даже рефакторинги.
Интеграция с Blueprints
Файлы Blueprints представляют собой данные в бинарном формате, редактирование которых происходит как правило в визуальном редакторе внутри Unreal Editor. Объекты в этих файлах наследуются от классов на C++, переопределяют проперти из C++ части игры. И вот тут Rider for Unreal Engine является той уникальной средой разработки, которая зачитывает все необходимые файлы Blueprints и показывает эти связи в редакторе кода на C++:
При этом, если поменять, например, значение свойства в редакторе Unreal Engine и сохранить asset, то значение тут же автоматически обновится и в Rider (у нас повешены watchers на изменение asset-файлов):
Без сохранения файлов, мы надеемся, это тоже скоро заработает (подготовка к этому сейчас ведется в плагине UnrealLink).
Вызов поиска использований (Find usages) включает не только использования в коде на C++, но и в файлах Blueprints. Двойной клик по таким использованиям открывает Unreal Editor.
Понимание механизма рефлексии UE4
Рефлексия в Unreal Engine реализована с помощью специальных макросов (UCLASS, UFUNCTION, UPROPERTY и др). Rider знает, что параметры таких макросов — это не просто текст. Парсер языка C++ в ReSharper C++ и Rider умеет действительно “понимать” значение этих макросов, даже не запуская Unreal Header Build tool (то есть еще до того, как реально сгенерируется содержимое файлов .generated.h).
Кстати, говоря про файлы .generated.h, ReSharper C++ и Rider знают, что автоматически добавляемые пропущенные директивы #include надо вставлять строго до подключения файлов .generated.h. А также учитывают эти генерируемые файлы в рефакторингах переименования.
Возвращаясь к механизму рефлексии, стоит сказать, что спецификаторы рефлексии — это в ReSharper C++ и Rider тоже не просто текст. Для них есть автодополнение и подсказки документации:
Подсказки документации доступны и для самих макросов рефлексии.
А еще анализатор кода проверяет использование макросов рефлексии и указывает на связанные с этим ошибки. Например:
Поддержка вызовов удаленных процедур (RPC) в действиях навигации и генерации кода
Знание правил именования Unreal Engine 4
ReSharper C++ и Rider осведомлены об официальных правилах именования в коде Unreal Engine. Эти правила используются средой разработки во всех действиях по работе с кодом, вроде генерации getters и setters или рефакторинге добавления переменной (Introduce Variable). А главное, что существует проверка кода Inconsistent UE4 naming inspections и соответствующее быстрое исправление, которое вызовет рефакторинг Rename и переименует все использования имени, не соответствующего правилам.
Производительность редактора
Мы довольно давно делаем поддержку разработки на Unreal Engine в ReSharper C++ и, конечно, видим, что производительность редактора является основной жалобой. Rider в силу особенностей архитектуры избавлен от многих проблем с производительностью, которые присутствуют в ReSharper (там они есть отчасти из-за ограничений студии на 32-разрядные процессы, в рамках которых происходит работа ReSharper, но не только).
Помимо этого, мы специально настраиваем работу IDE для улучшения производительности на Unreal Engine. Мы сначала индексируем код пользовательской игры, мгновенно включая все умные действия редактора на пользовательском коде. А индексация уже кода самого движка происходит после этого в фоне. Есть и еще несколько дополнительных опций по управлению индексацией:
В результате, те, кто уже начал пользоваться Rider for Unreal Engine, отзываются о производительности редактора очень положительно! А мы уверены, что можем сделать еще лучше.
Видеодемо и еще раз о том, как получить доступ
Эти и многие другие возможности можно посмотреть в действии в демо-ролике (на английском) от нашего девелопер-адвоката:
JetBrains/RiderSourceCodeAccess
Use Git or checkout with SVN using the web URL.
Work fast with our official CLI. Learn more.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
Git stats
Files
Failed to load latest commit information.
README.md
RiderSourceCodeAccess is a plugin for Unreal Engine, available through Marketplace page that will add an option to select «Rider for Unreal Engine» as your source code editor in Unreal Editor.
How to add this plugin manually (not recommened)
How to add to Game project
How to add to Engine project
Unreal Engine is built from source code
Unreal Engine is downloaded from Epic Games Store
About
Plugin for UE4 to user Rider for Unreal Engine as code editor
Unreal Engine
Preferences configurable on this page are saved using the mechanism of layer-based settings.
In this page, you can adjust some preferences that affect performance of processing C++ code.
Code indexing
Index Unreal Engine source files
Clear this checkbox to skip indexing of the Unreal engine code. Normally you want to do this if you notice any performance degradation when developing your game.
When the indexing is enabled, you will have a number of features. For example, use any symbols from the engine and JetBrains Rider will automatically add missing #includes, or find usages of engine classes — for example, TArray — in the engine’s code and study how they are used there.
Index third party code
Clear this checkbox if you want to skip indexing source files under the ThirdParty folder of the engine.
Clear this checkbox if you want to skip indexing source files under the Plugins folder of the engine.
Enable background indexing of Unreal Engine source files
JetBrains Rider indexes the engine code in the background by default, so that you can start working with your game logic code long before the engine code is fully processed. Turning off background indexing will result in a faster but more intrusive initial indexing.
Project model
Use Unreal Engine project model (starting from 4.24)
Regenerate project properties on configuration change
The Unreal Engine project model information is essential when you have different settings for various build configurations, targets, and platforms. You can switch between configurations and be sure JetBrains Rider will work properly for all of them.
Regenerate project properties on project files change
UnrealHeaderTool support
Enable UnrealHeaderTool inspections
JetBrains Rider will run the tool in the background as a separate process to check the file you are editing and show the same errors and warnings that you would normally see at compile time.
Navigation
Treat Unreal Engine symbols as non-project in Search Everywhere/Go To
Matching symbols from the engine project will only be shown when no symbols are found in the game projects.
JetBrains Rider — теперь для Unreal Engine
Comments 42
Мы редко делаем что-то на зло или вопреки) Просто рынок кажется интересным. К тому же Epic Games с нами по техническим вопросам активно сотрудничают.
Ну это не совсем классическая «подписочная» модель насколько я понял их объяснения. Покупается текущая версия и возможность обновить ее в течение какого-то срока. После истечения срока купленной версией можно пользоваться без проблем она не превратиться в тыкву что ожидается от обычных подписок. То есть это обычная покупка софта и оплата какого срока его поддержки.
Они что-то поменяли?
Я с вами согласен как пользователь, потому что тоже хочу платить меньше и один раз. Однако, количество людей, и разработчиков тем более — конечно.
Когда какая-то критическая масса людей/компаний купит лицензии на продукт и будет им пользоваться (зарабатывая, между прочим, деньги не один раз, а продолжительно), на какие средства разработчики JB будут существовать, обновлять продукты, кушать в перерывах?
Стоит учитывать, что модель подписки JB довольно удобная по сравнению с Adobe, Miscrosoft, Unity опять же и прочими ребятами.
Они не вставляют палки в колёса в нормальной рутине и вы можете и оффлайн пользоваться с активной подпиской довольно долгое время. Вы можете пользоваться предыдущей версией вообще без ограничений, даже когда больше не оплачиваете. Если не нужны новые фичи — почему бы и нет.
Это разительно отличается от дичайших практик, когда некоторые разработчики вставляют палки в колёса, и без постоянного доступа к интернету инструмент превращается в тыкву, несмотря на то, что вы за него платите деньги, а те, кто тоже самое качают на торрентах таких проблем не имеют. Есть и другие подобные моменты, и у JB в этом плане подписки удобнее хотя бы тем, что не мешают работать.
К тому же саппорт довольно адекватный, когда чтобы что-то зарепортить не приходится пробираться через миллион деревянных агентов поддержки.
JetBrains Rider — теперь для Unreal Engine
Комментарии 42
Мы редко делаем что-то на зло или вопреки) Просто рынок кажется интересным. К тому же Epic Games с нами по техническим вопросам активно сотрудничают.
Ну это не совсем классическая «подписочная» модель насколько я понял их объяснения. Покупается текущая версия и возможность обновить ее в течение какого-то срока. После истечения срока купленной версией можно пользоваться без проблем она не превратиться в тыкву что ожидается от обычных подписок. То есть это обычная покупка софта и оплата какого срока его поддержки.
Они что-то поменяли?
Я с вами согласен как пользователь, потому что тоже хочу платить меньше и один раз. Однако, количество людей, и разработчиков тем более — конечно.
Когда какая-то критическая масса людей/компаний купит лицензии на продукт и будет им пользоваться (зарабатывая, между прочим, деньги не один раз, а продолжительно), на какие средства разработчики JB будут существовать, обновлять продукты, кушать в перерывах?
Стоит учитывать, что модель подписки JB довольно удобная по сравнению с Adobe, Miscrosoft, Unity опять же и прочими ребятами.
Они не вставляют палки в колёса в нормальной рутине и вы можете и оффлайн пользоваться с активной подпиской довольно долгое время. Вы можете пользоваться предыдущей версией вообще без ограничений, даже когда больше не оплачиваете. Если не нужны новые фичи — почему бы и нет.
Это разительно отличается от дичайших практик, когда некоторые разработчики вставляют палки в колёса, и без постоянного доступа к интернету инструмент превращается в тыкву, несмотря на то, что вы за него платите деньги, а те, кто тоже самое качают на торрентах таких проблем не имеют. Есть и другие подобные моменты, и у JB в этом плане подписки удобнее хотя бы тем, что не мешают работать.
К тому же саппорт довольно адекватный, когда чтобы что-то зарепортить не приходится пробираться через миллион деревянных агентов поддержки.
Rider for unreal engine
JetBrains Rider is a fast and powerful C# editor for Unity that runs on Windows, Mac, and Linux. With the unbeatable 2500+ smart code inspections and refactorings, Rider enhances your C# experience, letting you write error-proof code much faster.
Easy start with Unity
Rider has Unity support built in, and the very first time you open a Unity solution it will automatically configure Unity to use Rider as the default editor for C# scripts and shader files. Once done, double-clicking a C# script or shader asset will open the solution in Rider.
Control Unity editor
Thanks to the integrated two-way communication, you can switch into and out of Play mode, and pause and step a single frame without ever leaving Rider! The toolbar includes game view buttons Play, Pause, and Step, which correspond to the same buttons in Unity Editor and control the same behavior as Unity Editor does. A small Unity icon in the status bar will indicate whether Unity Editor is connected, refreshing, or in Play mode. Any changes applied in Rider in Edit mode will be instantly delivered to Unity Editor.
Coding hints
Rider provides top-notch code analysis for C#, and that includes Unity-specific code inspections and quick-fixes for them.
Debug Unity with ease
Rider makes it very easy to debug your C# scripts as they run in the Unity editor. Everything is already configured, and you just need to hit the Debug toolbar button, menu item or keyboard shortcut to attach the debugger to the running Unity editor. You can set breakpoints in the editor, step through your code, look at locals and watch values, and evaluate expressions.
With Rider, you can even debug the code that you don’t have debugging information for. Rider automatically decompiles external libraries on-the-fly, allowing you to debug the decompiled code, step into functions, set breakpoints, view and set locals and variables.
Run Unity tests
Rider allows you to run tests that interact with Unity’s API, and which can step through single frames, all from within Rider. And of course, you can explore the results of your Unity-specific tests, just like you would normal tests – you can filter by result, and click on stack traces to navigate to your code.
Unity console logs
The Unity Logs tool window with hyperlinked stack traces lets you explore the same events that are logged in the Unity editor console. It allows filtering by category (error, warning, or message), hides events based on when they were logged (in Play or Edit mode), and lets you easily navigate to any source file, class, method, or property mentioned in the log entry. Unity Logs clears its output automatically after every switch to Play mode.
Performance highlightings
Rider helps you write better-performing Unity C# code. To do this, it highlights expensive Unity APIs inside methods that get called every frame, like Update and coroutines. Rider even highlights calls to methods that indirectly use expensive Unity APIs!
Besides that, Rider has many Unity-specific performance inspections and appropriate quick-fixes. It is aware of code patterns that are poor performance and can suggest automatic fixes for them, such as using a different API or overload, or caching values.
Find Usages inside Unity files
Find Usages now includes Unity scenes, assets, and prefabs. If you search for a class or method used as an event handler, Rider shows where it’s used in your Unity files, grouped by type, component name, and parent game objects. Even better, double-clicking the item highlights the usage directly in the Unity Editor.
Pulling this information from Unity files also means that Rider highlights event handler methods as being implicitly used. The implicit usage highlights are turned into Code Vision links, so you can see at a glance what classes, methods, and fields are implicitly used by Unity. And clicking the link will find those usages, even inside Unity files.
Shader support
Rider also adds support for .shader files, with syntax highlighting, code folding, brace matching and more. Syntax errors in the ShaderLab sections are highlighted, todo comments are pulled into the To Do Explorer and color properties are highlighted, with a color picker for editing. Simple word completion is available throughout the file, including in Cg/HLSL blocks.
Explore Unity docs
Rider displays external documentation for Unity symbols. You can either click the icon from the Quick Documentation pop-up ( Ctrl Shift F1 if using the Visual Studio keymap) or use the View External Documentation action ( Shift F1 ) directly, to navigate to locally installed documentation, or to Unity’s hosted docs if they are not available locally.
Learn more about RiderFlow, a free scenery tool to build and manage your 3D space, for anyone who uses the Unity Editor – level designers, game designers, artists, and coders alike.
Free 30-day trial
Customers
“Having the right tool for the job is essential to compete in any market, games especially. At Yakuto each dev has a JetBrains Toolbox subscription, which we’ve found invaluable for productivity. We work mostly in C# on Macs. This used to mean a VM running ReSharper but with Rider, we’re native to one OS, which is awesome. Unity debugging is now seamless and the extensions add vital Unity-aware context. As a veteran of ReSharper, I feel completely at home in Rider: refactoring, solution-wide analysis, test runners, it’s all there. We couldn’t consider C# development without Rider.”
James Gratton
CTO, Yakuto
“Rider has quickly become the only IDE I want to use; for any UE4 or Unity programming task. It has saved countless hours through its intuitive workflows, and I cannot praise its P4 integration enough. When producers see the speed at which we can go from tasking to resolution, they are enamored with the product. Rider removes all the developer choke points, which prevent us from doing what we do best, code.”
“Rider is the best and only IDE that we use for Unity programming tasks. It saves a lot of time in our workflow, providing top-notch code analysis for C# with Unity-specific code inspections and quick-fixes. Similarly, Rider warns us if we try to use a new keyword to create a new instance of a class derived from MonoBehavior or ScriptableObject. Seamless debugging also helps a lot. Great tool for us!”
JetBrains/UnrealLink
Use Git or checkout with SVN using the web URL.
Work fast with our official CLI. Learn more.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
Git stats
Files
Failed to load latest commit information.
README.md
UnrealLink for Unreal Engine
The UnrealLink plugin enables advanced integration between JetBrains Rider and Epic Games’ Unreal Editor.
Rider is a fast and powerful IDE for Unreal Engine and C++ development. It provides rich code navigation, inspections, refactorings, understands Blueprints and the Unreal Engine reflection mechanism, and supports HLSL. The Unreal Engine edition of Rider is currently available as a free Early Preview for Windows only. Join the Early Preview.
The plugin brings Blueprints information to the editor, adds settings to manage game launch, and provides a more convenient version of the Unreal Editor log.
There are two plugins under the hood, the UnrealLink plugin for Rider and the RiderLink plugin for Unreal Editor, packed together.
Setting up development environment
For the instruction on how to setup development environment and contribute to the project, please, refer to Setting up the environment page
UnrealLink is bundled with Rider. Starting with Rider for Unreal Engine 2020.2.1, it’s also distributed via the JetBrains plugin marketplace.
RiderLink is installed by Rider itself, there is no need to install it manually. The first time you open an Unreal Engine project in Rider, you’ll see a notification that the RiderLink plugin is missing and an invitation to install it. If you skip this popup message, you can install the plugin later by going to the Rider settings on the Languages and Frameworks | Unreal Engine page.
Both the popup message and the settings page offer two installation options:
Interact with blueprints
Blueprint files are written in binary form and are usually edited visually. However, they contain a whole lot of useful information for the developers of the C++ part of the game.
Rider reads Blueprints and allows you to see the bigger picture behind your code:
UnrealLink extends this functionality and introduces the ability to navigate to the Blueprint inside the Unreal Editor from your C++ code.
Manage the game
The plugin allows you to manage your game right inside the IDE: select the running mode, run a server for your multiplayer game, specify the number of players, and more.
Browse the Unreal Editor log
UnrealLink offers you an enhanced version of the Unreal Editor log output panel with colored text for easy reading, as well as verbosity and event category filters. You can also click on any highlighted link to navigate to the related source code line.
What could possibly go wrong?
The plugin and Rider for Unreal Engine itself are in active development now, so there could be some issues. Please share your feedback and report any bugs you encounter:
A few typical issues, and what to do in such cases:
Failed to build RiderLink plugin
There are several reasons you might get this message:
Failed to backup old plugin
You tried to install a new version of RiderLink while you have a running instance of Unreal Editor with the plugin installed. Please close Unreal Editor and try again to install the plugin.
Failed to refresh project files
This warning message means that installation was successful, but updating the project files in Rider failed. Everything should work fine, except the plugin will not appear in the /Plugins/Developer folder in the Explorer view.
If you have any issues with the plugin that you can’t resolve, please contact the developers via GitHub Issues.
Tips for creating games with Unreal Engine 4 in CLion
Table of Contents
C++ game development is strongly linked with Unreal Engine 4, one of the most popular and widely spread C++ game engines. It is no surprise that we are getting lots of requests about UE4 setup within CLion. In this blog post we’ll share our own experience along with a couple of tips and useful links.
Background
The story started some time ago when one of our team members decided to try UE4. At that time CLion relied heavily on CMake project model (now it’s also Gradle and compilation database options), so it was crucial to get a CMake-based UE4 project. The official Linux-only CMake generator for UE4 projects had existed for some time, but it wasn’t perfect and more importantly, limited to Linux. Philipp Smorygo from the AppCode/CLion team investigated the source of this problem and contributed to Unreal Engine repository with his CMake + UE4 changes. You can read about his experience in his own blog.
Good news! With Unreal Engine v4.20 the things became much easier – Unreal Editor can now generate CMake project and open it in CLion in a couple of clicks!
Setup
Short instructions on how to get started with UE4 in CLion:
Now you can call File | Open CLion, use CLion for your UE4 project and enjoy all of its features! Bu the way, don’t forget to build your Unreal Engine project to get all the generated headers ready, otherwise the IDE won’t be able to resolve some symbols in your project.
Plugin also generates custom targets for building and cleaning your game. Fake target is added for CLion needs to make all the intellisense possible.
Unreal Engine 4 SDK Support plugin
If you write games with UE4 in CLion, you may also find useful an Unreal Engine 4 SDK Support plugin from Philipp, our team member. To install it, go to Preferences/Settings | Plugins and Browse repository to search for it:
The plugin adds extra completion options for reflection specifiers, which CLion is unable to provide by default:
Performance and known issues
Our experience shows that initial indexing time is acceptable, as the CMake project model generated this way allows CLion not to index and build symbols for the entire engine source, but only for necessary engine headers and source files.
However, we still recommend that you increase the amount of memory used by CLion, or at least check the real usage by switching on the memory indicator (Preferences/Settings | Appearance & Behavior | Appearance | Show memory indicator).
While on Linux and macOS it works fine, on Windows there are a few moments worth mentioning:
We’ll appreciate your feedback on the whole workflow! Let us know in the comments section below.
What’s New in Rider
Free 30-day trial available
.NET 5 and C# support
Source Generators are almost certainly the most talked about feature in the C# compiler. It’s understandable: the ability to create new code right in the compilation process and use it immediately is exciting and could be useful in lots of different situations.
What can Rider do here? Well, it can do what it does best and take the generated files into account while performing refactorings, provide code editor features, and help you navigate to the generated code.
Partial methods are now allowed to have out parameters, non-void return types, and any type of accessibility, making them more useful with Source Generators. Source Generators can use the defining declaration of the partial method to customize the behavior of the generated code.
The perfect place to apply init is new record types. These are reference types with value semantics that help you achieve immutability, but this time for the whole object. Again, Rider is keeping up with the language, from quick-fixes for choosing your preferred declaration style to basic completion.
Positional records have a compiler-generated Deconstruct() method. Rider supports all deconstruction features in such objects. Notice the popup when introducing a variable: it offers you the choice between single variable or a deconstructing declaration. The same choice will be offered when a function accesses a property of a record object.
Another useful C# 9 addition is the ability to write top-level programs. No more fighting with Program classes: you can place your entry point code right after the using directives! There is some help available for working with top-level statements as well. There are two rules about top-level statements: they should precede any type or namespace, and only a single file in the project can contain top-level code. Both rules are easy to break when you’re rearranging and copy-pasting code. Rider provides quick-fixes to remedy this by moving your top-level code to the top or to another file.
Given that top-level code is also code, there are refactorings for it as well: Extract local variable and Extract method refactorings.
With target-typed new expressions in C# 9 we can omit the type after the new keyword when it can be inferred from the usage context. Rider provides full support for the feature including the ability to Find Usages of the constructor and configure preferred syntax style. The latter allows you to use new() syntax when a created type is evident while enforcing an explicit type specification in other cases.
By the way, Rider’s new (pun intended) type name hints can help if all the new() in your code gets out of control.
With return type covariance, you’re no longer bound to returning the same type in overriding members as you do in the base class method. There is no longer any need to implement workarounds to return a more specific type.
Finally, when lambda discard parameters were introduced, we felt it would be nice to add a quick-fix for them.
Debugger
Immediate Window
Introducing a new Immediate Window with code assistance. It allows you to create synthetic variables when the program stops on a breakpoint, and to experiment with your code without restarting the debugger.
When you start a debugging session, the Immediate Window appears on the bottom-right, below the watch variables within the debugger pane. It will accept input only when your application is in a paused state, typically when it has reached a breakpoint.
Type any valid C# code, with the full range of code completion features at our disposal.
Define new synthetic variables. Rider will track those values in the variables window under a synthetic variables collection. You can inspect, pin, and modify those variables like you do any other variables.
You can even call any member functions on the available objects or any static functions available in the current context using any available objects as arguments. Breakpoints on the execution path of the function will suspend the execution as if it was a normal call. The call will have its own part of the stack starting with Function Evaluation, which you can explore in the Frames panel.
Execute statements without needing to assign them to any variables. Rider will record the last returned value from a run statement under the $result placeholder. The Immediate Window will track the history of all of your statements.
New actions
New debugger actions are now available when debugging hasn’t started.
Right now, you don’t have to start debugging and navigate through several steps to the method or a place in code you’re interested in. If you use Start Debugging and Run to Here or Start Debugging and Run to Here Non-Stop, Rider will take you there, skipping any breakpoints.
If you want to start debugging your application and stop the execution right in the beginning, as soon as it reaches the application entry point, use the Start Debugging and Step Over or Start Debugging and Step Into actions.
You can find these actions under Run | Debugging Actions in the main menu.
Private Source Link
Great news for anyone familiar with the term “Private Source Link” – Rider 2020.3 now provides full support for private source servers in both the debugger and the embedded decompiler. Rider supports sources located on GitHub, GitHub Enterprise, BitBucket, and Azure DevOps (former VSTS).
Rider can save authentication credentials for easy future access.
Other debugger updates
Project Dependency Diagram
Our new architecture tool helps you visualize project dependencies in your solution and explore its architecture.
Explore the diagram
You can open the project dependency diagram from Tools | Architecture | Show Project Diagram or from the context menu in the Solution Explorer. It follows your solution structure, and starts by showing all top-level items in your solution. You can select which projects or solution folders should be visible, change the scale, enable a grid (and the snap to grid option, if needed), and add notes to annotate certain projects.
Navigation
Use Ctrl + F on Windows or Cmd + F on macOS to find the project you want to focus on.
The Show Neighbors of Selected Nodes toolbar button filters the project dependency diagram to the selected node, its direct dependencies, and the projects that depend on this project.
For large project dependency diagrams, you can open the File Structure tool window ( View | Tool Windows | Structure ) and pan around using a high-level overview.
Analyze coupling between project
Click the Enable Coupling Analysis icon in the toolbar to perform analysis and update the diagram. The thickness, color, and style of the links can vary depending on how tight the coupling between projects is. Hover the link and Rider will display a tooltip with the exact number of usages. Clicking the link will gather details about dependent code and display them in a separate tool window.
In a project dependency diagram, you can also Show Transitive Dependencies. This will render both direct and indirect project dependencies.
Save and compare snapshots
Save a snapshot of the project dependency diagram from the toolbar and then compare it with the current solution. Use the Tools | Architecture | Compare With Saved. menu to load and inspect previously saved snapshots. Rider will highlight the differences between the diagrams.
Export diagrams
From the toolbar, you can export the diagram as an image and include it in your documentation.
Game Development
Unity
Rider 2020.3 brings another great release for our Unity support, with updates to Burst analysis, shader support, and unit testing, as well as a handful of helpful fixes.
Click the icon next to any method marked with Unity’s [MenuItem] attribute, and Rider will tell Unity to invoke the method, right from the IDE.
Rider’s smart support for shaders gets an upgrade, automatically using define symbols from pragmas such as shader_feature and target when analyzing the code. There is a new context picker in the status bar to analyze a shader based on the symbols defined in the location it was included from.
We’ve improved the Burst context analysis with a new Code Vision indicator and new warnings for incorrect SharedStatic usage. You can also use the Alt + Enter menu to quickly add a [BurstDiscard] attribute.
New context actions allow better control of the analysis of performance-critical methods such as Update. You can now tell Rider to stop treating a method as frequently called, or stop highlighting a method as expensive, and you can even start a new performance context from an arbitrary method.
Unit testing gets some great new updates, too, with support for the [Explicit] attribute, and parameterized test features. You can also run both edit and play mode tests in a single test run.
The Unity log viewer tool window has been given some useful UI improvements, notably the ability to filter based on the last time you switched the game to play mode, or the last time the game’s AppDomain was reloaded.
And of course, we’ve fixed a number of issues, including a fix for an infinite “refreshing solution” message when not connected to the Unity editor and a new quick-fix to remove a redundant event message. We’ve also resolved incorrect C# language suggestions for player projects. Please see the changelog for more details.
Rider for Unreal Engine Early Preview
Rider for Unreal Engine is still at the public preview stage and is scheduled for release as part of Rider in 2021. You can evaluate the preview for free until the public release.
Rider for Unreal Engine provides seamless integration with UnrealHeaderTool to help you catch more Unreal Engine specific code issues right in the editor. When working with an Unreal Engine project, it will automatically run UnrealHeaderTool on the file you’re editing and display any errors or warnings, just like for other inspections.
The full power of control-flow analysis now comes to HLSL shader files. It warns you about unreachable code, uninitialized variables, redundant control flow jumps and conditional branches, and so on. In the main Rider, the same analysis is enabled for Unity shaders in v2020.3.
We’ve added filters to the Unreal Log, so Rider for Unreal Engine now lets you filter by Verbosity and Category, and you can show or hide timestamps. We’ve fixed an issue with the UI freezing when there are too many messages in the Unreal log panel.
The UnrealLink/RiderLink plugin enables advanced integration between JetBrains Rider and Epic Games’ Unreal Editor. It is now hosted on JetBrains Marketplace and can be updated independently of the product build.
Rider 2022.1 Comes With Full Unreal Engine Support and Remote Development
Our first release of the year, Rider 2022.1 is now available. You can download it from the JetBrains website, install it via the Toolbox App, or use this snap package from the SnapCraft store (if you are using a compatible Linux distro).
We initially dubbed Rider 2022.1 a quality release with a focus on fine-tuning features and fixing bugs, but there are also some new features in the release build. Let’s check it out!
Game development with Unreal Engine and Unity
Rider is already widely used in the Unity development world, and it now comes deeply integrated with Unreal Engine support. This converts Rider into a full-fledged IDE for game development, no matter your game engine of choice.
We’re also announcing RiderFlow – a new scenery tool for Unity. This is a free plugin for the Unity editor that is designed to help level designers, artists, coders, and the rest of the creative team easily create and manage scenes. When combined with Rider, they will provide you with a full suite of powerful tools to boost your Unity development at all stages.
Remote Development (Beta)
Rider now supports a Beta version of the long-awaited remote development workflow. It allows you to connect to a remote machine running Rider’s backend from anywhere in the world. All the processing happens on that powerful remote machine, and you can work on your project as seamlessly as if it were on your local machine. This functionality can be initiated from Rider’s Welcome screen or from a new application called JetBrains Gateway, which is available in the Toolbox App.
What’s more, you can create, prebuild, share, reproduce, hibernate, and manage dev environments with JetBrains Space – a unified platform for the entire software development pipeline. Check out this blog post for more details.
Other highlights
For more information, please visit the What’s New in Rider 2022.1 page.
Rider 2022.2 Comes With More C# 11 Features, Performance Improvements, and Extended Unreal Engine Support
Table of Contents
The latest major version of Rider is finally here! Let’s take a look at the exciting features Rider 2022.2 has in store.
You can download the 2022.2 release build from www.jetbrains.com, install it via the Toolbox App, or use this snap package from the SnapCraft store (if you are using a compatible Linux distro).
Performance improvements
A significant portion of the work during this release cycle was focused on various performance improvements, particularly the optimization of the startup process and the solution-wide engine.
We’ve also optimized the initial project-loading stage. Solutions now load approximately 40% faster when you open them in Rider for the very first time (a process known as “cold startup”).
Rider’s memory usage with Solution-Wide Analysis mode turned on has been radically optimized. The improvements affect both memory traffic (number of memory allocations) and memory consumption, resulting in a 5-10x memory consumption improvement and faster Solution-Wide Analysis loading.
C# 11 features
With our latest release we’re continuing to expand Rider’s support for the C#11 preview, starting with recognizing required members.
Support for checked user-defined operators is another C#11 feature that made it into this release. We’ve added relevant compiler errors and warnings and introduced a couple of new inspections and a context action. Rider’s “Unchecked/checked context is redundant” inspection has been updated to take into account checked operators when they are used in this context.
If you have a set of user-defined operators and some of them already have a checked version, Rider will help you propagate checked operators to the whole set. If you haven’t used checked operators in your codebase yet, but want to start adding them, a new context action called “Create matching checked operator” will help you with that.
Rider 2022.2 also has basic “raw” string support including compiler errors and correct parsing and color highlighting for “”” syntax, pairs of double quotes, and placeholders inside interpolated strings ( <<. >> syntax).
You can find the full overview of newly implemented C#11 features release of Rider here.
Unreal Engine support
Rider has been deeply integrated with Unreal Engine since the 2022.1 release. This time around, we’re bringing out a whole new set of features to enhance your game development experience: new actions, symbol servers, support for spec tests, and UX/UI improvements.
Another action that will help you streamline your work is Add | New Unreal Plugin. It enables you to create different types of plugins right from Rider by generating all the necessary files in one go. Learn how easy it is to create a new Unreal plugin in this blog article.
When debugging, the library symbols may not always be available on your local machine. In this case, you can use symbol servers. In Rider on Windows, you can now configure the debugger to use the symbol server of your choice.
Early preview of MAUI support
macOS, Mac Catalyst, Blazor Hybrid, and WinUI aren’t fully supported yet.
Default settings for window layout
When you’re working on more than one solution in Rider, setting up your workspace all over again for each new project can be a hassle. That’s why we’ve implemented a way to apply the same window layout settings to all of the solutions you work on.
For example, if you move a tool window to the right, that’s where it will be for all of your solutions. This behavior will be the default if you’re new to Rider. Otherwise, you can enable it in the main menu by selecting Windows | Layout Settings | Use the Same Layout for All Projects.
Other release highlights:
For more information about all these and tons of other features, please visit the What’s New in Rider 2022.2 page. You may also want to review the full list of requests we’ve addressed this release cycle in our public bug tracker.
free 30-day trial
Derek Comartin
Director of Engineering, Full Circle TMS
What is Rider?
Feature-rich and fast
Rider provides 2200+ live code inspections, hundreds of context actions and refactorings brought by ReSharper, and combines them with the IntelliJ platform’s solid IDE features. Despite a heavy feature set, Rider is designed to be fast and responsive.
Cross-platform
As well as running and debugging multiple runtimes, Rider itself runs on multiple platforms: Windows, macOS, and Linux.
Features
Code analysis
Rider boasts 2,200+ live code inspections, with automated quick-fixes to resolve detected issues individually or in bulk. Solution-wide error analysis will monitor code issues and let you know if anything goes wrong, even in files that are not currently open.
Code editing
Rider’s rich editor features different kinds of code completion and code templates, auto-inserting matching braces and import directives, quick info tooltips and gutter icons for inheritance navigation, context actions, and much more.
Refactorings
Most of ReSharper’s 60+ refactorings are already available in Rider, and its 450+ context actions are all there. Rename, extract methods, interfaces and classes, move and copy types, use alternative syntax, and a lot more!
Unit test runner
Rider helps you run and debug unit tests based on NUnit, xUnit.net, or MSTest. You can explore tests, group them in different ways, break them down into individual sessions, see test output and navigate to source code from stack traces.
Debugger and more tools
Databases and SQL
Work with SQL and databases without leaving Rider. Connect to databases, edit schemas and table data, run queries, and even analyze schemas with UML diagrams.
Navigation and search
Jump to any file, type, or member in your code base instantly, as well as quickly find settings and actions. Find usages of any symbol, or navigate from a symbol to the base and derived symbols, extension methods, or implementations.
Front-end technologies
Rider comes with JavaScript, TypeScript, HTML, CSS and Sass support built in. Take advantage of the refactorings, debugging, and unit testing capabilities included from WebStorm.
Extensibility
The Many Sides of Rider
What’s new in Rider
Performance improvements
Optimized startup times
Defaults for per-solution settings
Shared window layout settings
Redesigned solution configurations
Better presentation of configurations, targets, and platforms combinations
C# 11 features
Required members, checked user-defined operators, and raw strings
Better support for solution filters
Easier to work with filtered solutions
F# support
Completely rewritten Parameter Info popup
Early preview of MAUI support
Run and debug iOS and Android projects
Safe delete refactoring
Refactoring for projects in a solution
Resizable Run/Debug widget
Extendable to fit space on the toolbar
.NET 6 runtime
For the backend on Windows
Unreal Engine support
New actions, Unreal Module and New Unreal Plugin, and symbol servers for the debugger
Memory profiler
dotMemory with Rider, *Windows only
Rider
ReSharper
ReSharper C++
Visual Studio extension for C++ developers
dotCover
.NET unit test runner and code coverage plugin for Rider
dotTrace
.NET performance profiling plugin for Rider
dotMemory
.NET memory profiler
dotPeek
.NET decompiler and assembly browser (it’s free anyway)
Customers
JetBrains Rider is the first tool I install after repaving my development machine.
I haven’t launched Visual Studio for months after I switched to JetBrains Rider.
Working with branches has never been so smooth since I started using JetBrains Rider.
Dennis Doomen,
Continuous Improver at Aviva Solutions and author of Fluent Assertions
JetBrains Rider is my C# development tool of choice these days on both OS X and Windows. If you’re a longstanding ReSharper user, you’ll find it to be an almost seamless transition. I highly recommend the developer-friendly keystroke navigation and fine grained debugger support.
Frans Bouma,
lead developer, LLBLGen Pro
Switching to JetBrains Rider was a great decision. Our team has never experienced an IDE that can communicate with Unity in such a flawless and efficient manner. We would highly recommend JetBrains Rider to anyone who aims at improving the efficiency and accuracy of their workflows.
An IDE can make or break a developer’s day. When JetBrains introduced Rider (C#) we jumped on board as fast as we could. Having been there at every step of the way in Unity’s evolution of IDE integrations; working with Rider has been nothing but an absolute joy. With the introduction of CLion (C++), we were so excited we created an integration plugin for Unreal. Both of these tools help our team on a daily basis, allowing developers to perform their tasks quickly and efficiently, all the while seamlessly integrating with numerous parts of our pipeline.
Really pleased with how well JetBrains Rider works on my MacBook. It’s blazingly fast and the debugging experience in C# is at least as good as Visual Studio. Also, it gives me all the benefits of ReSharper out of the box! Loving it. Thanks JetBrains for another great product!
What’s New in Rider
Rider 2021.2 comes with enhanced C# language support, including a heap of updates to code analysis, nullable reference types, and source generators. For web developers, this release offers support for ASP.NET Core Endpoints and client-side debugging for Blazor WebAssembly applications. There are a lot of treats for game developers who are using Unity and Unreal Engine. And the Welcome wizard now lets you import settings from other IDEs such as Visual Studio, VS for Mac, or Visual Studio Code.
Free 30-day trial available
Support for ASP.NET Core Endpoints
Inspect endpoint documentation, or Jump to Source of the controller that implements an endpoint. Find Usages to see where it is registered.
Use the HTTP Client tab to create and submit requests to your application. This is useful for testing APIs.
Try out your API using the bundled OpenAPI Specifications plugin. It adds Swagger UI support for OpenAPI files that you can use to write requests and inspect responses.
In the code editor, you will get first-class support as well:
Blazor WebAssembly Debugging
Follow the official Microsoft guide to set up WASM debugging. Then just start debugging your applications as usual.
To get it working on Linux, you have to manually install development certificates beforehand; otherwise, it won’t work. If you are using Ubuntu, you can follow this guide.
Rider supports the debugging proxy if either of these NuGet packages are installed: Microsoft.AspNetCore.Components.WebAssembly.DevServer or Microsoft.AspNetCore.Components.WebAssembly.Server. We don’t support any custom debugging proxies for Blazor WASM apps right now.
Language Support
C# Code Analysis
Do you use temporary variables to swap variable values? There is now a more elegant way to do this! Rider 2021.2 can help you modernize your code with the new Swap via deconstruction quick-fix.
Nullable Reference Types (NRT)
Do you have lots of nullable warning suppressions in your code base after enabling nullable reference types?
A new context action lets you search for all nullable warning suppressions in scope. From the Find Results tool window, you can then re-evaluate whether the suppressions are needed or not.
Rider will update nullability annotations and suggest propagating the changes throughout your codebase.
Several new inspections with corresponding quick-fixes are available for when you’re using JetBrains.Annotations attributes and nullable reference types are enabled.
Update JetBrains.Annotations attributes to NRT syntax and compiler-supported attributes! For example, Rider can update [CanBeNull] string to string?
When the type annotation syntax is not allowed, a new inspection with a quick-fix adds compiler-supported annotations, e.g.:
A new inspection detects redundant compiler annotations, such as when [AllowNull] is applied to a nullable type, and a quick-fix removes them.
When nullable reference type syntax can be used, Rider will suggest doing so.
There are additional improvements that also deserve a mention:
Source Generator support
Source Generators can be used to reduce tedious and repetitive development work, and to generate code at compile time. In Rider 2021.2, many of the features available for human-written code files are available for source-generated files as well. We’ve improved editor support and added support for refactorings.
Refactorings can now be triggered from source-generated files. Use the Rename refactoring to rename a generated property. Rider will also rename the related symbol in manually written code!
Similarly, Change Signature lets you verify whether code that will be generated after the change can still be compiled.
You can now use Find Usages, search for inheritors, navigate from generated code to manually written code with Ctrl + Click and Navigate To, and more.
Semantic highlighting is enabled so that class members like events, fields, and properties are highlighted correctly. All inlay hints are shown where appropriate.
For generated code, warnings and errors are displayed in the editor and on the marker bar.
Also, Rider now supports code generated by source generators in VB.NET.
Game Zone
Rider 2021.2 continues on its mission to be a great game development IDE, with new features for Unity and some breakthrough improvements to our early-preview Unreal Engine support! And if you work with Godot, make sure to check out the Godot Support for Rider plugin.
Unity Support
Rider’s smart integration with the Unity editor will now check if any scenes are open and unsaved before you commit code. You can be sure that everything is saved before committing!
Rider has long shown a link to Unity’s documentation in the tooltip for a Unity class or method, but now you can use the External Documentation action and shortcut to jump straight to the docs without showing the tooltip first.
Rider can now debug local UWP players, by correctly asking Windows to allow incoming connections to the process being debugged.
The Packages view in Unity Explorer is now significantly faster to display when a solution is reopened, and will even remember open folders.
This release improves the experience of debugging IL2CPP-based players, by automatically disabling Break on Unhandled Exception when it connects to a IL2CPP player.
As ever, there are lots of other minor improvements and fixes; for example, [UnitySetup] methods are no longer marked as unused, and layer names are correctly shown in completion for older projects. There are various performance improvements for Unity-based inspections, especially those for large files.
Unreal Engine Early Preview
Rider for Unreal Engine is progressing on its way from public preview to a final release. Here’s what we’ve been working on since the 2021.1 release – it’s quite a list!
Support for Unreal Engine 5! You read that correctly: Rider for Unreal works great with the new Unreal Engine 5 projects, just as it does with your existing Unreal Engine 4 projects.
Rider for Unreal Engine now works on Mac! Simply open your
.uproject file and get the full Rider for Unreal experience on your macOS. This includes rich C++ and HLSL shader editing, navigation, inspections and refactorings, code style settings and quick-fixes, Blueprint support (Find Usages of code inside a Blueprint, Code Vision links and counters, and navigation), and debugger and rich integration with the Unreal Editor. The macOS version works with Unreal Engine 4.26 or later.
Big improvements for Natvis and the built-in presentation of debugger results. Support for the inheritable attribute, format specifiers, custom list items and more, including one-line summaries for all structures not covered by Natvis, and a [Raw View] node for looking at underlying object data.
Expanded Code Style settings. Rider will recognize an Unreal project, and it will automatically configure itself to understand and follow the UE code style conventions. It will highlight code that doesn’t follow the correct style and offer quick-fixes to automatically update your code.
Last, but by no means least, the EzArgs plugin provides easy access to the C++ run/debug configuration arguments – just type a new argument in the drop-down on the toolbar.
Code Cleanup
We’ve merged the Reformat File and Code Cleanup dialogs into one. The shortcuts for both remain the same, but you will have a new unified view that allows both steps to be performed at once. Cleanup profiles will also preview which actions will be executed, and you can easily switch to the profile editing mode with a button.
In the commit dialog, you can now enable automatic code cleanup of your changes with the profile of your choice. Alternatively, you can use a new option in the Reformat and Cleanup dialog to reformat/clean up only uncommitted changes in the current file.
Actions for reformatting code, optimizing imports, and rearranging code are now available for CSS, JavaScript, and SQL. You can fine-tune the rules under Settings | Editor | Code Cleanup.
User Experience
Import Settings from other IDEs
Are you a first-time Rider user? If you’ve never installed or used Rider before, the Welcome wizard now lets you import settings from other IDEs such as Visual Studio, Visual Studio for Mac, or Visual Studio Code. In addition, Rider will recognize settings from ReSharper.
Organize tool windows by drag and drop
It is now easier to drag a tool window to the desired place within the main IDE window or in a separate window. You can drag it by clicking and holding the tool window name bar and dropping it in any highlighted area.
Transparent title bar macOS only
The title bar is now transparent on macOS when the IDE window isn’t in Full-Screen Mode. It means that there is no visible border between the title bar and the rest of the window.
Advanced Settings
If you need to configure use-case-specific options in Rider, you can do it in the new Advanced Settings node in Preferences/Settings. For example, you can add a left margin in Distraction-free mode, or set the caret to move down after you use the Comment with Line Comment action.
New navigation option in Preferences/Settings
We’ve simplified navigation in Preferences/Settings by adding arrows to the top right-hand corner of the window. They allow you to quickly jump back and forth between the sections you’ve opened.
Debugger
Property values are evaluated and shown in the debugger by default, but sometimes their evaluation can take some time. This is why we’ve added a new Disable Evaluation of Selected Item action.
Especially with native code, it can happen that evaluating a method call crashes the debugging session. Rider will remember these troublesome calls and disable their evaluation for you.
When stepping through codebases, each new file is opened in a new tab, sometimes leaving you with a very polluted tab bar. The preview tab can help here! It allows you to view files in a single tab one by one without opening each file in a new tab each time. You can enable it in Settings/Preferences | General | Editor Tabs | Opening Policy.
Wargaming Uses Rider for Unreal Engine to Develop Its New Game
Viacheslav Dubikovsky
Technical Director at Wargaming RED
Hi Viacheslav! Could you please tell us about the project you’re working on? What kind of game is it?
We haven’t announced the title yet, so I cannot tell you much about it because of NDAs. What I can say is it’s a Sci-Fi, session-based, third-person shooter.
And you’re using Unreal as the game engine?
Yes, that’s right. We’re developing the game in C++ and using Unreal Engine 4.26 for now, but gradually migrating to 4.27. I don’t think we’ll move this project to Unreal Engine 5, as that version has different rendering and migrating to it could have possibly resulted in us having to redo all the game art we’ve already created.
How is the project organized? What technologies are you using?
As I said, the project is written in C++ and built on Unreal Engine. We’re making heavy use of the Unreal Engine reflection mechanism, as well as C++ template metaprogramming. We have two mono repositories, one for the game itself and one for the engine. The main game logic is stored in the shared module.
When using code editors, the UE reflection mechanism usually presents the biggest challenges. It’s tough to work with code that’s wrapped with so many macro definitions, which are virtually meaningless from the standpoint of the language itself. Very few developers can handle that. And this is where Rider for Unreal Engine saves the day!
How many developers are involved in the project? What are some of the main tools they’re using?
Our team has about 25 programmers. A third of them are using Rider for UE, and the others are working in various versions of Visual Studio. Before adopting Rider, we used Visual Studio, either vanilla or with Visual Assist or ReSharper C++. But with or without plugins, the VS editor would often run into performance issues. With Visual Assist, the language features weren’t accurate enough for us (though I suppose things might be different now). Rider for Unreal Engine, on the contrary, has demonstrated stellar performance, at least when dealing with UE code.
Was it easy for you to migrate to Rider for Unreal Engine?
My first impression was: “Wow, it supports the VS keyboard shortcuts! All my VS skills are going to come in handy.” When it comes to the user interface, Visual Studio’s UI seems more user-friendly in some aspects, like debugging, probably because I just have more experience with it. But Rider’s UI is very attractive visually, I’ll give it that.
Still, it can be tricky to migrate away from a tool you’ve used for years, so some of our colleagues are sticking with Visual Studio.
What features of Rider for Unreal Engine are turning out to be the most useful in your project so far?
That would be navigation, find usages, jumping to symbol declaration, going to derived and base symbols – we use those all the time, both in our own code and in Unreal Engine code (as the engine code is the main source of documentation for developers). Another key to using Unreal Engine effectively is quickly finding links to fields and functions and navigating through code – and Rider for Unreal Engine excels at that.
Then there’s static code analysis – inspections that point to errors in your code. When you see the errors right in the editor, even before compiling, that saves a lot of time. If errors like that ever reach the compilation stage, it could mean hours of “ping-pong” between the compiler and the developer. Sure, we don’t spot all the errors this way, especially in templated code. But Unreal Engine itself barely uses templates, so that leaves just a small percentage of errors to find and fix. Inspections that suggest automatically adding missing include directives also help save time: thanks to Rider, you don’t have to wonder which header files are included and which aren’t.
It’s also amazing that Rider knows about the reflection mechanism implemented in Unreal Engine and provides autocompletion for reflection identifiers and macros. You don’t normally memorize such things, so Rider’s hints can really speed up your coding.
I also have to mention parsing assets and binding Blueprints with C++ source code. This feature isn’t used all that often, but when it is, it’s very valuable. Especially when you’re refactoring and something changes in your C++ source code, it’s very useful to see the usages in Blueprints. Same with config INI files and default values for class properties: you can often see the values right in the code, without having to search in the INI files.
Last but not least, there’s the integration with the Unreal Editor, meaning the RiderLink/UnrealLink plugins. Typically, we launch the Unreal Editor from the Rider debugger and then do Live Coding in it. The ability to see logs as we pause and resume the game, without leaving Rider, can sometimes provide a significant boost. For example, if we’re using third-party plugins (to integrate with Steam or external chats, build the game pipeline, and so on), we don’t even have to switch to the editor – seeing the logs and pausing/resuming the editor is enough.
Speaking of which, I have a couple of suggestions for how you could enhance the Unreal log:
Thank you for these ideas! How about Rider’s debugger, do you use it?
Sure. Without a debugger, no editor can call itself a true development tool! Well, earlier we did encounter a few problems with Rider’s debugger not stopping at breakpoints, but it looks like they’ve been fixed. The debugging feature we use most often is definitely stepping through code. Sometimes we use conditional breakpoints. And we like how the debugger displays the contents of Unreal Engine objects.
Do you mostly debug on the desktop?
So far, yes. We’re planning to work with consoles in the future, but we’re not there yet.
Note: unfortunately, Rider doesn’t yet allow debugging on consoles. We’re in talks with the major console manufacturers about this. These processes can take a long time, sometimes with a number of bureaucratic hoops to jump through.
We also wanted to talk about version control systems. Which ones do you use?
We mostly use Git, with new features actively developed in branches. We use Git’s integration with Rider. For rebasing, though, we use the Tortoise client, as it lets us see the bigger picture better. Rebase is probably the most complicated Git operation. We tried automating it and making it easy to use, but we’ve had no luck so far.
In some of my other projects, I’ve also worked with Perforce and PlasticSCM.
Do you profile your code? If so, do you use third-party profiling tools?
Yes, we analyze our code using Unreal Insights. When it comes to gathering profiling information, the native UE tool is hard to beat. But speaking of visualization, improvements are certainly possible. We use our own tool for plotting CPU usage graphs. Unreal Insight is fine for inspecting frame contents, but it doesn’t help you see all of the dynamics, which is why we decided to make our own tool.
Thank you for the interview, Viacheslav! Good luck with your game project!
We look forward to hearing your ideas for enhancing Rider for Unreal Engine.
Failed to build Rider Link #23
Comments
shamsfk commented May 26, 2020
I get RiderLink error both in editor and project
Failed to build RiderLink plugin
Check build logs for more info
Help > Diagnostic Tools > Show Log in Explorer
The text was updated successfully, but these errors were encountered:
DecoyRS commented May 26, 2020
Hi @shamsfk
Could you please share the whole log folder? I’m really interested in backend.log and backend-err.log, there should be info from the building process and reason why it couldn’t find your UE
afonsocsc commented May 26, 2020
I’m having the same issue, I’ve also tried with a new blank c++ Unreal project.
I have Unreal 4.24.3 installed in «C:\develop\UE_4.24»
Rider is installed in «D:\apps\JetBrains\Rider for Unreal Engine 2020.1.2»
shamsfk commented May 26, 2020
DecoyRS commented May 26, 2020
@afonsocsc @shamsfk can you share your
Short version
Check if you have these registry keys:
HKEY_LOCAL_MACHINE\SOFTWARE\EpicGames\Unreal Engine\4.25
or
HKEY_CURRENT_USER\SOFTWARE\EpicGames\Unreal Engine\4.25
and they point to a valid Unreal Engine root folder and this folder has
Long version
How Rider’s trying to find Unreal Engine root:
And how does it determine that it’s an Unreal Engine root:
it checks if folder has
shamsfk commented May 26, 2020
project file is in the zip archive.
I don’t have 4.25 folder at the location at all (see screenshot) (this is in the CURRENT_USER path, LOCAL_MACHINE path has no EpicGames)
UE was installed using Epic Games Launcher, nothing was customized with exception to its location being set to D drive
shamsfk commented May 26, 2020
nor I have any entries named 4.25
DecoyRS commented May 26, 2020
shamsfk commented May 26, 2020 •
Mine has a space, I did a full registry search by the path, it did find some Visual Assist X, Firewall, and other unrelated stuff, but no EpicGames with no space (and without a space too btw, my path to install is not mentioned in Epic Games registry folder too). Mind that engine is fully working, everything is compiling, running, and stuff, just not RiderLink.
Note: its a fresh machine here, I have no installations of previous versions, I have just the latest EGL and UE 4.25. Maybe something related to the registry has changed in the latest versions.
Dokest commented May 26, 2020
I was experiencing the same issue (the plugin couldn’t be installed either in-game or in-engine). In the Registry Editor I had keys for other engine versions, but not for the 4.25 (the one I was trying to install the plugin for).
After adding the key manually with the InstalledDirectoy pointing to my UE installation folder. It did get installed correctly.
I added the key to the HKEY_LOCAL_MACHINE\SOFTWARE\EpicGames\Unreal Engine field.
DecoyRS commented May 26, 2020
@shamsfk
It has space for Engine that is built from source (github) and after you’ve run Setup.bat.
For engines installed from EGS, it will always lack a space in the name.
Looks like it’s a bug in UE 4.25 installation, although I do have it in my registry.
shamsfk commented May 26, 2020
DecoyRS commented May 26, 2020
I fully understand that. It means, that for whatever reason, installation of UE 4.25 has bugged out and didn’t register itself, so there’s no possible way for me to find the installation folder.
afonsocsc commented May 27, 2020
@DecoyRS thank you!
On the registry, I only had an entry for 4.25 and not for 4.24. I’ve manually added the 4.24 entry and the UnrealLink plugin installed correctly.
shamsfk commented May 27, 2020 •
VAX somehow found it most likely unintentionally yet still it has the right path in its registry pointing to unreal engine insides.
DecoyRS commented May 27, 2020
VAX simply checks if solution has a UE4 project and considers it as an Unreal Engine root.
I couldn’t do that because we have use-cases where we don’t have an Engine inside solution, but we do have a uproject file on our hand.
I’ve found another way to find install locations for Unreal Engine’s, it should be available in the next version of Rider 4UE and will fix your issues.
I’ll close this issue when new version of Rider will be released. Meanwhile, a workaround is to add a record to Windows Registry.
dolichomps commented May 27, 2020
I had the exact same issue as @shamsfk, no EpicGames without space in the registry with my UE 4.25 install. I decided to verify my installation of the engine with the Epic Games Launcher and upon completion it had registered itself and the RiderLink plugin installed properly. This might help while waiting for the next version of Rider 4UE.
OrzGame commented May 28, 2020
I’m having the same issue on my laptop,however it works fine on my desktop.
jhuhtanen commented Jun 9, 2020
I had clean desktop installed on Win10 and whenever I tried to open c++ project with rider it complained about RiderLink missing and needs to install it. Install always failed with error being «Message = [UnrealLink]: Failed to build plugin for C:\Projects\UE4\XXXX\YYYYY.uproject, couldn’t find Unreal Engine root» (this from rider.log)
This is how I got mine to work: I added keys to registry under «Computer\HKEY_LOCAL_MACHINE\SOFTWARE» for my current engine version (4.25) like so: «Computer\HKEY_LOCAL_MACHINE\SOFTWARE\EpicGames\Unreal Engine\4.25» and new string value for «InstalledDirectory» with «C:\Program Files\Epic Games\UE_4.25» where my engine root is.
I didn’t have «EpicGames» under «Computer\HKEY_LOCAL_MACHINE\SOFTWARE» instead I had keys under «Computer\HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node». I tried to add the missing keys under WOW6432Node, but that does not work. Only adding keys under «Computer\HKEY_LOCAL_MACHINE\SOFTWARE\EpicGame» did the trick. Hope this helps others!
DecoyRS commented Jun 9, 2020
RVillani commented Jun 22, 2020
DecoyRS commented Jun 22, 2020
RVillani commented Jun 23, 2020 •
I think I know what VS update created this incompatibility issue. They mentioned something on the third item of these release notes.
But I’m trying to build the plugin from RD UE4. Doesn’t it use its own version of MSVC?
And if I can’t build it anyway, is there anywhere I can download the built binaries for UE 4.24?
Thanks for your help!
hikingyoung commented Jun 23, 2020
Hi @DecoyRS
I have the same problem. As I have read all mentioned above, I uninstall VS2019 and install VS2017 instead, but nothing changed, still «Failed to build RiderLink plugin»
DecoyRS commented Jun 23, 2020
Doesn’t it use its own version of MSVC?
No, they use either bundled with VS version, or with MSBuild toolchain.
Taking latest version of pre-built RD is somewhat complicated.
You’ll need to:
NB: all this is automated and works as part of CI for UnrealLink plugin, but UnrealLink plugin now depends on new version of Rider that hasn’t been published yet. I’m waiting for team to finish polishing so I’ll be able to ship plugin as well
DecoyRS commented Jun 23, 2020
DecoyRS commented Jun 23, 2020
@RVillani
Update to my previous message. I’ve finally finished building plugin with GitHub actions.
Although latest build is not compatible with Rider 2020.1.3, you can unzip UnrealLink, navigate to RD and copy it to your version of RiderLink.
example:
Link to the latest build of UnrealLink:
https://github.com/JetBrains/UnrealLink/suites/831180673/artifacts/9280844
How to find RiderLink in UnrealLink:
UnrealLink-2020.1.14.zip\UnrealLink\EditorPlugin\RiderLink.zip\Source\RD\
hikingyoung commented Jun 24, 2020
RVillani commented Jun 24, 2020 •
@DecoyRS
That’s amazing support, Alexander! I feel like talking a work colleague 😀
latest build is not compatible with Rider 2020.1.3
So even if I did all the steps you described, Rider would stop telling me the RiderLink plugin is required but it still wouldn’t be able to read variable usages on Blueprints ect, right? Or would it break the IDE somehow?
TLDR: my actual question is: if it’s not compatible (which you said at least twice), what’s the catch on trying to use it?
DecoyRS commented Jun 25, 2020
tl;dr Don’t install latest UnrealLink to Rider, it won’t work. But! You can take only part of the plugin, RD folder and copy-paste it in place of the old version of RD.
Long detailed answer 🙂
There’s a number of things to clear up.
We have 3 parts:
DecoyRS commented Jul 16, 2020
So I’ve fixed a ton of problems with installing RiderLink plugin, including:
Create new Unreal Engine entities
JetBrains Rider offers a set of predefined templates for Unreal Engine classes and dedicated actions to create a new plugin and module, allowing you to automate boilerplate code generation and switch between the IDE and Unreal Editor less often.
New Unreal Class
All predefined templates for Unreal Engine classes are available in the list of JetBrains Rider file templates.
You can see it in action in this short demo:
Create a new Unreal Engine class
Do one of the following:
Place the caret at a code file open in the editor. In this case, the new class will be created and placed next to the current file.
Choose an Unreal Engine template from the list.
The newly generated header and source files with template code will be added to the corresponding folders depending on the private or public context and opened in the editor.
You need to rebuild the project to make this new class available in the Unreal Editor.
If the template has editable parameters (that is, requires user input), JetBrains Rider deploys a hot spot session in the editor and sets the input position at the first parameter. Then you can do the following:
If JetBrains Rider suggests some values for the current parameter, use Up and Down arrow keys to navigate through the list of suggested values, or just type in a desired value.
Press Tab or Enter to accept the value and move to the input position of the next parameter. If this is the last parameter, the hot spot session completes and the caret moves to the end position defined for the session.
Press Shift+Tab to move the input focus to the input position of the previous parameter.
Press Esc to exit the hot spot session. In this case, all session parameters will be initialized with default values.
To get the most out of templates, you can edit the existing templates or create new templates so that the set of your templates will best fit your development practices.
New Unreal Module
Create a new Unreal Engine module
Specify the name for the new module.
Choose a module type from the list.
The list represents the types of environments that can load your module. Learn more about the listed options in the Unreal Engine documentation.
Select the loading phase.
Choose Target.cs files where you want to add module references.
New Unreal Plugin
JetBrains Rider allows you to create several different types of plugins, similar to using the New Unreal Plugin button in the Unreal Editor’s Plugin Browser but right in the IDE.
Create a new Unreal Engine plugin
Specify the name for the new plugin.
Choose a plugin template from the list.
Specify Descriptor Data.
Choose projects where you want to use a new plugin and add references.
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
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.
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.
Find usages of C++ function in 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#.
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
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:
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.
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.
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.
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.
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.
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.
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.
free 30-day trial
Derek Comartin
Director of Engineering, Full Circle TMS
What is Rider?
Feature-rich and fast
Rider provides 2200+ live code inspections, hundreds of context actions and refactorings brought by ReSharper, and combines them with the IntelliJ platform’s solid IDE features. Despite a heavy feature set, Rider is designed to be fast and responsive.
Cross-platform
As well as running and debugging multiple runtimes, Rider itself runs on multiple platforms: Windows, macOS, and Linux.
Features
Code analysis
Rider boasts 2,200+ live code inspections, with automated quick-fixes to resolve detected issues individually or in bulk. Solution-wide error analysis will monitor code issues and let you know if anything goes wrong, even in files that are not currently open.
Code editing
Rider’s rich editor features different kinds of code completion and code templates, auto-inserting matching braces and import directives, quick info tooltips and gutter icons for inheritance navigation, context actions, and much more.
Refactorings
Most of ReSharper’s 60+ refactorings are already available in Rider, and its 450+ context actions are all there. Rename, extract methods, interfaces and classes, move and copy types, use alternative syntax, and a lot more!
Unit test runner
Rider helps you run and debug unit tests based on NUnit, xUnit.net, or MSTest. You can explore tests, group them in different ways, break them down into individual sessions, see test output and navigate to source code from stack traces.
Debugger and more tools
Databases and SQL
Work with SQL and databases without leaving Rider. Connect to databases, edit schemas and table data, run queries, and even analyze schemas with UML diagrams.
Navigation and search
Jump to any file, type, or member in your code base instantly, as well as quickly find settings and actions. Find usages of any symbol, or navigate from a symbol to the base and derived symbols, extension methods, or implementations.
Front-end technologies
Rider comes with JavaScript, TypeScript, HTML, CSS and Sass support built in. Take advantage of the refactorings, debugging, and unit testing capabilities included from WebStorm.
Extensibility
The Many Sides of Rider
What’s new in Rider
Performance improvements
Optimized startup times
Defaults for per-solution settings
Shared window layout settings
Redesigned solution configurations
Better presentation of configurations, targets, and platforms combinations
C# 11 features
Required members, checked user-defined operators, and raw strings
Better support for solution filters
Easier to work with filtered solutions
F# support
Completely rewritten Parameter Info popup
Early preview of MAUI support
Run and debug iOS and Android projects
Safe delete refactoring
Refactoring for projects in a solution
Resizable Run/Debug widget
Extendable to fit space on the toolbar
.NET 6 runtime
For the backend on Windows
Unreal Engine support
New actions, Unreal Module and New Unreal Plugin, and symbol servers for the debugger
Memory profiler
dotMemory with Rider, *Windows only
Rider
ReSharper
ReSharper C++
Visual Studio extension for C++ developers
dotCover
.NET unit test runner and code coverage plugin for Rider
dotTrace
.NET performance profiling plugin for Rider
dotMemory
.NET memory profiler
dotPeek
.NET decompiler and assembly browser (it’s free anyway)
Customers
JetBrains Rider is the first tool I install after repaving my development machine.
I haven’t launched Visual Studio for months after I switched to JetBrains Rider.
Working with branches has never been so smooth since I started using JetBrains Rider.
Dennis Doomen,
Continuous Improver at Aviva Solutions and author of Fluent Assertions
JetBrains Rider is my C# development tool of choice these days on both OS X and Windows. If you’re a longstanding ReSharper user, you’ll find it to be an almost seamless transition. I highly recommend the developer-friendly keystroke navigation and fine grained debugger support.
Frans Bouma,
lead developer, LLBLGen Pro
Switching to JetBrains Rider was a great decision. Our team has never experienced an IDE that can communicate with Unity in such a flawless and efficient manner. We would highly recommend JetBrains Rider to anyone who aims at improving the efficiency and accuracy of their workflows.
An IDE can make or break a developer’s day. When JetBrains introduced Rider (C#) we jumped on board as fast as we could. Having been there at every step of the way in Unity’s evolution of IDE integrations; working with Rider has been nothing but an absolute joy. With the introduction of CLion (C++), we were so excited we created an integration plugin for Unreal. Both of these tools help our team on a daily basis, allowing developers to perform their tasks quickly and efficiently, all the while seamlessly integrating with numerous parts of our pipeline.
Really pleased with how well JetBrains Rider works on my MacBook. It’s blazingly fast and the debugging experience in C# is at least as good as Visual Studio. Also, it gives me all the benefits of ReSharper out of the box! Loving it. Thanks JetBrains for another great product!
What’s New in Rider
Rider 2020.2 delivers some highly requested features, such as the Localization Manager and Shader support in our Unity integration. We’ve completely reworked the Unit Test Runner and the debugger API to make them faster, more powerful, and more stable. This release also includes better C# support, Data Breakpoints, and full support for GitHub pull requests.
Free 30-day trial available
Debugger
New Debugger API
The new release comes with the new debugger API which has been largely rewritten. This is not noticeable from the UI, but it allows more features to come and allows plugins to hook into the debugging process as never before. This includes improved super-lazy value calculations with better interruption and custom value representations. The only thing noticeable from the outside is that debugger tool windows show the correct icons for all variables.
Data breakpoints Windows only
Pin-To-Frame
In Rider 2020.2, we’re adding Pin-To-Frame, which lets you pin values across frames. You can pin parameters for a function, and see them in the list of stack frames. When debugging recursive functions, it lets you watch the state of values in different iterations.
Localization Manager
You can easily find all resources that are missing localized values or are just not used.
You can add, edit, rename, search for, find usages of, and safely delete any localized resources.
You can easily add a new culture to your application using the predefined list of cultures in the completion list or hide locales you don’t need right now.
You can export the whole grid to a CSV format to share with translators and import the final version back into the Localization Manager.
You can add and edit comments for any entity from resource files right inside the grid, and you can also export and import these comments.
GameDev
Unity
Shader support
Rider 2020.2 adds much-requested support for Cg and HLSL shaders! This includes syntax highlighting, code completion, semantic error highlighting, go to definition, find usages, refactorings, and more.
Rider fully understands the structure of shader files, including macros, and can navigate to macro definitions or unroll them directly in code. Included files are discovered and parsed, and Ctrl + Click on an included file will take you directly to that file.
Pausepoints
Introducing a new kind of breakpoint! Set a breakpoint in code, convert it to a pausepoint, and when the debugger hits it, Unity Editor immediately switches to pause mode, allowing you to use the Inspector to view the state of your game.
This becomes an even more powerful tool when used in combination with conditional and dependent breakpoints. Read more in this blog post.
Burst analysis
Burst-enabled code can greatly improve the performance of your Unity application, but it places constraints on what your code can do.
Rider 2020.2 adds smart analysis for all code called within a Burst context, and will highlight any incorrect code usage, such as boxing, use of foreach or try/catch, as well as reading/writing to static fields, and more.
USB debugging for Apple devices
Rider already has great support for debugging players over the network, including standalone desktop players, mobiles, and consoles.
Rider 2020.2 introduces USB-based debugging for Apple devices (USB debugging for Android devices is planned for a future release).
Bulk quick fixes
All quick-fixes that can be run on files, projects, and entire solutions have now been upgraded to be able to do so.
Debugger value extensions
Rider’s debugger will show you extra contextual values for Unity projects. Get easy access to the active scene, child game objects, and all attached components.
Rider also displays improved summary information for certain types, such as Euler angles for Quaternion, full precision values for vectors, the enabled state of behaviors, and more.
Integrated UnityYamlMerge support
Rider will automatically use Unity’s Smart Merge tool to merge asset files when performing integrated version control operations.
More features
Rider for Unreal Engine Early Preview
Are you interested in game development with Unreal Engine? On our way toward making Rider a standalone, all-in-one, universal game development IDE, we have introduced early support for Unreal Engine development in Rider:
The Early Access Preview is free to use. Simply register to join.
Code Analysis
Nullability code analysis is now aware of more cases and can trace incorrect nullability through deconstruction and the foreach cycle. It also provides a corresponding quick-fix.
Code analysis now takes into account JetBrains.Annotations attributes (both NotNull and CanBeNull ) for the API, even in code where nullable reference types are disabled ( #nullable disable ).
Context actions for converting » foreach to LINQ» and «LINQ to code» are also available on IAsyncEnumerable‹T› if you have the System.Linq.Async NuGet package installed for your project.
Now it’s possible to easily generate IEqualityComparer‹T› and IComparer‹T› implementations with the appropriate quick-fixes.
Code Analysis now takes compiler annotations (such as AllowNull and DisallowNull ) into account when verifying the nullability of implemented or overridden members.
There are new inspections and quick-fixes to make variables and return types “not nullable” if they have never held or returned nullable values.
Support for the default implementations in interfaces feature has been enhanced in this release. The left-hand gutter in the code editor shows that a method is implemented or overridden, and our refactorings and navigation are aware of this C# language feature.
Unit Testing
The new unit test runner introduces the following important improvements:
You can select multiple unit test statuses simultaneously to filter them in the unit test tree. Enable or disable multiple statuses by holding down the Ctrl key as you click on them.
There are two different counters for each status when a search or target framework filter is applied to show the overall number of unit tests, and the number of tests that match the filter criteria.
We’ve added support for ANSI escape codes in the Output window, so you can colorize the unit test output if you want.
There is a new action in the Alt + Enter menu to open the Settings dialog if you get a «Visual studio installation folder is not set» status for your MSTest unit test.
Version control
GitHub pull requests
Enhanced support for GitHub pull requests is finally here! You’ll be able to browse, assign, manage, and even merge pull requests, view the timeline and inline comments, submit comments and reviews, and accept changes.
The new support includes:
For more details about this new feature, please check out this blog post.
Other VCS features
In addition to full GitHub pull request support, the following new features are available for version control systems:
NuGet
You can use the NuGet tool window to see all the transitive packages of a solution or project in the new Implicitly Installed Packages section.
Hovering over an implicit package reveals a tooltip that contains information about the implicit package’s version and the referencing package. If the package is referenced in multiple versions, they will all be shown.
We’ve added a new context popup menu that can be invoked via right-clicking or pressing Alt + Enter on a NuGet package. From here you can quickly access all the relevant actions for a single NuGet package, like updating or removing the package, opening it in the Assembly Explorer to examine the API, revealing it in the filesystem explorer, navigating to the related NuGet.org entry, or finding dependent code.
There is also a new Quick NuGet Documentation action to bring up the implicit reference paths to a package.
The search box for packages also received an update. You can either click the magnifier icon or use Alt + Down Arrow to open the history of recent package searches.
In the Feeds tab, we can now immediately see whether a feed path is invalid as the path will be highlighted with a red rectangle.
A warning message will also be shown in the search list if we search for a package and it is not found in any of the feeds.
A new warning in the details pane is a visual indication of which packages are still in maintenance or have been deprecated.
F# support
Refactorings
The Introduce Variable refactoring is now available for expressions. When invoked, it shows the suitable subexpressions (unless a specific part of code is selected) and offers to replace similar subexpressions. It is also smart about naming the new variable, and suggests a meaningful name according to type and context.
Rename now works on underscore wildcards. Whenever you need to turn a wildcard pattern into a named variable, you can call the refactoring instead of doing it manually. It also takes type and context into account when suggesting names.
Quick fixes and context actions
Import Type has been significantly improved. It now works in more cases and keeps the parameter count in mind when suggesting a type. Rider can now also suggest referencing a module or another project from your solution and import the type from it.
Several new quick-fixes have been added as well: adding parentheses to an application of a function in the list of parameters, adding the Extension attribute to a containing type or module, fixing syntax errors, converting let to use, and others.
Analyzers
We’ve implemented a fast redundant qualifiers analyzer, as well as a corresponding quick-fix to remove the redundancies.
Editor
There’s now more options for highlighting various symbols differently. In addition, type abbreviations are highlighted as the types they abbreviate, and functions can be highlighted as methods. Both are external contributions, and we thank Igor Bagdamyan for them.
Rider now has type hints for expressions in |> chains. They help you keep track of what’s happening without having to follow the whole chain in your mind. This too is an external contribution, which we’d like to thank Saul Rennison for.
Color references are now highlighted in the code, making them more visible.
Finally, we now have an F# Compiler Service monitor – thanks again to Saul. Whenever FCS is busy, an indicator will be displayed. This is mostly a diagnostic tool: it helps the developer understand the reason why the IDE is thinking, and in the event that the behavior seems suspicious, it can be reported to the Rider team to be analyzed.
To learn more about updates in F# support, please take a look at the release notes on GitHub.
x:Bind support
We have good news for UWP developers – support for compiled bindings with x:Bind is finally here!
Rider resolves x:Bind code correctly and offers several inspections and corresponding quick-fixes. It warns you about missing property setters, BindBack attributes, and when there are overload collisions. In addition, there is a set of Create from Usage quick-fixes to generate a proper field, property, or method inside C# code-behind.
Change Signature and Safe Delete refactorings are now aware of method usage in XAML code and update them accordingly. Also, Make Static/Const and Encapsulate Field refactorings work directly from XAML code and update XAML usages correctly if you call them from C# code-behind.
Other Rider features like Find Usages and Go to Declaration are also aware of x:Bind bindings.
Add Program Arguments and Environment Variables
You can influence the runtime behavior of your app by adding program arguments and environment variables to run/debug configurations.
Add program arguments
From the main menu, select Run | Edit Configurations or choose Edit Configurations from the run/debug configurations selector on the toolbar.
In the Run/Debug Configurations dialog that opens, select a configuration where you want to pass the arguments.
Type the arguments in the Program arguments field. The arguments should be separated with spaces.
Click to expand the text field, so you can view and edit the whole list of arguments.
Add environment variables
From the main menu, select Run | Edit Configurations or choose Edit Configurations from the run/debug configurations selector on the toolbar.
In the Run/Debug Configurations dialog, select a configuration where you want to add the environment variables.
Alternatively, click and add the variable name and value to the User environment variables list.
In the dialog that opens, you can also see the list of available system environment variables. Clear the Include system environment variables checkbox if you don’t want to use the system environment variables for the selected run/debug configuration.
Use EzArgs plugin
You can also use the EzArgs plugin that provides a convenient way for passing arguments to C++ run/debug configurations by writing them in a dedicated box on the toolbar.
The specified options are used for the current project and will be attached to the end of the command line arguments set through the project properties when you press Run or Debug the next time.
Enter the arguments in the field or choose recent arguments from the dropdown list.
Installation
You can install the EzArgs plugin from the plugin repository (Marketplace) or from a local archive file (ZIP or JAR).
Install plugin from Marketplace
To install a specific version, go to the plugin page in the JetBrains Plugin Repository, download and install it as described in Install plugin from disk. For example, you can do it if the most recent version of the plugin is broken.
Install plugin from disk
Download the plugin archive (ZIP or JAR).
Click OK to apply the changes and restart the IDE if prompted.
free 30-day trial
Derek Comartin
Director of Engineering, Full Circle TMS
What is Rider?
Feature-rich and fast
Rider provides 2200+ live code inspections, hundreds of context actions and refactorings brought by ReSharper, and combines them with the IntelliJ platform’s solid IDE features. Despite a heavy feature set, Rider is designed to be fast and responsive.
Cross-platform
As well as running and debugging multiple runtimes, Rider itself runs on multiple platforms: Windows, macOS, and Linux.
Features
Code analysis
Rider boasts 2,200+ live code inspections, with automated quick-fixes to resolve detected issues individually or in bulk. Solution-wide error analysis will monitor code issues and let you know if anything goes wrong, even in files that are not currently open.
Code editing
Rider’s rich editor features different kinds of code completion and code templates, auto-inserting matching braces and import directives, quick info tooltips and gutter icons for inheritance navigation, context actions, and much more.
Refactorings
Most of ReSharper’s 60+ refactorings are already available in Rider, and its 450+ context actions are all there. Rename, extract methods, interfaces and classes, move and copy types, use alternative syntax, and a lot more!
Unit test runner
Rider helps you run and debug unit tests based on NUnit, xUnit.net, or MSTest. You can explore tests, group them in different ways, break them down into individual sessions, see test output and navigate to source code from stack traces.
Debugger and more tools
Databases and SQL
Work with SQL and databases without leaving Rider. Connect to databases, edit schemas and table data, run queries, and even analyze schemas with UML diagrams.
Navigation and search
Jump to any file, type, or member in your code base instantly, as well as quickly find settings and actions. Find usages of any symbol, or navigate from a symbol to the base and derived symbols, extension methods, or implementations.
Front-end technologies
Rider comes with JavaScript, TypeScript, HTML, CSS and Sass support built in. Take advantage of the refactorings, debugging, and unit testing capabilities included from WebStorm.
Extensibility
The Many Sides of Rider
What’s new in Rider
Performance improvements
Optimized startup times
Defaults for per-solution settings
Shared window layout settings
Redesigned solution configurations
Better presentation of configurations, targets, and platforms combinations
C# 11 features
Required members, checked user-defined operators, and raw strings
Better support for solution filters
Easier to work with filtered solutions
F# support
Completely rewritten Parameter Info popup
Early preview of MAUI support
Run and debug iOS and Android projects
Safe delete refactoring
Refactoring for projects in a solution
Resizable Run/Debug widget
Extendable to fit space on the toolbar
.NET 6 runtime
For the backend on Windows
Unreal Engine support
New actions, Unreal Module and New Unreal Plugin, and symbol servers for the debugger
Memory profiler
dotMemory with Rider, *Windows only
Rider
ReSharper
ReSharper C++
Visual Studio extension for C++ developers
dotCover
.NET unit test runner and code coverage plugin for Rider
dotTrace
.NET performance profiling plugin for Rider
dotMemory
.NET memory profiler
dotPeek
.NET decompiler and assembly browser (it’s free anyway)
Customers
JetBrains Rider is the first tool I install after repaving my development machine.
I haven’t launched Visual Studio for months after I switched to JetBrains Rider.
Working with branches has never been so smooth since I started using JetBrains Rider.
Dennis Doomen,
Continuous Improver at Aviva Solutions and author of Fluent Assertions
JetBrains Rider is my C# development tool of choice these days on both OS X and Windows. If you’re a longstanding ReSharper user, you’ll find it to be an almost seamless transition. I highly recommend the developer-friendly keystroke navigation and fine grained debugger support.
Frans Bouma,
lead developer, LLBLGen Pro
Switching to JetBrains Rider was a great decision. Our team has never experienced an IDE that can communicate with Unity in such a flawless and efficient manner. We would highly recommend JetBrains Rider to anyone who aims at improving the efficiency and accuracy of their workflows.
An IDE can make or break a developer’s day. When JetBrains introduced Rider (C#) we jumped on board as fast as we could. Having been there at every step of the way in Unity’s evolution of IDE integrations; working with Rider has been nothing but an absolute joy. With the introduction of CLion (C++), we were so excited we created an integration plugin for Unreal. Both of these tools help our team on a daily basis, allowing developers to perform their tasks quickly and efficiently, all the while seamlessly integrating with numerous parts of our pipeline.
Really pleased with how well JetBrains Rider works on my MacBook. It’s blazingly fast and the debugging experience in C# is at least as good as Visual Studio. Also, it gives me all the benefits of ReSharper out of the box! Loving it. Thanks JetBrains for another great product!
What’s New in Rider
Rider 2022.2 includes overall performance improvements, with optimizations to the startup performance and the solution-wide analysis engine. The support for C# 11 has been extended to cover required members, checked user-defined operators, raw strings, and list patterns. In this release, you can apply the same window layout settings to all of the solutions you are working on. Also, the Unreal Engine support has two new actions, New Unreal Module and New Unreal Plugin, and the ability to specify symbol servers to get library symbols when debugging.
Free 30-day trial available
Performance
.NET 6 runtime for the Windows backend
Please note that Rider doesn’t run CrossGen during installation, but only when you first launch Rider. This means that the first launch can take slightly longer, but all subsequent launches will be faster.
“Cold startup” improvements
Solutions start up faster when you open them for the very first time (“cold startup”) and Rider has no information about them. On cold startup, all the projects are loaded twice: first the IDE loads the projects to get the information about each one, then it runs “NuGet restore”, and then, when everything is ready, it loads the projects a second time.
We’ve optimized the first project-loading stage so that Rider fetches only the information it needs for restoring NuGet packages. Our internal metrics show that the new implementation is approximately 40% faster.
Solution-wide analysis optimizations
In this release, we’ve greatly optimized the memory usage of Rider with the Solution-Wide Analysis mode turned ON, both in terms of memory traffic (number of memory allocations) and in terms of memory consumption.
The Solution-Wide Analysis engine uses memory to store the list of issues in the solution and to store the type/member usage information to perform solution-wide usage reporting (code inspections like «public member is never used»). The usage data is «hot», meaning it needs to be constantly updated while you are editing the code, and can’t be off-loaded to the disk. This can consume a significant amount of memory if your solution contains lots of types and type members. We reviewed the data stored in memory and found patterns that allowed us to deduplicate/normalize the data. We also utilized specialized collection types to further reduce the working set. These optimizations resulted in a 5-10x memory consumption improvement and faster Solution-Wide Analysis loading.
This release brings support for several more features from the C# 11 preview.
Required Members
We’ve added a new Add initializer for required members quick-fix for cases where you’ve created a type’s object but haven’t initialized the members yet. It automatically generates all of the missing required members for your object – you just need to fill in the members’ values with meaningful data.
Checked user-defined operators
Checked user-defined operators help developers create user-defined operators that operate on types where arithmetic overflow is a valid concept. Rider shows all of the compiler errors and warnings. To fully support checked user-defined operators, Rider has a couple more inspections and a context action.
We’ve updated the Unchecked/checked context is redundant inspection to take into account checked operators when they are used in this context.
If you have a set of user-defined operators and some of them already have a checked version, Rider will help you propagate checked operators to the whole set. A new inspection called The operator does not have a matching checked operator while other operators do will notify you which operators don’t have a checked operator yet and suggest a quick-fix to generate the checked versions automatically.
If you haven’t used checked operators in your codebase yet, but want to start adding them, a new context action called Create matching checked operator will come in quite handy. It is available on every user-defined operator and generates a checked version of an operator right from the Alt + Enter menu in one click.
Raw strings
C# 11 improves the ability to embed other languages or text formats into C# code by introducing the concept of «raw» strings.
Rider has basic “raw” string support including compiler errors and correct parsing and color highlighting for «»» syntax, pairs of double quotes, and placeholders inside interpolated strings ( {{. }} syntax).
List patterns
Rider 2022.2 fully supports list patterns with error checking, code completion, and code analysis. We are still working to add code inspections to suggest using the list patterns in existing code and additional refactoring actions.
Rider for unreal engine
JetBrains Rider is a fast and powerful C# editor for Unity that runs on Windows, Mac, and Linux. With the unbeatable 2500+ smart code inspections and refactorings, Rider enhances your C# experience, letting you write error-proof code much faster.
Easy start with Unity
Rider has Unity support built in, and the very first time you open a Unity solution it will automatically configure Unity to use Rider as the default editor for C# scripts and shader files. Once done, double-clicking a C# script or shader asset will open the solution in Rider.
Control Unity editor
Thanks to the integrated two-way communication, you can switch into and out of Play mode, and pause and step a single frame without ever leaving Rider! The toolbar includes game view buttons Play, Pause, and Step, which correspond to the same buttons in Unity Editor and control the same behavior as Unity Editor does. A small Unity icon in the status bar will indicate whether Unity Editor is connected, refreshing, or in Play mode. Any changes applied in Rider in Edit mode will be instantly delivered to Unity Editor.
Coding hints
Rider provides top-notch code analysis for C#, and that includes Unity-specific code inspections and quick-fixes for them.
Debug Unity with ease
Rider makes it very easy to debug your C# scripts as they run in the Unity editor. Everything is already configured, and you just need to hit the Debug toolbar button, menu item or keyboard shortcut to attach the debugger to the running Unity editor. You can set breakpoints in the editor, step through your code, look at locals and watch values, and evaluate expressions.
With Rider, you can even debug the code that you don’t have debugging information for. Rider automatically decompiles external libraries on-the-fly, allowing you to debug the decompiled code, step into functions, set breakpoints, view and set locals and variables.
Run Unity tests
Rider allows you to run tests that interact with Unity’s API, and which can step through single frames, all from within Rider. And of course, you can explore the results of your Unity-specific tests, just like you would normal tests – you can filter by result, and click on stack traces to navigate to your code.
Unity console logs
The Unity Logs tool window with hyperlinked stack traces lets you explore the same events that are logged in the Unity editor console. It allows filtering by category (error, warning, or message), hides events based on when they were logged (in Play or Edit mode), and lets you easily navigate to any source file, class, method, or property mentioned in the log entry. Unity Logs clears its output automatically after every switch to Play mode.
Performance highlightings
Rider helps you write better-performing Unity C# code. To do this, it highlights expensive Unity APIs inside methods that get called every frame, like Update and coroutines. Rider even highlights calls to methods that indirectly use expensive Unity APIs!
Besides that, Rider has many Unity-specific performance inspections and appropriate quick-fixes. It is aware of code patterns that are poor performance and can suggest automatic fixes for them, such as using a different API or overload, or caching values.
Find Usages inside Unity files
Find Usages now includes Unity scenes, assets, and prefabs. If you search for a class or method used as an event handler, Rider shows where it’s used in your Unity files, grouped by type, component name, and parent game objects. Even better, double-clicking the item highlights the usage directly in the Unity Editor.
Pulling this information from Unity files also means that Rider highlights event handler methods as being implicitly used. The implicit usage highlights are turned into Code Vision links, so you can see at a glance what classes, methods, and fields are implicitly used by Unity. And clicking the link will find those usages, even inside Unity files.
Shader support
Rider also adds support for .shader files, with syntax highlighting, code folding, brace matching and more. Syntax errors in the ShaderLab sections are highlighted, todo comments are pulled into the To Do Explorer and color properties are highlighted, with a color picker for editing. Simple word completion is available throughout the file, including in Cg/HLSL blocks.
Explore Unity docs
Rider displays external documentation for Unity symbols. You can either click the icon from the Quick Documentation pop-up ( Ctrl Shift F1 if using the Visual Studio keymap) or use the View External Documentation action ( Shift F1 ) directly, to navigate to locally installed documentation, or to Unity’s hosted docs if they are not available locally.
Learn more about RiderFlow, a free scenery tool to build and manage your 3D space, for anyone who uses the Unity Editor – level designers, game designers, artists, and coders alike.
Free 30-day trial
Customers
“Having the right tool for the job is essential to compete in any market, games especially. At Yakuto each dev has a JetBrains Toolbox subscription, which we’ve found invaluable for productivity. We work mostly in C# on Macs. This used to mean a VM running ReSharper but with Rider, we’re native to one OS, which is awesome. Unity debugging is now seamless and the extensions add vital Unity-aware context. As a veteran of ReSharper, I feel completely at home in Rider: refactoring, solution-wide analysis, test runners, it’s all there. We couldn’t consider C# development without Rider.”
James Gratton
CTO, Yakuto
“Rider has quickly become the only IDE I want to use; for any UE4 or Unity programming task. It has saved countless hours through its intuitive workflows, and I cannot praise its P4 integration enough. When producers see the speed at which we can go from tasking to resolution, they are enamored with the product. Rider removes all the developer choke points, which prevent us from doing what we do best, code.”
“Rider is the best and only IDE that we use for Unity programming tasks. It saves a lot of time in our workflow, providing top-notch code analysis for C# with Unity-specific code inspections and quick-fixes. Similarly, Rider warns us if we try to use a new keyword to create a new instance of a class derived from MonoBehavior or ScriptableObject. Seamless debugging also helps a lot. Great tool for us!”
Rider for unreal engine
JetBrains Rider — быстрый и мощный редактор C# для Unity, который работает на Windows, Mac и Linux. Непревзойденное количество интеллектуальных механизмов инспекции кода и рефакторинга (более 2500), включенных в Rider, позволяют писать безошибочный код на C# гораздо быстрее.
Легкая интеграция с Unity
В Rider уже встроена поддержка Unity. Когда вы впервые откроете решение Unity, Rider будет автоматически установлен в качестве стандартного редактора для файлов шейдеров и сценариев C#. Впоследствии при двойном щелчке по файлу шейдера или сценарию C# они будут открываться в Rider.
Управление редактором Unity
Благодаря интегрированному механизму двусторонней связи вы можете входить или выходить из режима Play, а также приостанавливать его и продолжать выполнение покадровыми шагами, при этом не покидая Rider. На панели инструментов есть кнопки просмотра игры Play, Pause и Step, которые работают так же, как в редакторе Unity. Небольшая иконка Unity в строке состояния показывает состояние редактора Unity: подключен, обновляет состояние или находится в режиме Play. Любые изменения, внесенные в Rider в режиме Edit, будут сразу же переданы в редактор Unity.
Советы по коду
Rider предоставляет высококлассный механизм анализа кода C# и содержит как специальные инспекции кода для Unity, так и необходимые быстрые исправления.
Удобная отладка Unity
Rider позволяет без проблем осуществлять отладку ваших скриптов C#, когда они выполняются в редакторе Unity. Все необходимые параметры уже настроены, вам нужно лишь нажать сочетание клавиш, команду меню или кнопку Debug на панели инструментов, чтобы подключить отладчик к запущенному редактору Unity. В редакторе можно устанавливать точки останова, исполнять код пошагово, просматривать значения локальных переменных, отслеживать определенные значения, а также вычислять выражения.
С помощью Rider можно выполнять даже отладку кода, для которого нет отладочной информации. Rider автоматически декомпилирует внешние библиотеки, позволяя выполнять отладку декомпилированного кода, входить во вложенные функции, устанавливать точки останова, просматривать и устанавливать локальные и другие переменные.
Запуск тестов Unity
Прямо из Rider можно запускать тесты, взаимодействующие с Unity API и способные выполнять код покадрово. Ну и конечно же, изучать результаты тестов Unity можно так же, как и с обычными тестами, — например, фильтровать по результату и щелкать по трассировкам стека для перемещения по коду.
Журналы консоли Unity
Новое окно инструмента Unity Logs с гиперссылками на трассировки стека позволяет просматривать события, которые регистрируются в консоли редактора Unity. Оно позволяет фильтровать события по категории (ошибка, предупреждение или сообщение), скрывать их в зависимости от того, когда они были зафиксированы (в режиме Play или Edit), а также с легкостью переходить к любому исходному файлу, классу, методу или свойству, упомянутым в записи журнала. Окно Unity Logs автоматически очищается после каждого перехода в режим Play.
Подсветка проблем производительности
Rider позволяет писать более производительный C#-код для Unity. Это достигается путем подсветки ресурсоемких API Unity внутри методов, которые вызываются каждый кадр, таких как Update и корутины. Rider подсвечивает вызовы даже тех методов, которые используют ресурсоемкие API Unity неявным образом.
Помимо этого, Rider оснащен множеством специально предназначенных для Unity инспекций и соответствующих быстрых исправлений. Он способен распознавать паттерны низкопроизводительного кода и может рекомендовать для них автоматические исправления, например использовать перегрузку, кэширование значений или альтернативный API.
Поиск вхождений в файлах Unity
Теперь Find Usages включает в себя сцены, ресурсы и префабы Unity. Если вы ищете класс или метод, используемый в качестве обработчика событий, Rider показывает, где он используется в ваших файлах Unity, группируя такие места по типу, наименованию компонента и родительским игровым объектам. Более того, при двойном щелчке на элементе его вхождения подсвечиваются непосредственно в редакторе Unity.
Теперь при извлечении этой информации из файлов Unity Rider корректно подсвечивает методы обработчика событий как неявно используемые. Подсветка неявного использования преобразуется в ссылки Code Vision, что позволяет вам сразу видеть, какие классы, методы и поля неявно используются Unity. При нажатии на такую ссылку будут найдены все вхождения элемента, в том числе в файлах Unity.
Поддержка шейдеров
Rider теперь также поддерживает файлы .shader, обеспечивая подсветку синтаксиса, сворачивание кода, выделение парных скобок и многое другое. Подсвечиваются синтаксические ошибки в разделах ShaderLab, комментарии типа todo упорядочиваются в окне To Do Explorer, подсветкой также отмечаются цветовые свойства, которые можно редактировать с помощью специального инструмента выбора цвета. Автозаполнение простых слов доступно в рамках всего файла, в том числе в блоках кода Cg/HLSL.
Просмотр документации Unity
Узнайте подробнее о RiderFlow — бесплатном инструменте для создания 3D-сцен и управления ими. Он предназначен для всех пользователей редактора Unity — дизайнеров уровней, гейм-дизайнеров, художников и программистов.
Бесплатная пробная версия на 30 дней
Клиенты
«Наличие подходящего инструментария исключительно важно для сохранения конкурентоспособности на любом рынке — и особенно в сфере игр. Каждый разработчик в Yakuto имеет подписку на JetBrains Toolbox — важность этого пакета для продуктивной работы, с нашей точки зрения, невозможно переоценить. Основная наша работа ведется в C# на компьютерах Mac. Из-за этого раньше нам требовалась виртуальная машина с ReSharper, но благодаря Rider мы работаем с одной ОС в native-режиме, и это просто здорово. Отладка Unity стала бесшовным процессом, а расширения позволили установить важную контекстуальную связь с Unity. Будучи опытным пользователем ReSharper, я чувствую себя в Rider как дома: рефакторинг, глобальный анализ решения, инструменты запуска тестов — все это у меня под рукой. Мы даже не можем себе представить, как вели бы разработку на C# без Rider».
Джеймс Грэттон
Технический директор, Yakuto
«Rider быстро стала единственной IDE, которую хочется использовать для любых задач разработки на UE4 или Unity. Я экономлю очень много времени благодаря понятным рабочим процессам и доволен интеграцией с P4. Когда руководители видят, как быстро мы движемся от постановки задач к решению, они приходят в восторг от продукта. Rider устраняет все затруднения, мешающие нам делать то, что мы умеем лучше всего, — писать код».
«Для разработки на Unity мы используем только Rider. Эта IDE экономит кучу времени, превосходно анализируя C#-код и предлагая инспекции и быстрые исправления, специфичные для Unity. Rider всегда предупредит, если мы попробуем использовать ключевое слово new для создания экземпляра класса, производного от MonoBehavior или ScriptableObject. Также нам здорово помогают возможности отладки. Rider – отличный инструмент!»
JetBrains/EzArgs
Use Git or checkout with SVN using the web URL.
Work fast with our official CLI. Learn more.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
This branch is 49 commits ahead of DecoyRS:main.
Open a pull request to contribute your changes upstream.
Latest commit
Git stats
Files
Failed to load latest commit information.
README.md
The EzArgs plugin provides option to pass arguments to C++ run configurations in convenient matter by simply writing them in dropdown box on the toolbar. This plugin duplicates feature of UnrealVS plugin: Command Line Arguments NB: Works only with Rider for Unreal Engine at this moment.
Using IDE built-in plugin system:
Preferences > Plugins > Marketplace > Search for «EzArgs» > Install Plugin
Download the latest release and install it manually using Preferences > Plugins > ⚙️ > Install plugin from disk.
About
Plugin for Rider for Unreal Engine to pass arguments to C++ run configurations in convenient matter
Rider for unreal engine
На прошлой неделе, после релизов версии 2020.1 для всех наших десктопных продуктов случилось еще одно большое событие — мы открыли публичный доступ к пробной версии Rider for Unreal Engine. На данный момент это отдельный продукт, версия нашей среды для разработки Rider, но с поддержкой C++ и Unreal Engine.
Так, стоп! Среда разработки на C++. Еще одна?! Давайте разбираться по порядку.
Начнем с небольшой истории. Несколько лет назад мы собрали всех, кто в JetBrains делает инструменты для C++, чтобы обсудить, насколько пользователям тяжело ориентироваться в многообразии наших предложений. Ведь есть и CLion, и ReSharper C++, и поддержка для C++ в AppCode. Через несколько часов обсуждений пришли к таким выводам:
В итоге, мы решили унифицировать пользовательский опыт в наших инструментах для C++, но сошлись на том, что подход делать разные инструменты (пусть и с общим ядром или на общей платформе) для разных областей разработки ПО — правильный. На практике это выглядит следующим образом:
Заходя ко многим нашим пользователям из области разработки игр, мы заметили, что у многих студий нет четкого разделения — делать игры только на Unity или только на Unreal Engine. Сегодня у них игра на одной технологии, а завтра — на другой, или одна команда использует Unreal Engine, а другая Unity или вообще свой кастомный движок. При этом понятно, что разработчикам и компаниям в целом очень не нравится “прыгать” между разными средами разработки. И вот тут-то мы и решили, что, если мы смогли сделать Rider успешным для Unity, то мы можем пойти дальше и сделать его успешным в целом для мира игровой разработки. Так родилась идея Rider как универсальной среды разработки для Game Dev.
Из чего состоит Rider for Unreal Engine
Дальнейшее развитие событий довольно очевидно для тех, кто знаком с технологией, на которой построен Rider. Rider состоит из front-end части на базе платформы IntelliJ и back-end части на базе ReSharper. Все языковая поддержка работает на back-end. Поэтому мы просто подключили уже имеющуюся в ReSharper C++ поддержку C++ и Unreal Engine к Rider по той же технологии. Из специфичного пришлось дополнительно реализовать:
Стоит отметить, что сейчас превью Rider for Unreal Engine доступно только на Windows, открывает файлы .sln и полагается на сборку компилятором от Microsoft. В будущем, к моменту релиза, мы постараемся расшириться до всех трех платформ и реализовать поддержку .uproject как основной проектной модели.
Отладчик на основе LLDB
Значительная часть разработки игр происходит сейчас на платформе Windows и в рамках тулчейна от Microsoft. Если посмотреть на то, какие инструменты для отладки существуют для кода, который скомпилирован с помощью компилятора Microsoft Visual C++, то мы увидим:
Новый отладчик еще, безусловно, сыроват, в нем пока случаются и существенные проблемы, и замедления. Но мы надеемся довести его до ума к релизу.
Поддержка C++
Повторю — вся функциональность языковой поддержки из ReSharper C++ теперь доступна в Rider for Unreal Engine Preview. Она включает:
Поддержка HLSL, C#, диалектов uproject/uplugin
В этом году мы начали работать над поддержкой языка для написания шейдеров HLSL в ReSharper C++, и она сразу попала и в раннее превью Rider for Unreal Engine. Поддержка включает в себя подсветку синтаксиса, тултипы с документацией, подсказки имен параметров и типов, действия навигации, автодополнение, поддержка виртуальных путей файлов, и даже рефакторинги.
Интеграция с Blueprints
Файлы Blueprints представляют собой данные в бинарном формате, редактирование которых происходит как правило в визуальном редакторе внутри Unreal Editor. Объекты в этих файлах наследуются от классов на C++, переопределяют проперти из C++ части игры. И вот тут Rider for Unreal Engine является той уникальной средой разработки, которая зачитывает все необходимые файлы Blueprints и показывает эти связи в редакторе кода на C++:
При этом, если поменять, например, значение свойства в редакторе Unreal Engine и сохранить asset, то значение тут же автоматически обновится и в Rider (у нас повешены watchers на изменение asset-файлов):
Без сохранения файлов, мы надеемся, это тоже скоро заработает (подготовка к этому сейчас ведется в плагине UnrealLink).
Вызов поиска использований (Find usages) включает не только использования в коде на C++, но и в файлах Blueprints. Двойной клик по таким использованиям открывает Unreal Editor.
Понимание механизма рефлексии UE4
Рефлексия в Unreal Engine реализована с помощью специальных макросов (UCLASS, UFUNCTION, UPROPERTY и др). Rider знает, что параметры таких макросов — это не просто текст. Парсер языка C++ в ReSharper C++ и Rider умеет действительно “понимать” значение этих макросов, даже не запуская Unreal Header Build tool (то есть еще до того, как реально сгенерируется содержимое файлов .generated.h).
Кстати, говоря про файлы .generated.h, ReSharper C++ и Rider знают, что автоматически добавляемые пропущенные директивы #include надо вставлять строго до подключения файлов .generated.h. А также учитывают эти генерируемые файлы в рефакторингах переименования.
Возвращаясь к механизму рефлексии, стоит сказать, что спецификаторы рефлексии — это в ReSharper C++ и Rider тоже не просто текст. Для них есть автодополнение и подсказки документации:
Подсказки документации доступны и для самих макросов рефлексии.
Поддержка вызовов удаленных процедур (RPC) в действиях навигации и генерации кода
Знание правил именования Unreal Engine 4
ReSharper C++ и Rider осведомлены об официальных правилах именования в коде Unreal Engine. Эти правила используются средой разработки во всех действиях по работе с кодом, вроде генерации getters и setters или рефакторинге добавления переменной (Introduce Variable). А главное, что существует проверка кода Inconsistent UE4 naming inspections и соответствующее быстрое исправление, которое вызовет рефакторинг Rename и переименует все использования имени, не соответствующего правилам.
Производительность редактора
Мы довольно давно делаем поддержку разработки на Unreal Engine в ReSharper C++ и, конечно, видим, что производительность редактора является основной жалобой. Rider в силу особенностей архитектуры избавлен от многих проблем с производительностью, которые присутствуют в ReSharper (там они есть отчасти из-за ограничений студии на 32-разрядные процессы, в рамках которых происходит работа ReSharper, но не только).
Помимо этого, мы специально настраиваем работу IDE для улучшения производительности на Unreal Engine. Мы сначала индексируем код пользовательской игры, мгновенно включая все умные действия редактора на пользовательском коде. А индексация уже кода самого движка происходит после этого в фоне. Есть и еще несколько дополнительных опций по управлению индексацией:
В результате, те, кто уже начал пользоваться Rider for Unreal Engine, отзываются о производительность редактора очень положительно! А мы уверены, что можем сделать еще лучше.
Видеодемо и еще раз о том, как получить доступ
Rider for unreal engine
JetBrains Rider is a fast and powerful C# editor for Unity that runs on Windows, Mac, and Linux. With the unbeatable 2500+ smart code inspections and refactorings, Rider enhances your C# experience, letting you write error-proof code much faster.
Easy start with Unity
Rider has Unity support built in, and the very first time you open a Unity solution it will automatically configure Unity to use Rider as the default editor for C# scripts and shader files. Once done, double-clicking a C# script or shader asset will open the solution in Rider.
Control Unity editor
Thanks to the integrated two-way communication, you can switch into and out of Play mode, and pause and step a single frame without ever leaving Rider! The toolbar includes game view buttons Play, Pause, and Step, which correspond to the same buttons in Unity Editor and control the same behavior as Unity Editor does. A small Unity icon in the status bar will indicate whether Unity Editor is connected, refreshing, or in Play mode. Any changes applied in Rider in Edit mode will be instantly delivered to Unity Editor.
Coding hints
Rider provides top-notch code analysis for C#, and that includes Unity-specific code inspections and quick-fixes for them.
Debug Unity with ease
Rider makes it very easy to debug your C# scripts as they run in the Unity editor. Everything is already configured, and you just need to hit the Debug toolbar button, menu item or keyboard shortcut to attach the debugger to the running Unity editor. You can set breakpoints in the editor, step through your code, look at locals and watch values, and evaluate expressions.
With Rider, you can even debug the code that you don’t have debugging information for. Rider automatically decompiles external libraries on-the-fly, allowing you to debug the decompiled code, step into functions, set breakpoints, view and set locals and variables.
Run Unity tests
Rider allows you to run tests that interact with Unity’s API, and which can step through single frames, all from within Rider. And of course, you can explore the results of your Unity-specific tests, just like you would normal tests – you can filter by result, and click on stack traces to navigate to your code.
Unity console logs
The Unity Logs tool window with hyperlinked stack traces lets you explore the same events that are logged in the Unity editor console. It allows filtering by category (error, warning, or message), hides events based on when they were logged (in Play or Edit mode), and lets you easily navigate to any source file, class, method, or property mentioned in the log entry. Unity Logs clears its output automatically after every switch to Play mode.
Performance highlightings
Rider helps you write better-performing Unity C# code. To do this, it highlights expensive Unity APIs inside methods that get called every frame, like Update and coroutines. Rider even highlights calls to methods that indirectly use expensive Unity APIs!
Besides that, Rider has many Unity-specific performance inspections and appropriate quick-fixes. It is aware of code patterns that are poor performance and can suggest automatic fixes for them, such as using a different API or overload, or caching values.
Find Usages inside Unity files
Find Usages now includes Unity scenes, assets, and prefabs. If you search for a class or method used as an event handler, Rider shows where it’s used in your Unity files, grouped by type, component name, and parent game objects. Even better, double-clicking the item highlights the usage directly in the Unity Editor.
Pulling this information from Unity files also means that Rider highlights event handler methods as being implicitly used. The implicit usage highlights are turned into Code Vision links, so you can see at a glance what classes, methods, and fields are implicitly used by Unity. And clicking the link will find those usages, even inside Unity files.
Shader support
Rider also adds support for .shader files, with syntax highlighting, code folding, brace matching and more. Syntax errors in the ShaderLab sections are highlighted, todo comments are pulled into the To Do Explorer and color properties are highlighted, with a color picker for editing. Simple word completion is available throughout the file, including in Cg/HLSL blocks.
Explore Unity docs
Rider displays external documentation for Unity symbols. You can either click the icon from the Quick Documentation pop-up ( Ctrl Shift F1 if using the Visual Studio keymap) or use the View External Documentation action ( Shift F1 ) directly, to navigate to locally installed documentation, or to Unity’s hosted docs if they are not available locally.
Learn more about RiderFlow, a free scenery tool to build and manage your 3D space, for anyone who uses the Unity Editor – level designers, game designers, artists, and coders alike.
Free 30-day trial
Customers
“Having the right tool for the job is essential to compete in any market, games especially. At Yakuto each dev has a JetBrains Toolbox subscription, which we’ve found invaluable for productivity. We work mostly in C# on Macs. This used to mean a VM running ReSharper but with Rider, we’re native to one OS, which is awesome. Unity debugging is now seamless and the extensions add vital Unity-aware context. As a veteran of ReSharper, I feel completely at home in Rider: refactoring, solution-wide analysis, test runners, it’s all there. We couldn’t consider C# development without Rider.”
James Gratton
CTO, Yakuto
“Rider has quickly become the only IDE I want to use; for any UE4 or Unity programming task. It has saved countless hours through its intuitive workflows, and I cannot praise its P4 integration enough. When producers see the speed at which we can go from tasking to resolution, they are enamored with the product. Rider removes all the developer choke points, which prevent us from doing what we do best, code.”
“Rider is the best and only IDE that we use for Unity programming tasks. It saves a lot of time in our workflow, providing top-notch code analysis for C# with Unity-specific code inspections and quick-fixes. Similarly, Rider warns us if we try to use a new keyword to create a new instance of a class derived from MonoBehavior or ScriptableObject. Seamless debugging also helps a lot. Great tool for us!”
What’s New in Rider
Rider 2022.2 includes overall performance improvements, with optimizations to the startup performance and the solution-wide analysis engine. The support for C# 11 has been extended to cover required members, checked user-defined operators, raw strings, and list patterns. In this release, you can apply the same window layout settings to all of the solutions you are working on. Also, the Unreal Engine support has two new actions, New Unreal Module and New Unreal Plugin, and the ability to specify symbol servers to get library symbols when debugging.
Free 30-day trial available
Performance
.NET 6 runtime for the Windows backend
Please note that Rider doesn’t run CrossGen during installation, but only when you first launch Rider. This means that the first launch can take slightly longer, but all subsequent launches will be faster.
“Cold startup” improvements
Solutions start up faster when you open them for the very first time (“cold startup”) and Rider has no information about them. On cold startup, all the projects are loaded twice: first the IDE loads the projects to get the information about each one, then it runs “NuGet restore”, and then, when everything is ready, it loads the projects a second time.
We’ve optimized the first project-loading stage so that Rider fetches only the information it needs for restoring NuGet packages. Our internal metrics show that the new implementation is approximately 40% faster.
Solution-wide analysis optimizations
In this release, we’ve greatly optimized the memory usage of Rider with the Solution-Wide Analysis mode turned ON, both in terms of memory traffic (number of memory allocations) and in terms of memory consumption.
The Solution-Wide Analysis engine uses memory to store the list of issues in the solution and to store the type/member usage information to perform solution-wide usage reporting (code inspections like «public member is never used»). The usage data is «hot», meaning it needs to be constantly updated while you are editing the code, and can’t be off-loaded to the disk. This can consume a significant amount of memory if your solution contains lots of types and type members. We reviewed the data stored in memory and found patterns that allowed us to deduplicate/normalize the data. We also utilized specialized collection types to further reduce the working set. These optimizations resulted in a 5-10x memory consumption improvement and faster Solution-Wide Analysis loading.
This release brings support for several more features from the C# 11 preview.
Required Members
We’ve added a new Add initializer for required members quick-fix for cases where you’ve created a type’s object but haven’t initialized the members yet. It automatically generates all of the missing required members for your object – you just need to fill in the members’ values with meaningful data.
Checked user-defined operators
Checked user-defined operators help developers create user-defined operators that operate on types where arithmetic overflow is a valid concept. Rider shows all of the compiler errors and warnings. To fully support checked user-defined operators, Rider has a couple more inspections and a context action.
We’ve updated the Unchecked/checked context is redundant inspection to take into account checked operators when they are used in this context.
If you have a set of user-defined operators and some of them already have a checked version, Rider will help you propagate checked operators to the whole set. A new inspection called The operator does not have a matching checked operator while other operators do will notify you which operators don’t have a checked operator yet and suggest a quick-fix to generate the checked versions automatically.
If you haven’t used checked operators in your codebase yet, but want to start adding them, a new context action called Create matching checked operator will come in quite handy. It is available on every user-defined operator and generates a checked version of an operator right from the Alt + Enter menu in one click.
Raw strings
C# 11 improves the ability to embed other languages or text formats into C# code by introducing the concept of «raw» strings.
Rider has basic “raw” string support including compiler errors and correct parsing and color highlighting for «»» syntax, pairs of double quotes, and placeholders inside interpolated strings ( {{. }} syntax).
List patterns
Rider 2022.2 fully supports list patterns with error checking, code completion, and code analysis. We are still working to add code inspections to suggest using the list patterns in existing code and additional refactoring actions.
JetBrains Rider — теперь для Unreal Engine
Комментарии 42
Мы редко делаем что-то на зло или вопреки) Просто рынок кажется интересным. К тому же Epic Games с нами по техническим вопросам активно сотрудничают.
Ну это не совсем классическая «подписочная» модель насколько я понял их объяснения. Покупается текущая версия и возможность обновить ее в течение какого-то срока. После истечения срока купленной версией можно пользоваться без проблем она не превратиться в тыкву что ожидается от обычных подписок. То есть это обычная покупка софта и оплата какого срока его поддержки.
Они что-то поменяли?
Я с вами согласен как пользователь, потому что тоже хочу платить меньше и один раз. Однако, количество людей, и разработчиков тем более — конечно.
Когда какая-то критическая масса людей/компаний купит лицензии на продукт и будет им пользоваться (зарабатывая, между прочим, деньги не один раз, а продолжительно), на какие средства разработчики JB будут существовать, обновлять продукты, кушать в перерывах?
Стоит учитывать, что модель подписки JB довольно удобная по сравнению с Adobe, Miscrosoft, Unity опять же и прочими ребятами.
Они не вставляют палки в колёса в нормальной рутине и вы можете и оффлайн пользоваться с активной подпиской довольно долгое время. Вы можете пользоваться предыдущей версией вообще без ограничений, даже когда больше не оплачиваете. Если не нужны новые фичи — почему бы и нет.
Это разительно отличается от дичайших практик, когда некоторые разработчики вставляют палки в колёса, и без постоянного доступа к интернету инструмент превращается в тыкву, несмотря на то, что вы за него платите деньги, а те, кто тоже самое качают на торрентах таких проблем не имеют. Есть и другие подобные моменты, и у JB в этом плане подписки удобнее хотя бы тем, что не мешают работать.
К тому же саппорт довольно адекватный, когда чтобы что-то зарепортить не приходится пробираться через миллион деревянных агентов поддержки.
ReSharper C++ for Unreal Engine
The Perfect Game Development Companion
A Visual Studio extension
for Unreal Engine developers
Enjoy smart coding assistance
Code completion, code generation, and navigation all work with a deep knowledge of Unreal Engine. ReSharper C++ boasts a first-class C++ parser, as well as remote procedure calls, HLSL support, and a thorough understanding of Unreal Engine reflection mechanisms.
Boost code quality
Catch potential issues, with hundreds of general C++ inspections and dozens of Unreal Engine-specific checks. ReSharper C++ analyzes files while you edit them, detecting errors and possible problems, and suggesting quick-fixes to improve your code.
Adhere to code style
Create a code base that follows the common style and thus is easily maintainable. ReSharper C++ accommodates Unreal Engine naming convention across all its actions and makes sure any inconsistencies are caught.
UnrealHeaderTool Inspections
Take advantage of the seamless integration of UnrealHeaderTool and catch all the issues related to Unreal Engine macros and metadata, before you even compile your code. ReSharper C++ displays errors and warnings right in the editor so you can fix them quickly and continue developing glitch-free games.
Unreal Engine Reflection Mechanism
Benefit from support for the Unreal Engine reflection mechanism. ReSharper C++ understands reflection macros and offers completion and documentation for reflection specifiers inside them. This works without you having to wait for the whole project to be parsed.
High-Level Shading Language
Become more productive with the built-in HLSL shader support, which includes control-flow analysis in HLSL, highlighting, navigation and tooltips, smart suggestions in completion lists, and even refactorings.
Remote Procedure Calls
When working with Unreal Engine based games, ReSharper C++ identifies Unreal Engine Remote Procedure Calls and speeds up your development process with RPC-aware navigation and code generation actions.
Get ReSharper C++ now
A Visual Studio extension for Unreal Engine trusted by game developers all over the world.
Slate UI Framework (UE4/5) — standalone application
Slate is written entirely in C++ and runs on all Unreal Engine 4 supported platforms. It is render interface agnostic, which allows it to be used in standalone desktop and mobile applications that do not depend on the game engine.
Gerke Max Preussner
1. Quick start
Для начала потребуется:
К каждому шагу я прикрепил ссылки на официальную документацию от EpicGames. Если вы читаете эту статью, то вероятнее всего GitHub аккаунт у вас уже есть и, возможно, есть доступ к коду движка. Если это так, то можно пропустить некоторые пункты и не заглядывать под спойлеры.
На всякий случай продублирую шаги по получению доступа к коду UE
Подробно и со скриншотами весь процесс описан здесь: https://www.unrealengine.com/en-US/ue4-on-github
Создайте аккаунт на GitHub (если его нет)
Создайте аккаунт на UnrealEngine.com (если его нет) и авторизуйтесь на сайте.
Откройте панель управления учётной записью UnrealEngine.com. Для этого наведите мышкой на свое имя пользователя (в правом верхнем углу сайта) и в раскрывающемся меню выберите пункт «Personal«
В панели управления выберите раздел «Connections«
После открытия меню «Connections» выберите вкладку «Accounts», а затем нажмите кнопку «Connect» под иконкой GitHub
Выберите лицензионное соглашение End User License Agreement (EULA) которое вам подходит, прочтите условия, а затем нажмите кнопку «Link Account«
Для связки аккаунтов EpicGames и GitHub, в открывшемся окне нажмите кнопку «Authorize EpicGames«
GitHub отправит вам письмо на электронный ящик, указанный при регистрации, с приглашением присоединиться к организации EpicGames на GitHub. При получении письма, примите это приглашение, нажав на кнопку «Join EpicGames«, для завершения связки аккаунтов. Вы получите электронное письмо от EpicGames, подтверждающее, что ваши учётные записи были успешно связаны.
. вам может понадобится около 100 Гигабайт свободного места на жестком диске. Если вы планируете и дальше работать с исходниками движка, и не страдать от бесконечного ожидания во время сборки/пересборки проектов, я настоятельно рекомендую освободить это место на SSD диске.
Подробно всё описано в этой инструкции от EpicGames, но своими словами добавлю:
Скопировать ссылку на репозиторий
* В качестве альтернативы, вы можете выкачать весь исходный код в zip архиве, но я рекомендую пользоваться git.
В зависимости от того, каким Git клиентом вы пользуетесь, клонируйте локальную копию репозитория себе на жёсткий диск.
Дождитесь завершения клонирования репозитория
git checkout ue5-early-access
Дальнейшие шаги аналогичны как для UE4, так и для UE5, за исключением мелких различий.
Выполнение Setup.bat
Setup.sh на Linux
Если не вдаваться в подробности, то на этом шаге скрипты в движке скачают и установят различные зависимости, необходимые для генерации и сборки проектов и зарегистрируют движок в системе.
GenerateProjectFiles.bat
Но отдельно стоит упомянуть, что лучшей альтернативной IDE для работы с Unreal Engine для пользователей Windows на данный момент является Rider for Unreal Engine от команды JetBrains. Если вы ещё не участвуете в программе раннего доступа, то рекомендую это сделать. Об этой IDE вы можете прочитать в статье «JetBrains Rider — теперь для Unreal Engine» от @anastasiak2512
Generate VS Code workspace
GenerateProjectFiles.sh on Linux for VS Code
Кстати, GeneratedProjectFiles скрипт может принимать следующие параметры:
JetBrains Rider — теперь для Unreal Engine
Comments 42
Мы редко делаем что-то на зло или вопреки) Просто рынок кажется интересным. К тому же Epic Games с нами по техническим вопросам активно сотрудничают.
Ну это не совсем классическая «подписочная» модель насколько я понял их объяснения. Покупается текущая версия и возможность обновить ее в течение какого-то срока. После истечения срока купленной версией можно пользоваться без проблем она не превратиться в тыкву что ожидается от обычных подписок. То есть это обычная покупка софта и оплата какого срока его поддержки.
Они что-то поменяли?
Я с вами согласен как пользователь, потому что тоже хочу платить меньше и один раз. Однако, количество людей, и разработчиков тем более — конечно.
Когда какая-то критическая масса людей/компаний купит лицензии на продукт и будет им пользоваться (зарабатывая, между прочим, деньги не один раз, а продолжительно), на какие средства разработчики JB будут существовать, обновлять продукты, кушать в перерывах?
Стоит учитывать, что модель подписки JB довольно удобная по сравнению с Adobe, Miscrosoft, Unity опять же и прочими ребятами.
Они не вставляют палки в колёса в нормальной рутине и вы можете и оффлайн пользоваться с активной подпиской довольно долгое время. Вы можете пользоваться предыдущей версией вообще без ограничений, даже когда больше не оплачиваете. Если не нужны новые фичи — почему бы и нет.
Это разительно отличается от дичайших практик, когда некоторые разработчики вставляют палки в колёса, и без постоянного доступа к интернету инструмент превращается в тыкву, несмотря на то, что вы за него платите деньги, а те, кто тоже самое качают на торрентах таких проблем не имеют. Есть и другие подобные моменты, и у JB в этом плане подписки удобнее хотя бы тем, что не мешают работать.
К тому же саппорт довольно адекватный, когда чтобы что-то зарепортить не приходится пробираться через миллион деревянных агентов поддержки.
Источники:
- http://www.jetbrains.com/help/rider/Unreal_Engine__UnrealLink_RiderLink.html
- http://www.jetbrains.com/rider/
- http://habr.com/ru/company/JetBrains/blog/500046/
- http://www.unrealengine.com/marketplace/en-US/product/rider-source-code-access
- http://blog.jetbrains.com/dotnet/2021/12/16/rider-unreal-engine-linux/
- http://blog.jetbrains.com/dotnet/2020/04/22/rider-unreal-engine-eap/
- http://www.jetbrains.com/rider/whatsnew/
- http://blog.jetbrains.com/dotnet/2020/04/22/rider-unreal-engine-eap/?_gl=1*azv06v*_ga*NjE2NjE3ODU0LjE2MzQ4MDE3NTM.*_ga_V0XZL7QHEB*MTYzNjM1ODk5OC41LjEuMTYzNjM2MTE2OC4w
- http://habr.com/ru/company/JetBrains/blog/585894/
- http://blog.jetbrains.com/dotnet/2021/04/22/rider-for-ue-2021-1-1-mac-build-support-for-uproject-ezargs/
- http://blog.jetbrains.com/dotnet/2022/01/25/unreal-engine-support-lands-in-rider/
- http://blog.jetbrains.com/dotnet/2021/10/06/testing-with-rider-for-unreal-engine/
- http://blog.jetbrains.com/dotnet/2020/12/23/rider-for-ue-2020-3-2-preview/
- http://blog.jetbrains.com/dotnet/2021/06/25/rider-for-unreal-engine-update-debugger-natvis/
- http://www.jetbrains.com/help/rider/Unreal_Engine__Code_Analysis.html
- http://www.jetbrains.com/help/rider/Unreal_Engine__Debugger.html
- http://blog.jetbrains.com/dotnet/2021/05/31/rider-unreal-engine-5/
- http://blog.jetbrains.com/dotnet/2020/11/26/rider-for-ue-2020-3-preview/
- http://www.programmersought.com/article/52414391790/
- http://temofeev.ru/info/articles/jetbrains-rider-teper-dlya-unreal-engine/
- http://github.com/JetBrains/RiderSourceCodeAccess
- http://www.jetbrains.com/help/rider/Reference__Options__Languages__CPP__Unreal_Engine.html
- http://habr.com/en/company/JetBrains/blog/500046/comments/
- http://habr.com/ru/company/JetBrains/blog/500046/comments/
- http://www.jetbrains.com/lp/dotnet-unity/
- http://github.com/JetBrains/UnrealLink
- http://blog.jetbrains.com/clion/2016/10/clion-and-ue4/
- http://www.jetbrains.com/rider/whatsnew/2020-3/
- http://blog.jetbrains.com/dotnet/2022/04/19/rider-2022-1/
- http://blog.jetbrains.com/dotnet/2022/08/02/rider-2022-2-released/
- http://www.jetbrains.com/rider/?form=MY01SV&OCID=MY01SV
- http://www.jetbrains.com/rider/whatsnew/2021-2/
- http://blog.jetbrains.com/dotnet/2021/11/09/wargaming-uses-rider-for-unreal-engine-to-develop-its-new-game/
- http://github.com/JetBrains/UnrealLink/issues/23
- http://www.jetbrains.com/help/rider/Unreal_Engine__Create_Entity.html
- http://www.unrealcommunity.wiki/setting-up-visual-studio-for-unreal-engine-hgkklk2i
- http://www.jetbrains.com/rider/?msclkid=b266b477a4351b3d0fd6d5c42f5d447a
- http://www.jetbrains.com/rider/whatsnew/2020-2/
- http://www.jetbrains.com/help/rider/Unreal_Engine__EzArgs.html
- http://www.jetbrains.com/rider/?msclkid=0023d3367e941544be82b1322f5d779c
- http://www.jetbrains.com/rider/whatsnew/2022-2/
- http://www.jetbrains.com/lp/dotnet-unity/?rdt_cid=3492878548115496229
- http://www.jetbrains.com/ru-ru/lp/dotnet-unity/
- http://github.com/JetBrains/EzArgs
- http://3-info.ru/post/14043
- http://www.jetbrains.com/lp/dotnet-unity/?msclkid=b3d5b277366f138f18b4d2dd72a76a1c
- http://www.jetbrains.com/rider/whatsnew/?blog=
- http://habr.com/ru/company/JetBrains/blog/500046/comments/?mobile=no
- http://www.jetbrains.com/lp/resharper-cpp-unreal-engine/
- http://habr.com/ru/post/591135/
- http://habr.com/en/company/JetBrains/blog/500046/comments/?mobile=no