stride3d / stride3d/stride

Include more helper methods.

Open
#29 11 comments 3 reactions 1 assignee View on GitHub

@VaclavElias is already working on this.

Since May 26, 2024.

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

Description

Hi,

I always felt that the Xenko engine was a bit lacking when it came some general helper methods. So I started the XenkoToolkit project but I really feel a bunch of these things should be included in-the-box. For example:

  • Find components in entity hierarchies.
  • Transforms using the Entity's Transform.
  • Transforming things between world and screen space.
  • Calculating rays for doing picking using physics ray cast.
  • Transforming Prefabs when being instantiated.

I am creating this issue more as discussion. I am not super confident in the quality of my code as they have not been thoroughly tested and my math skills are not great. There are probably also a few questionable design decisions. For example, not sure about all the overloads I did either, may have gone a bit overboard. There are quite a few shortcomings as well, i.e. a bunch of the transform extensions throw exceptions if TransformComponent.UseTRS is false (I couldn't get the math right).

There are a number of things I would do differently if they were included in the engine, i.e. put the Quaterion look at function in the Quaternion struct.

There are somethings I would almost certainly leave out like the material stuff I did. A better option would be to change the ModelComponent and related systems to handle being able to set material properties per ModelComponent.

cheers,
dfkeenan

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.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.