-
Notifications
You must be signed in to change notification settings - Fork 23
Game specialisation #323
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Game specialisation #323
Conversation
|
Would love your guys' thoughts on different models vs one model w/ type for this. @Huskydog9988 @Pacodastre @quexeky |
|
I have a few questions.
|
|
|
My understanding was that this specialization effected how a version is imported and installed by a client. For example with 'Redistributeable' it would only present options to setup the game, not run it. |
|
To answer your question about 1 schema vs multiple ones, I think having multiple schemas would be more flexible if new features get added to those schemas. Having everything on one could end up creating a big schema with a lot of properties. That's not necessarily a bad thing, but having one schema per specialisation is definitely going to be easier to manager, though if queries will get more complex with a lot of joins (and every time a new specialisation is added, it's one more table to join). |
|
Maybe we can refactor when the maintenance load becomes too much. I think, for now, having one model is fine because there's only slight differences. |
|
I think I'm mostly just struggling to understand the end goal is all. Once I get that I think I can tell you my opinion. |
|
Basically you shouldn't be able to launch "Skyrim" with "Minecraft", or set "Call of Duty" as a redistributable for "Hollow Knight". It's designed to help the user mentally categorize the stuff in their library, and reinforce that category in the suggestions in UI/available options. |
|
Ok, based on what your saying then, I think I was just confused by the naming. I don't have any issues with the current model then, other than the naming. |
…specialisation
Adds 3 types of game "specialisation":
Under the hood, games are all the same object with the same schema. We enforce specialisation-specific options currently during import, so we may get corrupted state if changes are made without the necessary checks.
I think there is significant enough overlap in the required APIs and interfaces that it's worth it to just tag games rather than make them separate models, despite the relative unsafety with no type-safety when it comes to valid database objects.
Current specialisation differences: