기본적으로 서버에 실행중인 Java, Python 또는 C++ 스크립트를 사용하여 플레이어 인스턴스를 수신하여 참여, 통화, 내기, 접기, 카드 그리기 등의 작업을 수행하고 시간 제한을 설정합니다. 선수가 떠나거나 연결이 끊어 질 때.RPC를 사용하는 서버의 멀티 플레이어 카드 게임
기본적으로 나는 플레이어가 게임 서버와 통신하는 동일한 컴퓨터 또는 네트워크를 통해 연결된 컴퓨터에서 처리 할 수 있도록 이러한 각 작업을 작은 요청으로하고 싶습니다.
메시징 보안은 문제가되지 않습니다. 이는 학습/연구/재미를위한 것입니다.
내 우선 순위 :
- 플레이어가 연결을 끊을 때 검출하기위한 좋은 계획을 가지고뿐만 아니라, 네트워크 대기 시간 등을 설명 할 수있을 손을 잃게하는 원인/부팅 전에.
- 속도. 내가 할 수있는 한 빨리 수백만 개의 손을 연주 할거야. 포트 또는 사용 소켓 또는 HTTP 포트 80 아파치 듣기 듣기
- : 공유 서버 인스턴스에
- 실행
내 질문 (I 포트 또는 루트가 필요 것들에 제한적으로 액세스 할 수 있습니다) 스크립트? (나는 이것들 사이의 차이에 대해 약간 흐리다).
- 좋은 프레임 워크를 사용하려면 어떻게해야합니까?
- 메시지 유형? 나는 JSON 또는 프로토콜 버퍼를 생각하고있다.
- 빨리 만드는 방법?
감사합니다. 몇 가지 제안과 제안을 찾고 있습니다. 나는 그것을하는 것을 배울 그것 청초한 많은 것을 가진 차가운 문제다고 생각한다.
가장 중요한 결정은 사용할 프레임 워크입니다. 학습 경험이 있다면 가장 중요한 질문은 배우고 싶은 것입니다. REST 서비스 또는 인터넷 프로토콜을 디자인하는 데 관심이 있습니까? Twisted 또는 asio와 같은 중간 수준의 프레임 워크 또는 Tomcat 또는 JBoss와 같은 상위 컨테이너를 학습 하시겠습니까? (일반적으로 컨테이너는 코드가 훨씬 적지 만 관리가 조금 더 쉬워 질 것입니다.) 3 가지 언어 중 어떤 것을 선호합니까? 그러나 그 외에도 다음과 같은 질문이 있습니다. 클라이언트 세션간에 얼마나 많은 데이터를 공유해야합니까? – abarnert
좋은 질문입니다.내 궁극적 인 목표는 게임을하기 위해 다양한 인공 지능과 기계 학습 기술을 테스트하는 "테스트 놀이터"입니다. 클라이언트는 아무 것도 공유 할 필요가 없으며 서버를 게임 키퍼로 사용하여 서로 놀고 배우는 것입니다. – lollercoaster
모든 플레이어가 사람이 아니라는 말로 시작해야합니다. 그런데 왜 네트워크가 필요합니까? 인공 지능이 동일한 머신에서 게임을하고있는 것을 인스턴스화하고 메모리를 통해 상태를 교환하게하십시오. 자신의 컴퓨터에서 각 AI를 실행하여 얻는 계산상의 이점보다 네트워크를 제거하여 훨씬 더 뛰어난 성능을 얻을 수 있습니다. AI 계산은 병렬 일 필요가 없습니다. –