Faits :
A.
Par jugement du 4 mars 2019, le Tribunal correctionnel de la République et canton de Genève a reconnu A._ coupable de tentative de meurtre (art. 111 cum 22 al. 1 CP) et de mise en danger de la vie d'autrui (<ref-law>) en lien avec les faits du 18 août 2011, sur les personnes de C._ pour la première infraction et D._ pour la seconde, de complicité de lésions corporelles simples (art. 123 ch. 1 cum 25 CP) s'agissant des faits du 11 mai 2014 et de tentative de lésions corporelles graves (art. 122 cum 22 al. 1 CP) pour ceux du 24 août suivant. A._ a été condamné à une peine privative de liberté de quatre ans, sous déduction de 83 jours de détention avant jugement et de 33 jours correspondant à l'imputation des mesures de substitution, peine complémentaire à celle prononcée le 17 décembre 2015 par la Chambre pénale d'appel et de révision de la République et canton de Genève, ainsi qu'à payer la somme de 2'000 fr., avec intérêts à 5% dès le 24 août 2014, à B._ au titre de réparation du tort moral. Le Tribunal correctionnel a également levé les mesures de substitution ordonnées le 8 novembre 2011 par le Tribunal des mesures de contraintes et modifiées le 21 février 2013 par le Ministère public genevois.
B.
Par arrêt du 18 octobre 2019, la Chambre pénale d'appel et de révision de la République et canton de Genève a rejeté l'appel formé par A._ et admis partiellement l'appel joint formé par le Ministère public à l'encontre du jugement du Tribunal correctionnel. Elle a condamné A._ à une peine privative de liberté de quatre ans, sous déduction de 83 jours de détention avant jugement, mais n'a imputé aucun jour au titre des mesures de substitution ordonnées. Elle a constaté par ailleurs que le principe de célérité n'avait pas été violé. Cet arrêt se fonde en substance sur les faits suivants.
B.a. Le 18 août 2011 vers 4h15 du matin, une bagarre a éclaté dans le night-club E._, sis rue F._ à G._. L'altercation avait débuté entre H._ et A._, videur du night-club en question mais en congé cette nuit-là, puis s'était généralisée entre la vingtaine de personnes présentes et s'était poursuivie à l'extérieur. A._ s'était alors saisi d'une arme à feu qui se trouvait dans son véhicule parqué non loin et avait fait feu en direction de C._, qui s'enfuyait en compagnie d'une autre personne.
A._ a tiré le premier coup de feu alors que C._ était à une dizaine de mètres d'une voiture de service de la société I._ conduite par D._, laquelle se trouvait alors à hauteur de l'îlot du passage piétons reliant l'entrée de la rue J._ à K._. A._ a manqué sa cible. A la suite de ce coup de feu, C._ est passé derrière le véhicule I._, plaçant l'agent de sécurité entre lui-même et le tireur. D._ a démarré et avancé, opérant un demi-tour autour de l'îlot pour ne plus être dans la ligne de visée du tireur. L'instant précédent ce demi-tour, A._ a tiré un second coup de feu qui a traversé le véhicule I._. Le projectile est passé à quelques centimètres de la tête de D._, qui n'a pas été blessé.
B.b. Le 11 mai 2014, vers 03h30, devant la discothèque L._, A._ a prêté assistance à M._ pour lui permettre d'asséner un coup de poing au visage de N._ et d'autres coups alors que celui-ci était à terre, lui causant diverses lésions.
B.c. Le 24 août 2014, vers 04h00, dans le L._, A._ a entraîné B._ dans un coin de l'établissement et lui a asséné des coups de poing au visage, le faisant tomber. Au sol, il a continué de lui donner des coups de pied, également à la tête. Deux acolytes se sont joints à A._ et ont également frappé B._. Ce dernier a souffert de diverses lésions notamment au visage.
C.
Contre l'arrêt cantonal, A._ dépose un recours en matière pénale devant le Tribunal fédéral. Il conclut, avec suite de frais et dépens, principalement, à la réforme du jugement attaqué en ce sens qu'il est acquitté des chefs d'infraction de tentative de meurtre au préjudice de C._, de mise en danger de la vie d'autrui au préjudice de D._ et de tentative de lésions corporelles graves au préjudice de B._, qu'il est déclaré coupable du chef d'infraction de lésions corporelles simples au préjudice de ce dernier, et à sa condamnation, après constat de la violation du principe de célérité, à une peine privative de liberté n'excédant pas six mois, sous déduction de 83 jours de détention avant jugement et de 165 jours correspondant à l'imputation des mesures de substitution. A titre subsidiaire, il conclut à l'annulation de l'arrêt attaqué et au renvoi de la cause à la cour cantonale pour nouvelle décision. En outre, il sollicite l'assistance judiciaire et la désignation de Me Xavier-Marcel Copt en qualité d'avocat d'office.

