Pracuję nad małą grą sieciową (tylko LAN) z jednym komputerem działającym jako serwer i wszystkimi innymi (w tym rzeczywistą grą działającą na tym samym komputerze) działającym jako klienci. Zasadniczo serwer jest przejrzysty dla użytkowników, ale istnieje dla uproszczenia zarządzania stanem dla mnie. Podstawową koncepcją, jaką mam teraz, jest to, że komputer każdego gracza powie: "Hej, chciałbym zagrać" przez rozgłaszanie i utrzyma listę innych graczy w sieci. Po każdym uruchomieniu gry wskazuje, że są one gotowe, jeden komputer jest wybrany jako serwer, a reszta domyślnie dla klientów.Wybieranie komputera w sieci lokalnej jako serwera
Wybierając komputer w sieci LAN, który ma służyć jako serwer, czy istnieje jakiś ustalony sposób wyboru i poinformowania innych?
Wymyślałem podstawową ideę, że po prostu komputery wszystkich graczy wybierają liczbę losową i mają serwer z najniższym (lub najwyższym, nie ma znaczenia) serwerem (regeneracja losowych liczb dla komputerów, które rzucić ten sam). Każdy komputer otrzyma "wyrzuconą" liczbę pozostałych i może określić, który z nich będzie serwerem, po którym mógłby się z nim połączyć. Wydaje się to prymitywne, ale nie jestem pewien, czy ma to znaczenie, ponieważ wszystkie komputery fizycznie znajdowałyby się w tej samej sieci w odległości kilku stóp od siebie. Czy byłoby to odpowiednie zadanie, czy też istnieje znacznie lepszy sposób?
Koncepcja ta jest znana jako [wybory przywódcze] (http://en.wikipedia.org/wiki/Leader_election) w przetwarzaniu rozproszonym. – chrisaycock
@chrisaycock Bardzo ciekawa koncepcja, dzięki za wskazanie. Wykorzystując to jako punkt wyjścia, pojawiły się już bardzo pomocne dokumenty i inne zasoby. – Gemini14