Poll

What do you like doing most in RA2/RA3/robot combat games?

Building robots
Local single player battles with manually-controlled robots
Local multiplayer battles  with manually-controlled robots (PvP with controllers or a shared keyboard)
AI-only tournament battles
Other?  Please comment below.

Author Topic: Robot Rumble 2.0 - Robot Combat Simulator - Under Development  (Read 21681 times)

Offline kix

  • Hey boss!
  • Ultra Heavyweight
  • Posts: 2401
  • Rep: 10
  • We need my rep to go higher
    • View Profile
    • Awards
Re: Robot Rumble 2.0 - Robot Combat Simulator - Under Development
« Reply #500 on: April 13, 2019, 01:58:19 PM »
Sounds good.  I’ll hold off on it unless we need it.  Also, be sure to try game controllers if have them.
Trued with a controller. Honestly not my style, but it will be useful for irl bot builders
I wake up, To ash and dust
I wipe my ass, And slap my nuts

Offline F1Krazy

  • Team VVV - Veni Vidi Vici
  • Heavyweight
  • Posts: 652
  • Rep: 4
  • Life is just a series of relative disappointments
    • View Profile
    • Awards
  • See profile for gamer tags: Yes
Re: Robot Rumble 2.0 - Robot Combat Simulator - Under Development
« Reply #501 on: April 13, 2019, 02:25:00 PM »
Is it just me, or does the settings menu not actually work? I tried turning down the graphics settings, to try and make the bot lab run faster than 5FPS, and it didn't do anything. I closed the game and re-opened and it was back to the default settings.

The bot lab looks great so far, don't get me wrong, I just wish I had a better computer than my sh**ty six-year-old laptop so I could use it without immense lag.
My DSL Showcase


Offline powerrave

  • Giga Heavyweight
  • Posts: 5307
  • Rep: 2
    • View Profile
    • Awards
  • See profile for gamer tags: Yes
Re: Robot Rumble 2.0 - Robot Combat Simulator - Under Development
« Reply #502 on: April 13, 2019, 02:54:20 PM »
I've downloaded the alpha now and toyed around a little bit. Looks like good fun with quite some building options and freedom. First bot I made might be a bit too light or something? I dunno. Sometimes when just driving forward it decides to turn on its own.

I do wonder... Why when I choose to make a new bot was there some axe bot being spawned in the area, that could even be controlled there?
Yeah there is Royal Bobby (axebot)

Also turn on motor braking for drive, its a godsend

Also, what do you guys think of doing electronic stability control to help drive in a straight line for keyboard control?  It isn’t hard to implement, but is it too much?

We'd probably have to give that a test, it certainly sounds interesting. Personally I'm ok with driving as is atm, even without motor braking.
I agree, playtesting will be the best option, although i am a bit sceptical

Sounds good.  I’ll hold off on it unless we need it.  Also, be sure to try game controllers if have them.

I have no idea what the braking does here to be honest.
As for controller, I could try getting my PS3 controller to work on PC.

Right now with the simple bit I made it's not just that it'll start to turn to a side when driving forward and backward, but sometimes it'll also start to just spin in place.
"Always be yourself, unless you're a loser"


Offline cjbruce

  • Lightweight
  • Posts: 237
  • Rep: 6
    • View Profile
    • Awards
Re: Robot Rumble 2.0 - Robot Combat Simulator - Under Development
« Reply #503 on: April 13, 2019, 04:41:57 PM »
I've downloaded the alpha now and toyed around a little bit. Looks like good fun with quite some building options and freedom. First bot I made might be a bit too light or something? I dunno. Sometimes when just driving forward it decides to turn on its own.

I do wonder... Why when I choose to make a new bot was there some axe bot being spawned in the area, that could even be controlled there?
Yeah there is Royal Bobby (axebot)

Also turn on motor braking for drive, its a godsend

Also, what do you guys think of doing electronic stability control to help drive in a straight line for keyboard control?  It isn’t hard to implement, but is it too much?

We'd probably have to give that a test, it certainly sounds interesting. Personally I'm ok with driving as is atm, even without motor braking.
I agree, playtesting will be the best option, although i am a bit sceptical

Sounds good.  I’ll hold off on it unless we need it.  Also, be sure to try game controllers if have them.

I have no idea what the braking does here to be honest.
As for controller, I could try getting my PS3 controller to work on PC.