Considérant en droit :
1.
Le recourant soutient que les auditions du 18 août 2011 de C._, O._, D._, H._ et P._, entendus par-devant la police judiciaire en relation avec le complexe de faits du 18 août 2011, se sont tenues en violation de l'<ref-law> car il n'avait pas été invité à y participer.
1.1. L'art. 147 al. 1 1ère phrase CPP consacre le principe de l'administration des preuves en présence des parties durant la procédure d'instruction et les débats. Il en ressort que les parties ont le droit d'assister à l'administration des preuves par le ministère public et les tribunaux et de poser des questions aux comparants. Ce droit spécifique de participer et de collaborer découle du droit d'être entendu (<ref-law>). Il ne peut être restreint qu'aux conditions prévues par la loi (cf. art. 108, 146 al. 4 et 149 al. 2 let. b CPP; cf. aussi <ref-law> et Message du 21 décembre 2005 relatif à l'unification du droit de la procédure pénale, FF 2006 1166 s. ch. 2.4.1.3). Les preuves administrées en violation de l'<ref-law> ne sont pas exploitables à la charge de la partie qui n'était pas présente (<ref-law>; cf. <ref-ruling> consid. 1.6.1 p. 459; <ref-ruling> consid. 1.2.1 p. 175; arrêt 6B_952/2019 du 11 décembre 2019 consid. 1.1).
Les déclarations faites lors d'une première audience en violation de l'<ref-law> demeurent inutilisables conformément à l'<ref-law> lorsque la personne interrogée ne s'exprime pas librement et sans influence sur la cause dans le cadre d'une confrontation ultérieure (voir <ref-ruling> consid. 1.6 p. 459 et s.; arrêts 6B_1133/2019 du 18 décembre 2019 consid. 1.3.2; 6B_76/2018 du 15 octobre 2018 consid. 1; 6B_321/2017 du 8 mars 2018 consid. 1.5.2 in SJ 2018 I 356). Il ne suffit donc pas que la personne interrogée se limite à confirmer ses déclarations antérieures. Si des déclarations faites lors d'auditions conduites en violation du droit de participer en vertu de l'<ref-law> sont textuellement présentées aux personnes interrogées lors d'auditions de confrontation ultérieures, ces déclarations sont utilisées de manière inadmissible au sens de l'<ref-law> (<ref-ruling> consid. 1.6.1 p. 459; arrêt 6B_1133/2019 du 18 décembre 2019 consid. 1.3.2; voir aussi: Alexandre Guisan, La violation du droit de participer (<ref-law>), in AJP 3/2019, p. 346-348).
Avant l'ouverture d'une instruction, le droit de participer à l'administration des preuves ne s'applique en principe pas (<ref-law> a contrario), et ce y compris en cas d'investigations policières diligentées à titre de complément d'enquête requis par le ministère public en vertu de l'<ref-law> (arrêt 6B_810/2019 du 22 juillet 2019 consid. 2.1 et les références citées). Aux termes de l'<ref-law>, le ministère public ouvre une instruction, notamment, lorsqu'il ressort du rapport de police, des dénonciations ou de ses propres constatations des soupçons suffisants laissant présumer qu'une infraction a été commise (al. 1 let. a). Il peut renvoyer à la police, pour complément d'enquête, les rapports et les dénonciations qui n'établissent pas clairement les soupçons retenus (al. 2). Il renonce à ouvrir une instruction lorsqu'il rend immédiatement une ordonnance de non-entrée en matière ou une ordonnance pénale (al. 4). L'instruction pénale est considérée comme ouverte dès que le ministère public commence à s'occuper de l'affaire. Cela est en tout cas le cas lorsque le ministère public ordonne des mesures de contrainte. Dès lors qu'un mandat de comparution est une mesure de contrainte, celui-ci suffit en règle générale à l'ouverture de l'instruction lorsque le ministère public effectue lui-même les premières mesures d'instruction, en particulier entend le prévenu. L'omission d'une ordonnance d'ouverture d'instruction formelle n'a donc pas pour conséquence la nullité ou l'invalidité des mesures d'instruction effectuées (<ref-ruling> consid. 1.1.4 p. 24 s.).
1.2. Il ressort du jugement attaqué que l'ordonnance d'ouverture d'instruction pénale (pièce 100), ainsi que les premiers actes d'enquête du procureur, soit l'ordonnance de perquisition et de séquestre du domicile et du véhicule de A._ (pièce 102), l'avis de recherche et d'arrestation (pièce 86), ainsi que la délégation à la police de la première audition de celui-ci (pièce 97), sont tous datés du 18 août 2011. Ces documents ont été adressés par fax à la police le même jour à 15h55 (En fait, B. g. c p. 18). C._, O._, D._, H._ et P._ ont été entendus par la police le 18 août 2011 entre 10h40 et 20h00. Seules les auditions de H._ et de P._ se sont tenues après 16h00, soit après que l'ordonnance d'ouverture d'instruction pénale a été transmise à la police (En fait, B.g.a. p. 18 et consid. 2.8.1 p. 27).
La cour cantonale a constaté qu'à l'exception de H._, toutes ces personnes avaient été ultérieurement entendues par le ministère public en présence du recourant et de son conseil, lesquels avaient eu préalablement accès au procès-verbal des auditions tenues devant la police. Elle en a conclu que les droits de la défense, en particulier le droit d'être confronté aux témoins à charge, avaient dès lors été respectés. H._, malgré deux convocations du ministère public, ne s'était pas présenté aux audiences, sans être excusé. L'autorité précédente a considéré que sa déposition devant la police n'était pas décisive s'agissant des coups de feu tirés le 18 août 2011, puisqu'il avait déclaré avoir quitté les lieux avant les premières déflagrations, ce qui était confirmé par Q._, et qu'aucun élément de la procédure ne le reliait aux tirs. Partant, le ministère public avait valablement renoncé à répéter son audition, sans que les droits de la défense n'aient été violés, et les auditions ayant eu lieu le 18 août 2011 avant 16h00 étaient exploitables (arrêt entrepris, consid. 2.8.1 p. 27).
1.3. Le recourant soutient que la problématique d'espèce ne relève pas de son droit à être confronté avec les témoins à charge, mais de celui de participer à l'administration des preuves dès l'ouverture de l'instruction pénale. En s'appuyant sur le rapport d'arrestation du 19 août 2011, le recourant argue que l'instruction était déjà matériellement ouverte avant le fax de 15h55 car le procureur avait été nanti des faits survenus le 18 août 2011 à 04h25 et avait pris des dispositions organisationnelles afin que la brigade criminelle soit en charge des opérations dès 08h00 ce jour-là. L'ensemble des auditions du 18 août 2011 auraient dès lors dû avoir lieu en sa présence.
1.4. Le rapport d'arrestation en question indique que le jeudi 18 août 2011, vers 04h25, un témoin a avisé la centrale de police qu'elle venait d'entendre plusieurs coups de feu provenant de la rue devant chez elle, que des patrouilles sont intervenues sur les lieux et que R._ et S._ se sont rendus sur place pour coordonner les premières mesures. Le rapport précise également que le procureur de permanence a été avisé des faits et enfin que, le même jour, à 08h00, la brigade criminelle a été sollicitée afin de s'occuper de l'affaire (dossier cantonal, pièce n° 2).
Contrairement à ce que soutient le recourant, il ne ressort pas de ce rapport que le procureur aurait été nanti de soupçons suffisants, laissant présumer qu'une infraction a été commise, au moment même de l'appel du témoin à la police, soit à 04h25. De plus, à teneur du dossier, aucun acte d'enquête émanant du procureur n'est antérieur à l'ordonnance d'ouverture d'instruction. Partant, il n'est pas établi que le procureur aurait commencé à traiter de l'affaire avant de communiquer l'ouverture de l'instruction à la police. Celle-ci n'a souffert d'aucun retard, puisque le procureur a été avisé des faits dans la journée du 18 août 2011 et l'ordonnance d'ouverture d'instruction a été faxée à la police le même jour à 15h55. On ne se trouve ainsi pas dans l'hypothèse où le ministère public aurait indûment prolongé l'enquête de police pour faire obstacle au droit de participer des parties, alors même qu'il existait déjà des indices factuels, concrets et sérieux laissant présumer une infraction (cf. par ex. arrêts 6B_178/2017 et 6B_191/2017 consid. 2.2.2 et 2.4 du 25 octobre 2017 in Pra 2018 21 p. 192: instruction réputée ouverte en présence d'une plainte pénale précise, d'un rapport de police et d'observations policières). Partant, il n'y a pas lieu de considérer que l'instruction aurait été matériellement ouverte avant que le procureur ne communique formellement son ouverture. Il s'ensuit que la police, avisée de l'ouverture de l'instruction à 15h55, pouvait procéder aux auditions de C._, O._ et D._, intervenues avant 16h, hors la présence du recourant. Son droit à être confronté aux témoins à charge a par ailleurs été respecté puisque comme l'a relevé la cour cantonale, ces personnes ont été réentendues en présence du recourant.
1.5. En ce qui concerne l'audition de H._, le recourant ne présente aucune critique à l'encontre de la motivation de la cour cantonale, qui a admis que cette audition était certes intervenue après l'ouverture de l'instruction, mais a considéré que la déposition du prénommé devant la police n'était pas décisive puisque H._ avait déclaré avoir quitté les lieux avant les premières déflagrations et qu'aucun élément de la procédure ne le reliait aux tirs. Dans la mesure où la cour cantonale ne s'est pas servie de cette déposition pour établir les faits ni ne l'a appréciée à la charge du recourant, les droits du précité n'ont pas été violés (cf. <ref-law> et la jurisprudence citée dans le consid. 1.1 supra).
1.6. Enfin, l'audition de P._, intervenue devant la police hors la présence du recourant alors que l'instruction était ouverte, a été répétée devant le ministère public en présence du recourant (cf. procès-verbal d'audience du 29 septembre 2011, p. 4, pièce n° 310-311 du dossier cantonal). Il en ressort qu'à cette occasion, P._ a commencé par confirmer ses déclarations faites à la police le 18 août 2011, puis s'est exprimé sur la cause. Il a en particulier expliqué avoir assisté à une bagarre impliquant le recourant devant le Club E._, s'en être éloigné, puis avoir vu le recourant se mettre en position de tir et tiré deux coups de feu en direction de la personne qu'il poursuivait. Il a répondu aux questions du conseil du recourant et du procureur et a identifié deux personnes sur une planche photographique. Il n'apparaît donc pas, à la lecture de ce procès-verbal, que les déclarations antérieures de P._, recueillies en violation de l'<ref-law>, lui auraient été textuellement présentées et que l'intéressé se serait contenté de les confirmer. Aucun élément du dossier ne permet ainsi de douter que P._ se soit exprimé librement et sans influence sur la cause lors de l'audience devant le ministère public, l'inverse n'étant au demeurant pas soutenu par le recourant. Celui-ci relève d'ailleurs que P._ ne s'est pas contenté de confirmer mot à mot ses premières déclarations. Ces dernières n'ont donc pas été utilisées de manière inadmissible au sens de l'<ref-law>. Dans l'établissement des faits, la cour cantonale pouvait ainsi retenir, sans violer les droits de la défense, que selon les déclarations de P._, répétées en présence du recourant, ce dernier était l'auteur de deux coups de feu, qu'il avait adopté une position de tir et avait visé la personne après qui il courait, soit C._ (cf. jugement attaqué, consid. B.d.b p. 15).
Sur le vu de ce qui précède, il y a lieu de rejeter le grief formé par le recourant.
2.
Le recourant se plaint d'arbitraire dans l'établissement des faits et de la violation du principe de présomption d'innocence en lien avec sa condamnation pour les faits commis le 11 août 2018 au préjudice de C._. Il ne conteste pas avoir tiré des coups de feu, mais soutient ne pas avoir visé C._.
2.1. Le Tribunal fédéral n'est pas une autorité d'appel, auprès de laquelle les faits pourraient être rediscutés librement. Il est lié par les constatations de fait de la décision entreprise (<ref-law>), à moins qu'elles n'aient été établies en violation du droit ou de manière manifestement inexacte au sens des art. 97 al. 1 et 105 al. 2 LTF, soit pour l'essentiel de façon arbitraire au sens de l'art. 9 Cst. Une décision n'est pas arbitraire du seul fait qu'elle apparaît discutable ou même critiquable; il faut qu'elle soit manifestement insoutenable et cela non seulement dans sa motivation mais aussi dans son résultat. Le Tribunal fédéral n'entre pas en matière sur les critiques de nature appellatoire. La présomption d'innocence, garantie par les <ref-law>, 32 al. 1 Cst., 14 par. 2 Pacte ONU II et 6 par. 2 CEDH, ainsi que son corollaire, le principe " in dubio pro reo ", concernent tant le fardeau de la preuve que l'appréciation des preuves au sens large. En tant que règle sur le fardeau de la preuve, elle signifie, au stade du jugement, que le fardeau de la preuve incombe à l'accusation et que le doute doit profiter au prévenu. Comme règle d'appréciation des preuves, la présomption d'innocence signifie que le juge ne doit pas se déclarer convaincu de l'existence d'un fait défavorable à l'accusé si, d'un point de vue objectif, il existe des doutes quant à l'existence de ce fait. Il importe peu qu'il subsiste des doutes seulement abstraits et théoriques, qui sont toujours possibles, une certitude absolue ne pouvant être exigée. Il doit s'agir de doutes sérieux et irréductibles, c'est-à-dire de doutes qui s'imposent à l'esprit en fonction de la situation objective. Lorsque l'appréciation des preuves et la constatation des faits sont critiquées en référence au principe " in dubio pro reo ", celui-ci n'a pas de portée plus large que l'interdiction de l'arbitraire (<ref-ruling> consid. 1.1 p. 155 s. et les références citées).
2.2. La cour cantonale est parvenue à la conclusion que le recourant avait visé C._ avec son arme à feu en se fondant sur les images de vidéosurveillance, sur les déclarations des témoins ainsi que sur celles du recourant lui-même. Ainsi, elle a constaté que devant le night-club E._, à 04h22m40s, la caméra de vidéosurveillance a filmé une altercation entre le recourant et l'individu 1, puis le premier a poursuivi le second en direction de la rue T._ (04h22m43s). C._ les a suivis. Quelques secondes plus tard, ce dernier et l'individu 1 sont revenus en courant sur le trottoir d'en face (04h23m12s), suivi du recourant (04h23m18s). Alors que les deux fuyards étaient revenus vers le night-club E._ (déclarations de C._ et U._), le recourant avait fait un crochet par son véhicule, parqué rue V._, pour y chercher une arme (déclarations de C._ et U._; contenu des images de vidéosurveillance faisant état d'un temps d'inaction entre l'arrivée de C._ sur le carrefour W._ et celle du recourant). C._, voyant le recourant avec une arme à feu, a pris la fuite en direction du carrefour W._ (arrêt attaqué, En Fait, B.d.b. p. 14).
Selon les déclarations constantes et concordantes de P._, D._ et O._, deux coups de feu se sont suivis de près. Selon les deux premiers, le recourant en était l'auteur et il avait pour ce faire adopté une position de tir, à tout le moins " improvisée ". La cour cantonale a considéré que la thèse défendue par le recourant selon laquelle il aurait tiré en l'air ne trouvait aucun fondement dans le dossier. En effet, P._, X._ et D._ avaient signalé un tireur visant une cible en la personne de C._. En outre, la position qu'il avait lui-même décrite paraissait illogique pour quelqu'un qui visait en hauteur et souhaitait éviter des ricochets (bras tendus en avant, poignets relevés), inconfortable et sans garantie aucune de la trajectoire des balles, ce qui était hautement invraisemblable de la part d'un amateur d'armes aguerri (arrêt attaqué, En Fait, B.d.b. p. 15).
2.2.1. Le recourant soutient en substance que les moyens de preuve administrés dans le cas d'espèce ne permettaient pas de retenir que C._ était la cible des tirs. Il ne dit cependant pas en quoi la cour cantonale aurait fait une appréciation arbitraire des images de vidéosurveillance, des déclarations de P._ et X._, ou même des siennes. Pour le reste, il livre sa propre appréciation des déclarations de D._ et C._; en ce sens, sa discussion est largement appellatoire, partant irrecevable. Au demeurant, on peut relever ce qui suit.
2.2.2. La cour cantonale a constaté que D._ avait déclaré: " avoir vu le tireur tirer le second coup de feu, ce qui lui avait permis de déduire que sa cible était le fuyard qui était passé derrière son véhicule. Selon lui, au second coup de feu, le tireur était dans une position " improvisée ", il ne semblait pas avoir visé , mais plutôt tiré dans une direction ". Toujours d'après D._: " Compte tenu de la position de l'individu qui fuyait, lequel se trouvait à une dizaine de mètres de son véhicule lors du premier coup de feu, il ne s'expliquait pas que le t ir ait touché son véhicule au second coup, étant précisé qu'il ne savait pas où se trouvait le fuyard ". La cour cantonale pouvait en conclure sans arbitraire que selon ce témoin, c'était bien la personne courant à une dizaine de mètres de son véhicule, identifiée sur les images de vidéosurveillance comme étant C._, qui était visée par les tirs. Dans la mesure où il ignorait la position du fuyard lors du second coup de feu, le fait qu'il ne s'explique pas pourquoi son véhicule avait été touché n'est pas déterminant. Il peut encore être ajouté que C._ était en train de fuir au pas de course, ce qui faisait de lui une cible difficile à atteindre pour le tireur. Les déclarations de D._ contredisent en tous les cas celles du recourant qui soutient avoir tiré en l'air, et non dans une certaine direction.
Quant à C._, il n'est pas important, au regard des autres éléments de preuve, qu'il ne se soit pas senti la cible des tirs. Il avait certes déclaré que le recourant avait tiré en l'air (arrêt attaqué, En fait, B.c.a, p. 10). C'est toutefois le seul protagoniste à avoir déclaré cela. En outre, une telle hypothèse n'est pas compatible avec les impacts de balles relevés par la Brigade de police technique et scientifique, qui a constaté que le véhicule I._ de D._ portait deux impacts provenant de la même balle, le premier dans le bas de la vitre arrière gauche à 1,08 m du sol et le second dans le montant supérieur de la portière avant droite, passant ainsi à environ 10 cm derrière la tête du conducteur (arrêt attaqué, En fait, B.a.d. p. 5). La cour cantonale en a déduit - sans arbitraire (cf. consid. 2.3.2 infra) - que le recourant avait tiré à hauteur d'homme. Par ailleurs, l'autorité précédente a retenu, sans que le recourant n'élève de contestation à cet égard, que C._ était passé derrière le véhicule I._, plaçant l'agent de sécurité entre le fuyard et le tireur, et c'était ce véhicule qui avait reçu la balle du second tir (arrêt attaqué, En Fait, B.d.b. p. 16).
Le recourant ne démontre pas en quoi ces éléments n'auraient pas été suffisants pour conclure que les coups de feu avaient été tirés dans la direction de C._, même s'ils ne l'ont pas touché ni même frôlé.
2.2.3. Le recourant soutient encore qu'il ne faisait guère de sens de retenir qu'il ait pu souhaiter tirer dans la direction de C._ dans la mesure où selon l'arrêt entrepris, une bagarre avait débuté entre le recourant et H._. Il a toutefois été constaté que si la bagarre avait débuté entre ces deux-là, elle s'était ensuite généralisée. En outre, il a été établi que C._ était poursuivi par le recourant. Aussi les faits tels que retenus par la cour cantonale n'ont-ils rien d'absurde.
Considérant ce qui précède, l'appréciation des moyens de preuve de la cour cantonale, qui l'a conduite à conclure que le recourant avait tiré dans la direction de C._, n'a rien d'insoutenable. Le grief est infondé dans la mesure de sa recevabilité.
2.3. Le recourant affirme qu'en toute hypothèse, il était arbitraire de lui imputer une intention de tuer par dol éventuel.
2.3.1. L'<ref-law> punit d'une peine privative de liberté de cinq ans au moins celui qui aura intentionnellement tué une personne. Selon l'<ref-law>, agit intentionnellement quiconque commet un crime ou un délit avec conscience et volonté. L'auteur agit déjà avec intention, sous la forme du dol éventuel, lorsqu'il tient pour possible la réalisation de l'infraction et l'accepte pour le cas où celle-ci se produirait.
Déterminer ce qu'une personne a su, envisagé, voulu ou accepté relève du contenu de sa pensée, à savoir de faits " internes ", partant, des constatations de fait (<ref-ruling> consid. 12 p. 152; <ref-ruling> consid. 6.3 p. 375). Est en revanche une question de droit celle de savoir si l'autorité cantonale s'est fondée sur une juste conception de la notion de dol éventuel et si elle l'a correctement appliquée au vu des éléments retenus (<ref-ruling> consid. 4.2.3 p. 4 s.). Il y a dol éventuel lorsque l'auteur envisage le résultat dommageable et agit, même s'il ne le souhaite pas, parce qu'il s'en accommode pour le cas où il se produirait (<ref-ruling> consid. 4.2.3 p. 4). Parmi les éléments extérieurs permettant de conclure que l'auteur s'est accommodé du résultat dommageable pour le cas où il se produirait figurent notamment la probabilité, connue par l'auteur, de la réalisation du risque et l'importance de la violation du devoir de prudence. Plus celle-ci est grande, plus sera fondée la conclusion que l'auteur, malgré d'éventuelles dénégations, a accepté l'éventualité de la réalisation du résultat dommageable (<ref-ruling> consid. 8.4.1 p. 84; <ref-ruling> consid. 2.3.3 p. 18). Ainsi, le dol éventuel peut notamment être retenu lorsque la réalisation du résultat devait paraître suffisamment vraisemblable à l'auteur pour que son comportement ne puisse raisonnablement être interprété que comme une acceptation de ce risque (<ref-ruling> consid. 4.2.3 p. 4; <ref-ruling> consid. 5.3 p. 226).
2.3.2. La cour cantonale a considéré, au vu des faits retenus précédemment, qu'il ne pouvait échapper au recourant qu'en tirant dans la direction de C._, alors en mouvement, il prenait le risque d'une issue fatale. Le recourant avait indiqué être un amateur d'armes et un tireur. L'impact du second tir constaté dans le véhicule de D._ était à hauteur d'homme et les témoins faisaient état d'un tireur qui tirait devant lui. Le recourant avait d'ailleurs reconnu lui-même que le risque de toucher était évident. En l'absence d'autres éléments quant à la position exacte de C._ ni quant à la volonté précise du recourant, la cour cantonale a retenu une intention sous la forme du dol éventuel (arrêt attaqué, consid. 2.9 p. 27-28).
2.3.3. Selon le recourant, il était " discutable " de retenir une intention de tirer à hauteur d'homme alors qu'il était admis que le projectile avait été dévié. Il ressort cependant des constatations cantonales, fondées sur le rapport de la Brigade de police technique et scientifique, que le projectile avait tout d'abord frappé le véhicule à 1,08 m du sol et à 1,45 m à l'arrière avant d'être dévié et de se ficher dans le montant supérieure de la portière. L'emplacement du premier impact permettait donc de déterminer la hauteur du tir avant sa déviation.
Le recourant reproche également à la cour cantonale d'avoir procédé à un raisonnement par analogie en imputant au (premier) tir effectué dans la direction de C._ toutes les caractéristiques du (second) tir dont l'impact a été retrouvé sur le véhicule de D._. Or, d'une part, il était pertinent, pour asseoir la qualification de meurtre par dol éventuel, de relever que ce second tir, qui visait lui aussi C._, avait terminé sa course à hauteur d'homme (cf. arrêt attaqué, En fait, B.d.b. p. 15). D'autre part, selon les témoins, le recourant avait tiré devant lui (arrêt attaqué, consid. 2.9 p. 28); cela constitue un indice supplémentaire quant à ses intentions lorsqu'il a fait usage de son arme, que ce soit la première ou la seconde fois. On ne voit pour le surplus pas en quoi la cour cantonale aurait indûment imputé les caractéristiques du second tir au premier.
Par ailleurs, c'est sans arbitraire que la cour cantonale n'a pas restreint l'intention du recourant à celle de blesser plutôt que de tuer, dès lors qu'il est question ici de tirs au moyen d'une arme à feu, volontairement dirigés sur un individu. Enfin, puisqu'il n'a pas été constaté que D._ aurait été la cible des tirs, à la différence de C._, la décision cantonale n'est pas contradictoire en tant qu'elle retient l'intention de tuer par dol éventuel au préjudice du second et non du premier. Cela n'empêche pas non plus de considérer que D._ a été victime de mise en danger de la vie d'autrui en raison de ce même tir (cf. consid. 3 infra).
Etant établi que le recourant a tiré à deux reprises dans la direction de C._, la cour cantonale pouvait ainsi retenir sans arbitraire que par son geste, le recourant avait à tout le moins accepté le risque de tuer le prénommé. Sur le vu de ce qui précède, la condamnation du recourant pour l'infraction de tentative de meurtre au préjudice de C._ ne viole pas le droit fédéral.
3.
Le recourant discute sa condamnation pour mise en danger de la vie d'autrui au préjudice de D._. Il affirme que compte tenu de la distance de tir, de la déviation subie par le projectile et de son entrée à l'arrière du véhicule, ainsi que du fait que D._ se trouvait protégé par l'habitacle de son véhicule, il n'était pas démontré que le prénommé se fut trouvé objectivement en danger de mort, ni que le recourant eût souhaité, avec conscience et volonté, créer un tel risque.
3.1. Le danger au sens de l'<ref-law> suppose un risque concret de lésion, c'est-à-dire un état de fait dans lequel existe, d'après le cours ordinaire des choses, la probabilité ou un certain degré de possibilité que le bien juridique soit lésé, sans toutefois qu'un degré de probabilité supérieur à 50% soit exigé (<ref-ruling> consid. 2b p. 70; arrêt 6B_144/2019 du 17 mai 2019 consid. 3.1). Il doit en outre s'agir d'un danger de mort, et non pas seulement d'un danger pour la santé ou l'intégrité corporelle (<ref-ruling> consid. 5.1 p. 8; arrêt 6B_144/2019 précité consid. 3.1). Enfin, il faut que le danger soit imminent. La notion d'imminence n'est pas aisée à définir. Elle implique en tout cas, outre la probabilité sérieuse de la réalisation du danger concret, un élément d'immédiateté qui se caractérise moins par l'enchaînement chronologique des circonstances que par le lien de connexité direct unissant le danger et le comportement de l'auteur (<ref-ruling> consid. 2b p. 70; arrêt 6B_144/2019 précité consid. 3.1). L'immédiateté disparaît ou s'atténue lorsque s'interposent ou surviennent des actes ou d'autres éléments extérieurs (<ref-ruling> consid. 2a p. 14; arrêt 6B_144/2019 précité consid. 3.1).
Un acte est commis sans scrupule au sens de l'<ref-law> lorsque, compte tenu des moyens utilisés, des mobiles de l'auteur et des autres circonstances, parmi lesquelles figure l'état de l'auteur, il apparaît comme contraire aux principes généralement admis des bonnes moeurs et de la morale. La mise en danger doit léser gravement le sentiment moral (<ref-ruling> consid. 2a p. 108). Il faut en quelque sorte qu'elle atteigne un degré qualifié de réprobation. L'auteur doit avoir agi intentionnellement. Il doit avoir conscience du danger de mort imminent pour autrui et adopter volontairement un comportement qui le crée. En revanche, il ne veut pas, même à titre éventuel, la réalisation du risque, sans quoi il s'agirait d'une tentative d'homicide. Le dol éventuel ne suffit pas (<ref-ruling> consid. 3 p. 165; arrêt 6B_144/2019 précité consid. 3.1). Il conviendra ainsi d'appliquer l'<ref-law> si l'auteur adopte volontairement un comportement qui crée un danger de mort imminent pour autrui, mais refuse, même à titre éventuel, l'issue fatale. Tel sera notamment le cas lorsque l'auteur peut compter que la réalisation du danger ne se produira pas en raison d'un comportement adéquat de sa part, d'une réaction appropriée de la victime ou de l'intervention d'un tiers (arrêt 6B_144/2019 précité consid. 3.1 et les références citées).
Dans le cas particulier de l'usage d'une arme à feu, il est admis qu'il y a mise en danger de la vie d'autrui lorsque l'auteur tire un coup de feu à proximité d'une personne qui, par un mouvement inattendu, pourrait se trouver sur la trajectoire et recevoir un coup mortel. Il en va de même si l'auteur tire un coup de feu, sans viser personne, et que quelqu'un pourrait être frappé mortellement par un ricochet de la balle (arrêts 6B_946/2014 du 7 octobre 2015 consid. 3.1; 6B_88/2014 du 10 novembre 2013 consid. 3.1 et les références citées).
3.2. La cour cantonale a retenu sans arbitraire que le recourant avait tiré à la hauteur du torse du conducteur (cf. consid. 2.3.2 supra). Pour le reste, le raisonnement de la cour cantonale selon lequel l'action de tirer avec une arme à feu, malgré la présence de la voiture sur la trajectoire, à hauteur du corps du conducteur, la balle frappant l'arrière de la carrosserie avant de frôler la tête de celui-ci, avait créé un danger de mort imminent, n'est pas critiquable au regard de la jurisprudence précitée (consid. 3.1 in fine). Le fait que D._ se trouvât à l'intérieur de sa voiture est dénué de portée, le véhicule n'étant de toute évidence pas à l'épreuve des balles. Le recourant suggère également que la distance excluait la mise en danger, alors que les faits attestent au contraire que les projectiles auraient pu percuter l'intéressé. Il y a du reste un danger à tirer à une distance qui ne permet pas de s'assurer que le projectile ne touche pas un tiers. Peu importe, enfin, que le recourant ait visé C._ et non D._, puisqu'il a néanmoins décidé de tirer alors qu'il avait constaté la présence du véhicule de celui-ci sur la trajectoire. L'autorité précédente pouvait donc conclure que le recourant avait adopté un comportement intentionnellement dangereux et sans scrupule. Les griefs du recourant sont ainsi infondés.
4.
Le recourant soutient que les conditions de l'<ref-law> ne sont pas réalisées en lien avec le complexe de faits du 24 août 2014 se rapportant à B._.
4.1. En premier lieu, le recourant laisse entendre que la motivation du jugement cantonal ne serait peut-être pas suffisante, ajoutant que " la question d'une annulation sur la base de l'<ref-law> peut légitimement se poser ". Il n'est pas clair de savoir si, par cette remarque exprimée sous la forme d'une suggestion, le recourant élève un grief fondé sur une violation de son droit d'être entendu. En tout état, il s'avère que dans sa partie en droit, la cour cantonale a explicité les moyens de preuve sur lesquels elle s'appuyait (bilan lésionnel, hospitalisation, arrêt de travail, déclarations de l'intimé et du témoin) pour parvenir à la conclusion que le recourant avait frappé l'intimé d'un violent coup à la tête. Dès lors que la cour cantonale a motivé son appréciation des preuves, l'<ref-law> n'est pas applicable.
4.2. Le recourant se plaint d'une appréciation arbitraire des preuves quant à la détermination de la violence du coup de pied qu'il avait administré à la tête de B._. Attendu que l'intimé avait reçu des coups de divers protagonistes, le bilan lésionnel, l'hospitalisation de quatre jours et l'arrêt de travail d'un mois de la victime ne permettaient pas d'établir objectivement la violence du coup de pied qui lui avait été porté à la tête par le recourant. L'intimé n'avait fourni aucune indication quant à la violence des coups au moment de déposer plainte pénale et ses déclarations devant le ministère public, intervenues plus d'un an après les faits, procédaient forcément d'une appréciation subjective, étant encore précisé que l'intimé n'indiquait pas que le recourant était l'auteur du « coup de pied dans la tête extrêmement violent » qu'il décrivait. Enfin, la force probante du témoignage du demi-frère de l'intimé devait être fortement relativisée car il avait été entendu pour la première fois plus de quatre ans après les faits et son discours comportait des incohérences s'agissant du nombre de personnes ayant agressé l'intimé. A cela s'ajoutait que l'intimé avait été en mesure de quitter l'établissement sans assistance médicale et avait pu se rendre le lendemain à l'hôpital sans être accompagné.
4.2.1. Aux termes du constat médical du 24 août 2014 dressé par la Dresse Y._, B._ avait rapporté avoir été agressé par trois individus et avoir perdu connaissance pendant l'agression. L'examen médical a mis en évidence une tuméfaction du nez et de l'oeil gauche avec hématome périorbital et des douleurs à la mobilisation du coude gauche de B._. Un scanner cérébral avait montré une lame d'hémorragie au niveau du septum pellucidumet une fracture des os propres du nez à gauche. Une surveillance neurochirurgicale avait été mise en place pendant quatre jours à l'issue de laquelle il avait pu sortir de l'hôpital. L'intimé avait été mis en arrêt de travail à 100% pendant un mois complet (arrêt attaqué, En fait, B.f.b. p. 17).
4.2.2. Certes, les multiples lésions à la tête constatées médicalement ont pu être causées non par un, mais par plusieurs coups à la tête, dont il n'est pas établi qu'ils seraient tous imputables au recourant. Il n'en demeure pas moins que selon les déclarations de l'intimé et du témoin, qui concordent sur ce point, un coup en particulier, donné avec le pied et avec de l'élan, a été plus fort que les autres (arrêt attaqué, En fait, B.f.a. p. 17 et B.f.d. p. 17-18). Contrairement à ce qu'affirme le recourant, l'intimé l'a identifié comme étant l'auteur de ce " [...] coup de pied dans la tête extrêmement violent " (procès-verbal d'audience du 14 octobre 2015, p. 10). Quant au témoin, la cour cantonale a retenu qu'il avait décrit précisément les circonstances de ce coup de pied (moment de l'altercation, distance prise pour donner le coup) et le choc produit, ce que le recourant ne remet pas en cause. Il n'était dès lors pas arbitraire de retenir que ses déclarations étaient claires et probantes en ce qui concernait ce coup de pied, même si le témoin a admis ne plus être sûr du nombre de personnes qui avaient participé à l'agression de l'intimé. Aussi, si d'autres coups ont effectivement pu contribuer au tableau lésionnel constaté chez le recourant, il n'était pas insoutenable de considérer que l'existence d'un coup de pied à la tête particulièrement violent, tel que décrit par l'intimé et le témoin, était corroborée par les lésions constatées, et que le recourant en fut l'auteur. Le fait que l'intimé ait quitté les lieux sans aide et se soit rendu seul à l'hôpital le lendemain n'est pas déterminant.
4.3. Le recourant soutient qu'en assénant un seul coup à la tête de l'intimé, il n'a pas eu l'intention de causer des lésions corporelles graves, fusse par dol éventuel.
4.3.1. Selon la jurisprudence, nul n'est censé ignorer que le fait de porter un et a fortiori plusieurs coups de pied à la tête est susceptible d'entraîner de graves lésions et même la mort de la victime, ce risque étant d'autant plus grand lorsque celle-ci gît au sol sans être en mesure de réagir ou de se défendre, notamment lorsqu'elle est inconsciente (cf. <ref-ruling> consid. 2.3.2.2 p. 157; arrêts 6B_924/2017 du 14 mars 2018 consid. 1.3.1; 6B_901/2014 du 27 février 2015 consid. 2.7.3). La violence des coups portés constitue également un élément déterminant dans la qualification juridique: cf. arrêts 6B_924/2017 précité consid. 1.3.1; 6B_802/2013 du 27 janvier 2014 consid. 2.3.3; 6B_388/2012 du 12 novembre 2012 consid. 2.1.1 et 2.4). Ainsi, selon sa nature, un seul coup porté peut suffire pour retenir l'infraction de tentative d'homicide par dol éventuel (arrêts 6B_924/2017 précité consid. 1.4.2; 6B_246/2012 du 10 juillet 2012 consid. 1.3; 6B_829/2010 du 28 février 2011 consid. 3.2).
Comme vu ci-dessus, le recourant a pris du recul pour intensifier la portée de son coup de pied à la tête de l'intimé. La constatation d'une fracture et d'une hémorragie interne lors de l'examen médical du lendemain confirme la violence du coup porté. Partant, au regard de la jurisprudence rendue dans ce domaine, la cour cantonale pouvait retenir que le recourant devait s'attendre à provoquer une lésion grave, par exemple en raison d'une hémorragie interne, en frappant l'intimé à la tête d'un violent coup de pied, donné avec élan, alors que celui-ci gisait à terre. Il n'est en particulier pas déterminant que le recourant n'ait pas fait usage d'un objet dangereux ou encore qu'il ne lui soit pas imputé plusieurs coups particulièrement violents à la tête, étant cependant admis qu'il a frappé l'intimé à plusieurs reprises. Aussi, c'est sans violer le droit fédéral que la cour cantonale a retenu l'infraction de tentative de lésions corporelles graves par dol éventuel.
5.
En lien avec la peine prononcée, le recourant invoque la violation des principes de célérité et de l'interdiction de la reformatio in pejus.
5.1. Les <ref-law> et 29 al. 1 Cst. garantissent notamment à toute personne le droit à ce que sa cause soit traitée dans un délai raisonnable. Ces dispositions consacrent le principe de la célérité et prohibent le retard injustifié à statuer. L'autorité viole cette garantie lorsqu'elle ne rend pas une décision qu'il lui incombe de prendre dans le délai prescrit par la loi ou dans le délai que la nature de l'affaire et les circonstances font apparaître comme raisonnable (<ref-ruling> consid. 1.3.1 p. 377; cf. <ref-ruling> consid. 5.1 p. 331s.). L'autorité judiciaire doit mentionner expressément la violation du principe de célérité dans le dispositif du jugement et, le cas échéant, indiquer dans quelle mesure elle a tenu compte de cette violation (arrêts 6B_556/2017 du 15 mars 2018 consid. 3.1; 6B_790/2017 du 18 décembre 2017 consid. 2.3.2 et les références citées, en particulier <ref-ruling> consid. 2.3 p. 278).
La prohibition de la reformatio in pejus, dont le but est de permettre au prévenu d'exercer son droit de recours sans craindre de voir le jugement modifié en sa défaveur (<ref-ruling> consid. 4.1 p. 472; <ref-ruling> consid. 2.1 p. 90), est consacrée par l'art. 391 al. 2, 1ère phrase, CPP. Cette disposition prévoit que l'autorité de recours ne peut modifier une décision au détriment du prévenu ou du condamné si le recours a été interjeté uniquement en leur faveur. L'existence d'une reformatio in pejus doit être examinée à l'aune du dispositif. Il n'est en revanche pas interdit à l'autorité de recours de s'exprimer dans ses considérants sur la qualification juridique lorsque l'autorité précédente s'est fondée sur un autre état de fait ou des considérations juridiques erronées (<ref-ruling> consid. 4.1 p. 472; <ref-ruling> consid. 4.5 p. 136; <ref-ruling> consid. 2.7.3 p. 140). Une restriction liée à la prohibition de la reformatio in pejus ne se justifie en principe pas lorsque, pris dans son ensemble, le nouveau jugement n'aggrave pas le sort du condamné (<ref-ruling> consid. 4c p. 106; arrêt 6B_69/2016 du 29 septembre 2016 consid. 2.2.1).
5.2. La cour cantonale a considéré que les premiers juges avaient admis à tort une violation du principe de célérité. Aussi a-t-elle jugé qu'il n'y avait pas lieu de réduire la peine fixée, ce qui ne péjorait pas le sort du recourant tel qu'il résultait du dispositif du jugement, " sans préjudice de ce que l'appel du MP libère la juridiction d'appel de l'interdiction de la reformation in pejus. " (arrêt attaqué, consid. 3.8 p. 32).
5.2.1. Conformément à la jurisprudence, la constatation de la violation du principe de célérité, dans la mesure où elle a été retenue par les premiers juges, aurait dû figurer dans le dispositif du jugement de première instance. Dès lors qu'elle a été omise à tort, la cour cantonale ne saurait en tirer argument pour conclure que le sort du recourant n'a pas été péjoré. En écartant la constatation d'une violation du principe de célérité, la cour cantonale a donc modifié le jugement en défaveur du recourant. En conséquence, il y a lieu d'examiner si cette modification porte atteinte au principe de l'interdiction de la reformatio in pejus dans la mesure où le ministère public avait formé un appel joint.
5.2.2. Le ministère public a formé appel joint le 25 avril 2019 " uniquement s'agissant de la peine prononcée ", concluant à la condamnation du recourant à une peine privative de liberté de cinq ans. Lors des débats d'appel, il a persisté dans les conclusions de son appel joint. Il a notamment fait valoir que la déduction opérée sur la peine privative de liberté en raison de la violation du principe de célérité n'aurait pas dû excéder six mois.
Le recourant soutient que le ministère public a certes conclu à une majoration de la peine qui lui a été infligée, mais n'a pas formé d'appel joint en sa défaveur sur la question de la violation du principe de célérité dans la mesure où il avait renoncé à contester la violation de ce principe ainsi que la quotité de la réduction de peine accordée, limitant toutefois celle-ci à six mois au maximum. Ces aspects n'auraient donc pas constitué des points attaqués du jugement au sens des art. 398 al. 2 et 404 al. 1 CPP. Or la limitation de l'appel à certaines parties du jugement ne peut porter que sur les points énumérés par l'<ref-law> et non sur des subdivisions de ces points (cf. arrêts 6B_461/2018 du 24 janvier 2019 consid. 8.2; 6B_548/2011 du 14 mai 2012 consid. 3). Partant, en tant qu'il portait sur la quotité de la peine (<ref-law>), l'appel joint du ministère public permettait à la cour cantonale de renoncer à constater la violation du principe de célérité admise en première instance sans porter atteinte au principe de l'interdiction de la reformatio in pejus.
Se pose dès lors la question de savoir si la constatation selon laquelle le principe de célérité n'a pas été violé est conforme aux <ref-law> et 29 al. 1 Cst.
5.3. Sous l'angle du principe de célérité, le caractère raisonnable du délai s'apprécie selon les circonstances particulières de la cause, eu égard notamment à la complexité de l'affaire, à l'enjeu du litige pour l'intéressé, à son comportement ainsi qu'à celui des autorités compétentes (<ref-ruling> consid. 4.4 p. 277). A cet égard, il appartient au justiciable d'entreprendre ce qui est en son pouvoir pour que l'autorité fasse diligence, que ce soit en l'invitant à accélérer la procédure ou en recourant, le cas échéant, pour retard injustifié (<ref-ruling> consid. 5.2 p. 332). Enfin, on ne saurait reprocher à l'autorité quelques temps morts, qui sont inévitables dans une procédure. Lorsqu'aucun d'eux n'est d'une durée vraiment choquante, c'est l'appréciation d'ensemble qui prévaut (<ref-ruling> consid. 3.3.3 p. 56; <ref-ruling> consid. 5.2 p. 332).
Selon la jurisprudence, apparaissent comme des carences choquantes une inactivité de treize ou quatorze mois au stade de l'instruction, un délai de quatre ans pour qu'il soit statué sur un recours contre l'acte d'accusation ou encore un délai de dix ou onze mois pour que le dossier soit transmis à l'autorité de recours (<ref-ruling> consid. 3.3.3 p. 56 s.). La seule invocation d'un délai de sept mois et une semaine écoulés entre le dépôt de la déclaration d'appel et les débats d'appel ne montre pas l'existence d'une violation du principe de la célérité (arrêt 6B_590/2014 du 12 mars 2015 consid. 5.3).
5.3.1. La cour cantonale s'est écartée du point de vue des juges de première instance qui avaient estimé que l'instruction n'avait pratiquement pas progressé durant les années 2015, 2016 et en partie 2017. Elle a pris en considération, d'une part, le temps écoulé (soit huit mois) entre la réquisition de preuve formulée par le recourant à la " fin décembre 2016 " [recte: 2015] et la convocation d'une audience le 1er septembre 2016 et, d'autre part, le laps de temps (soit six mois) entre la renonciation du recourant à sa réquisition de preuve et l'avis de prochaine clôture de l'instruction. Ces délais ne sauraient selon elle emporter une violation du principe de célérité, car ils n'apparaissaient pas comme des carences choquantes, des temps morts étant inévitables dans une affaire mêlant plusieurs complexes de faits, lesquels s'étaient ajoutés en cours d'instruction, ce d'autant plus que le recourant avait oeuvré à la prolongation de la procédure, le ministère public ayant dû le convoquer à plusieurs reprises pour une audience de confrontation avec les plaignants. Les autorités pénales n'étaient pas non plus responsables de l'impossibilité du recourant de se déplacer à Genève pour une audience qu'il avait lui-même sollicitée. Ainsi, le temps pris avant le dépôt de l'acte d'accusation demeurait dans les limites de l'acceptable, le recourant n'étant alors pas détenu, et son conseil soulignant lui-même l'absence d'urgence de l'affaire (arrêt attaqué, consid. 3.8 p. 32).
5.3.2. L'instruction de la procédure pénale P/11885/2011 a été ouverte le 18 août 2011. Des audiences se sont tenues dans le courant de l'année 2011. Le 29 février 2012, un témoin a été entendu et un rapport de police complémentaire a été rendu le 8 mars 2012. Par la suite, une audience d'instruction s'est tenue le 7 février 2013, soit près de douze mois après la précédente. Dix mois plus tard, soit le 20 décembre 2013, un avis de prochaine clôture de l'instruction a été émis par le ministère public, fixant un délai au 31 janvier 2014 pour présenter d'éventuelles réquisitions de preuve. Par courrier du 9 avril 2014, le recourant a sollicité l'engagement de l'accusation. A la suite des événements intervenus en mai 2014 (infraction commise au préjudice de N._) puis août 2014 (infraction commise au préjudice de B._), les procédures ont été jointes et l'instruction élargie aux deux autres complexes de fait subséquents. Un avis de prochaine clôture de l'instruction a ensuite été rendu le 3 décembre 2015. Fin 2015, le conseil du recourant a requis une nouvelle confrontation avec B._ et l'audition d'un témoin, soulignant l'absence d'urgence de la procédure et son souhait que cette audience soit agendée en 2016. Convoquée le 1er septembre 2016, l'audience a été annulée en raison de l'absence excusée du prévenu. Après que l'audience a été reconvoquée le 12 octobre 2016 puis que le recourant a finalement renoncé à ce moyen de preuve le 12 décembre 2016, le ministère public a rendu un nouvel avis de prochaine clôture de l'instruction six mois plus tard, soit le 26 juin 2017. Le 15 novembre 2017, le ministère public a émis une ordonnance de classement partiel à l'encontre de A._ portant sur la plainte déposée contre lui par H._. Le ministère public a déposé l'acte d'accusation le 14 mai 2018. Le recourant a fait défaut lors de la première audience de jugement du 30 octobre 2018 (cf. arrêt attaqué, En fait, B.g.d. p. 18-19).
Ce sont ainsi plus de six ans et demi qui se sont écoulés depuis que le recourant a été informé des soupçons qui pesaient contre lui en rapport avec les faits d'août 2011 jusqu'au dépôt de l'acte d'accusation, et plus de sept ans jusqu'au jugement de première instance, intervenu le 16 janvier 2019. Cette durée, certes importante, doit cependant être mise en relation avec les particularités du cas d'espèce. En effet, c'est au moment où l'instruction portant sur les faits d'août 2011 est arrivée à son terme que de nouvelles plaintes ont été déposées à l'encontre du recourant. Une enquête de police puis l'instruction devant le ministère public ont été entreprises. On ne saurait dès lors suivre le recourant lorsqu'il affirme qu'il ne s'est rien passé entre 2014 et 2018. Par ailleurs, les autorités ne sont à tout le moins pas seules responsables du délai écoulé entre la convocation d'une audience en septembre 2016 et le jugement de première instance de janvier 2019, le recourant ayant, durant cette période, requis l'administration d'une nouvelle preuve, puis conduit à l'annulation de l'audience en raison de son absence, déclaré renoncer à ses réquisitions de preuves, et finalement fait défaut à son audience de jugement, sans compter que le ministère public a rendu une ordonnance de classement partiel le 15 novembre 2017.
Il apparaît certes que des laps de temps assez longs se sont écoulés entre les actes de procédure (en particulier: entre le rapport de police complémentaire du 8 mars 2012 et l'audience d'instruction du 7 février 2013, puis l'avis de prochaine clôture du 20 décembre 2013; entre le rapport de police du 10 novembre 2014 et l'ouverture de l'instruction le 14 octobre 2015; entre la réquisition de preuve de fin décembre 2015 et l'audience convoquée au 1er septembre 2016). Cela étant, ces temps morts, tous inférieurs à douze mois, n'emportent pas encore violation du principe de célérité, faute d'être d'une durée excessive. En outre, les spécificités de l'affaire, soit non seulement la gravité des faits reprochés, mais surtout les différents complexes de faits s'étant ajoutés en cours d'instruction, ainsi que le comportement du recourant (absences excusées et non-excusées aux audiences convoquées, le conseil du recourant soulignant lui-même l'absence d'urgence pour convoquer l'audience qu'il a sollicitée) excluent de retenir une violation du principe de célérité au regard de l'ensemble de la durée de la procédure.
6.
Le recourant reproche à la cour cantonale de ne pas avoir imputé sur sa peine les mesures de substitution ordonnées à son encontre, en particulier l'interdiction d'exercer une profession dans le milieu de la nuit et/ou de la sécurité. Il invoque également une violation de l'interdiction de la reformatio in pejus.
6.1. L'appel joint du ministère public du 25 avril 2019 portait sur la peine prononcée. Lors des débats d'appel, le procureur a précisé qu'une imputation plus importante sur la peine des mesures de substitution devait être exclue, celle opérée par les juges de première instance étant déjà très favorable. Pour le recourant, cela signifie que la portée de l'appel joint ne s'étendait pas aux mesures de substitution, de sorte que la cour cantonale ne pouvait rendre une décision moins favorable au recourant sur ce point.
Comme vu précédemment en lien avec le principe de célérité, la limitation de l'appel à certaines parties du jugement ne peut porter que sur les points énumérés par l'<ref-law> et non sur des subdivisions de ces points (cf. consid. 5.2 supra). Compte tenu de l'appel joint du ministère public tendant à une augmentation de la peine, la cour cantonale n'a pas contrevenu à l'interdiction de la reformatio in pejusen supprimant l'imputation des mesures de substitution sur la peine telle que prononcée par les juges de première instance.
Il reste à déterminer si la cour cantonale a respecté le droit fédéral en ne procédant à aucun imputation des mesures de substitution sur la peine du recourant.
6.2. Aux termes de l'art. 51 1ère phrase CP, le juge impute sur la peine la détention avant jugement subie par l'auteur dans le cadre de l'affaire qui vient d'être jugée ou d'une autre procédure. La privation de liberté à subir doit ainsi toujours être compensée, pour autant que cela soit possible, avec celle déjà subie (<ref-ruling>50 consid. 5.1 p. 155). Selon la jurisprudence, les mesures de substitution doivent être imputées sur la peine à l'instar de la détention avant jugement subie. Afin de déterminer la durée à imputer, le juge prendra en considération l'ampleur de la limitation de la liberté personnelle découlant pour l'intéressé des mesures de substitution, en comparaison avec la privation de liberté subie lors d'une détention avant jugement. Le juge dispose à cet égard d'un pouvoir d'appréciation important (<ref-ruling> consid. 2.4 p. 79).
Selon la jurisprudence, seuls les cas où une " différence notable sous l'angle de la privation de liberté [c'est-à-dire une] différence importante, claire et indiscutable [...] qui empêche l'assimilation avec une exécution de peine " s'opposent à l'imputation (<ref-ruling> consid. 2b p. 227 s. et les références citées). Le Tribunal fédéral a ainsi examiné le cas d'un prévenu qui, durant une longue période de 1'775 jours, avait été assigné à domicile principalement la nuit, interdit de quitter un territoire initialement limité au canton de Genève, puis étendu à celui de Vaud, enfin aux cantons romands, eu égard à son activité professionnelle, et requis de signer le registre au poste de police quotidiennement puis deux jours par semaine, dans une fourchette horaire initialement réduite et par la suite élargie, dont l'immense majorité des demandes de dérogation temporaires, pour des motifs professionnels ou de vacances avaient été acceptées. Le Tribunal fédéral a considéré que la mesure de résidence était toutefois minimale, obligeant en substance le recourant à rentrer dormir chez lui ou chez sa compagne à 23h, 24h voire une heure du matin. L'obligation de se présenter au poste n'était pas anodine. Elle avait toutefois d'une part été allégée, d'autre part ne l'avait pas empêché de requérir et d'obtenir de pouvoir s'absenter jusqu'à plusieurs semaines pour partir en vacances. Au vu de ces éléments, l'autorité précédente n'avait pas abusé ou excédé le large pouvoir d'appréciation dont elle dispose en la matière en imputant sur la peine prononcée la durée effective des mesures de substitution à raison d'un quart de celle-ci (arrêt 6B_352/2018 du 27 juillet 2018 consid. 5). Le Tribunal fédéral a également confirmé une décision par laquelle il a été imputé deux jours en raison d'un traitement ambulatoire consistant en une dizaine de séance de 50 minutes, tandis qu'aucune imputation n'a été effectuée pour l'obligation de se soumettre à une assistance de probation et l'interdiction d'approcher l'intimée à moins de 100 mètres (arrêt 6B_115/2018 du 30 avril 2018 consid. 6).
6.3. En l'espèce, les mesures de substitution ont débuté à la libération du recourant le 10 novembre 2011. L'interdiction d'exercer une activité professionnelle dans le domaine de la sécurité ainsi que de prendre un emploi devant s'exercer la nuit a été révoquée le 21 février 2013, de sorte que cette mesure a duré 469 jours. Elle n'a pas été entièrement respectée, le recourant ayant été engagé dans un emploi interdit le 4 octobre 2012, ramenant leur quotité à 330 jours.
Comme le relève le recourant, le caractère légitime de l'interdiction en cause ne fait pas obstacle à son imputation sur la peine; il convient bien plutôt d'examiner dans quelle mesure l'interdiction a entravé l'intéressé dans sa liberté personnelle. A cet égard, les juges de première instance ont estimé qu'une imputation à raison de 1/10 apparaissait raisonnable et ont ainsi déduit 33 jours de la peine à ce titre. Pour sa part, la cour cantonale a considéré que le recourant était parfaitement en mesure d'exercer une autre profession, l'interdiction étant limitée à un domaine très précis, la sécurité, et à un créneau horaire, le travail de nuit. Il était jeune, en bonne santé et bénéficiait d'un permis C lui permettant de travailler sur sol helvétique. Une telle interdiction d'exercer une profession n'était pas assimilable à une exécution de peine, condition nécessaire à l'imputation des mesures de substitution sur la peine privative de liberté. Peu importait que ses recherches d'emploi aient été infructueuses.
6.4. Le recourant fait valoir que cette interdiction, qui revêtait une double portée, l'avait fortement entravé dans son libre exercice d'une activité lucrative, étant relevé qu'il ne disposait pas d'une formation, ni d'expérience professionnelle utile hormis celle de videur de nuit. L'arrêt entrepris constatait d'ailleurs qu'il avait travaillé pour le night-club E._ jusqu'à son incarcération en août 2011, puis au L._ du 5 octobre 2012 à mi-mai 2014 (arrêt attaqué, En fait, D., p. 22). Il avait vainement tenté de décrocher un emploi compatible avec les mesures de substitution mises à sa charge, ses recherches demeurant toutefois stériles comme le démontraient les nombreux refus documentés à la procédure (cf. note du Greffier du 7 février 2013 versant à la procédure les attestations des recherches d'emploi effectuées par le recourant).
6.5. Le recourant admet qu'il ne dispose pas d'une formation impliquant qu'il travaille dans un domaine plutôt qu'un autre. Il affirme, sans toutefois l'établir, n'avoir pour seule expérience professionnelle utile celle de videur dans des night-clubs. Il s'écarte ainsi de l'état de fait cantonal sans en démontrer le caractère arbitraire. Comme la cour cantonale l'a retenu, qu'il ait essuyé des refus lorsqu'il a cherché un travail avant de violer les mesures et d'être embauché dans une autre boîte de nuit ne permet pas encore de conclure que l'interdiction qui lui était faite l'avait fortement entravé dans son libre exercice d'une activité lucrative. Aussi ne démontre-t-il pas le caractère arbitraire de l'appréciation de la cour cantonale selon laquelle, étant jeune, en bonne santé et au bénéfice d'un permis C lui permettant de travailler sur sol helvétique, il était en mesure d'exercer une autre profession. Il s'ensuit que la cour cantonale n'a pas excédé le large pouvoir d'appréciation dont elle dispose en la matière en considérant que les mesures de substitution ordonnées en l'espèce, limitées à l'interdiction d'une activité lucrative dans un domaine précis et pendant un créneau horaire particulier, n'étaient pas assimilables à une exécution de peine, de sorte qu'il n'y avait pas lieu de les imputer sur la peine.
7.
Il résulte de ce qui précède que le recours doit être rejeté dans la mesure de sa recevabilité. Comme ses conclusions étaient vouées à l'échec, l'assistance judiciaire ne peut être accordée (<ref-law>). Le recourant devra donc supporter les frais (<ref-law>), dont le montant sera toutefois fixé en tenant compte de sa situation financière.

Par ces motifs, le Tribunal fédéral prononce :
1.
Le recours est rejeté dans la mesure où il est recevable.
2.
La demande d'assistance judiciaire est rejetée.
3.
Les frais judiciaires, arrêtés à 1200 fr., sont mis à la charge du recourant.
4.
Le présent arrêt est communiqué aux parties et à la Cour de justice de la République et canton de Genève, Chambre pénale d'appel et de révision.
Lausanne, le 27 février 2020
Au nom de la Cour de droit pénal
du Tribunal fédéral suisse
Le Président : Denys
La Greffière : Musy