Solaire / GLC

Lightweight, console-based, tool which automatically detects installed games and displays them to the user.
GNU General Public License v3.0
16 stars 3 forks source link

GLC 2.0 #39

Open Solaire opened 2 years ago

Solaire commented 2 years ago

I'd like to start working on version 2.0 of GLC. The reason it's 2.0 and not 1.x is mostly due to a brand new TUI and moving from .NET framework to .NET core (more details below). I will be doing some research into it but I think I would like to basically re-write GLC as a new .NET core project (obviously the original project will remain here until we are happy with 2.0) - also I think I have been away from the project for so long that I'm finding it quite difficult to actually implement new features. So here is my proposal for version 2.0 features and changes:

In terms of the work required, I don't think it'll be too much since a lot of the features have been implemented and can be copied over (as much as .NET core will allow it that is) and some stuff will not be needed due to the SQL handling searching and sorting.

@Nutzzz Let me know what do you think about the idea as a whole. I might have missed some important features

Nutzzz commented 2 years ago

Those seem like good plans to me.

FYI, I'm mostly done with a refactor of the platforms, implemented via an interface. It's much easier to follow now. I'll send a pull request soon.

I've also added:

Note as far as the "more info" display you reference, I did add the info bar on the bottom in an earlier pull request, with a full title (since it may have been truncated in grid view), and the platform (since it may be in a non-platform category). I was going to add rating to the bar, but once you add more than two items, you have to think harder about how to deal with limited width real estate. However, were you thinking we might display additional information below the image?

I was thinking about either doing the in-game settings menu or platform authentication next. However, the latter is going to increase the dependencies quite a bit and it starts to feel like we're going beyond the "simple" raison d'être of this project. I'm still having fun with it, but I don't know at what point we're just reinventing the wheel of more established projects.

Nutzzz commented 2 years ago

Just for fun, I'm trying the upgrade-assistant to quickly figure out the dependency issues we're going to run into.

Solaire commented 2 years ago

Yeah, I agree that the scope of this application has grown over time (no thanks to every game dev wanting their own platform now haha) and version 2.0 will become a command-line alternative to Playnite or other launchers. That being said I think it's a good project to carry on with and I'm enjoying working on it.

Nutzzz commented 2 years ago

Since it was an omnibus already, along with all the stuff mentioned above the latest PR migrates us to .NET 5.

Nutzzz commented 2 years ago

So, as for as a cmus-type interface, I made a quick-and-dirty mock-up. I assume something like this is what you had in mind?

GLC2-mockup

EDIT: New mock-up with #44 suggested infopane (and some new ideas about the left pane):

GLC2-mockup2

Nutzzz commented 1 year ago

Do you think it would be better to focus on the backend and just use a TUI library like Terminal.Gui for the frontend? There are certainly limitations to it, but I did a quick-and-dirty experiment and FWIW have got something to show for it after a few hours. I only pre-populated a few dummy games for one platform, but so far the help, color scheme switcher, and search function are working. And mouse support is built-in!

nGLC

EDIT: Note that the active Terminal.Gui devs are working on a v2 with a lot of good (but breaking) changes, and if we do go with that framework perhaps we should target the v2_develop branch rather than using the v1.9 V1.10 NuGet package.

Solaire commented 1 year ago

There is a branch that I try to push regularly features/new_glc which is using this framework for the TUI. The branch is a bit of a mess right now

Nutzzz commented 1 year ago

Oh, that's funny. I've built the new_glc branch and played around with it to see what you had so far, but hadn't really looked at the code much (obviously, as I didn't even realize you were using Terminal.Gui already).

I wasn't clear where you were stuck, and I guess I was hoping to see if we could find a way to keep moving forward by making some of the tasks more manageable.