Av3boy / Av3boy/SharpEngine

Minimal deliverables, overriding default values & settings

Aperta
#144 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub
core enhancement maintainability spike
Lingua principale
C#
Stelle
6
Fork
0
Merge medio
1h 1m
PR unite (30g)
2

Descrizione

The codebase currently has things like default shaders and images. We should come up with a way on how we want to handle those in the future.

To actually deliver a NuGet package with as much content stripped away as possible, so that the user can download only the things that they need, those default things may be redundant.

If we move the defaults into a separate NuGet package, we will get build errors saying those shader variable names are missing.

We need to come up with which of these is the best solution:
- Let the user set those default textures.
- Immediately upon object creation specify the texture of an object.
- Make the engine throw an exception about missing files.

We could leverage the Dependency Injection system to set a IDefaults interface with these values?

Similarly, we need to populate the ISettings interface.
Currently we have default settings which our windows use.

We also need to extend the window creation DI service so that the user is able to pass those settings as a Func.

------------------------

When building our NuGet packages, things like loggers we might want to strip away.
To achieve that we might want to consider adding a compiler directive like #If LoggerEnabled and initialize that directive inside the .csproj by checking if the SharpEngine.Telemetry and Microsoft.Logging.Extensions libraries are present.

Guida per i contributori

Apri la guida per i contributori

Direzione di ricerca

Inizia mappando gli shader predefiniti attuali, le immagini e le interfacce IDefaults e ISettings, quindi esamina il servizio DI per la creazione delle finestre. Verifica la configurazione del packaging NuGet e le dipendenze di logging di .csproj prima di scegliere un approccio. Il lavoro è completo quando la strategia per le risorse e le impostazioni predefinite, l'iniezione delle impostazioni della finestra e il comportamento di packaging del logger opzionale sono specificati e implementati.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
csharp
Ambito
build-system, game-dev
Tipo di issue
Refactoring
Difficoltà
5/5
Tempo stimato
Più di una settimana
Stato di attività
Attiva
Chiarezza
Da chiarire
Idoneità per principianti
25/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.