Search the Community
Showing results for tags 'metadata'.
Hi, let me start from make clear statement that NOTHING IS REQUIRED. Did I say that nothing is required? Yes, that's true, nothing is required. You don't have to do anything. My proposition/design also aims for be "less selfish as possible" aka "don't require anything and if, require minimal amount". I hope that's clear now. The main idea behind this is to give back the control of mod metadata in the hands of modders. Which person know the current and most up to date mod name, description or the working link to the place where players could receive support? That's right, the modder itself or current maintainer. The first idea was to have a website where modders could provide mod metadata. Creation of such website is very simple and can be done in one day. But then there is a problem when some other people will provide 'malformed' info about other people mods. Trolling is an art. It's impossible to counter without some sophistic login/verification method. And ofc "yet another website" will be instantly boycotted, even if it would be offer a Genie in a bottle. So without website, similar to "mod configuration file", a mod could provide few important metadata like: full name of the mod itself, without version number general mod description improved alternative for README keyword - you can also put direct links to online readme's link to mod dedicated forum or forum thread link to mod persona homepage if exist direct download link to the latest version of the mod This is my take on this matter: 0. File encoding: It can be ANSI if it won't contain Unicode strings. UTF8 (no BOM), if you want to use local language characters. 1. File format of such file must be 'industry standard', one for all mods. And please forget about xml I can't write a custom parser for each mod only because it's author like to put spaces before and after '=' character. Or use TAB to separate key and values. Or include weidu commands which only WeiDU can parse with it's GLR parser. It would be too much work. So let's choose one, modern 'industry standard' file format. My vote goes for INI as a first choice. 2. File extension of 'mod metadata file': Almost irrelevant, follow the file format definition associated extension. Those files shouldn't be modified by players anyway. 3. Filename of such 'mod metadata file'. There is one, very simple solution: <modTp2name>.ini. This is what is currently implemented. - it doesn't require file header / ini sections added [Mod] require [Metadata] section header to avoid false detection - it prevents people from making multiple, outdated version of this file 4. File content: nothing is required, you can even put one, single line Key=value pair with only mod full name. The INI will have preference over data from tp2. INI: # Never copy this from other mod, always use https://github.com/ALIENQuake/ProjectInfinity/wiki/Adding-metadata-for-mod # Filename must be the same as tp2 basename, placed at the same folder where # .tp2 file is located, use "UTF8 without BOM" encoding, everything is optional # ini section header is required to avoid false detection [Metadata] # Full name of the mod, without the version number, without the list of supported games Name = Mod Example - Optional Features # Author name or nick, don't use an email address Author = AL|EN # Short description of the mod, main goals, features etc Description = This mod is a guide on how to use optional 'Project Infinity' features. # Web address of mod readme file (filename is case-sensitive!) You can link to txt, md, html, pdf etc. Readme = https://example.com/ModName-Readme.html, https://example.com/ModName-Readme-%LANGUAGE%.html # Web address of mod dedicated forum or forum thread Forum = https://www.example.com/forums/categories/forum thread # Web address of mod personal Homepage, no need to duplicate with a mod dedicated forum # Homepage = https://www.example.com # if you use Github.com, simply use https://github.com/AccountOrOrgName/RepositoryName # read more about Delta Updates https://github.com/ALIENQuake/ProjectInfinity/wiki/Delta-Updates-for-mods-hosted-at-Github Download = https://github.com/AccountOrOrgName/ModExample-OptionalFeatures Remarks: If there will be a demand, PI could use JSON with comments file or JSON5/HJSON, it has very strict rules, only for modders who wan't to benefit from the advantages of the JSON file format itself. Order of the preference: JSON > JSON5/HJSON > INI . It means that if you provide only INI, everything works. Later, if someone wan't to switch to more advanced metadata format, mod metadata will be read from them. I think that INI would be enough but I don't want to limit modders. 5. Visual representation: - mod metadata will be displayed inside "Mod info textbox" - in addition, mod name will be displayed at treeview/mod list - mod download link would be used to download new mod version (if it is supported) If you have suggestions or questions, feel free to ask.