It is currently 29 Oct 2025, 19:45
   
Text Size

Forge version 1.3.15

Post MTG Forge Related Programming Questions Here

Moderators: timmermac, Agetian, friarsol, Blacksmith, KrazyTheFox, CCGHQ Admins

Forge version 1.3.15

Postby Chris H. » 03 May 2013, 12:40

Tentative target release date: Friday May 17.

Would be nice to get a few of the bugs fixed for this version. :wink:
User avatar
Chris H.
Forge Moderator
 
Posts: 6320
Joined: 04 Nov 2008, 12:11
Location: Mac OS X Yosemite
Has thanked: 644 times
Been thanked: 643 times

Re: Forge version 1.3.15

Postby Hellfish » 03 May 2013, 14:15

Any bug in particular you were thinking of? :-P
So now you're
Screaming for the blood of the cookie monster
Evil puppet demon of obesity
Time to change the tune of his fearful ballad
C is for "Lettuce," that's good enough for me
User avatar
Hellfish
Programmer
 
Posts: 1297
Joined: 07 Jun 2009, 10:41
Location: South of the Pumphouse
Has thanked: 110 times
Been thanked: 169 times

Re: Forge version 1.3.15

Postby Chris H. » 03 May 2013, 14:21

Hellfish wrote:Any bug in particular you were thinking of? :-P
 
:-k

Max mentioned a few in the previous 1.3.14 topic and some of these may already be fixed:

:?:

Max mtg wrote:Sure, should be good for a mantainance release.

Some issues to b concerned of:
1. Dgm boosters yeild gates in common slot (someone should write a rule to filter them out, see related thread)
2. Preemptivelty make decision for optional tiggers on stack. The ui was referring to game directly, while it should get the current player controlled by gui and write the choices made to its PlayerContoller class instance.
3. Use a thread-safe collection for stack, or maybe marking getStack with synchronized keyword will be sufficint. Edt does not always know the exact number of items on stack, which results in OOB exception.
4. Get x count cannot get a not-null opponent when the game is over which results in npe.

Wish i could do any of the above by that day, but the tablet i have here is not a propper tool to write code. :-)
User avatar
Chris H.
Forge Moderator
 
Posts: 6320
Joined: 04 Nov 2008, 12:11
Location: Mac OS X Yosemite
Has thanked: 644 times
Been thanked: 643 times

Re: Forge version 1.3.15

Postby Hellfish » 03 May 2013, 14:32

I know 2 and 4 are fixed and I'm hopeful that 3 is fixed too, it just needs testing.Havn't looked at 1...yet. :-)
So now you're
Screaming for the blood of the cookie monster
Evil puppet demon of obesity
Time to change the tune of his fearful ballad
C is for "Lettuce," that's good enough for me
User avatar
Hellfish
Programmer
 
Posts: 1297
Joined: 07 Jun 2009, 10:41
Location: South of the Pumphouse
Has thanked: 110 times
Been thanked: 169 times

Re: Forge version 1.3.15

Postby Max mtg » 03 May 2013, 17:38

#1 is very easy - see boostergenerator.java, its makePrintSheet method, and a routine that parses slot extra restrictions (they are divided by colons) , find out how dfc filter is implemednted, write some similiar code for lands - to exclude them from common slots of dgm boosters
Single class for single responsibility.
Max mtg
Programmer
 
Posts: 1997
Joined: 02 Jul 2011, 14:26
Has thanked: 173 times
Been thanked: 334 times

Re: Forge version 1.3.15

Postby friarsol » 03 May 2013, 18:02

Hellfish wrote:I know 2 and 4 are fixed and I'm hopeful that 3 is fixed too, it just needs testing.Havn't looked at 1...yet. :-)
Hellfish, it looks like your fix for #3 may have broken some triggers. Can you check out the one that gos reported on the release thread and see if it happens before your changes?
friarsol
Global Moderator
 
Posts: 7593
Joined: 15 May 2010, 04:20
Has thanked: 243 times
Been thanked: 965 times

Re: Forge version 1.3.15

Postby friarsol » 03 May 2013, 22:30

Ok, I reverted this synchronize changes since it seemed to break all of the trigger payment stuff. Additionally I added DGM into RTR block and made DGM lands no longer appear in the common slot. I think we should release a new version to replace 1.3.14 with these changes So we don't have two weeks of everyone being annoyed that many games are unplayable.
friarsol
Global Moderator
 
Posts: 7593
Joined: 15 May 2010, 04:20
Has thanked: 243 times
Been thanked: 965 times

Re: Forge version 1.3.15

Postby Chris H. » 03 May 2013, 23:01

Thank you for the quick fixes Sol.

Lets plan on releasing 1.3.15 on Monday, May 6 as this will give us the weekend for additional fixes.
User avatar
Chris H.
Forge Moderator
 
Posts: 6320
Joined: 04 Nov 2008, 12:11
Location: Mac OS X Yosemite
Has thanked: 644 times
Been thanked: 643 times

Re: Forge version 1.3.15

Postby Max mtg » 04 May 2013, 05:24

