Môi trường giao tiếp giữa Server c++ và client Unity

Chào mọi người.

Hiện tại mình đang theo đuổi C++ để làm game. Bên server game chắc chắn mình sẽ dùng C++, còn bên Client mình sử dụng nền tảng của Unity để dựng.

Vì lần đầu nhảy vào chỗ này nên mình không biết nên chọn môi trường hay nền tảng nào dành cho việc giao tiếp giữa sv và client, hiện tại mình định sử dụng Websocket để xây dựng nền tảng giao tiếp, bên C++ đã có bộ thư viện sử dụng Websocket và Json, còn bên Unity thì tìm hoài không thấy thư viện nào hỗ trợ.

Không biết mọi người có ai đã trải qua vấn đề này cho mình xin ý kiến cá nhân với, nếu có nền tảng nào tốt hơn hoặc có link Doc nào thì cho mình xin luôn :laughing:

Unity không hỗ trợ c++ đâu bạn nhé! Chỉ có thể xài C# hoặc js được hoy!

@bil4i3n Mình nghĩ nếu bạn convert một file commons.lib/dll/so/a để lưu trữ các kiểu dữ liệu dùng chung, sau đó dùng trực tiếp UDP/IP (dùng một lib trung gian có hỗ trợ cả C++/C#, C# nghe nói có thể đọc đc dữ liệu của file C++) sẽ tốt hơn là dùng HTTP API. Delay của nó mất không ít time đâu,quản lí delay này cũng đủ nhức não rồi :grinning:

1 Like

Cảm ơn bạn @Dark.Hades.
Đúng là dùng HTTP nó delay đáng sợ thật, nhưng mà hiện mình chỉ có thể dùng cái đó để giao tiếp, không biết UDP/IP mình nên dùng bộ lib nào bạn nhỉ, cho mình xin một cái function name của nó để mình search tìm doc đọc qua thử, mà làm game Realtime UDP mình sợ bị mis data, TCP không biết được không bạn nhỉ :smile:

@Aragami_1408, cảm ơn bạn nhiều :relaxed:

Làm game online người ta khuyên dùng UDP/IP bạn nhé.

Bạn có thể dùng TCP, tuy nhiên nó cũng xảy ra delay, việc bạn xử lí delay mệt hơn trên udp.

Mình khuyên bạn nên đọc kĩ từ cơ bản của giao thức cho game online tại đây (mình từng làm 1 game online nhỏ và cũng bắt đầu từ trang này):
https://gafferongames.com/tags/networking/

// Tài liệu cho UDP/IP for game cũng nhiều hơn, đỡ vất vả khi research

3 Likes

@Dark.Hades, cảm ơn bạn nhiều.
Chắc mình phải dựng file LIB bằng c++ rồi import vào c#, còn môi trường mình sử dụng winsock và giao thức UDP chắc ổn bạn nhỉ, xem ra đã có ý tưởng, cảm ơn bạn nhiều nha :heart_eyes:

// more:
Bạn có thể xem lib asio của C++, nó hỗ trợ cross-platform, không cần phải mất time vọc Bill Gate O$ API đâu.

1 Like

cảm ơn bạn nhiều, để tối về dựng mô hình lên thử nó như nào :blush:

Hi bil4i3n.
Theo mình bạn nên tìm hiểu qua một ít về lập trình mạng để có lựa chọn hợp lý. Vì thực tế không chỉ áp dụng một loại kết nối hay một loại giao thức. VD bên ngoài màn hình game dùng https để lấy thông tin tài khoản thông tin game quảng cáo từ web luôn. Khi bắt đầu choi dùng tpc/ip để choi mạng. Trong lan thì dung mitilcat để tìm người chơi lan v.v.v…

1 Like

Đây là cái gì. Tài liệu chính thức Unity không đọc mà lại lao vào viết game trên Unity rồi.
https://docs.unity3d.com/Manual/UNet.html

2 Likes

Cảm ơn bạn, @Phong_Ky_Vo.
Bên database mình đang phân vân nên dùng Mssql hay Mongodb để hỗ trợ truy vấn từ website tốt hơn, còn kết nối s-c mình đang đọc lại tài liệu để có lựa chọn hợp lý nhất cho game :blush:

Wow @hungaya, cảm ơn bạn nhiều, tại phần client không phải mình đảm nhiệm, mình chỉ tìm hiểu để nắm rõ hơn về nền tảng thôi, cảm ơn bạn về thông tin quý giá ở trên.
Đã làm mọi thủ tục đầy đủ để tỏ lòng biết ơn.
:heart_eyes: :heart_eyes: :heart_eyes:

Request

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