Weil jetzt mal gesprochen würde "<=" doch kleiner gleich lauten, oder?
Und wenn ich sage:
500 <= 500
würde er die 500 doch noch machen aber die:
501 <= 500
wäre dann nicht mehr möglich, oder bin ich jetzt komplett falsch? 
Du täuscht dich 
idR fangen Zahlen/Arrays bei Programmier/Scriptsprachen bei 0 an.
Initialisiere ich nun meine Variable i, in der schleife mit 0 und möchte MAX_PLAYERS(500) durchläufe,
brauch ich den kleiner als Operator -> 0 - 499 = 500
initialisiere ich meineVariable allerdings mit 1, kann ich kleiner gleich nutzen, denn dann hab ich auch 500 durchläufe -> 1 - 500 = 500
mache ich das jetzt mit 0, hab ich 501 dürchläufe 0 - 500 = 501
Die beiden letzteren sind aber irgendwie ziehmlich scheiß Ideen 
Einfach aus dem Grund, man hat 1. einen nicht initialisierten Wert und zwar 500, denn ein Array mit 500 Einträgen geht von 0 - 499
und 2. hast du bei der 2. Option einen ungebrauchten Wert und zwar den ersten, bzw 0.
Die Folge unnötiger Speicherverbrauch und Index out of Bounds
//Edit: falsch verstanden 
Da hast du antürlich recht, denn 500 ist ja noch in dem Rahmen, wenn die Bedingung 500 <= 500 ist
alles drüber - nicht 