Tôi đang phát triển MMORPG cơ bản bằng công cụ Unity. Tôi cần một giải pháp đơn giản (thư viện, khung công tác) để tạo một máy chủ hiệu quả. Cách tốt nhất để hoàn thành nhiệm vụ này là gì?Máy chủ phụ trợ cho Unity3D MMORPG
Trả lời
Bài đăng gốc là here.
Bạn có thể thử SmartFox, link này có thể là một khởi đầu tốt cho bạn. Dưới đây hướng dẫn cũng rất hữu ích cho một sự khởi đầu nhanh chóng:
Cụ thể, bạn có thể kết nối đến máy chủ smartfox và nhận được thông báo về kết nối:
private SmartFox client;
private string serverIP = "127.0.0.1";
private int serverPort = 9933;
private string zone = "BasicExamples";
client = new SmartFox();
client.ThreadSafeMode = false; //true for Unity3D
client.AddEventListener(SFSEvent.CONNECTION, (evt) =>
{
bool bSuccess = (bool)evt.Params[“success”];
Console.WriteLine(client.IsConnected ?
“Successfully connected to SmartFox Server” :
“Failed to connect to SmartFox Server”);
});
client.Connect(serverIP, serverPort);
đăng nhập và nhận nối khi đăng nhập thành công:
var request = new LoginRequest("UserName", "Password", zone); //[1]
client.Send(request); //[2]
client.AddEventListener(SFSEvent.LOGIN, (evt) => { //[3]
Console.WriteLine("The User login success");
});
client.Connect(serverIP, serverPort);
2. Photon là một phổ biến máy chủ backend/dịch vụ.
Máy chủ Photon cung cấp cho bạn khung công tác chìa khóa trao tay cho trò chơi nhiều người chơi. Bắt đầu từ đầu hoặc xây dựng logic tùy chỉnh của riêng bạn trên một số ứng dụng demo có trong mã nguồn với SDK máy chủ miễn phí. Điều này cho phép bạn đạt được kết quả tuyệt vời nhanh chóng và dễ dàng.
Đoạn mã cho kết nối thiết lập:
using UnityEngine;
public class RandomMatchmaker : MonoBehaviour
{
void Start() {
PhotonNetwork.ConnectUsingSettings("0.1");
}
void OnGUI(){
GUILayout.Label(PhotonNetwork.connectionStateDetailed.ToString());
}
}
Đoạn mã cho tham gia phòng/sảnh: snippet
public override void OnJoinedLobby()
{
PhotonNetwork.JoinRandomRoom();
}
Mã cho thiết lập đăng nhập:
PhotonNetwork.logLevel = PhotonLogLevel.Full;
Đoạn mã cho xử lý lỗi:
void OnPhotonRandomJoinFailed()
{
Debug.Log("Can't join random room!");
PhotonNetwork.CreateRoom(null);
}
Hướng dẫn tốt về chủ đề này có thể được tìm thấy here.
3. Firebase có thể là sự lựa chọn thứ 3, mặc dù việc thực hiện được cho là không rõ ràng.
- Ví dụ: trong roll20.net, bạn có thể tìm thấy trò chơi MMO được hỗ trợ bởi Firbase.
- Trong số những người khác, FireSharp có thể là một dự án nguồn mở rất hữu ích để bạn bắt đầu nhanh chóng.
4. Khác (OpenSpace, RedDwarf, ElectroServer, Player.IO, Red5, Mesmotronic đa người dùng máy chủ, vv)
Xem great post này để biết chi tiết.
- 1. Xác thực máy chủ phụ trợ đăng nhập Google
- 2. Nhà cung cấp máy chủ phụ trợ cho ứng dụng di động
- 3. Phụ thuộc máy chủ SQL
- 4. Máy chủ phát triển Python của Máy ứng dụng + Công cụ + Phụ trợ
- 5. Hỗ trợ phía máy chủ cho TLS-PSK
- 6. Máy chủ Rails cho lỗi hỗ trợ Readline
- 7. Cách nhận ngày hết hạn đăng ký Google Play từ máy chủ phụ trợ
- 8. Tôi có thể lưu trữ giao diện Angular2 và phụ trợ Golang trong một máy chủ
- 9. Làm thế nào để tích hợp React-native với máy chủ phụ trợ?
- 10. Yêu cầu proxy phi tiêu đến máy chủ phụ trợ trong khi phát triển
- 11. Không thể tải tệp từ plugin Wordpress lên máy chủ phụ trợ của symfony qua API?
- 12. AWS ELB -> Máy chủ phụ trợ qua HTTPS với chứng chỉ tự ký
- 13. Truy cập như giao diện người dùng và máy chủ sql làm phụ trợ
- 14. Ứng dụng Android đồng bộ hóa dữ liệu với máy chủ phụ trợ như thế nào?
- 15. Angular2 HTTP - Cách hiểu rằng máy chủ phụ trợ bị gỡ xuống
- 16. Máy chủ phụ và máy tính phân phối ngang hàng
- 17. Phụ trợ cho phát triển web bằng Clojure/ClojureScript
- 18. Máy chủ Snmp cho Windows
- 19. Drupal là phụ trợ cho RESTful API?
- 20. GlusterFS là phụ trợ cho Hadoop
- 21. Unity3D và AAR
- 22. giới hạn tối đa cho mỗi phụ trợ trong haproxy
- 23. Unity3D XML (-RPC) và C#
- 24. Tỷ lệ khung hình máy ảnh bên ngoài Unity3d
- 25. newbie: viết mã phụ trợ cho trang web
- 26. Tên miền phụ sử dụng Máy chủ ảo Apache
- 27. Tôi có thể có một máy chủ thư khác cho mỗi tên miền phụ không?
- 28. Tên miền phụ trên máy chủ khác nhau
- 29. cách tạo tên miền phụ trong máy chủ apache (xampp)?
- 30. cần trợ giúp với máy chủ ảo xampp
Cảm ơn bạn, tôi sẽ cố gắng –
Firebase tuyệt vời cho một số trò chơi, nhưng sau khi tham khảo nhóm hỗ trợ, họ xác nhận nó không được thiết kế cho trò chơi bắn súng hoặc dữ liệu vị trí theo thời gian thực. Tuy nhiên, nếu bạn không cần dữ liệu vị trí theo thời gian thực, hãy thử Firebase. API rất đơn giản và hỗ trợ đáp ứng. – Crashalot