Cơ chế hoạt động của 1 lan server như garena lan

mấy anh cho em hỏi cơ chế hoạt động của 1 cái server lan game như garena hoặc hamichi , em mới học đến phần viết client , server game đơn giản bằng java socket , bây giờ em muốn tìm hiểu thêm về cái này , theo em thấy thì cái server này nó tạo 1 mạng lan giúp người chơi game kết nối với nhau thông qua mạng lan này , bình thường thì muốn chơi chế độ multiplayer thì các player phải kết nối với nhau trong 1 mạng lan , thông qua cái server này thì mọi người dùng mạng internet vẫn kết nối và chơi với nhau như đang chơi mạng lan được

1 Like

Java thì anh ko rành, nhưng nếu em viết trong C++ thì em có thể đọc thêm sách này để tìm hiểu về cơ chế hoạt động của game server

Mạng LAN có 2 cơ chế: Listening server và dedicated server. Với listening server như hamachi, máy em chính là người host game, còn các player khác join với em thông qua VPN mà hamachi cung cấp. Còn dedicated server là em đi thuê/tạo 1 server hoàn toàn mới, khi đó cả em và các player khác sẽ connect với nhau thông qua server trung gian.

3 Likes

nếu viết 1 game đơn giản kết nối trực tiếp với nhau thì em viết được rồi , nhưng cái em ko hiểu ở đây là : em lấy ví dụ là game war3 nó có chế độ chơi LAN khi 2 máy cũng nằm trong 1 mạng LAN thì nó có thể thấy nhau được , vậy thằng hamichi làm cách nào để 2 máy không nằm trong cùng mạng LAN trở thành nằm trong cùng mạng LAN để thấy nhau đc ạ , em đã thử dùng proxifer + wireshark để theo giỏi quá trình gửi packet thì em thấy 2 thằng war3 naỳ nó tự tìm đc máy nào trong mạng lan đang mở cổng 6112. Cái khó ở đây là nó chỉ quét trên mạng lan thôi , em đã thử tạo 1 cái vpn server rồi cho cả 2 máy cùng connect vào cái vpn này nhưng khi vào game thì ko thấy được host , 2 máy này nếu dùng vpn thì vẫn kết nối mạng internet bình thường nhưng chạy game war3 thì nó ko nhìn thấy host của nhau …

1 Like

Cấu trúc hạ tầng bên dưới anh ko dc rõ. Em thử đọc sách anh đưa và link này xem thử, hi vọng giúp dc em

4 Likes

hix em mới xem lại phần lập trình mạng có bài cấu hình mạng vpn , nó tạo 1 mạng lan sử dụng vpn đúng với mục đích là cho nhiều máy chơi game mạng lan thông qua internet , mà chủ yếu là dùng các dịch vụ của microsoft, hix chắc mấy phần mềm lan game như garena chắc nó cũng viết 1 đống api tương tự quá có lẽ chưa đủ trình tự viết 1 cái lan game như vậy @@

1 Like

Em đâu cần viết, vì mỗi dịch vụ game server đều có cung cấp API luôn rồi, em chỉ việc sử dụng thôi. Ví dụ Gamespark, Photon… Tuy nhiên nếu em viết 1 game from scratch thì đúng là hơi cực. Vì thường các dịch vụ đó tích hợp sẵn cho các engine nổi tiếng như Unreal, Unity, CryEngine.

3 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?