Author Topic: Rawbots 0.1.4 eXtended Functionality Mod (XFM) Development  (Read 1902 times)

PressureLine

  • XFM Developer
  • Administrator
  • Experienced Member
  • *****
  • Posts: 192
  • Likes: +4/-0
    • View Profile
    • Rawbots Club Forums
Re: Rawbots 0.1.4 eXtended Functionality Mod (XFM) Development
« Reply #15 on: March 12, 2016, 10:29:32 pm »
Yeah, using a raycast in the same way as the Hook gets it's distance measurement is pretty much the only way to go. It's not even actually that difficult under normal circumstances, but adding it in using .Net Reflector + ReflexIL will be a challenge. Same with the gravity-based thrust efficiency.

At one point I tried out making the laser beams a solid object, it didn't work out quite how I intended, maybe I'll give it another go later on.
"Never assume that anything you've never seen before is benign. Most particularly not something that says 'MARINES' on it."

MarvinMan

  • Automation Expert
  • Experienced Member
  • ***
  • Posts: 236
  • Likes: +4/-0
    • View Profile
Re: Rawbots 0.1.4 eXtended Functionality Mod (XFM) Development
« Reply #16 on: March 12, 2016, 10:53:27 pm »
Solid lasers could be interesting. Perhaps that would stop them from annihilating anything they touch, regardless of armour. Alternatively, an extremely long low/no damage laser could be useful as a pointer or a ranged weapon.

Also, regarding graphics, the transparency only seems to be an issue when running in windowed mode.

z26

  • Experienced Member
  • ***
  • Posts: 108
  • Likes: +0/-0
    • View Profile
Re: Rawbots 0.1.4 eXtended Functionality Mod (XFM) Development
« Reply #17 on: March 12, 2016, 11:08:05 pm »
Having lasers terminate at the point they touch something would make them non piercing, only damaging the first thing they touch.  That would be another possible way of nerfing lasers as well.  For a long range laser like marvin suggested, that could make a nice super accurate but low damage weapon.  The result would be a nice way to intercept missiles. 
« Last Edit: March 12, 2016, 11:11:55 pm by z26000 »

MarvinMan

  • Automation Expert
  • Experienced Member
  • ***
  • Posts: 236
  • Likes: +4/-0
    • View Profile
Re: Rawbots 0.1.4 eXtended Functionality Mod (XFM) Development
« Reply #18 on: March 13, 2016, 08:55:11 pm »
Seeing how armour never really worked properly, arming the next round of combat bots with ranged lasers could make for nice fast battles.

Perhaps laser power could be inversely proportional to length, so you can have effective close range weapons, balanced ranged combat and harmless pointers.

z26

  • Experienced Member
  • ***
  • Posts: 108
  • Likes: +0/-0
    • View Profile
Re: Rawbots 0.1.4 eXtended Functionality Mod (XFM) Development
« Reply #19 on: March 14, 2016, 12:47:49 am »
In a way its pretty ironic that in rawbots the laser's the short range weapon while the plasma is the long range weapon.  Having a short ranged torch and a long ranged laser would make much more sense.

PressureLine

  • XFM Developer
  • Administrator
  • Experienced Member
  • *****
  • Posts: 192
  • Likes: +4/-0
    • View Profile
    • Rawbots Club Forums
Re: Rawbots 0.1.4 eXtended Functionality Mod (XFM) Development
« Reply #20 on: March 14, 2016, 06:01:32 am »
Changing lasers like that would be... difficult.

Currently chewing on some physics speedups, plus changing part hp to be volume based: ie continuum has 1000hp (the standard in vanilla Rawbots) floater has 2000hp because it has ~2x the volume of a continuum, a fist or wide_wheel having ~8x etc etc

Just need to decide on weapon DPS: How long should a laser take to break off a part? What about plasma? Grenades?
"Never assume that anything you've never seen before is benign. Most particularly not something that says 'MARINES' on it."

z26

  • Experienced Member
  • ***
  • Posts: 108
  • Likes: +0/-0
    • View Profile
Re: Rawbots 0.1.4 eXtended Functionality Mod (XFM) Development
« Reply #21 on: March 14, 2016, 07:31:02 am »
Grenade staying the one hit kill they basically are would be fine imo.  Their whole point is kamikaze or high risk high reward weaponry.

Just curious, doing no other changes, could you make the laser longer ranged? (not saying you should, only asking if it would be reasonably doable)

