It is currently 16 Apr 2024, 07:34
   
Text Size

Forge for Android v1.6.15.003

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

Which version of Android are you using on the primary device that you run Forge on?

Poll ended at 01 Aug 2017, 08:12

Android 4
3
9%
Android 5
4
12%
Android 6
10
29%
Android 7
17
50%
 
Total votes : 34

Re: Forge for Android v1.6.4.003

Postby martinisam » 16 Oct 2017, 23:11

When I choose the Net Deck option, it automatically re-downloads the old list of decks when there are new decks listed in the forum. Does this function no longer work?
martinisam
 
Posts: 30
Joined: 20 May 2017, 14:50
Has thanked: 4 times
Been thanked: 7 times

Re: Forge for Android v1.6.4.003

Postby Agetian » 17 Oct 2017, 03:51

CokedUpZombie wrote:Luminarch Ascension was played by the computer then on my turn I did not do any damage so Luminarch Ascension triggered and then I got the following error.

IndexOutOfBoundsException | Open
Code: Select all
Forge Version:    1.6.4.003
Operating System: Linux 4.4.16-11982677 armv8l
Java Version:     0 The Android Project

java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
   at java.util.LinkedList.checkElementIndex(LinkedList.java:555)
   at java.util.LinkedList.get(LinkedList.java:476)
   at forge.util.collect.FCollection.get(FCollection.java:399)
   at forge.game.cost.CostRemoveAnyCounter.payAsDecided(CostRemoveAnyCounter.java:138)
   at forge.game.cost.CostPayment.payComputerCosts(CostPayment.java:194)
   at forge.ai.ComputerUtil.handlePlayingSpellAbility(ComputerUtil.java:118)
   at forge.ai.ComputerUtil.handlePlayingSpellAbility(ComputerUtil.java:70)
   at forge.ai.PlayerControllerAi.playChosenSpellAbility(PlayerControllerAi.java:447)
   at forge.game.phase.PhaseHandler.startFirstTurn(PhaseHandler.java:961)
   at forge.game.GameAction.startGame(GameAction.java:1633)
   at forge.game.Match.startGame(Match.java:87)
   at forge.match.HostedMatch$2.run(HostedMatch.java:225)
   at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
   at java.lang.Thread.run(Thread.java:762)
Ironically, this error has very little to do with Luminarch Ascension - almost nothing, save for the fact that it's a kind of card that can have and commonly has counters on it. This was caused by something else, and unfortunately, it's impossible to deduce from the error itself what exactly had caused it. Do you remember if the AI had any card on board that would allow him to remove a counter from a card, especially if it was as a part of an ability cost (something like "Remove a counter from a card: do something")? I tried to patch up the relevant method upstream, but I can't prove that it worked (and moreover, it may, in fact, indicate a bigger error under the hood which would also need fixing).

P.S. If you see this happen again, please take a screenshot of the battlefield if possible.

- Agetian
Agetian
Programmer
 
Posts: 3471
Joined: 14 Mar 2011, 05:58
Has thanked: 676 times
Been thanked: 561 times

Re: Forge for Android v1.6.4.003

Postby Agetian » 17 Oct 2017, 03:53

martinisam wrote:When I choose the Net Deck option, it automatically re-downloads the old list of decks when there are new decks listed in the forum. Does this function no longer work?
These files are updated manually. I guess no one updated them for a while. If I find some time, I'll update them a bit later.

- Agetian
Agetian
Programmer
 
Posts: 3471
Joined: 14 Mar 2011, 05:58
Has thanked: 676 times
Been thanked: 561 times

Re: Forge for Android v1.6.4.003

Postby CokedUpZombie » 17 Oct 2017, 05:52

Agetian wrote:
CokedUpZombie wrote:Luminarch Ascension was played by the computer then on my turn I did not do any damage so Luminarch Ascension triggered and then I got the following error.

IndexOutOfBoundsException | Open
Code: Select all
Forge Version:    1.6.4.003
Operating System: Linux 4.4.16-11982677 armv8l
Java Version:     0 The Android Project

