Having read many of the comments... I am still confused

I see Vassal as a wonderful tool. However, I also have some serious issues with it and I would like to discuss them with some people who have a lot more knowledge with it than I have.

Not being able to import both artwork and text for “cards” from a database of 17,000+ items is a real problem. I can’t seem to get around making this game work unless I actually create every freaking card as a single item. There has to be a better way and the tutorials and every concept even close to that item isn’t making this hope to do things the easy way come any closer.

I have essentially the entire database of Magic: the Gathering cards in a spreadsheet, it contains all of the specific data required to play the game. It would be nice to include the art, but alas, that will make it even more difficult to try to make this project happen.

Now, having you think that I am “stuck” with M$, I am not. I have a home network with Winblows and Linux boxen, so I can do almost anything with anything. I refuse to use any M$ Office app, so deal exclusively with openoffice. Still and yet, I am stuck with the importation issue.

You have “GOT TO BE KIDDING ME” that I cannot import all of this data or use it appropriately within Vassal without going through the hoops of creating Java routines. I can do that, but I shouldn’t have to.

Now that I have that off of my chest…

So, if my research is to be believed, I am most certainly screwed. So much for the easy way.

If I have to do this much work, I might as well program my own project. Once again, I shouldn’t have to. Is there a better way that I haven’t found to pull this off?

Thus spake pander:

If I have to do this much work, I might as well program my own project.
Once again, I shouldn’t have to. Is there a better way that I haven’t
found to pull this off?

There are three things you could do, none of which would involve writing
anything in Java.

  1. Create the cards using the Mass Piece Definer.

  2. Write a script to read from the spreadsheet and construct the
    buildFile entries.

  3. Wait for VASASL 4.

#1 is new in VASSAL 3.2 and isn’t documented. (Brent: Poke, poke. I
don’t think the documentation fairy is going to write the docs for this
for you.)

I’ve done #2 myself for a game which has around 6000 unique piece faces.
I created one of the pices from VASSAL’s editor, fished the piece
definition out of the buildFile, and used that as a template for writing
the other piece definitions. What needed to vary between pieces was the
face images, and it was obvious from looking at the piece defintion,
gnarly as it was, how to substittue those in. The rest of the script was
then reading the input from the spreadsheet, which I’d saved as CSV.

The file format for VASASL 4 will be human-readable, so it will be much
easier to see how to script the creation of large numbers of pieces or
cards there—though fundamentally this is similar to #2, as you need to
produce the logic for reading from your spreadsheet. (VASSAL can’t do
that for you—we have no idea how you’ve formatted your spreadsheet.)


Hmm. So undocumented. That makes things a little easier doesn’t it? (wink) However, you have given me some hope, so thank you.

I will go ahead and do some poking around and see if I can make enough sense out of your idea #2. As for your idea #1, I’m underwhelmed by the documentation that currently exists, so I’m not going to wait to exhale. I have found some, I have found incomplete tutorials and the like, and have been able to piece some of that together myself. Still way to incomplete but enough to make a little progress. It is entirely possible that by the time I feel comfortable enough thinking that I can actually pull this whole thing off, version 4 might actually be out. So maybe your #3 just might work as well.

In any case, I will create a few test cards with text only and a few with graphics. Then I’ll poke around the vmod to see if I can find out exactly what Vassal is actually doing with the definitions. With that broken out, I might be able to automate it by manipulating the vmod directly. While that may just be exactly what your #1 is doing, at least I will have the specific information in hand and in mind to fully understand what is going on. I’ve done enough hacking over the years to at least be able to make some sense of this.

All in all, if I can make this work out, I’ll post back here and provide an update, along with procedures and documentation, so others might be able to duplicate it for their own use.

So, thank you very much for your reply. You have given me something to look forward to as well as a possible solution to what seemed like an intractable problem.

Thus spake pander:

Hmm. So undocumented. That makes things a little easier doesn’t it?
(wink) However, you have given me some hope, so thank you.

What I can tell you about the Mass Piece Definer is that it will let
you quickly define pieces having the faces corresponding to the images
in a directory. If you want to pull in anything from your spreadsheet,
that method is not for you.

In any case, I will create a few test cards with text only and a few
with graphics. Then I’ll poke around the vmod to see if I can find out
exactly what Vassal is actually doing with the definitions.

I would create exactly one test card. That way, there will be less to
pore over when you look at the buildFile.


Do you mind my asking what the ultimate goal of the project is? What made you want to use VASSAL as opposed to some of the other tools that have been developed specifically for trading/collectible card games (gccg, Magic Workstation, LackeyCCG, et al)?

I’m not trying to be critical–just curious. In fact I don’t know a lot about the other tools I mentioned beyond the fact that they exist, though I have used LackeyCCG a little in the past.