Right now with the simple bit I made it's not just that it'll start to turn to a side when driving forward and backward, but sometimes it'll also start to just spin in place.

That’s a really good description.  I’m pretty sure of the root cause and have several potential solutions.

The root cause of the problem is that as the wheels on one side come off the ground, a net torque is applied to turn the robot.  In a typical car driving game, we would model a compliant suspension system to eliminate this.  In RR2, there is no suspension travel, but we have a couple of different solutions:

1. Increase the sideways distance between the wheels.  This will increase the gravitational restoring torque and help keep both wheels planted.
2. Lower the center of mass. Ideally, the COM would be slightly below the ground plane, such that the robot always tries to right itself.  This is physically impossible.  In practice, try to put as much mass as low down as possible.
3. In code, create an electronic stability control system.  I tried this out during the game prototyping phase, and it worked really well to eliminate the problem when you are using a keyboard.  It works by cutting power to the drive wheel, and/or applying steering signal in the opposite direction to keep the robot driving straight.  It is a perfect solution, but it is limited by the location of the COM of the robot.  If you can solve the problem by getting the COM lower, that will give better handling overall.

Offline F1Krazy

  • Team VVV - Veni Vidi Vici
  • Heavyweight
  • Posts: 652
  • Rep: 4
  • Life is just a series of relative disappointments
    • View Profile
    • Awards
  • See profile for gamer tags: Yes
Re: Robot Rumble 2.0 - Robot Combat Simulator - Under Development
« Reply #504 on: April 14, 2019, 12:08:35 PM »
Is it just me, or does the settings menu not actually work? I tried turning down the graphics settings, to try and make the bot lab run faster than 5FPS, and it didn't do anything. I closed the game and re-opened and it was back to the default settings.
Okay, so the settings menu works if you access it from the pause menu during/after a fight, but it doesn't work if you access it from the main menu. Dialling down the graphics worked for me and I can play the game properly now.
My DSL Showcase


Offline cjbruce

  • Lightweight
  • Posts: 237
  • Rep: 6
    • View Profile
    • Awards
Re: Robot Rumble 2.0 - Robot Combat Simulator - Under Development
« Reply #505 on: April 14, 2019, 02:51:11 PM »
Is it just me, or does the settings menu not actually work? I tried turning down the graphics settings, to try and make the bot lab run faster than 5FPS, and it didn't do anything. I closed the game and re-opened and it was back to the default settings.
Okay, so the settings menu works if you access it from the pause menu during/after a fight, but it doesn't work if you access it from the main menu. Dialling down the graphics worked for me and I can play the game properly now.

Phew! What resolution brought things into an acceptable fps for you?  My Macbook Pro runs okay at 1/2 the max resolution.  My Macbook Air is only 1366x768, so it does fine at that.

Offline F1Krazy

  • Team VVV - Veni Vidi Vici
  • Heavyweight
  • Posts: 652
  • Rep: 4
  • Life is just a series of relative disappointments
    • View Profile
    • Awards
  • See profile for gamer tags: Yes
Re: Robot Rumble 2.0 - Robot Combat Simulator - Under Development
« Reply #506 on: April 14, 2019, 04:25:37 PM »
Is it just me, or does the settings menu not actually work? I tried turning down the graphics settings, to try and make the bot lab run faster than 5FPS, and it didn't do anything. I closed the game and re-opened and it was back to the default settings.
Okay, so the settings menu works if you access it from the pause menu during/after a fight, but it doesn't work if you access it from the main menu. Dialling down the graphics worked for me and I can play the game properly now.

Phew! What resolution brought things into an acceptable fps for you?  My Macbook Pro runs okay at 1/2 the max resolution.  My Macbook Air is only 1366x768, so it does fine at that.
I'm using 1280x800 in windowed mode, but I don't think that's the resolution it's actually displaying at. My laptop screen is 1600x900 and the game window is definitely not 800 pixels tall. But whatever. It runs, and that's the important thing.
My DSL Showcase


Offline cjbruce

  • Lightweight
  • Posts: 237
  • Rep: 6
    • View Profile
    • Awards
Re: Robot Rumble 2.0 - Robot Combat Simulator - Under Development
« Reply #507 on: April 15, 2019, 10:00:35 AM »
I went back through all of the old RA2 AI python scripts, and put together a list of AI inputs that I think will allow us to implement all of the AI scripts.