java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
   at java.util.LinkedList.checkElementIndex(LinkedList.java:555)
   at java.util.LinkedList.get(LinkedList.java:476)
   at forge.util.collect.FCollection.get(FCollection.java:399)
   at forge.game.cost.CostRemoveAnyCounter.payAsDecided(CostRemoveAnyCounter.java:138)
   at forge.game.cost.CostPayment.payComputerCosts(CostPayment.java:194)
   at forge.ai.ComputerUtil.handlePlayingSpellAbility(ComputerUtil.java:118)
   at forge.ai.ComputerUtil.handlePlayingSpellAbility(ComputerUtil.java:70)
   at forge.ai.PlayerControllerAi.playChosenSpellAbility(PlayerControllerAi.java:447)
   at forge.game.phase.PhaseHandler.startFirstTurn(PhaseHandler.java:961)
   at forge.game.GameAction.startGame(GameAction.java:1633)
   at forge.game.Match.startGame(Match.java:87)
   at forge.match.HostedMatch$2.run(HostedMatch.java:225)
   at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
   at java.lang.Thread.run(Thread.java:762)
Ironically, this error has very little to do with Luminarch Ascension - almost nothing, save for the fact that it's a kind of card that can have and commonly has counters on it. This was caused by something else, and unfortunately, it's impossible to deduce from the error itself what exactly had caused it. Do you remember if the AI had any card on board that would allow him to remove a counter from a card, especially if it was as a part of an ability cost (something like "Remove a counter from a card: do something")? I tried to patch up the relevant method upstream, but I can't prove that it worked (and moreover, it may, in fact, indicate a bigger error under the hood which would also need fixing).

P.S. If you see this happen again, please take a screenshot of the battlefield if possible.

- Agetian
Alright thanks I will keep an eye out for it. Thanks for checking on it. I don't remember what else was out though sorry.
CokedUpZombie
 
Posts: 90
Joined: 08 Feb 2017, 18:57
Has thanked: 14 times
Been thanked: 22 times

Re: Forge for Android v1.6.4.003

Postby jtrowell » 17 Oct 2017, 13:03

