Project layout and moving files
Purpose-based folders, exact C# filenames and separation of source assets from caches.
Layout for a small project
project.reckfell
Game.csproj
.gitignore
.gitattributes
actors/
ActorSettings.cs
DamageReceiver.cs
enemy.rprefab
domain/
HealthModel.cs
gameplay/
HitController.cs
examples/
ArchitectureExample.cs
levels/
architecture.rscene
settings/
enemy.rdata
assets/
enemy.pngThis is a project convention rather than mandatory engine folder names. Larger projects may group by gameplay feature: enemy, inventory or interface. Do not create empty categories without a use.
ActorSettings.cs contains ActorSettings; DamageReceiver.cs contains DamageReceiver. Keep exact, case-sensitive file/class name agreement for attachable C# types. Name levels and resources consistently: names differing only by case complicate moving between systems.
Source assets and generated files
Keep original images, audio, models, scripts and authored .rscene/.rprefab/.rdata files in the project. .reckfell contains editor/import caches; the SDK normally puts C# builds under .reckfell/mono/temp. Generated contents do not replace your sources.
An empty .reckfellignore file excludes a folder from editor filesystem scanning. It is separate from .gitignore: ignoring import does not exclude files from Git, or vice versa. Do not put assets needed by the game in an import-ignored folder.
A move changes dependencies
Move related resources together with their UID sidecars when present. After moving, rebuild C# and open the level: check attached scripts, exported references and load paths. A asset:// string in code does not become immune to arbitrary renaming.
The exports folder in the Git rules below is reserved for generated exports. Keep authored assets elsewhere.