GameSalad

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Mac Stable Release 0.13.31

BlackCloakGSBlackCloakGS Posts: 2,250Key Master, Head Chef, Member, PRO GameSalad Employee

Mac Stable Release 0.13.31

Fixes:

  • Fixed Animate behavior not resizing correctly in behavior list

  • Added additional exception reporting

Contains all the fixes from 0.13.30

Get the build now

«134

Comments

  • NimbleBugNimbleBug Posts: 483Member

    @BlackCloakGS Thanks for the update :)

  • MentalDonkeyGamesMentalDonkeyGames Posts: 1,276Member

    Thanks guys!

    Mental Donkey Games
    Website - Facebook - Twitter

  • Bowhill GamesBowhill Games Posts: 191Member

    @BlackCloakGS does this contain a fix for
    Bug 1081 - Arcade: HTML5: change image not working ?

    (site currently under construction)
  • LovejoyLovejoy Posts: 2,078Member

    Ok this is something that i think hasn't been working for a while now. Does Reset game behavior call an ad for anyone? I remember trying it a while back probably 6 months or so ago and it didnt call and ad, now i tried it last build and it still didn't call an ad. I don't think it would be any different this build.

    Fortuna Infortuna Forti Una

  • ThoPelThoPel GermanyPosts: 184Member, PRO
    edited July 2015

    Since I switched to version 0.13.31 I have to open ever actor twice, because the Library "Behaviors | Images | Sound" is missing.

    First time:

    Second time:

  • jonmulcahyjonmulcahy Posts: 10,384Member, Sous Chef, PRO

    @ThoPel that's been happening to me a few for the past few releases randomly I usually just close and reopen GS and I'm good for a few hours before it happens again.

  • ThoPelThoPel GermanyPosts: 184Member, PRO

    @jonmulcahy Before I posted it, I restarted GS - feels like - 100 times. Apart from the >2 crashes :)

  • jonmulcahyjonmulcahy Posts: 10,384Member, Sous Chef, PRO

    @ThoPel said:
    jonmulcahy Before I posted it, I restarted GS - feels like - 100 times. Apart from the >2 crashes :)

    yup, I probably restart GS 10 times a day to keep it fresh. last winter it was 10 times per hour :) it is getting better.

  • The_Gamesalad_GuruThe_Gamesalad_Guru Posts: 9,914Member

    @BlackCloakGS I just submitted a bug for multiplayer. Things seem to be working well from a table standpoint but creator seems to freeze at particular times not allowing any change scene either by behavior or manually by the scene selector during preview.

    It seems as well that the opponent player's tables refresh fine but the player table does not. I'm doing simple tests just watching the tables. if I go off the scene and comeback the player table now displays the proper info. this is the reverse of what was happening before as it was the opponent tables not being refreshed without going off scene.

  • crazycam99crazycam99 Paris, FrancePosts: 519Member

    The Android viewer doesn't seem to work in the latest version...

  • The_Gamesalad_GuruThe_Gamesalad_Guru Posts: 9,914Member

    So i found a new issue related to rules and tables. Since addressing a zero row/column causes freezes et.. I always wrap my rules that need attribute values to address a row/column in a rule saying do when said attributes are > 0. Now it seems the code inside is still being scanned and causing a freeze to occur. i discovered this by turning off the main rule and still encountered a freeze but when I turned off the rule inside that would be looking for row/column 0 the freezing stopped.

  • LovejoyLovejoy Posts: 2,078Member

    Any word on Revmob Banner not showing? http://bugs.gamesalad.com/show_bug.cgi?id=1232

    Fortuna Infortuna Forti Una

  • QASaladQASalad Posts: 142Key Master, Head Chef, Member, PRO GameSalad Employee

    @crazycam99 said:
    The Android viewer doesn't seem to work in the latest version...

    What issue are you seeing? I'm not having any problems with the Android Viewer in 0.13.31.

  • HymloeHymloe Posts: 1,651Member

    Is the table related memory issues fixed?

    Last time I checked (some time ago, as you keep saying this won't be fixed until version 0.14), my game crashes after a few scene changes, because tables don't clean up properly.

    Keen to hear some news on progress on that issue. Been waiting a year for a fix.

  • HymloeHymloe Posts: 1,651Member

    @BlackCloakGS On the note of this table memory problem...

    Does anyone there at GS even know what I'm talking about?

    Is this issue ignored because everyone just washes their hands of it?

    Everyone just looks the other way?

    Someone else's problem?

    Are you aware of the issue?

  • ArmellineArmelline Posts: 4,832Member, PRO

    Wow you've got some venting to do tonight!

    @Hymloe said:
    Does anyone there at GS even know what I'm talking about?

    It has been stated on multiple occasions that GameSalad are aware of the issue and are actively seeking to fix it. It's one of the top priorities right now.

    That said, there are ways to avoid the memory buildup in some circumstances. I don't know if it got fixed, but it was confirmed that self-referencing a table cell when changing it would cause a memory leak. (i.e. When changing a table value, you reference the table cell value you're changing, so something like tableCellValue(table,1,1) to tableCellValue(table,1,1)+1.)

    Perhaps your game doesn't even need to be on hold with a few potentially quick workarounds. Not ideal, but better than nothing.

  • HymloeHymloe Posts: 1,651Member

    @Armelline said:
    Wow you've got some venting to do tonight!

    Perhaps your game doesn't even need to be on hold with a few potentially quick workarounds. Not ideal, but better than nothing.

    Thanks. I've worked on / followed the issue, on and off for over a year. It brings me pain just to evaluate new builds, only to find the issue unchanged. I've debugged, and worked with the helpful @Hopscotch on the problem, all to no avail.

    I now simply await news that it is confirmed as fixed.

    Thanks for your suggestions! :)

  • supafly129supafly129 Posts: 453Member, PRO

    @Hymloe said:
    Thanks for your suggestions! :)

    Based on what I was told it sounds like 0.14 will be here sometime before the end of the year. I'm in the same boat as you so I hope this gets solved sooner than later!

  • owen_dennisowen_dennis Just a guy, you know. Posts: 236Member, PRO
    edited July 2015

    @Armelline said:
    Wow you've got some venting to do tonight!

    Perhaps your game doesn't even need to be on hold with a few potentially quick workarounds. Not ideal, but better than nothing.

    Oh interesting. I have the same problem @hymloe has but a somewhat different situation. I have randomly spawned enemies with hitboxes that follow them based on their table coordinates which are constantly updated with a timer. The tables hold the enemy's x and y positions, and their health. So when the hit box is hit, it tells that health value to be whatever the health value is -1.

    What's the workaround idea for the self-referencing table thing? Would it be something like:

    If rule is fired:
    change self.value to tablecellvalue(table,1,1)
    change tablecellvalue(table,1,1) to self.value-1

    That way it's not technically making the table reference itself, it's instead referencing a self.value?

    I'm also (or it's perhaps the same thing?) facing this memory dumping issue that I'm starting to think is a combination of the table value thing and the change scene leak. However, in the state of gamesalad thread, it was mentioned by @dgackey that @BlackCloakGS is working on it, so I'm sure it'll be fixed within a couple months.

  • The_Gamesalad_GuruThe_Gamesalad_Guru Posts: 9,914Member
    edited July 2015

    The proper way to change a table value is to use the change table value behavior not using a change attribute. If I'm going to modify a value defined in a table I always route it through a game level or self attribute using a change attribute to set the default value. This is a proper logic branch. When you don't build proper logic branches with backstops, you end up with conflicting code and can have head on crashes of data. This is logic 101. It's like directing traffic you need to have stop signs at intersections or yeilds et...

  • ArmellineArmelline Posts: 4,832Member, PRO
    edited July 2015

    @owen_dennis said:
    What's the workaround idea for the self-referencing table thing? Would it be something like:
    If rule is fired:
    change self.value to tablecellvalue(table,1,1)
    change tablecellvalue(table,1,1) to self.value-1

    Yes, if I remember correctly. Though I'll tag @gingagaming here as although we discovered together, he put it into actual use. He's more likely to know if it was fixed and quite what he ended up doing.

    @The_Gamesalad_Guru - he's only talking about using change attributes as a workaround to avoid a bug in GameSalad.

  • The_Gamesalad_GuruThe_Gamesalad_Guru Posts: 9,914Member
    edited July 2015

    Hmmm you know I'm catching up lol. Is there a thread on this bug as I should get up to speed so I can avoid it. @Armelline

  • KevinCrossKevinCross London, UKPosts: 1,893Member

    @The_Gamesalad_Guru said:
    The proper way to change a table value is to use the change table value behavior not using a change attribute. If I'm going to modify a value defined in a table I always route it through a game level or self attribute using a change attribute to set the default value. This is a proper logic branch. When you don't build proper logic branches with backstops, you end up with conflicting code and can have head on crashes of data. This is logic 101. It's like directing traffic you need to have stop signs at intersections or yeilds et...

    If you wanted to reduce or increase the cell by one you would still need to reference the table and it's cell with tableCellValue (even when using the change table behavior). And while routing it through a self attribute is the work around it's not "proper" or "logic 101" when you have to add more behaviors to do something.

  • The_Gamesalad_GuruThe_Gamesalad_Guru Posts: 9,914Member

    @KevinCross said:

    I Misunderstood the issue at hand. I thought he was modifying a table value straight from a change attribute. I didn't understand there was a bug related to adding or subtracting from a table value in an expression.

  • The_Gamesalad_GuruThe_Gamesalad_Guru Posts: 9,914Member

    When I write to a table the info generally comes from a variable. if I'm changing a table value, with a predefined amount, I always specify the default change. It just seems to me tables were not designed in GS to be used that way obviously. I would imagine that is what runtime variables are for. That method seems to assume a table in all respects can be used in a similar fashion as runtime variables. I could see doing that lots and lots in a game causing severe lag which is what I think @Hymloe is experiencing. Which makes sense if you've ever done searching of tables, you can see the scan grind to a halt. This is exactly what I would expect to happen which is why I never do it.

  • HopscotchHopscotch Posts: 2,782Member, PRO

    @The_Gamesalad_Guru , this is not the case in @Hymloe 's project.

    Memory problems with regards to tables are real but also very small. The most noticeable is the memory increase when using "copy table". However, even this caps out after a while and does not get out of control.

    @BlackCloakGS and @stevej can refer back to our PM starting Feb 19th.

    Another issue that I brought to their attention is the loading and unloading of sounds.

    e.g. As mentioned before, all sound and music referenced in code on a specific scene (eventually played or not) get loaded when the scene loads. Fine so far. It cleans up fairly nicely (but not perfectly) after the scene unloads.

    If you launch a "pause scene" during gameplay, it seems to flush the sounds (not the images), then reloads them, on demand, when you un-pause and resume the game. This behaviour is also fine in my opinion.

    My take away is that very large projects may run into problems only due to the combined effect of memory fragmentation, the "display text" memory jitter as the bitmaps get build, the small leak when working with tables, etc.

    Each in its own harmless, but the interplay can cause short term memory spikes that will push a memory heavy game to crash.

  • The_Gamesalad_GuruThe_Gamesalad_Guru Posts: 9,914Member

    It's always the accumulation of the little things that get us. Thanks for explaining it so well!

  • HopscotchHopscotch Posts: 2,782Member, PRO
    edited July 2015

    Just out of interest, here is an example of the font-jitter mentioned before.

    This is what happens in memory when the "display text" behavior is used. Every time the text value changes, a new bitmap gets created in memory into which the text is assembled, letter by letter, as a picture. Only then can the text be drawn to the scene.

    Again, in isolation it looks healthy, flushing memory as requested.

  • gingagaminggingagaming FREELANCE GS DEV Posts: 1,599Member, PRO
    edited July 2015

    Thanks for the tag @Armelline

    @owen_dennis this bug has just been ignored. Ive tried to follow up on it with GS staff but they just don't respond. You can track the bug here but they don't update or respond to notes on it so why bother!

    I certainly wouldn't wait for it to be fixed. It was logged as a bug in Aug of last year and still hasn't been fixed (or if it has, it was never announced or updated and I dont update tables this way anymore. Like the rest of the bugs in GS, we just find a work around and apply that).

    To help you get past this, you have to change all your table references into global attributes. You simply can't update tables like this or your game will crash. To clarify, you can't update a TableCellValue (TCV) with a TCV+1 or any other value. You can update a TCV with a fixed value but not as a TCV+1. You can update a global attribute with an integer+1 and no memory leaks occur. Solving the issue but you will need to change the way your game works and use attributes and not tables.

    Depending on your game this will be a short or an extensive task. For my game it was a days work as I had a lot of table references to it. But that 1 days work saved me waiting on a fix for something that isn't even monitored and now a year has passed since they acknowledged it and promised a fix in 0.12 and then 0.13.

  • mc99093mc99093 Posts: 133Member, PRO

    @gingagaming Would this cause a leak ... TCV+(random 30,200). Also does the leak occur when you do a TCV-1 as well?

Sign In or Register to comment.