First off, and to reduce traffic, uckelman, I created a few cards and poked around the definitions in the vmod. That ain’t so tough. Finding the documentation for it without burying myself in the source code is not going to be fun. So I will work with it the easy way. I can script this to make the text versions of the cards pull everything out of the spreadsheet and create all of the cards within the vmod. So problem solved and way nice of you to point me in the right direction. Should have thought of that myself… mumble, mumble.

Now to get back to you, Joel: Interesting question. I will try to explain.

First off, I like playing Magic: the Gathering, but have no local venues. I have a friend, who now lives half the USA away, and we play via Yahoo Messenger when we can. Since everything must be specified in very good text, each card must be looked up in an on-line database, etc., it gets a little difficult at times. So I started to look at ways to make it a little more automatic and being able to do it on-line as well.

Vassal came up during investigation. So did Zun-Tsu and another that I don’t recall. After analysis and expectations, Vassal won out for my expected engine. That being said, I’ll address your other question. Cost and distribution are factors. As long as Vassal stays free and open-source, and maintains Java compliance, it can go anywhere, run on almost anything, cost nothing, and allow players from around the world to get together and play.

I am a realist. The CCG environment went from a cool place to be twenty years ago to what is now something akin to managing a Fortune 500 company. I don’t want to associate my work with anything that even suggests relevance to what has happened to CCGs in general and Magic: the Gathering in particular. It would continue to be detrimental to the game, harm the hobbyist and fun aspects, and associate the app with the detritus that has become CCGs. This is supposed to be fun. I want a fun avenue to play in. I want people who just want to play be able to do so. Vassal won.

Though, to be honest, GCCG never came up in my investigations so I will check that one out. Being Open-Source, it has some possibility. Magic Workstation costs money, and doesn’t easily play it. I tried it. Wasn’t happy. And now that I have found LackeyCCG, that may just be the one. I see a couple of Magic additions already out there, so the investment of my time might be stupid. Then again, now that I have invested this much time into Vassal, do I want to just bail? I think not. I can make this work.

OK, if all you’re looking to do is play, I strongly recommend trying LackeyCCG. All you do is set up the plugin, then the art for every single card ever made will get automatically downloaded on an as-needed basis. Card filtering and deck construction/saving will be far, far superior to anything VASSAL can offer you, because LackeyCCG was designed from the outset for this purpose. For a game like Magic with that many cards available, you do not want to be reinventing the wheel!

Additionally, OCTGN (currently Windows-only, unfortunately) supports Magic. It’s very popular right now for players of Android: Netrunner.

Or one could just use MTGO? Yes it costs real money to play in the tournaments or drafts but as I recall the non competitive area allowed you to play for free and access to cards also

Follow up:

Since the build file was in plain text and formatted very much like the files found within either HTML or openoffice, this was a real easy way to patch the file. Yes, it gets a little out of hand very quickly due to the fact that there is no way to effectively group them, but I can make it work if I so choose and it was a whole lot easier than I ever expected. So I thank you specifically, uckelman for the tip.

I am trying to make LackeyCCG actually do something useful. It is fighting me and I don’t like that. The UI is very strange and despite having the Magic setup included, it doesn’t want to let me do anything with that at this moment. I expect I will figure that little issue out, but once again documentation is very scant.

BTAIM, I know I can make Vassal work now. Maybe a little clunky at the beginning, but it can be done.

I really appreciate everyone’s comments on this “little” issue. Actually, with a little programming on the front end, I can now create a deck that will actually work from within Vassal. Not a clean solution, but one that isn’t too much of a problem despite my original comments starting this particular thread.

The one side benefit to this particular method would be automagically creating a vmod with a particular deck enclosed. A second routine will allow me to enclose the deck provided by the opponent. Again, not a clean solution but a workable one. So Vassal can do it, as I expected. Another benefit is being able to use macros from within openoffice’s spreadsheet to actually create the buildFile so one less issue there. WinRAR can be scripted, so another issue fixed as well.

I will attempt to do the same thing with graphics as well. However, as long as text works, I can live with it. I’m glad I questioned this particular issue instead of muddling with it ad infinitum for way too long and getting way too frustrated with what I was trying to do and what I was expecting from it.

Now that I have the basics all taken care of, I’ll provide the specifics so anyone else can do the same thing if they so choose. Just give me a little time to get it all properly documented.

I really have to agree with this. There is an initial investment in $$$ for MTGO, but you end up with a large selection of cards that you can use in one specific format.

There’s no recurring fee for it…you just pay for your cards (and tournament admission fees if you participate in any tourneys). I was an early adopter when it first launched in 2002…stopped playing for almost a decade…played again recently and all of my cards I had purchased are still available for me to use.

resurrecting this thread…

Is there any doc on “mass piece definer”? I have 480 counters numbered and named 01-000 to 02-239, with rear sides, and I would like to set up an auto load to assign counter names (from spreadsheet or batch file). Any recommendations welcome