Engine: AOT-compatible production runtime (generated registration, serialization and brick composition)
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 25/100
- Issue type
- Feature
- Clarity
- Mostly clear
- Activity status
- Active
- Tech stack
- csharp
- Domain
- build-system, game-dev
Research direction
Start with the named entry points: PrecastAssemblies.Load, TypeRegistry, and GamePlayers.Find, then trace the reflection-based JSON serialization and Activator creation described in the issue. Review the related Android plan task E7 and platform roadmap #100 for context. Done means exported games run with trimming warnings resolved and no runtime assembly scanning.
Written by the indexing model from the issue text.
Description
Current State
Exported games discover bricks and players by assembly scanning (PrecastAssemblies.Load, TypeRegistry, GamePlayers.Find), serialize with reflection-mode System.Text.Json and MakeGenericType, and create objects with Activator from type names. This blocks NativeAOT for servers, consoles, iOS and Android.
Tasks
- Rule from now: no new runtime assembly scanning or reflection-mode JSON
- Generated type registration and serializers for exported games
- Build-time brick composition instead of runtime discovery
- Dynamic loading stays a development capability
Acceptance Criteria
- An exported game runs with trimming warnings resolved and no runtime assembly scanning
Related
- Android plan task E7 · seniority Sr · mergeable now (.NET 10)
- Shared with the NativeAOT server investigation
- Platform roadmap: #100
- Dominant language
- C#
- Stars
- 1
- Forks
- 1
- Avg merge
- 1h 45m
- Merged PRs (30d)
- 31
Getting set up
- No Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from MASS4ORG/Turian
-
c:assets p:low size:XS t:task
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 1 day
-
c:assets c:platform p:low size:M t:feature
Difficulty 4/5 3-5 days Newbie friendliness 42/100
Maintainers usually reply within 1 day
-
c:platform c:scripting p:low size:M t:task
Difficulty 5/5 Over a week Newbie friendliness 25/100
Maintainers usually reply within 1 day
-
c:docs good first issue p:low size:S t:docs
Difficulty 3/5 1-2 days Newbie friendliness 67/100
Maintainers usually reply within 1 day
-
c:docs good first issue p:low size:S t:docs
Difficulty 3/5 1-2 days Newbie friendliness 56/100
Maintainers usually reply within 1 day
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 1 day
-
enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
Maintainers usually reply within 1 day
-
area:re1 bounty help wanted needs-game
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
StackExchange/StackExchange.Redis#3274 ·
Maintainers usually reply within 1 day
-
affected/v17 affected/v18 area/frontend type/bug
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
umbraco/Umbraco-CMS#24186 ·
Maintainers usually reply within 2 days