Latest version causing problems

Previous topic - Next topic

Crivens

I don't know what it is but something has gone wrong in the last release or two from GLB.

Basically a friend of mine was playing my latest in development game and reported that he died for no reason whatsoever. Strange. And it always happened around a certain score. Stranger I thought. So I put in a bit of debugging and the like but couldn't really track it down easily. It was something to do with the ES and EntitySingleCollision using an array that I keep adding to using DIMPUSH. But it makes no sense.

Then I tried to replicate on my various devices. It went wrong on every one of them. Fair enough. But then it worked on one. My Palm Pre2 which I hadn't updated with the latest version of my program (every other device worked on the new version). Obviously something to do with my latest version! So I load the old version and it too errors in the same place (ie. in the past I've got much higher scores). Erm. Ok maybe the pre2 version was an older build of the same version I hadn't updated?... So I try a really old version (about 2-3 weeks old), knowing that that version definitely didn't error for no reason and I had got much higher scores in testing (and the main game hasn't really changed it all in that time). And that has the error now too.

So it must be the latest version (or possibly the one before that) of GLB at fault. I read elsewhere that Gernot has changed array handling in the last version so I'm guessing it's that.

Please Obi Wan Gernot, help me in my time of need!

Oh, and while we are at it, the accelerometer doesn't seem to work correctly. Is nothing like the same values as the Pre/iOS/Android.

Ta!

Cheers 
Current fave quote: Cause you like musicians and I like people with boobs.

Slydog

Do you have at least version 10.106? 
Gernot was working on the DIMPUSH, and mentions fixing a crash bug.
Or he introduced a new one!  :-[

Code (glbasic) Select
// 10.106
   // Core:
   //    bugfix: DIMPUSH to a type array could have caused a crash.
   //    Dramatical speedup for DIMPUSH/DIMDEL. (non-required internal REDIM dropped).
My current project (WIP) :: TwistedMaze <<  [Updated: 2015-11-25]

erico


Crivens

 It's the latest one according to today. I don't think I have an older GLB to check though.

Cheers
Current fave quote: Cause you like musicians and I like people with boobs.

Gary

Crivens,

if you have 10.090 I think you will find the bug is not present. I have the same issues which dont appear with the older version

Crivens

It's the latest version : 10.109

It was fine either on the last version or the version before that I believe

What would be nice is if the IDE showed the version of GLB that the code was last compiled with. Then we could see what code worked with what (as the exe shows exactly what it did at the time)

Cheers
Current fave quote: Cause you like musicians and I like people with boobs.

MrTAToad

Would it be possible to make the source code available (or a test program) ?

Crivens

Not easily as I have to prepare for a business trip to Dubai tomorrow night. But if there is a way to reverse GLB to an older version then I might have time to pinpoint the version that worked and then when it went wrong. So is there a way?

Cheers
Current fave quote: Cause you like musicians and I like people with boobs.

MrTAToad

It usually zipps up the previous version contents which can just be. Decompressed

Crivens

Where does it store the zipped last version? Plus does it have multiple versions so you can reinstall anything?

Actually what version is the frontpage download? If it hasn't been updated in a week or two then might be easier to just install this. Will GLB allow an older version to be installed?

At the end of the day though it definitely worked a few days ago on an older version of GLB and now doesn't and even old versions of my code don't work on the new GLB (ie. has to be a bug in the latest or at least within a few days version of GLB).

Cheers
Current fave quote: Cause you like musicians and I like people with boobs.

MrTAToad

On my machine its in
QuoteC:\Program Files (x86)\GLBasic

The version on the main site is some V10 - dont know which though.

By the way, you aren't using the ALIAS command are you ?

Crivens

Hmm. Annoyingly I'm off to Dubai tomorrow so can't really test for a while. Main thing though is the DIMPUSH objects being added to and also looped through (using LEN if I remember rightly) to check for collision with a standard unchanging object in EntitySingleCollision using the ES. It just decides to detect a collision (ending the game) after the DIMPUSH objects reach 9 in number I believe.

ALIAS? Unless it's in the imported ES code (or possibly the timer movement code) then I've never heard of it. What does it do? Has it modified in the last couple of versions or something?

Cheers

Current fave quote: Cause you like musicians and I like people with boobs.

MrTAToad

From the manual :

QuoteThis command internally generates a pointer to the variable to the right of "AS". You can quite quickly access variables, lessen your typing work and avoid the calculation of [123] and [78] for each variable access.

ATTENTION:
If the size of any involved arrays gets changed (using commands like DIMPUSH, DIMDEL and DELETE), this pointer will almost certainly be broken and your program will crash ...if you're lucky.

And guess what - the 3D entity system does use it :)

Crivens

Ok. So is there a new bug with the alias command then? Bearing in mind it worked perfectly before the last version of GLB.

Cheers
Current fave quote: Cause you like musicians and I like people with boobs.

MrTAToad

Dont know - dont use the EntitySystem :)