What in game events affect how many points I earn? Is there a cap to how many I can earn in one match? Do I get points regardless of winning or losing?
Generally speaking you get a number of battle points proportional to how much time the match last but I don't know if this number is capped in some way.
You won’t earn rewards or Battle Points instead if:
Update - Some measurements
I am trying to log all matches I do writing down time, battle points earned and some notes. Here it is my current log:
The output of these data is that you gain about ~0.023 battle points per seconds (1,4/minute - 83/hour) and I didn't found any relations between battle points earned, win/loss or the presence of leavers inside one or the other team.
I will continue log data and update this answer time to time.
I have heard that also getting certain points of each match completed can effect the points too.
Rosh Mega Creeps ect.
Be sure to keep that in mind if you get 2 almost identical games and find there is a larger gap between your BP's than you calculated.
Battle points within DOTA2 is essentially an experience system.
Battle points can be earned through Matchmaking and Co-op matches. Each time you complete a matchmaking game, you will be rewarded with Battle Points.
Upon obtaining 1000 Battle points, the experience counter resets - with any excess Battle points carrying over to the new counter - and a level is added to the player's profile. As part of levelling up you will also receive a random item.
As per this article from the DOTA2 community news site there are limitations to how you can earn Battle points, but there is no cap to the total quantity of Battle points you can collect:
guys the BP system is completly easy.. in a match where u win like all enemies leave untill match starts, u get 15bp and after every minute u get 1.4bp/min. no other factors affect the bp rate except for low priority and abandons