I personally feel plasma cannons should be nerfed but there are two opposite ways to go about it:  give them a slow but steady fps (being the only ranged weapon that can be constantly fired with no concern to ammo)  or make them even stronger, but make the flux capacitors very slow to recharge (or change the damage curve), that way careful aiming is more valuable.  I'm trying to think of a way to nerf flux cap abuse but beside the 1 cap per cannon clause I can't think of anything.

While lasers are very strong they're inherently limited by being close ranged, so they should not be nerfed too much.


With that said, since I haven't participated in robot combat my opinion doesn't really matter.

This brings me to robot swarms.  I havent seen much of these yet, but my intuition tells  me a bunch of small, agile robots might be more dangerous than a single big robot of an equivalent mass/no of parts, since each single unit is a small target to hit while a single laser/grenade is more than enough to make significant damage.  So while laser cannons might be the best weapon for a big bot, maybe they are the worst to equip a swarm with.  Giving big parts WAY more hp than small parts would help balance swarms, but since there are no "big version" of critical parts like motors big bots are always going to have weak spots.
« Last Edit: March 14, 2016, 09:44:17 am by z26000 »

PressureLine

  • XFM Developer
  • Administrator
  • Experienced Member
  • *****
  • Posts: 192
  • Likes: +4/-0
    • View Profile
    • Rawbots Club Forums
Re: Rawbots 0.1.4 eXtended Functionality Mod (XFM) Development
« Reply #22 on: March 14, 2016, 09:26:00 am »
Changing the length of the laser would be trivially easy, but via the methods I have to use, changing the damage calculation to be based on the length of the laser not so easy.

Fully agreed on the grenades, although it would be quite easy to reduce the damage caused and increase the concussive effect, changing the blast radius should be possible too. Depends on whether it's wanted for the grenade to be a 'primary' weapon, or a used in a 'support' type role to disrupt/disable a combatant before going for the kill.

WRT Plasma Cannons & Flux Capacitors, there's a few things I can change with relative ease:
  • Shoot Force (and thus launch speed) per capacitance
  • Damage per shot per capacitance
  • Recoil force per capacitance
  • The amount of force transferred to the target on being struck
  • Maximum and/or Minimum capacitance

Much harder (and from a player perspective, less intuitive imo) would be making capacitor recharge time (or the other things mentioned above) non-linear (as it is in vanilla Rawbots)

In my 'working' version of Rawbots + XFM capacitance recharge is based on 0.5s/capacitance, which works pretty well, but is essentially just a fairer version of the standard Rawbots 'balancing.' But with what I can change, I can do a few different things:
  • Fixed: shoot_force(projectile velocity), Damage per Second. Variable: Damage per Shot, Recoil?. Using this scheme could lead to better balancing for arena-based ground (or low-level hover) combat, but would probably be suboptimal for any other kind of combat
  • Fixed: Damage per Shot. Variable: shoot_force Damage per Second, Recoil?. Probably the best of the relatively easy options imo, assuming a reasonable all-rounder shoot_force value is chosen so that plasma cannons can be used as a good all-round ranged weapon (without being the best weapon in all circumstances)
  • The third option is just doing a lot more number crunching on a scheme based on the 'variable everything' (the way it is now) and coming up with something that is balanced. Obviously from the coding point of view it's much easier than the other options, just tweaking a few values here and there, but from the POV of making it actually balanced it is much harder.

There's probably some combination of the things that I can easily change that I've overlooked (or possibly just discarded) that could provide good gameplay options, and I'm willing to hear arguments for any balancing scheme.

