stride3d / stride3d/stride

Migrate away from using `Stride.Core.Utilities`/`Stride.Core.Interop`

Open
#1,461 0 comments 3 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
Dominant language
C#
Stars
7.8k
Forks
1.2k
Avg merge
2d 17h
Merged PRs (30d)
49

Description

New features are available in recent versions of .NET that match functionality in Stride.Core.Utilties about exactly, employment of which can improve Stride in a number of ways.

  • Removing P/Invoke overhead
  • Migrating some C++ to C# or even eliminating the need for features implemented in C++
  • Reducing the need for IL weaving
  • Probably allow both the C# compiler and the JIT to do a better job optimizing the code

Getting rid of IL weaving is more or less a prerequisite or at least an advantage towards eventually fully supporting ahead of time compilation (AOT) during publish with minimal effort from the developer.

I would like to propose first to mark the public API in Stride.Core.Utilities as obsolete for as far as there are alternatives in C#/.NET and replace their use throughout Stride with the corresponding alternatives.

I deliberately scope this issue just to the class mentioned, although there are a series of other opportunities to follow the exact same line of thinking and that have about the same benefits. Those will come later.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

The issue targets the public API in Stride.Core.Utilities and its uses throughout Stride, including related Stride.Core.Interop functionality. Start by inventorying the affected APIs and their call sites, then review the available C#/.NET alternatives. Done means the in-scope APIs are marked obsolete and their uses are replaced throughout Stride, with the existing behavior preserved.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp
Domain
game-dev
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.