Rider: native solution и C# tools движка
Generation-only, выбор solution, native/managed debugger и диагностика.
Раздел относится к разработке самого Reckfell 1.0.0. Native C++ solution, C# tools движка и C# проект игры — разные проекты. Не открывайте один из них как замену всем остальным.
Выберите рабочий проект
| Задача | Что открыть |
|---|---|
| Native C++ движка в Windows | Сгенерированный reckfell.sln/.vcxproj для нужных 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# | Solution самого проекта игры, а не native solution движка |
Текущая документация Rider о C++ ограничивает general-purpose C++ workflow Windows. Для native разработки на других платформах используйте CLion workflow и проверенный toolchain. Доступность C# IDE на ОС не означает тот же native C++ workflow.
Native solution через SCons
Сначала подготовьте сборку исходников. Из каталога Source пример генерации Windows editor metadata:
scons platform=windows target=editor arch=x86_64 dev_build=yes debug_symbols=yes vsproj=yes vsproj_gen_only=yesПо текущим исходникам vsproj=yes вызывает генератор, а vsproj_gen_only по умолчанию true завершает его без compiler build. Это не созданный executable. Генерируется metadata текущей комбинации platform/target/arch; перед сменой target подготовьте соответствующую конфигурацию, а не ожидайте её от одного запуска.
Локальный SCons 4.11.1 не содержит SCons.Entity. Два точных recursive-glob helper уже отдельно завершились ImportError при этом импорте; ошибка не исправлена. Полная генерация .sln не выполнялась. Если tooling упал, сначала решите генераторную проблему; открытие старого solution не является успешной новой генерацией и не связано с качеством Rider indexing.
После успешной генерации откройте reckfell.sln и выберите соответствующую Solution Configuration. Generated .props описывают includes/defines/build команды именно выбранного target. Native Build делегирует SCons; он требует того же окружения/SDK, что терминальная сборка. Не редактируйте сгенерированные файлы как устойчивый способ поменять build options — они будут созданы заново.
Native debugger
Используйте фактический executable нужной сборки и matching symbols. Для редактора задайте --editor --path к папке с project.reckfell; для игры используйте --path без --editor. До запуска проверьте, что Build не указывает на другое target и что source revision соответствует symbols.
При Attach выбирайте PID по executable path и аргументам, не только по имени или величине PID. Play может жить отдельно от редактора. Проверьте простой breakpoint в выполняемом native коде, затем переходите к сложному сценарию. Наличие natvis в исходниках или поддержка debugger у IDE не гарантируют правильную визуализацию каждого контейнера.
C# tools и API
В текущем ReckfellTools.csproj указаны net10.0 и Debug API configuration. Managed tools ожидают соответствующие API assemblies из output исходников; установленная сторонняя DLL/другой build не заменяет их автоматически. Для source generators открыт отдельный solution; Reckfell.SourceGenerators.csproj имеет target netstandard2.0, тогда как editor tools — net10.0.
Если types/glue отсутствуют, следуйте порядку подготовки C# API в build documentation. Открытие solution не генерирует корректные bindings само по себе. Не переписывайте generated wrappers вручную, чтобы погасить ошибки анализа. Native debugger и managed debugger выбираются по процессу/коду, который действительно исследуете; breakpoint в C# не проверяет native стек.
Диагностика
| Симптом | Проверка |
|---|---|
| Генерация заканчивается ImportError | SCons/helper compatibility до запуска IDE; сохранённая ошибка SCons.Entity остаётся актуальной |
| Solution открывается, executable отсутствует | Generation-only не является компиляцией; нужен отдельный успешный build |
| Native code resolution неверен | Выбранный target и свежие .generated.props; compiler/SDK includes |
| Запускается Project Manager вместо editor | --editor и явный --path к папке проекта |
| Managed assemblies не найдены | Нужный C# solution, output/API configuration и порядок генерации glue |
| Breakpoint не срабатывает | Правильный PID, native/managed debugger, symbols и выполняемый код |
Границы проверки
Solution paths, build contracts и C# project properties сверены с исходниками; platform scope — с текущей документацией Rider. Повторно использована точная диагностика SCons helpers и CLI target check. Полная генерация, native/C# build исходников, Rider GUI, debugger attach, symbols/natvis и tests через IDE не выполнялись. Исходники движка, Runtime и SDK не менялись.