Savoir si c'est le client ou le serveur qui gère les collisions, les positions des joueurs etc., ça répond à la question de la triche. Veux-tu réduire au maximum toute possibilité de triche ? Alors c'est le serveur qui calculera si le client peut aller dans la direction qu'il demande, ou s'il est bloqué par un mur. Si c'est le client qui calcule, alors il peut influer sur le déroulement du programme et envoyer au serveur une position pour lui signaler qu'il a traversé le mur.
Voilà déjà une chose à considérer.
D'un autre côté, si le serveur doit envoyer tout le niveau à charger au client, ça prendra beaucoup de bande passante et influera sur les performances du serveur, possiblement mêmes celles ressenties par les autres clients qui n'ont rien demandé.
Il est plus judicieux que les fichiers map soient stockés localement chez le client, après pourquoi pas tenter d'éviter la modification des maps en faisant vérifier le checksum de celles-ci par le serveur.
Bon, à part ça, je ne m'y connais pas plus que ça, je ne sais pas comment ils font dans l'industrie, surtout pour les gros MMO avec des milliers de joueurs par serveurs.
Il me semble que la plupart du temps les positions sont calculées à la fois côté serveur et client, ainsi l'affichage chez le client est ultra-rapide, pas besoin d'attendre la confirmation du serveur, et de l'autre côté, le serveur met régulièrement à jour la position du client s'il y a un décalage entre là où le client croit se trouver et là où le serveur l'a positionné.