You should look at the source first before you comment on the rage meter.
Here are some truncated snippets
//melee hit rage meter gain
if sprite_index == AfroSlashHitboxS
with (ownerPlayer.object) currentWeapon.chargeMeter+=4;
if sprite_index == SamuraiAirSlashHitboxS
with (ownerPlayer.object) currentWeapon.chargeMeter+=8;
//block rage meter gain vs melee attacks
if justDefense
owner.currentWeapon.chargeMeter+=lastDamage;
else
owner.currentWeapon.chargeMeter+=lastDamage/2;
//block rage meter gain vs all other projectiles
if !justDefense {
owner.hp-=lastDamage/4;
owner.currentWeapon.chargeMeter+=4;
}
else {
owner.currentWeapon.chargeMeter+=12;
}
Max rage meter is 100. And you do gain meter by hitting people, but the whole point of the increased gain on block is to actually encourage blocking.
Against 1 second of Vein minigun fire, you take 24 damage and gain 60 rage meter (and that's not even including just defense). If you tried to run in slashing, you'd take around 96 damage, and gain about 8 rage meter. Do the math.
Blocking melee gives you rage meter relative to the amount of damage it did. You can gain almost a full meter by blocking a Chryssalid attack.