KinsonDigital / Velaptor

2D game development framework

Home Page:https://docs.velaptor.io

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

✨ Velaptor.Abstractions package

softwareantics opened this issue · comments

Complete The Items Below

  • I have updated the title without removing the ✨ emoji.
  • I searched whether or not a feature request already exists.

Feature Request Purpose

I propose we setup a NuGet package alongside Velaptor that gives access to common interfaces without their concrete implementations.

These would likely include:

  • ITextureRenderer
  • IFontRenderer
  • IFont
  • ITexture
  • ISound
  • IAppInput<T>
  • KeyboardState and MouseState
  • ILoader<T>
  • ISceneManager

Solution

I guess this would be as simple as just creating a separate project called Velaptor.Abstractions and adding all the interfaces that would be included in the package.

Anything Else

No response

Code of Conduct

  • I agree to follow this project's Code of Conduct

@softwareantics I have thought about this. Just like the System.IO.Abstractions NuGet package.

I think we have to be very careful with this. The purpose of the System.IO.Abstractions was to enable testability, which it does very well. But with Velaptor, you can still test things out because these APIs come with Velaptor, whereas with the dotnet, they did not. If the user is using Velaptor, they have access to the interface APIs anyway.

If there is a NuGet package for these, this means we would have to maintain two separate NuGet packages: one for Velaptor and the new one for the abstractions. This would make the CICD side of things more complicated, as would generating and managing the API documentation.

I think we need to consider the pros and cons of this. I am interested in your thoughts.

I assume that you have a personal use case or need? If so, please tell me. 😀
Or maybe this is just an idea you had which is completely fine.

This issue has been automatically marked as stale due to the lack of activity for 60 days. The issue will be closed after 7 days if no further activity occurs. Thank you for your contributions.

This stale issue has been closed due to a lack of activity.