Since the porblem is that critical, I would vote for immediate release of a build, named 1.3.14.1 or 1.3.14a if possible. Because it does not bring new features to be called 3.15...
And print a correct list of unsuported dgm cards in title, along with a java version expected update.

What had to be marked as synchronized - i meant getStack routine originally, but Hellfish was thinking in a right direction to mark add/remove methods synchronized as well, yet those routines do a lot more than just adding something to stack, and that broke everything.
What could do the job is enclose into sync-d blocks only the code that alters the 'stack' member of MagicStack class, but i have to note it again, this needs testing.
Single class for single responsibility.
Max mtg
Programmer
 
Posts: 1997
Joined: 02 Jul 2011, 14:26
Has thanked: 173 times
Been thanked: 334 times

Re: Forge version 1.3.15

Postby Chris H. » 04 May 2013, 10:53

Hope you are enjoying your vacation Mac. :)

I built and deployed a snapshot build and posted links for them in the 1.3.14 announcement topic.

The Maven system handles the version number changing for me and to do as you suggest would likely require me to modify the directories and the file names on the cardforge web site by hand.

I did add a little info to the changes.txt file already:

- Bug Fixes -
Reverted the synchronize changes since it seemed to break all of the trigger payment stuff.

Added DGM into RTR block and made DGM lands no longer appear in the common slot.


- DGM card pictures -
Most but not all of the LQ non-set DGM card pics are now available for downloading. The DGM set pics might become available in about a couple of weeks or so.


- Java 7 -
The devs are discussing a plan to update the battlefield display code with Java FX 2.2 and this should help to improve a few things. Java FX 2.2 requires Java 7 so it is important for members of our user base to update in the near future as Forge at the time of the update will no longer run under Java 6.
User avatar
Chris H.
Forge Moderator
 
Posts: 6320
Joined: 04 Nov 2008, 12:11
Location: Mac OS X Yosemite
Has thanked: 644 times
Been thanked: 643 times

Re: Forge version 1.3.15

Postby Hellfish » 04 May 2013, 17:45

Max mtg wrote:What had to be marked as synchronized - i meant getStack routine originally, but Hellfish was thinking in a right direction to mark add/remove methods synchronized as well, yet those routines do a lot more than just adding something to stack, and that broke everything.
What could do the job is enclose into sync-d blocks only the code that alters the 'stack' member of MagicStack class, but i have to note it again, this needs testing.
I've done this and am running through my quest mode to test things even more than I already have. The cases mentioned in the release thread ( Invoke Prejudice, Counterspell, costed/targeted triggers (Blood Artist, Mentor of the Meek)) all work correctly.
So now you're
Screaming for the blood of the cookie monster
Evil puppet demon of obesity
Time to change the tune of his fearful ballad
C is for "Lettuce," that's good enough for me
User avatar
Hellfish
Programmer
 
Posts: 1297
Joined: 07 Jun 2009, 10:41
Location: South of the Pumphouse
Has thanked: 110 times
Been thanked: 169 times

Re: Forge version 1.3.15

Postby Max mtg » 04 May 2013, 19:05

Hellfish, that's not quite correct: all the synchronized blocks have to use the same monitor to achieve the desired order or operations. Let me remind you, that the original problem was related to edt unable to see changes made in stack by other threads. So we need to ensure right ordering, that is changes must 'happen-before' (notion from java memory model docs) they are read by edt, that's why getStack method also needs some kind of synchronized block.

Use synchronized without an implicit monitor ("this" will be used) to use the same monitor. Frozen stack has not been noted in concurrency issues, it does not need to be sync-d.

Chris, the vacation is wonderful, i manage to catch wifi here for an hour twice a day, so I enjoy this balance.
Single class for single responsibility.
Max mtg
Programmer
 
Posts: 1997
Joined: 02 Jul 2011, 14:26
Has thanked: 173 times
Been thanked: 334 times

Re: Forge version 1.3.15

Postby Hellfish » 04 May 2013, 19:51

Ah, well, this is really my first foray into the specifics of threading. :oops: As I understood what I have read; firstly, you should synchronize on the object you are performing operations on to get exclusive access and secondly, it's bad practice to synchronize on this rather than a private member because code outside the class can synchronize on the same instance (and unlock it? I'm a little fuzzy on this bit).

The key words being "As I understood". :)

Either way, I'll remove the frozenstack synchronized block and add a block for getstack
So now you're
Screaming for the blood of the cookie monster
Evil puppet demon of obesity
Time to change the tune of his fearful ballad
C is for "Lettuce," that's good enough for me
User avatar
Hellfish
Programmer
 
Posts: 1297
Joined: 07 Jun 2009, 10:41
Location: South of the Pumphouse
Has thanked: 110 times
Been thanked: 169 times


Return to Developer's Corner

Who is online

Users browsing this forum: No registered users and 20 guests

Main Menu

User Menu

Our Partners


Who is online

In total there are 20 users online :: 0 registered, 0 hidden and 20 guests (based on users active over the past 10 minutes)
Most users ever online was 9298 on 10 Oct 2025, 12:54

Users browsing this forum: No registered users and 20 guests

Login Form