For reference a few bugs that I got on the Android version.
(I have not tried the desktop version recently so I don't know if those are specific to the Android version or not)

- using song of the Dryads on Humility did transform it into a Forest, but the effect of Humility didn't stop, all creatures even new ones summoned later were still 1/1 without ability.
I suppose that "Imprisonned in the moon" would probably have the same bug

- Champion of of lambholt ability does not work as expected, only the +1/+1 counters seems to be counted (increases in power from Gaea Anthem or from an equipment didn't increase the atttack value needed to block your creatures)

- Also even on high end phones and tablets, there are some cards whose simple presence in play slow down the game considerably in ways that don't seem normal.

Most of them have an effect only when in play, and are usually cards that allow exceptions to the normal casting
(I suppose that they add special triggers for the AI or something similar that are checked so many times per turn that they saturate the memory and/or CPU ?)

Some exemples of cards with this problem :
- Sigarda'aid
- As foretold
- Conqueror's flail

But some cards seems to have an impact even in play (maybe because they are in the hand of my opponent), quest opponents using bridge from bellow and some other cards impactif the graveyard are very slow to play against.

What is strange is that this is not universal, there are many cards that seems like they should have a similar impact (like all creatures with flash, or effect giving flash to certain kind of spells), and I find strange that a card like Conqueror's flail that *prevent* casting, and so should reduce options for the AI, can have such impact, so it's possible that there is a bug there, especially when I don't remember similar problems back when I used to play on the descktop version.

- While writing about performances, there is also one thing that I constated on the android version : each time that I lose a game (but not when I win), before the game ends I see my deck being emptied of cards automatically.

This is usually rather fast, but I sometimes like to play with huge decks with several hunderd cards (with a few decks even going up to 1500 cards), and for those decks the time it takes to process the wholl deck can takes a while (up to 10-20 seconds for the bigger decks, it's probably something like 1s per 50~100 cards on average)

I wonder why the game has to process my deck like that when the game is finished, and evenr more strange why it does so only when I lose ?

Thanks in advance.
jtrowell
 
Posts: 41
Joined: 04 May 2015, 09:22
Has thanked: 3 times
Been thanked: 10 times

Re: Forge for Android v1.6.4.003

Postby lazylockie » 18 Oct 2017, 13:29

something happened with this 003 version? It seems the game is very unstable now, maybe memory leak? I can barely play 1 game and everything starts to go sluggish and crashes due to memory usage. My phone is Android 7 and has 3gb ram
lazylockie
 
Posts: 508
Joined: 13 Jul 2010, 22:44
Has thanked: 74 times
Been thanked: 15 times

Re: Forge for Android v1.6.4.003

Postby Agetian » 18 Oct 2017, 13:53

lazylockie wrote:something happened with this 003 version? It seems the game is very unstable now, maybe memory leak? I can barely play 1 game and everything starts to go sluggish and crashes due to memory usage. My phone is Android 7 and has 3gb ram
That's weird to hear, I'm not noticing anything like that on any of my Android devices, though they are not nearly as high end as you mentioned (the best one I have is an Android 6.1 device with 2 GB RAM, and I'm able to play multiple matches without any noticeable slowdown, let alone memory-related crashes).

Maybe this is specific to the deck/cards you're playing with? Or is this true for any mode that you're playing and any deck you're trying?

- Agetian
Agetian
Programmer
 
Posts: 3471
Joined: 14 Mar 2011, 05:58
Has thanked: 676 times
Been thanked: 561 times

Re: Forge for Android v1.6.4.003

Postby lazylockie » 18 Oct 2017, 18:04

Agetian wrote:
lazylockie wrote:something happened with this 003 version? It seems the game is very unstable now, maybe memory leak? I can barely play 1 game and everything starts to go sluggish and crashes due to memory usage. My phone is Android 7 and has 3gb ram
That's weird to hear, I'm not noticing anything like that on any of my Android devices, though they are not nearly as high end as you mentioned (the best one I have is an Android 6.1 device with 2 GB RAM, and I'm able to play multiple matches without any noticeable slowdown, let alone memory-related crashes).

Maybe this is specific to the deck/cards you're playing with? Or is this true for any mode that you're playing and any deck you're trying?

- Agetian
I play almost exclusively Quest mode, though I'll try some Planar Conquest or Gauntlet mode to see if it's the game mode. Though I do push the bar a bit with all HQ cards, I never had problems this severe.

I'll also try to downgrade to 001 which was working fine

Do you use LQ pics on your device?
lazylockie
 
Posts: 508
Joined: 13 Jul 2010, 22:44
Has thanked: 74 times
Been thanked: 15 times

Re: Forge for Android v1.6.4.003

Postby Agetian » 19 Oct 2017, 03:38

Nope, I'm actually using XLHQ cards (a custom set with batch-trimmed borders) on my Android 6.1 phone. :/ I mean, yes, there are things that can slow down Forge for Android:

- Higher picture quality/size will be more RAM-demanding (XLHQs are slower than HQs, and HQs are slower than LQs, while LQs are slower than no picture at all). However, there should be no relative difference with the same picture quality between 1.6.4.001 and 1.6.4.003 per se (see below though for other possible factors).
- Some cards and card groups are known to slow down the AI, which becomes noticeable (and sometimes very noticeable, with some cards like that) on mobile devices but usually not a problem on PCs (see above for a post outlining some examples); this is most likely due to a combination of factors, such as how the AI is written and how the processing of particular cards is written, unfortunately, this is not as straightforward to fix. :/ I mean, we would need someone really good at optimizing the code. And ironically, the more advanced the AI becomes and, thus, the more calculations it has to do per iteration, the slower the game will eventually get, unless we get a brand new AI architecture of some sort that would be faster than the current one (sadly, I think things like MCTS and Minimax would be even slower on the phones, though maybe I'm wrong). There have been some advances in the AI code between 1.6.4.001 and 1.6.4.003, but nothing major I think, most of it dealing with simple AI logics specific to individual cards or marking cards as AI-playable, which in itself does not change the AI code and thus does not affect performance.
- There is a (very) long-standing issue with clearing the image cache, which produces a memory leak and causes the game to become progressively slower as you play many matches without restarting the game. No one has been able to locate and fix this issue for what seems to be years. It's not something new to 1.6.4.003 at all (or even 1.6.4 in general), this problem existed for many years, potentially at least since the UI rewrite around 2012-2013 or so, even before Forge for Android was invented (so, *all* Forge for Android versions are likely susceptible to it). On modern PCs, this is generally not noticeable, but on mobile PCs you will notice progressive degradation of performance (and the higher the picture quality you have and the less RAM you have, the faster you'll notice it), and eventually the game will start acting weird (most commonly showing black boxes instead of card pictures) and, if you continue playing, will crash with an out of memory error. However, this is generally something you don't immediately notice, at least not on a high-end device with reasonably sane picture quality... And sadly, no one seems to know how to fix this since it was first noticed (and this was a long time ago), so yep, definitely still an issue.

It could be any of the factors above or any combination of the factors above that's bothering you. It may or may not have become somewhat more noticeable in the latter builds because, yes, the AI is improving (which, sadly, means more calculations and more memory usage too), and the card cache clearing is not getting any better. I'm still surprised, though, that you're naming a particular sub-build (1.6.4.003) as the culprit. Please let me know if 1.6.4.001 works better for you. And also, if possible, please provide your quest save where you are experiencing the slowdowns, and maybe I'll find some time to profile the project and see what exactly takes the most CPU cycles and/or RAM.

- Agetian
Agetian
Programmer
 
Posts: 3471
Joined: 14 Mar 2011, 05:58
Has thanked: 676 times
Been thanked: 561 times

Re: Forge for Android v1.6.4.003

Postby lazylockie » 19 Oct 2017, 16:07

thanks for the info Agetian. I tested with 001 and you're right, there's no performance difference between 001 and 003, maybe I just noticed now because I'm playing more on mobile.

according to what you said, there's not much I can do, just need to get used to restart the game every 2 or 3 matches
lazylockie
 
Posts: 508
Joined: 13 Jul 2010, 22:44
Has thanked: 74 times
Been thanked: 15 times

Re: Forge for Android v1.6.4.003

Postby DaniUG » 19 Oct 2017, 23:41

Description: commander game with at least 80 tokens.

OutOfMemoryError | Open
Code: Select all
Forge Version:    1.6.4.003
Operating System: Linux 4.1.18-gce6cee1 armv7l
Java Version:     0 The Android Project

java.lang.OutOfMemoryError: Failed to allocate a 544 byte allocation with 4194304 free bytes and 38MB until OOM; failed due to fragmentation (required continguous free 8192 bytes for a new buffer where largest contiguous free 4096 bytes)
   at java.util.EnumMap.<init>(EnumMap.java:138)
   at forge.trackable.TrackableObject.<init>(TrackableObject.java:25)
   at forge.game.GameEntityView.<init>(GameEntityView.java:28)
   at forge.game.card.CardView.<init>(CardView.java:68)
   at forge.game.card.Card.<init>(Card.java:290)
   at forge.game.card.CardUtil.getLKICopy(CardUtil.java:203)
   at forge.game.zone.Zone.getLKICopy(Zone.java:264)
   at forge.game.Game.copyLastState(Game.java:153)
   at forge.game.zone.MagicStack.resolveStack(MagicStack.java:503)
   at forge.game.phase.PhaseHandler.startFirstTurn(PhaseHandler.java:1007)
   at forge.game.GameAction.startGame(GameAction.java:1633)
   at forge.game.Match.startGame(Match.java:87)
   at forge.match.HostedMatch$2.run(HostedMatch.java:225)
   at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
   at java.lang.Thread.run(Thread.java:776)
Also in the same game, AI has Ertai's Familiar and kept spending all its blue mana at the beginning of its turn when using one would have been enough
Even the smallest spark may set a world ablaze
User avatar
DaniUG
 
Posts: 59
Joined: 01 Jul 2015, 10:36
Has thanked: 11 times
Been thanked: 0 time

Re: Forge for Android v1.6.4.003

Postby CokedUpZombie » 23 Oct 2017, 04:03

Got an interesting one.

Chandra's Fury in opponents hand and i had Sen Triplets in play but when I played Chandra's Fury from opponents hand and choose my opponent but it dealt 1 damage to all creatures in play instead of just his.
CokedUpZombie
 
Posts: 90
Joined: 08 Feb 2017, 18:57
Has thanked: 14 times
Been thanked: 22 times

Re: Forge for Android v1.6.4.003

Postby Agetian » 23 Oct 2017, 11:42

CokedUpZombie wrote:Got an interesting one.

Chandra's Fury in opponents hand and i had Sen Triplets in play but when I played Chandra's Fury from opponents hand and choose my opponent but it dealt 1 damage to all creatures in play instead of just his.
Attempted to fix, though I have a feeling there's some kind of a bigger underlying problem there that I can't yet crack :/

- Agetian
Agetian
Programmer
 
Posts: 3471
Joined: 14 Mar 2011, 05:58
Has thanked: 676 times
Been thanked: 561 times

Re: Forge for Android v1.6.4.003

Postby janfaln » 23 Oct 2017, 23:29

I love forge suddenly won't work on pad 7.0
Attachments
forge.log
(159 Bytes) Downloaded 162 times
janfaln
 
Posts: 3
Joined: 23 Oct 2017, 23:22
Has thanked: 0 time
Been thanked: 0 time

Re: Forge for Android v1.6.4.003

Postby Agetian » 24 Oct 2017, 05:10

janfaln wrote:I love forge suddenly won't work on pad 7.0
Hmm, there's no indication of any error in the log... Can you please clarify how exactly it doesn't work? Like, it doesn't start at all, it shows a black screen, it hangs at a certain point when loading, etc. I'll try to help depending on what exactly doesn't work.

- Agetian
Agetian
Programmer
 
Posts: 3471
Joined: 14 Mar 2011, 05:58
Has thanked: 676 times
Been thanked: 561 times

PreviousNext

Return to Forge

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