Rider: native solution and engine C# tools
Generation-only, solution selection, native/managed debugging and diagnosis.
This guide concerns development of Reckfell 1.0.0 itself. Engine native C++ solution, engine C# tools and a C# game project are different projects; opening one does not replace the others.
Choose a project
| Task | Open |
|---|---|
| Native engine C++ on Windows | Generated reckfell.sln/.vcxproj for platform/target/arch |
| C# editor tools | Source/modules/mono/editor/ReckfellTools/ReckfellTools.sln |
| C# SDK/source generators | Source/modules/mono/editor/Reckfell.NET.Sdk/Reckfell.NET.Sdk.sln |
| Managed API glue | Source/modules/mono/glue/ReckfellSharp/ReckfellSharp.sln |
| C# game | The game project's solution, not the native engine solution |
Current Rider C++ documentation limits general-purpose C++ workflow to Windows. For native work elsewhere, use the CLion workflow with a verified toolchain. C# IDE availability on an OS does not imply the same native C++ workflow.
Native solution through SCons
Prepare source builds first. From Source, example Windows editor metadata generation:
scons platform=windows target=editor arch=x86_64 dev_build=yes debug_symbols=yes vsproj=yes vsproj_gen_only=yesCurrent vsproj=yes calls the generator, and default-true vsproj_gen_only exits without compiler build. This creates no executable. Metadata covers the active platform/target/arch combination; prepare each target configuration instead of expecting all from one invocation.
Local SCons 4.11.1 lacks SCons.Entity. Two exact recursive-glob helpers already independently failed with ImportError at that import; the issue remains unfixed. Full .sln generation was not executed. Resolve tooling failure before treating an old solution as successful new generation; it is not an IDE indexing-quality issue.
After successful generation, open reckfell.sln and select the matching Solution Configuration. Generated .props describe includes/defines/build commands for that target. Native Build delegates to SCons and needs the terminal build's SDK/environment. Editing generated files is no durable way to change options because they are regenerated.
Native debugging
Select the actual build executable and matching symbols. Pass --editor --path to the project.reckfell directory for editor work, or --path alone for the game. Verify Build targets and source/symbol revision before launch.
Attach by executable path/arguments rather than name/highest PID. Play may be separate from the editor. Verify a simple breakpoint in executing native code before investigating a complex scenario. Source natvis files or an IDE debugger do not guarantee correct display of every container.
C# tools and API
Current ReckfellTools.csproj targets net10.0 and Debug API configuration. Tools expect matching API assemblies from source output; an unrelated installed DLL/build is no automatic replacement. Source generators have a separate solution: Reckfell.SourceGenerators.csproj targets netstandard2.0 while editor tools target net10.0.
For missing types/glue, follow the build documentation's C# API preparation order. Opening a solution does not generate valid bindings. Do not hand-edit generated wrappers to silence analysis errors. Choose native/managed debugger for the actual process/code; a C# breakpoint does not verify native stacks.
Troubleshooting
| Symptom | Check |
|---|---|
| ImportError during generation | SCons/helper compatibility before IDE startup; retained SCons.Entity failure remains unresolved |
| Solution opens but executable absent | Generation-only is not compilation; a successful separate build is needed |
| Wrong native code resolution | Selected target, fresh .generated.props and compiler/SDK includes |
| Project Manager opens instead of editor | --editor and explicit --path to the project directory |
| Managed assemblies missing | Correct C# solution, output/API configuration and glue-generation order |
| Breakpoint never hits | Correct PID, native/managed debugger, symbols and executing code |
Verification limits
Solution paths, build contracts and C# project properties were source-reviewed; platform scope checked against current Rider documentation. Exact SCons helper diagnostics and CLI targeting evidence were reused. Full generation, engine native/C# build, Rider GUI, debugger attach, symbols/natvis and IDE tests remain unexecuted. Engine source, Runtime and SDK unchanged.