If you are AI nerdy, please let me know if there is something that you might like to have as an input that isn't listed below.

The next step is to write all of the functions in miniscript (i.e. getMyPosition(), getDistanceToEdge(), etc.) that robots will need to create an AI system.

/// INPUTS RECEIVED FROM ROBOT'S SENSORS
// timer.timeRemaining - This is how many seconds are remaining in the match.
// timer.isRunning - 1 if the timer is running.  0 if the timer is stopped.
//
// robots[] - A list of all of the robots in the match.  robot[0] is the first robot.
//
// robots[0].tag - The player tag of robot #0.  Tags are "P1", "P2", "P3", "P4", "P5", "P6", "P7", or "P8".
// robots[0].team - The team of robot #0.  Team names are used in team matches.  (not implemented yet)
// robots[0].isHuman - 1 if the robot is under human control, 0 if AI controlled.
// robots[0].isDisabled - 1 if the robot has been knocked out.  0 if it is still in the match.
// robots[0].immobileTimeRemaining - Measured in seconds.
// robots]0].isImmobile - 1 if robot[0]'s immobile timer has been started.  0 if the immobile timer has been reset.
// robots[0].position.x - The position of robot[0] along the x (horizontal) axis in meters, measured from the origin.
// robots[0].position.y - The position of robot[0] along the y (up-down) axis in meters, measured from the origin.
// robots[0].position.z - The position of robot[0] along the z (horizontal) axis in meters, measured from the origin.
// robots[0].rotation.x - The position of robot[0] around the x (horizontal) axis in degrees.
// robots[0].rotation.y - The position of robot[0] around the y (vertical) axis in degrees.
// robots[0].rotation.z - The position of robot[0] around the x (horizontal) axis in degrees.
// robots[0].score.damage - robot[0]'s damage score
// robots[0].score.control - robot[0]'s control score
// robots[0].score.aggression - robot[0]'s aggression score
// robots[0].score.kingOfTheHill - robot[0]'s kingOfTheHill score. (No arenas use this yet.)
// robots[0].score.other - robot[0]'s score for the category called "other". (No arenas use this yet.)
// robots[0].health - robot[0]'s current chassis health
// robots[0].maxHealth - robot[0]'s maximum chassis health
// robots[0].heat - robot[0]'s current chassis heat
// robots[0].maxHeat - robot[0]'s maximum chassis heat
// robots[0].battery - robot[0]'s current battery status
// robots[0].maxBattery - robot[0]'s maximum battery status
// robots[0].gas - robot[0]'s current gas status
// robots[0].maxGas - robot[0]'s maximum gas status
//
// components[] - A list of all of the components on this robot. components[0] is the first component.
//
// components[0].type - components[0]'s type
// components[0].name - components[0]'s name
// components[0].health - components[0]'s health
//
// hazards[] - A list of all of the hazards in this arena. hazards[0] is the first hazard.
//
// hazards[0].name - The name assigned to hazards[0].
// hazards[0].threatLevel - The threat level of hazards[0].  This ranges from 0 (no threat) to 100 (one hit = dead).
// hazards[0].closestPoint.x - The x coordinate of the closest point on the edge of the hazard to our robot.
// hazards[0].closestPoint.y - The y coordinate of the closest point on the edge of the hazard to our robot.
// hazards[0].closestPoint.z - The z coordinate of the closest point on the edge of the hazard to our robot.
//
// scoringAreas[] - A list of all of the scoring areas in this arena. scoringAreas[0] is the first scoring area.
//
// scoringAreas[0].name - The name assigned to scoringAreas[0].
// scoringAreas[0].value - The value of scoringAreas[0].  This ranges from 0 (none) to 100 (instant win).
// scoringAreas[0].closestPoint.x - The x coordinate of the closest point on the edge of the scoringArea to our robot.
// scoringAreas[0].closestPoint.y - The y coordinate of the closest point on the edge of the scoringArea to our robot.
// scoringAreas[0].closestPoint.z - The z coordinate of the closest point on the edge of the scoringArea to our robot.
// scoringAreas[0].center.x - The x coordinate of the center of the scoring area.
// scoringAreas[0].center.y - The y coordinate of the center of the scoring area.
// scoringAreas[0].center.z - The z coordinate of the center of the scoring area.