It is currently 19 Apr 2024, 19:19
   
Text Size

Community Wad Projects

Moderator: CCGHQ Admins

Community Wad Projects

Postby Xander9009 » 23 Oct 2019, 02:52

I decided to make this thread to keep track of the things I'm either working on or planning to work on. The reason I'm doing this as a thread of instead of a private list is threefold.
  1. it allows others to have input, which a lot of these can use.
  2. It allows others to see what's in the works and have some idea of what to expect.
  3. It gives others the chance to tell me they're more interested in some projects vs others.


The latest project I did was to improve the deck uploading system. It now includes the deck image on the deck page. Every deck page was updated with the image. Every card was scanned for a valid MultiverseID. I'd ask that cards not be made with invalid MIDs unless you personally plan to update them. It's a rather involved task and always seems to require tweaking the script the next time I go to do it. It never seems to work twice in a row. In addition, when a deck is deleted from the decks folder, the website will finally be updated to reflect this.

At this particular moment, I'm currently working on the first one. I do have some ideas for what else to work on, and I'm aware these aren't necessarily what people are hoping for, exactly. However, they're the things I'm thinking of that actually make me want to work on the CW, and that's important.
Missing cards | Open
I'm currently working to flesh out the CW with all of the cards that are currently missing, going by Spirolone's topic: viewtopic.php?f=109&t=28776

Outside the Game | Open
Cards like Living Wish are impossible because we have no way to reference cards from outside the game. However, it might be possible using the fact that the CW is automatically updated. The updater can, with a bit of extra programming, scan each and every card in the CW and add it to a function file with any information we need so long as that information can be obtained without human interaction. So, the types, cost, CMC, colors, name, filename, power, toughness, and similar things. These can be added to a list that could be interacted with by any card in the game. NeoAnderson wrote a set of functions a long time ago to choose a name. Using these two, it would be theoretically possible to have a set of functions for use on Living Wish which would allow it to choose the name of any card it should be able to in any game without me or anyone else ever needing to manually update the list.

This does have the issue of needing the token registrations on those cards, but since every card would need to be scanned for information to put into the list anyway, I can simply also scan for cards tagged for "OutsideTheGame" (however exactly I decide to tag them) and save them for later. Then, after everything is scanned, go through each of those cards and add a token registration for each and every card. I don't know if the game would be able to handle that many, though. It's possible it would cause an issue for the XML parsing engine or the Lua engine. There's just no way to be sure until I try. These token registrations could be completely automated along with the rest of the process, so the cards, so long as they have the right tag, would simply work no matter what cards are added to the CW.

The functions that actually add the cards to the Lua table would only be called by those cards that need the list, which ensures the game is only ever inconvenienced if those cards are actually in the game.

The only issue I can see is the cards that require certain manager tokens. So, the cards that can access every card will also need to create all of the manager tokens, which can also be automated.

Updating Land Pools | Open
By moving the actual settings text from https://www.slightlymagic.net/wiki/DotP ... _Land_Pool to its own page, and updating the deck builder, we could add a menu option to automatically update the land pools with just a click. The wiki page would still need to be updated manually, but whenever it is, from the users' end, just a menu click and your land pool is updated. The ideal next step would then be to update all of your decks with those new lands.

Legality | Open
My most recent update to the deck builder was to add the ability to filter and sort by legality. However, this requires the running of a rather intricate process to update all of the cards. This can theoretically be automated (thank you MTGJson.com), but I think it would make more sense to have the deck builder itself download and parse the json files and handle the legality internally and then include the deck's legality info in the deck somehow. The upload to the website involves unpacking the deck's wad file and reading the deck xml anyway, so it'd be simply to also check the legality and include that on the website.

Generic manager token | Open
I discovered not too long ago how to run a bit of code at the start of the game without that code needing to be attached to any specific card. I'm wondering about the possibility of having that code create a generic manager token that would be present in every game. It could be used for things such as the setting used for creating multiple versions of a given token. It could also be used for debugging by allowing it to create a Favor of the Gods debugging card. (Of course, these options would be disabled for the AI.) The main issue is the need for token registrations to prevent crashing. The token registration would have to be on every card to be safe, and that would negate the main benefit of this. However, if it's possible to find a way around this issue, it could be a great benefit.

Tags | Open
The text tags that appear on cards are often only the tag and there's no actual text permanent entry to back it up. There's already a tool for isolating these tags and even keeping the context intact to fill out the missing ones. In addition, there are a lot of cards that have abilities but no help text for those abilities. There are also several new card types (vehicle comes to mind) for which I'm not sure if there's type help text. I'd like to get all of the text that shows in-game to be actual text and for the help text to always be available.

General cleaning | Open
There are a lot of cards that have "dimir" or "gruul" on them, as well as many that have reminder text. The reminder text is related to the last point as well, in that it relates to in-game information, but in this case it's actually removing that information. I'd like to ensure that the reminder text is all removed and that the information it provides is available in the help text instead.

