Cryodex 4 - Run X-Wing, Armada, or Imperial Assault. Also, Open Source!!!

By Killerardvark, in X-Wing

Hey everyone. I've taken all the versions of Cryodex that I've made and put them all together. Each game's rule set is a separate module, so adding new games in should be a breeze. All of the rules have been updated to the current rule set and the Strength of Schedule calculation is the same one that Tome uses.

Also, by popular demand, it is now open source. You are welcome to download the source code and use it for learning, create your own application, or make an upgrade to Cryodex itself.

Since this was a pretty big change, I fully expect to find a few small bugs. If you find any issues please let me know.

Good luck, and thanks for all the support!!!

Source Location

https://github.com/Killerardvark/CryodexSource/

Jar Location

https://github.com/Killerardvark/CryodexSource/blob/master/Cryodex.jar?raw=true

has the x-wing module been adapted for FFG's new tie-breaker system announced in July?

Yes, that is the latest rule set i modeled this after. Try it out, if you think something is not following those rules let me know.

Dude, thanks so much. LOOOOOVE your software.

One thing, though -- the new Nashtah Pup ruling (Full Win [5 Tournament Points], 101-99 MoV). When I enter 101-99, it's calculating a Modified Win, of course, and for some reason adjusting the MoV to 102-98.

Is there any way this special case can be written in?

Again, you're freakin' awesome. Thanks a ton.

Edited by jme

Oh hell, the nashtah pup. I'll have to review the rules and make sure things are correct. Thanks for bringing it up.

Temp fix, you can manually set the drop-down to fill win and set the kill points to be one apart. You don't enter the mov, got enter points destroyed then it calculates mov. So 101-99 points destroyed would result in 102-98 mov. Simply enter 101-100 or any other two numbers one away. Give it a try and let me know how it goes. I can't check from work.

Fyi, i just checked TOME and it doesn't have any way to get around it.

Never mind...

Hi Chris,

The FAQ has a typo (thanks for bringing it to my attention!), and the player should receive a modified win. I’ll get that fixed ASAP.

Thanks,

Brendan Weiskotten

Organized Play Coordinator

Fantasy Flight Games

[email protected]

Haha, yeah, new FAQ today -- just saw that.

So your Modified win is correct, and I just wasn't thinking straight by trying enter MoV rather than an actual score (I'll try 100-99 tonight, should work great). No fixes to the software then, eh?! Awesome, thanks so much, sir.

Edited by jme

So does this new version auto fix duplicate pairings? I noticed there is not an option to check to enable that.

nice! congrats and kudos on open sourcing your work. FFG would be wise to follow suit with TOME.

Edited by sozin

So does this new version auto fix duplicate pairings? I noticed there is not an option to check to enable that.

Yes it does. There is no longer an option to turn it off. If that is something people want I'm open to it. I'll put together a report on how my new function works, but i think it is much better. For random pairings, it will rerandomize by shifting which player is moved up or down a single points bracket. If it can't fix it that way though it will leave it to the TO. I'll try to explain it more when I'm not at work typing on my phone.

So does this new version auto fix duplicate pairings? I noticed there is not an option to check to enable that.

Yes it does. There is no longer an option to turn it off. If that is something people want I'm open to it. I'll put together a report on how my new function works, but i think it is much better. For random pairings, it will rerandomize by shifting which player is moved up or down a single points bracket. If it can't fix it that way though it will leave it to the TO. I'll try to explain it more when I'm not at work typing on my phone.

I'm all for your new way. The less I have to worry about the better!

So for the Nashta Pup ruling, do I enter 100-99 and will it calculate it as a modified win?

Yes, that should get the correct results.

Great to see this opened source. A submitted a pull request to add a maven build to build the JAR file. Also an open source License should be specified so that contributors and potential adopters know what they can and can't do with the source code. I've opened an issue for this as well.

You're the second person today to request access and suggest maven. I'll look at your requests later tonight. Any suggestions on an open source license? I don't mind people helping out our using code snippets, but I'd like to retain ownership of the project as a whole. At least until i give up and open it to community ownership.

You're the second person today to request access and suggest maven. I'll look at your requests later tonight. Any suggestions on an open source license? I don't mind people helping out our using code snippets, but I'd like to retain ownership of the project as a whole. At least until i give up and open it to community ownership.

You probably want to use the Apache Public License 2.0. As for giving people rights to the source code repository, you don't need to do that for them to contribute. In fact you probably just want them to submit pull requests and you merge them in after you have looked at the code changes. Less likely of somebody committing some code that you didn't know about this way. Once somebody has contributed enough and you are comfortable with them, you can give them access if you want. Otherwise, they can just fork the repository and submit pull requests to be merged.

The apache public licese, maintains copyright of all code contributions to you but it allows commericial use without having to make their source available. Here is a license to the Apache Public License 2.0.

http://www.apache.org/licenses/LICENSE-2.0

If you really want a strict license that forces people to make their code available if requested, you can use GPL v3.0. It depends on what you want to happen with the source. Apache is the most commercial friendly of the two.

Edited by kingargyle

Last tournament I TO'ed, we only had time for 4 swiss and cut to top 2. Since it wasn't an option, I chose cut to top 4, fixed the pairings and emptied 2 of them.

I've never added a cut to top two simply because it didn't seem to make sense. The software doesn't really add anything at that point. I can see wanting it for tournament results or exporting to list juggler. I'll make a note to add it in.

I've never added a cut to top two simply because it didn't seem to make sense. The software doesn't really add anything at that point. I can see wanting it for tournament results or exporting to list juggler. I'll make a note to add it in.

The opening hours of the store just don't allow for a 6th round at all. Even 5 rounds, 65 mins tops, creates a tight schedule.

What's the other option? 3 swiss rounds and cut to top 4? That makes a whole bunch of people (we have around 10-16 players) play much less. Play 4 swiss rounds and cut to top 4? The finals always has to be played on another day, or at people's places or on vassal - all of which is watched by a tiny portions of the participants.

You hear me wrong Mu0n. You've run many more events than i have so I'm sure you've got that figured out. I was just starting that share is not required to run a top 2 cut. You can just look at the ranking last and see the top 2 players. There's no special pairing rules or anything that the software would add. Sorry for the confusion.

Edited by Killerardvark

I tried using the latest version of Cryodex. Pairings worked fine throughout swiss but cut to top 4 was still pairing random.

There was one person 4-0 and four with 3-1 records and it kept pulling the wrong person or giving the wrong matchups.

It's an easy manual fix but I think it would be difficult for cut to top 8 or 16.

O_o it shouldn't be, but I'll check it out. Can you post the rankings, generated pairings, and expected pairings?

Yup encountered the same problem with the cut to the TOP 8 cutting to the wrong players with ver 4.05.

It seems the 8th player is being chosen randomly when there's the same score pool and avoiding duplicates as well.

Edited by Scarloochie

You guys are right. It is wrong. I'll have it fixed the next chance I get to the code. The problem is that it was using the pairing comparator which only cares about score group since it is random now. It should use the ranking comparator to get the final cut. I'll make another post when the new version is ready.