Topic
  • 21 replies
  • Latest Post - ‏2014-03-17T10:00:49Z by robtaylorbetgenius
TomBanks
TomBanks
66 Posts

Pinned topic Found a bug? Let us know here!

‏2013-08-09T16:00:52Z |

If you have found a bug in the game or something that annoys you with the game (missing functionality, odd UI requirements etc) please let us know in this thread - we would like to hear your feedback so we can make things better in the next release. 

 

When reporting a bug please let us know:

  • The version of the game you are running - beta 1/beta 2/GA
  • Your operating system
  • If you have an AMD or Intel CPU (this does actually matter when it comes to bugs with the physics library)

Any extra information on how you found the bug would be great, but the above information will help us when it comes to fixing the issue.

  • mlange806
    mlange806
    3 Posts

    Re: Found a bug? Let us know here!

    ‏2013-08-12T02:05:15Z  

    Hello,

    I am using coderallyv1-1beta2 on windows 7 with a AMD processor.

    Objects of type Obstacle can not call member functions such as getPosition(). I am getting the following syntax error:

    The type com.ibm.coderally.graphics.Renderable cannot be resolved. It is indirectly referenced from required .class files.

    I noticed that the Obstacle class extends from both Entity and com.ibm.coderally.graphics.Renderable. There is documentation available for Entity but not for Renderable.

    I didn't know if this was an issue on my end or perhaps something that has not been implemented yet.

    Thanks

  • TomBanks
    TomBanks
    66 Posts

    Re: Found a bug? Let us know here!

    ‏2013-08-12T10:13:11Z  
    • mlange806
    • ‏2013-08-12T02:05:15Z

    Hello,

    I am using coderallyv1-1beta2 on windows 7 with a AMD processor.

    Objects of type Obstacle can not call member functions such as getPosition(). I am getting the following syntax error:

    The type com.ibm.coderally.graphics.Renderable cannot be resolved. It is indirectly referenced from required .class files.

    I noticed that the Obstacle class extends from both Entity and com.ibm.coderally.graphics.Renderable. There is documentation available for Entity but not for Renderable.

    I didn't know if this was an issue on my end or perhaps something that has not been implemented yet.

    Thanks

    Hi,

     

    I've taken a look at the Obstacle class and can't recreate the conditions to see the same syntax error you are seeing - can you either post the lines in your code that get the Obstacle object and then see this error please? If you don't want to give away any AI code for others to see please email it to me at tom.banks@uk.ibm.com and I'll take a look.

     

    Thanks,

    Tom

  • mlange806
    mlange806
    3 Posts

    Re: Found a bug? Let us know here!

    ‏2013-08-12T19:53:06Z  
    • TomBanks
    • ‏2013-08-12T10:13:11Z

    Hi,

     

    I've taken a look at the Obstacle class and can't recreate the conditions to see the same syntax error you are seeing - can you either post the lines in your code that get the Obstacle object and then see this error please? If you don't want to give away any AI code for others to see please email it to me at tom.banks@uk.ibm.com and I'll take a look.

     

    Thanks,

    Tom

    Here is what I am trying:

    import com.ibm.coderally.api.DefaultCarAI;
    import com.ibm.coderally.entity.cars.Car;
    import com.ibm.coderally.entity.obstacle.Obstacle;
    import com.ibm.coderally.geo.CheckPoint;

    ...

    public void onObstacleCollision(Obstacle obs) {
            // TODO:
            // Provide custom logic or remove method
            // for default implementation.


            obs.getPosition();
     }

    The problem is at obs.getPosition() with the error message posted above.

  • VladS.
    VladS.
    13 Posts

    Re: Found a bug? Let us know here!

    ‏2013-08-12T21:09:40Z  
    • mlange806
    • ‏2013-08-12T19:53:06Z

    Here is what I am trying:

    import com.ibm.coderally.api.DefaultCarAI;
    import com.ibm.coderally.entity.cars.Car;
    import com.ibm.coderally.entity.obstacle.Obstacle;
    import com.ibm.coderally.geo.CheckPoint;

    ...

    public void onObstacleCollision(Obstacle obs) {
            // TODO:
            // Provide custom logic or remove method
            // for default implementation.


            obs.getPosition();
     }

    The problem is at obs.getPosition() with the error message posted above.

    Looks like dependency issue. Ran in this myself as well. I guess you need to provide a jar with missing class

    Here is what IDE says: The type com.ibm.coderally.graphics.Renderable cannot be resolved. It is indirectly referenced from required .class files

     

    @Override
    public void onObstacleInProximity(Obstacle obs) {
    System.out.println("onObstacleInProximity");
    Point p = obs.getPosition();
     
     
    }

     

    Updated on 2013-08-12T21:14:45Z at 2013-08-12T21:14:45Z by VladS.
  • VladS.
    VladS.
    13 Posts

    Re: Found a bug? Let us know here!

    ‏2013-08-12T21:21:13Z  
    • mlange806
    • ‏2013-08-12T19:53:06Z

    Here is what I am trying:

    import com.ibm.coderally.api.DefaultCarAI;
    import com.ibm.coderally.entity.cars.Car;
    import com.ibm.coderally.entity.obstacle.Obstacle;
    import com.ibm.coderally.geo.CheckPoint;

    ...

    public void onObstacleCollision(Obstacle obs) {
            // TODO:
            // Provide custom logic or remove method
            // for default implementation.


            obs.getPosition();
     }

    The problem is at obs.getPosition() with the error message posted above.

    mlange806, try this:

    Cause public interface Obstacle extends Entity and  Renderable

    interfaces and Rendable is not in a current jar so this workaround should be fine:

     

    Entity ent = obs;
    Point p  = ent.getPosition();
     

    Not the best solution IDE still gives you warning on import sections but code runs and values returned, tested.

    Updated on 2013-08-12T21:43:49Z at 2013-08-12T21:43:49Z by VladS.
  • mlange806
    mlange806
    3 Posts

    Re: Found a bug? Let us know here!

    ‏2013-08-12T22:48:46Z  
    • VladS.
    • ‏2013-08-12T21:21:13Z

    mlange806, try this:

    Cause public interface Obstacle extends Entity and  Renderable

    interfaces and Rendable is not in a current jar so this workaround should be fine:

     

    Entity ent = obs;
    Point p  = ent.getPosition();
     

    Not the best solution IDE still gives you warning on import sections but code runs and values returned, tested.

    VladS, I tried your fix. Like you said, there is still an import warning because is seems Renderable is missing. The code runs fine though and will work for my purposes. Thank you.

  • TomBanks
    TomBanks
    66 Posts

    Re: Found a bug? Let us know here!

    ‏2013-08-13T10:05:57Z  
    • mlange806
    • ‏2013-08-12T22:48:46Z

    VladS, I tried your fix. Like you said, there is still an import warning because is seems Renderable is missing. The code runs fine though and will work for my purposes. Thank you.

    Thanks for your suggestions VladS.

    mlange806:

    I can't recreate it on our development machines, although it does appear to be a missing library is the cause. Can you do the following please:

    1. Go to Java or Java EE perspective in Eclipse
    2. in the project explorer view find the "Code Rally Vehicles" project
    3. Right-click on the Code Rally Vehicles project and go build path> configure build path
    4. The Java build path window should appear - can you list the jar files in that view please? I see api.jar, CodeRally.jar and two jbox2d library jars - can you confirm which you have.

    This should let me know if it is something going wrong when we create your Vehicles project or if it is something wrong with the libraries we have distributed.

    Thanks,

    Tom

    Updated on 2013-08-13T10:06:22Z at 2013-08-13T10:06:22Z by TomBanks
  • VladS.
    VladS.
    13 Posts

    Re: Found a bug? Let us know here!

    ‏2013-08-13T23:39:08Z  
    • TomBanks
    • ‏2013-08-13T10:05:57Z

    Thanks for your suggestions VladS.

    mlange806:

    I can't recreate it on our development machines, although it does appear to be a missing library is the cause. Can you do the following please:

    1. Go to Java or Java EE perspective in Eclipse
    2. in the project explorer view find the "Code Rally Vehicles" project
    3. Right-click on the Code Rally Vehicles project and go build path> configure build path
    4. The Java build path window should appear - can you list the jar files in that view please? I see api.jar, CodeRally.jar and two jbox2d library jars - can you confirm which you have.

    This should let me know if it is something going wrong when we create your Vehicles project or if it is something wrong with the libraries we have distributed.

    Thanks,

    Tom

    I have:

    • api.jar
    • jbox2d-library-2.1.2.2-javadoc.jar
    • jbox2d-library-2.1.2.2-modified.jar

    lib  folder has 

    docs.jar as well but it is not in build path

  • TomBanks
    TomBanks
    66 Posts

    Re: Found a bug? Let us know here!

    ‏2013-08-14T10:56:41Z  
    • VladS.
    • ‏2013-08-13T23:39:08Z

    I have:

    • api.jar
    • jbox2d-library-2.1.2.2-javadoc.jar
    • jbox2d-library-2.1.2.2-modified.jar

    lib  folder has 

    docs.jar as well but it is not in build path

    Interesting - thanks for letting me know. If you add CodeRally.jar to your build path this should be fixed.

  • VladS.
    VladS.
    13 Posts

    Re: Found a bug? Let us know here!

    ‏2013-08-18T18:52:41Z  
    • TomBanks
    • ‏2013-08-14T10:56:41Z

    Interesting - thanks for letting me know. If you add CodeRally.jar to your build path this should be fixed.

    Tom,

    CodeRally.jar contains the missing class. Worked as expected.

    For common knowledge: missing jar is in CodeRallyWeb project if some one having trouble to locate it, and you add it as external jar in build path libraries.

  • TomBanks
    TomBanks
    66 Posts

    Re: Found a bug? Let us know here!

    ‏2013-08-19T10:31:50Z  
    • VladS.
    • ‏2013-08-18T18:52:41Z

    Tom,

    CodeRally.jar contains the missing class. Worked as expected.

    For common knowledge: missing jar is in CodeRallyWeb project if some one having trouble to locate it, and you add it as external jar in build path libraries.

    Thanks for confirming that Vlad - it seems this slipped through the cracks in the beta release.

  • VladS.
    VladS.
    13 Posts

    Re: Found a bug? Let us know here!

    ‏2013-08-22T02:26:21Z  

    Tom,

    there is an issue with getCar().isRacing(), I can't find a case where it is returns false:

    Currently testing on Circuit zone on local server.

    here is a code example 

    if(getCar().isRacing()){
    // do something 
    }else{
     System.out.println("-----> NOT Racing");
     
    }

     

    this snippet was inserted in:

    public void onStalled() 

    public void onCheckpointUpdated(CheckPoint cp)

    public void onTimeStep()

    non of these events get called when race is over or getCar().isRacing() is always true. Please advise.

    Updated on 2013-08-22T02:29:20Z at 2013-08-22T02:29:20Z by VladS.
  • TomBanks
    TomBanks
    66 Posts

    Re: Found a bug? Let us know here!

    ‏2013-08-22T12:37:40Z  
    • VladS.
    • ‏2013-08-22T02:26:21Z

    Tom,

    there is an issue with getCar().isRacing(), I can't find a case where it is returns false:

    Currently testing on Circuit zone on local server.

    here is a code example 

    if(getCar().isRacing()){
    // do something 
    }else{
     System.out.println("-----> NOT Racing");
     
    }

     

    this snippet was inserted in:

    public void onStalled() 

    public void onCheckpointUpdated(CheckPoint cp)

    public void onTimeStep()

    non of these events get called when race is over or getCar().isRacing() is always true. Please advise.

    Hi Vlad - thanks for the report.

     

    I believe isRacing represents if a car is active and is in a live race - a race is not live before onRaceStart is called and a car is not classed as racing once it has finished the race. In both of these instances the car's AI will not be running as it has finished so from your perspective it may appear that it is never false.

    Updated on 2013-08-22T14:06:26Z at 2013-08-22T14:06:26Z by TomBanks
  • VladS.
    VladS.
    13 Posts

    Re: Found a bug? Let us know here!

    ‏2013-08-24T19:53:16Z  
    • TomBanks
    • ‏2013-08-22T12:37:40Z

    Hi Vlad - thanks for the report.

     

    I believe isRacing represents if a car is active and is in a live race - a race is not live before onRaceStart is called and a car is not classed as racing once it has finished the race. In both of these instances the car's AI will not be running as it has finished so from your perspective it may appear that it is never false.

    Than it would be nice to have onRaceOver event. 

    Updated on 2013-08-24T19:57:37Z at 2013-08-24T19:57:37Z by VladS.
  • VladS.
    VladS.
    13 Posts

    Re: Found a bug? Let us know here!

    ‏2013-08-26T11:24:35Z  
    Tom,
     
    There is an issue with your ladder board. Looks like alias name is case insensitive because it is allows you to log in into server from code rally eclipse client with different casing. But ladder board display case permutations of a name. The prove is currently on  the "challenge circuit" result page.
  • TomBanks
    TomBanks
    66 Posts

    Re: Found a bug? Let us know here!

    ‏2013-08-26T22:56:22Z  
    • VladS.
    • ‏2013-08-26T11:24:35Z
    Tom,
     
    There is an issue with your ladder board. Looks like alias name is case insensitive because it is allows you to log in into server from code rally eclipse client with different casing. But ladder board display case permutations of a name. The prove is currently on  the "challenge circuit" result page.

    Hi Vlad,

     

    Thanks for letting me know - this is definitely a bug (I'll put it at the top of our defect list). If you have got 2 entries in the leaderboard (based on upper/lower case) please register the lower case one on the InfoQ website so that no-one else can link it to their own account (we do have other ways of verifying an owner of an account if someone does claim an ID that is not theirs).

  • VladS.
    VladS.
    13 Posts

    Re: Found a bug? Let us know here!

    ‏2013-08-27T03:14:02Z  
    • TomBanks
    • ‏2013-08-26T22:56:22Z

    Hi Vlad,

     

    Thanks for letting me know - this is definitely a bug (I'll put it at the top of our defect list). If you have got 2 entries in the leaderboard (based on upper/lower case) please register the lower case one on the InfoQ website so that no-one else can link it to their own account (we do have other ways of verifying an owner of an account if someone does claim an ID that is not theirs).

    InfoQ registration is case insensitive, just checked couple permutations. I believe we are safe there.

  • VladS.
    VladS.
    13 Posts

    Re: Found a bug? Let us know here!

    ‏2013-09-08T13:43:24Z  

    Tom,

    Could you please confirm the correctness of current best race times for "challenge pond" and "pond" race tracks. 20 seconds for 3 laps on POND track seems somewhat suspicious. There is also 3 seconds that is a current best time record for "Pond" track. This could be indication of a bug or current framework vulnerability that someone has discovered.

    Regards,
    Vlad.

  • TomBanks
    TomBanks
    66 Posts

    Re: Found a bug? Let us know here!

    ‏2013-09-09T12:29:12Z  
    • VladS.
    • ‏2013-09-08T13:43:24Z

    Tom,

    Could you please confirm the correctness of current best race times for "challenge pond" and "pond" race tracks. 20 seconds for 3 laps on POND track seems somewhat suspicious. There is also 3 seconds that is a current best time record for "Pond" track. This could be indication of a bug or current framework vulnerability that someone has discovered.

    Regards,
    Vlad.

    Hi Vlad,

    I have investigated the races concerned and have confirmed that:

    1. The times are wrong (the races never completed)
    2. The racers involved did not cheat - it was a game bug

    I don't fully understand the cause of the bug, but will be working to remove the offending times and put in a sanity checker to block and flag impossible race times either today or tomorrow (depending how easy it is to get the sanity checker working).

  • VladS.
    VladS.
    13 Posts

    Re: Found a bug? Let us know here!

    ‏2013-09-09T13:15:01Z  
    • TomBanks
    • ‏2013-09-09T12:29:12Z

    Hi Vlad,

    I have investigated the races concerned and have confirmed that:

    1. The times are wrong (the races never completed)
    2. The racers involved did not cheat - it was a game bug

    I don't fully understand the cause of the bug, but will be working to remove the offending times and put in a sanity checker to block and flag impossible race times either today or tomorrow (depending how easy it is to get the sanity checker working).

    Thank you Tom.

  • robtaylorbetgenius
    robtaylorbetgenius
    2 Posts

    Re: Found a bug? Let us know here!

    ‏2014-03-17T10:00:49Z  

    Hi,

     

    I'm not sure if this is a bug or not but the coderally website suggests that a good exercise would be to write a car AI, which ensures that the car stays on the track at all times. However, we are only informed when a car leaves the track via the onOffTrack() callback and as far as I can tell there is no explicit way to determine if the car is currently on the track at any given time. I can see Race.java maintains a map indicating if a given car is on the track or not, which it works out using surface contact with the car but I don't think this is present in the api.jar file. How should we determine if the car is on the track and hence be able to write an AI to stay on the track at all times?

    (I'm using the coderallyv1-1beta2 coderally download)

     

    Thanks,

    Rob