Search the Community
Showing results for tags 'metadata'.
Found 1 result
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. Who else 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. 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 - Mod description - a direct download link to the latest version of the mod (which is intend to be used by players so no ALPHA/BETA/DEV) VERSION is dynamically read from tp2. All other missing info I can read from tp2: AUTHOR/README, but if they are inside INI, INI will have preference over tp2. This is my take on this matter: 0. File encoding: It can be ANSI if it won't offer to write Unicode strings. UTF8 no BOM, if it does. 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 the tool can't understand. It would be too much work and errors. So let's choose one, modern 'industry standard' file format. I vote would be for INI as a first choice and HJSON/JSON5/JSON (JSON doesn't' allow comments) for more advanced modders who understand benefits of such modern format. 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/HJSON/JSON5/JSON. This is what is currently implemented. - it doesn't require file header / ini sections added [Mod] [Metadata] to avoid false detection - it prevents people from making multiple, outdated version of this file Other solutions require file headers/scanning mod directory and parsing files etc. 4. File content: nothing is required, you can even put one, single line Key=value pair with only mod full name. One single line. INI: Name = NPCs Enhanced for Everyone Author = Argent77 Description = This is intended to be a successor to the fantastic "Level 1 NPCs" mod. L1NPCs was never updated for the EE games, and its author is no longer active, and it is an incredible, complicated piece of work that is difficult for someone else to update. So I made this. Download = http://lynxlynx.info/ie/modhub.php?UnearthedArcana/NPC_EE Remarks: For some modders, tool could use industry standard JSON 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. Presentation to user - mod metadata will be displayed inside "Mod info textbox" - in addition, mod name will be displayed at treeview/mod list - mod downoad link would be used to download new mod version (if it is supported) Example of partial INI and tp2 combination: https://github.com/ALIENQuake/ProjectInfinity/wiki/Adding-metadata-for-mod