Functions | Open
Currently, there are functions across a lot of files, and those functions are often not very well documented. One thing I'd really like to do is to take those functions, work them into the CW's function files, and then remove the old ones, documenting them as I go and replacing them on cards and in other functions. This would help standardize everything and make it easier to track down certain things. There are some I don't plan to change (planeswalker functions, RSN's mana functions, some of NEO's functions, and a few others). This is mostly because *most* of the functions are relatively generic and widely useful, and for those ones, I'd say they're better off being standard. But some of them represent massive amounts of effort and history, and I'd personally value retaining that over making them perfectly consistent. (I'll still be documenting them, though.) This is a bit arbitrary, and that's not all that great, but the functions do need an overhaul. This one more than the others is something that could really use input from others. There are currently over 100 function files, and finding anything non-CW can sometimes be really difficult. Many of those 100+ function files even contain only 1 or 2 functions, and many are also simply unnecessary now. I'd like to get it all organized and more usable.

Filenames | Open
Awhile back, it was decided that the cards are simply better off not having the MIDs in their filenames. It makes them not only cleaner, but also easier to maintain without them seeming outdated. For instance, when a card is reprinted, it'd be nice to update the MID. The CW's website with all of its images pulls those images from gatherer based on the MID of the card. It'd be really nice to be able to the MID so that the website gets teh most recent image without the old MID still being in the filename. It also makes it easier to check if a card is actually in the CW, since there are no numbers in the name to check and then strip out before comparing the names. The extra numbers in the names generally don't serve any actual purpose, and the actively hinder some things, so they should really be removed.

However, this leads to the issue of every single deck in existence being rendered unusable, so I also need to make 100% sure there's a simple to use tool for fixing this reliably on anyone's decks so. Otherwise, it's likely to cause a lot of people major headaches, and that's something to avoid at all costs.

Version | Open
The version file for the CW isn't very detailed. It gives a number, and it sort of gives a list of changes and additions, but not very effectively. I worked out a potential update to the version file formatting (and also making it an XML), but I'd like to be able to also include a lot more information. This is actually a really simple thing to do, but I also want to make a small utility you can run that just checks the version and gives you that information without needing to unpack the rest of the wad.

Community Wad Tools | Open
A rather lengthy process, this project is one I've been working on for quite awhile, but it's never been public ready. It's a program I made to handle just about every modding need one can think of. It's still missing a lot of those features, and I'd like to get them all worked in. It's relatively bug-free, but not entirely, and of course those need to be addressed.
  • Version checking (actually does handle some of the info from the updated version format mentioned above).
  • Making decks from lists.
  • Converting between different file types (wad/folder, png/jpg/tdx)
  • Handling the auto-upload folder
  • Updating the CW at night (doesn't do this yet because that needs to remain reliable for now)
  • Cropping images
  • Syncing the CW to your game folder
  • Syncing your chosen decks to your game folder
  • Isolating your used files
  • Comparing game folders
  • Listing the cards and other files currently in the CW
  • Extracting individual files
  • Ramos (discord bot)
  • Updating the CW website
  • Automatically updating itself (might be kind of difficult given I don't have proper web hosting, but I've figured out to automate everything else, why not this?)
  • Anything else you can think of...

Move from Google Drive | Open
Google Drive is amazing. It really is. But in an ideal world, modding/hosting the CW wouldn't involve checking and syncing some 50,000 files, a process that can easily take many hours. FTP would the ideal solution, I think, and VS Code, Notepad++, and most other prominent programming text editors all support FTP through a plugin. This would mean not needing to down all 50,000 files; you only download the ones you're actually working on. The actual distribution of the CW to users will probably always be handled by Google Drive, however, since it ensures I don't incur the bandwidth associated with a 2 GB update being downloaded to I-don't-know-how-many people. But the bandwidth of a >10kb xml file? Sure. This might never happen, but if it could work well, then it might be worth doing.

Testing | Open
There are some ~20,000 cards in the CW. And quite frankly, they need tested. I'm planning to finish coding the missing cards before starting on this, but this is, quite certainly, the most exhausting possible task, and it needs done so badly. I'm going to break it up into chunks that are easier to test in batches, and I'm going to automate the creation of the decks needed to test them. Any card that only has basic abilities will be sorted by color, and each deck will be given 1 copy of each card, along with 10 basic lands. This will allow 50 cards to be tested at a time. I also want to set up a simpler method of removing the successfully tested cards so that only the ones that failed or are untested remain are present in the tests. This part of the process will probably take a day or two to set up the automation, but the actual testing will take pretty much forever. Any help with this would be immensely useful. I am, however, going to skip any card that appears in a thread where the card is marked as tested already. That'll be probably a few thousand, so that will help a lot.
_______________________________
Community Wad - Community Wad Website - How to Help and Report Bugs
Discord: discord.gg/4AXvHzW
User avatar
Xander9009
Programmer
 
Posts: 2905
Joined: 29 Jun 2013, 07:44
Location: Indiana, United States
Has thanked: 121 times
Been thanked: 445 times

Return to 2014

Who is online

Users browsing this forum: No registered users and 40 guests


Who is online

In total there are 40 users online :: 0 registered, 0 hidden and 40 guests (based on users active over the past 10 minutes)
Most users ever online was 4143 on 23 Jan 2024, 08:21

Users browsing this forum: No registered users and 40 guests

Login Form