In this position, your primary focus will be to enhance the integration with the Unity Engine in JetBrains Rider, working closely with our team.
All members of our team are passionate about game development and tooling, and our primary goal is to enhance the game development process, infuse it with more enthusiasm, introduce quality-of-life improvements, and implement game-changing innovations.
Thus, in Rider, you can discover cool features such as:
Advanced C# support with Unity-specific inspections and code completion
Understanding Unity assets and how they are connected with C# code
Code generation and compilation
Debugger enhancement
Integrations with Unity Editor - control play mode directly from Rider and much more
As mentioned above, we are exploring various directions to enhance the quality of life for our customers. As a result, we are currently looking to bring on several interns and are ready to propose the following tasks:
C# Code generation and compilation: Our feature-rich code insight support saves customers substantial time when creating and modifying code, making the process far more enjoyable. However, without the ability to quickly apply changes, development can still be challenging. That’s why we've introduced seamless code generation, on-the-fly compilation, and hot reload capabilities. These features accelerate the development cycle, allowing developers to instantly see the results of their changes without restarting or rebuilding their entire project.
Hot reload in Rider will address this issue. Additionally, you will be working with Rider's debugging UI to make it suitable for live patches. (C++, Kotlin)
Extract Rider built-in asset database to the external process We have developed our own solution to collect useful information from Unity assets as part of Rider Backend. Due to performance reasons and possibility to reuse our database in external solutions (e.g RiderFlow plugin for Unity) we are interested in extracting the database to the external process.
During the internship you will (C#):
Extract current database to external process
Implement persistent storage
Setup communication between external process and Rider with our own custom protocol
Scripting languages (Lua and GDScript) While engines are primary developed with C++ or C# tons of logic are written with scripting languages. We are interested in providing code insight support (code analysis, code completion, typing assists, integration with primary language) for scripting languages.
For Godot engine we are going to provide GDScript language support, for custom engines we are interested in Lua language support.
During the internship we are going to experiment in two ways (C# / Kotlin):
Use LSP to provide support for scripting languages
Develop native Rider/Intellij support for scripting languages
Passion to develop tooling in the game dev area.
Excellent knowledge of algorithms and data structures
Familiarity with Unity engine or other game engines.
Knowledge of C# / C++ / Kotlin (depends on task)