A method comprising: retrieving locations for chat rooms, wherein the locations were determined by: retrieving player data for users of a mobile application, the player data describing user locations; applying a clustering algorithm to form clusters of user locations, each cluster assigned to a centroid (470, 500); identifying geographic areas corresponding to the centroids (470, 500); adjusting the geographic areas based on the assigned user locations; updating the centroids (470, 500) based on the adjusted geographic areas; and determining chat room locations within the geographic areas based on the centroids (470, 500), selecting one of the chat rooms for a user; and providing messages associated with the selected chat room for display to the user; characterized by the step of determining chat room locations within the geographic areas based on the centroids comprising: retrieving object locations corresponding to points of interest within the geographic areas; and for each geographic area: determining a plurality of object locations within the geographic areas; and placing the chat room at the object location with a highest number of user interactions from the plurality of object locations. retrieving locations for chat rooms, wherein the locations were determined by: retrieving player data for users of a mobile application, the player data describing user locations; applying a clustering algorithm to form clusters of user locations, each cluster assigned to a centroid (470, 500); identifying geographic areas corresponding to the centroids (470, 500); adjusting the geographic areas based on the assigned user locations; updating the centroids (470, 500) based on the adjusted geographic areas; and determining chat room locations within the geographic areas based on the centroids (470, 500), retrieving player data for users of a mobile application, the player data describing user locations; applying a clustering algorithm to form clusters of user locations, each cluster assigned to a centroid (470, 500); identifying geographic areas corresponding to the centroids (470, 500); adjusting the geographic areas based on the assigned user locations; updating the centroids (470, 500) based on the adjusted geographic areas; and determining chat room locations within the geographic areas based on the centroids (470, 500), selecting one of the chat rooms for a user; and providing messages associated with the selected chat room for display to the user; characterized by the step of determining chat room locations within the geographic areas based on the centroids comprising: retrieving object locations corresponding to points of interest within the geographic areas; and for each geographic area: determining a plurality of object locations within the geographic areas; and placing the chat room at the object location with a highest number of user interactions from the plurality of object locations. retrieving object locations corresponding to points of interest within the geographic areas; and for each geographic area: determining a plurality of object locations within the geographic areas; and placing the chat room at the object location with a highest number of user interactions from the plurality of object locations. determining a plurality of object locations within the geographic areas; and placing the chat room at the object location with a highest number of user interactions from the plurality of object locations.