Code Monkey home page Code Monkey logo

Comments (3)

dremin avatar dremin commented on July 28, 2024
  1. I'm not sure I follow why this change would be an improvement. Setting the visibility of StartLabel to collapsed in the theme removes it completely, and the icon is defined by the theme already. If a theme desires to override the layout in a way that the built-in start template doesn't allow for, the theme can override the template. By moving the content into the theme by default, every theme that wishes to override the button template would need to also define the content, which would be largely redundant.
  2. Having a folder per theme is a good idea, as it does not require trusting the theme author to 'do the right thing.' It would also open the door to number 3.
  3. Metadata is definitely needed. Another option could be string resources defined within the XAML file.

Regarding number 5, I should probably work on a real installer for RetroBar to simplify the initial installation as well. For theme installation, distributing themes as a ZIP and extracting them in the %localappdata%\RetroBar\Themes directory is the direction I may pursue (whatever is implemented will likely also be shared with Cairo.)

from retrobar.

Splitwirez avatar Splitwirez commented on July 28, 2024

1: Okay yeah maybe that doesn't make so much sense after all. Woops.

3: Are you sure you want to parse the entire XAML document (and implicitly assume it to be valid)...just to get the metadata? Not to mention, how would you allow for, say, localized display names in...XAML resources? And do you really want to effectively require the addition of another XAML namespace just for that?

Another thing I forgot to mention about 3. in my initial post: some kind of unique identifiers for skins. This would allow the automated skin installation to, for example, seamlessly "upgrade" an older version of a skin to a newer version, rather than resulting in pointless duplication and clutter.

Also the skin options thing. Futureproofing.

5: I couldn't agree more about having a proper installer, especially if that could take care of ensuring that the proper .NET Core runtime gets installed...and on that note, automatic update delivery would be nice as well (but let them opt-out and stay behind if they so desire).

That said...I'm not so sure ZIP is the way to go for skins - if my experience with that game modding thing is any indication, you may end up with people extracting the ZIP files and wondering what they're supposed to do with the stuff inside. I wish I knew of an archive format I could recommend...one which can be extracted by those looking to see what's inside...but not by standard Windows features or software as widespread and prone to misinterpretation as 7-zip, so as to avoid them being mistakenly extracted by those just looking to install them.

If you do go with ZIP (or anything else which supports a hierarchy, for that matter), well...watch out for this:

There were quite a few mistakes we (mostly I, regrettably) made with our "Mod Identity" system for this game, of which this is one. I don't want those mistakes to be repeated here. I'll try to elaborate further once my head is less clouded-over from vaccination side effects.

from retrobar.

yoshiask avatar yoshiask commented on July 28, 2024

As far as ZIP goes, you could always use ZIP but distribute them with a different file extension. That way, the program can still use the archive but users are less likely to attempt to extract it.

from retrobar.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.