One might wonder why I go on about the shoot_force so much, but it's actually a very important balancing tool. As anyone who has played an FPS game knows that Rocket- and Grenade-launchers are very hard weapons to use effectively because of the delay between the trigger being pulled, and the projectile impacting. The same applies in Rawbots, and even more so in autonomous combat situations, because your bots don't have a brain that is hardwired to instinctively grasp the concept of things like projectile arcs or deflection. So as projectile velocities drop even relatively simple tasks like hitting a slow-moving target from a fixed platform, or hitting a stationary target from a moving platform (Rawbots plasma projectiles inherit their velocity from the cannon that fires them btw) becomes more and more difficult, never mind if both the shooter and the target are moving. So we can use the projectile velocity to control how difficult it is to hit a target, the real trick is how to make it so that 'brute force' (where the entire goal becomes getting as close to the target as possible then unloading everything you've got as fast as you can) is not always the best option (but still remains viable as an option, the idea is to open up gameplay to as many 'styles' as possible)

I actually really enjoy a good game balance discussion, so everyone's input is more than welcome.
"Never assume that anything you've never seen before is benign. Most particularly not something that says 'MARINES' on it."

PressureLine

  • XFM Developer
  • Administrator
  • Experienced Member
  • *****
  • Posts: 192
  • Likes: +4/-0
    • View Profile
    • Rawbots Club Forums
Re: Rawbots 0.1.4 eXtended Functionality Mod (XFM) Development
« Reply #23 on: March 14, 2016, 09:48:57 am »
Double-post for automated combat goodness.

I've been thinking about reviving the Autonoumous Combat League, and I think the biggest thing that stuck out for me was the '++MOAR' philosophy, which was mostly my fault with the way I structured part HP, which essentially required that bots be large heavily armored monstrosities to really be competitive (although effective use of grenades can counter that, the key word is effective, and grenades are very difficult to use)

Solution? Weight (iow: partcount, not so much on the actual mass of the bot) classes, with the existing bots being the 'Unlimited' class, where anything goes as long as it fits in the core rules. But having the main action in the League taking place (for now at least) in the 'Lightweight' class, with a limit of 25 parts (not counting control blocks) and possibly a 'Heavyweight' class for bots fitting in the 25-50 part range, bots with 50+ parts would join the existing combatants in the Unlimited class.

I'll see if I can dig up the rules I wrote out for the ACL on the rawbots.net forums as well as setting up a 'Challenges' Forum :)
"Never assume that anything you've never seen before is benign. Most particularly not something that says 'MARINES' on it."

z26

  • Experienced Member
  • ***
  • Posts: 108
  • Likes: +0/-0
    • View Profile
Re: Rawbots 0.1.4 eXtended Functionality Mod (XFM) Development
« Reply #24 on: March 14, 2016, 11:09:55 am »
Reply to your 1st post:

As a less elegant but more practical solution, could you have two lasers, a weak and strong one?   I haven't seen you add any parts in your mod, Im suspecting adding a part would be very challenging, even if its the duplicate of an existing one.  Or maybe just choose with a hex one of two modes...  The laser shooting through walls would be op, so a clause here to limit with code the laser length to the distance measurement of a hook could help with that.



I didn't think about the grenade having other uses, playing with these 3 variables to make different grenade variants could be interesting.  a very small zone but high damage grenade could even work as a melee weapon.
I don't think bots can allow themselves the complexity of 2 weapon systems, unless if one is very simple (like a melee laser or a grenade mine)


Recoil isn't that important of a parameter imo (it only matters when firing a high rate of fire AND a long distance) although it really depends what role the plasma cannon is supposed to serve.  shoot force is very important indeed, but the problem is that because of slow physics engine and the lack of continuous collision, too much speed can be a bad thing. 

as far as your options go, I 'm suggesting mine.  Higher cap= fixed enemy pushing force, slightly lowered (-15-25%) dps, proportional increase in projectile velocity and recoil.  The goal is to make a faster frequency slightly more desirable at shorter ranges and a lower frequency far more desirable at long range.

In an hypothetical scenario where frequency affected no other parameters, the optimal strategy would be to charge at a high capacitance when idle but when detecting a target immediately switching back to the lowest capacitance, because the damage function from shooting is y=x - (x modulo period).  Therefore, shooting quickly is naturally optimal.  To compensate for that, there must be something interesting about lower hz, and since lower hz means a single shot missing is a higher stake event, that pairs well with long distance.  The "all or nothing"-ness means accuracy matters more, and landed shots more exciting.
« Last Edit: March 14, 2016, 11:32:17 am by z26000 »

z26

  • Experienced Member
  • ***
  • Posts: 108
  • Likes: +0/-0
    • View Profile
Re: Rawbots 0.1.4 eXtended Functionality Mod (XFM) Development
« Reply #25 on: March 14, 2016, 11:20:16 am »
Reply to your second post:

I'm not surprised to hear that league would be revived eventually, since that thing is basically the king of rawbots events.

Weight classes is a fantastic idea, although i'd add a few more.  Personally I'd have used volume classes.  Just compute the volume of each part and sum the result together so that similarly sized bots battle together.  An automated script could do that rather than doing it by hand.

One thing I'm curious about: How would robots made out of multiple units handled?

Either way I'm excited about this returning.

« Last Edit: March 14, 2016, 11:22:10 am by z26000 »

PressureLine

  • XFM Developer
  • Administrator
  • Experienced Member
  • *****
  • Posts: 192
  • Likes: +4/-0
    • View Profile
    • Rawbots Club Forums
Re: Rawbots 0.1.4 eXtended Functionality Mod (XFM) Development
« Reply #26 on: March 14, 2016, 12:13:50 pm »
At this point adding parts, even clones of existing ones, is for all practical purposes impossible to do. It should be possible to add a 'type' switch to the lasers (and grenades) to change how they work, but that would be a seriously major undertaking (considering that I am basically working in Assembly code here)

My current thinking re: plasma cannons leans heavily towards either fixed (at about the same level as 5 capcitance is currently), or much less variation in shoot_force for physics reasons (currently at 20 capacitance your shots can actually pass through parts) So for me the 'real' question is "Fixed damage over time? Or fixed damage per shot?"

Given that I'm looking at 8000hp being the top hp level of any given part, and that plasma cannons only deal damage to the part they strike, any damage per shot of more than 8000 is essentially wasted. Dead is dead, there's no real bonus to making something more dead.

The maths is taking form in my mind something like this: 400 damage per shot per capacitance, which on an 'average' part (basically everything except floaters & cannons(2000hp), jets(1500hp), fists(8000hp) and wheels(2250hp, 4000hp and 8000hp)) will require 3 hits to destroy at 1 capacitance (0.5s reload), 2 at 2 capacitance (1s reload) or a single hit at 3 capacitance (1.5s reload) Although at that damage level you'd still be looking at floaters to provide at least a modest level of armoring for your bots (and block of floater bots are a bit boring), so the actual damage output numbers will need to be looked at to make it so that it isn't just "the bot that hits first wins" especially in lightweight bots where virtually every part is going to be a critical part.

I'll have to run the numbers, and see what an acceptable compromise (between 'horse pistols at 10 feet' and 'tanks armed with peashooters) looks like.
"Never assume that anything you've never seen before is benign. Most particularly not something that says 'MARINES' on it."

MarvinMan

  • Automation Expert
  • Experienced Member
  • ***
  • Posts: 236
  • Likes: +4/-0
    • View Profile
Re: Rawbots 0.1.4 eXtended Functionality Mod (XFM) Development
« Reply #27 on: March 14, 2016, 12:18:00 pm »
I think lasers should take about 1-2s to detach a normal part, hopefully giving the target a chance to return fire or escape. Given the disadvantages of trying to use grenades in combat and their lack of use so far, it's probably not worth changing them until we see a bot one-shoting everything else in the arena. I think essential parts like hooks or cannons should have higher hp so that bots ore less likely to be disabled by a lucky shot.

I'd be inclined to reduce the overall DPS of plasma cannons, especially at higher rates of fire, so that it takes multiple encounters to get kill. A general increase in projectile velocity, or perhaps removing the effects of gravity would make it simpler to hit moving targets. Recoil should probably scale with damage/shot.

Overall, that should keep constant rapid fire viable, discouraging big slow bots, while making proper aim more rewarding.

I'd be up for having another go at the ACL with different size classes. An extremely basic mobile turret is about 18 parts, so it might be better to make the lightweight class ~30 parts.

Teams of unconnected bots would be difficult as there aren't any practical IFF systems. Bots linked in code could work, but I'm not sure how much of an advantage it would be.

EDIT: I had a go at re-working the arena map so that there is less stuff to get stuck on.

https://www.dropbox.com/s/5s21odltet6eh1t/acl?dl=0
« Last Edit: March 14, 2016, 02:46:29 pm by MarvinMan »

cupid_the_conqueror

  • Global Moderator
  • Experienced Member
  • *****
  • Posts: 89
  • Likes: +0/-0
  • A filthy casual
    • View Profile
    • the truth of rawbots
Re: Rawbots 0.1.4 eXtended Functionality Mod (XFM) Development
« Reply #28 on: March 14, 2016, 04:44:43 pm »
yea I am agreeing with the general consensus that the plasma cannon should do less damage, but the projectiles should be WAAAAAAAY faster. so that way we can finally have plasma cannons that can hit aircraft without stupid amounts of lead!
At the end of the day, love conquerors all.

z26

  • Experienced Member
  • ***
  • Posts: 108
  • Likes: +0/-0
    • View Profile
Re: Rawbots 0.1.4 eXtended Functionality Mod (XFM) Development
« Reply #29 on: March 14, 2016, 05:59:41 pm »
Given that I'm looking at 8000hp being the top hp level of any given part, and that plasma cannons only deal damage to the part they strike, any damage per shot of more than 8000 is essentially wasted. Dead is dead, there's no real bonus to making something more dead.
I'll have to run the numbers, and see what an acceptable compromise (between 'horse pistols at 10 feet' and 'tanks armed with peashooters) looks like.

I didn't think about that.  So i guess slow, powerful cannons are doomed at being bad actually doing damage.  Oh, and nice arena marvin.