저는 플레이어가 프로그래밍 콘테스트에서 경쟁하는 프로그래밍 된 봇인 게임을 디자인하고 있습니다. Java, Ruby, Python, C#과 같은 언어로 봇을 프로그래밍 할 수 있습니다. 게임 서버가 봇과 대화 할 수있는 방법으로 네트워크를 통해 게임 데이터를 전송하는 방법을 찾고 있습니다. 이것에 대한 더 나은 선택은 무엇입니까? XMPP 또는 다른 형식의 원격 메서드 호출을 사용해야합니까?네트워크를 통한 게임 데이터
답변
당신이 descibing하는 것은 RMI 문제가 아니라 메시징 문제입니다. 사용할 수있는 몇 가지 솔루션이 있으며 응용 프로그램에 대한 제한된 지식을 기반으로 XMPP가 그 중 하나라고 말할 수 있습니다. 언어에 구애받지 않으며 라이브러리 (및 서버)가 잘 지원되는 언어로 제공됩니다.
가장 좋은 해결책이든 아니든, 나는 말할 수는 없지만 그것이 가능한 것 같아요. 그것은 포인트 투 포인트 (point to point)를 전송하고, 많은 포인트를 가리키며, 게임 서버가 모든 클라이언트에게 방송 할 수있는 수단을 제공합니다.
REST 기반 웹 서비스는 많은 언어가 필요할 경우 사용하기가 더 쉽습니다.
많은 Remoting 인프라의 문제점은 일반적으로 프레임 워크간에 이식 할 수 없다는 것입니다. XMPP가 도움이 될 수 있지만 주요 문제는 전송되는 데이터의 모든 헤더/존재 항목으로 인해 네트워크를 지나치는 데이터입니다. XMPP는 XML 기반이므로 바이너리 데이터는 Base64 문자열로 전송되어야합니다.
더 나은 베팅은 더 낮은 레벨의 소켓 인터페이스 일 수 있습니다. 데이터의 크기를 줄이기 위해 비트 패킹을 할 수있는 자유를 얻는 것이 유익 할 것입니다.
여러 언어를 지원하는 자신의 메시징 또는 RMI 인프라를 구축하는 것이 좋습니다. – Robin
그는 비즈니스 앱이 아닌 게임을 만들고 있습니다. 네트워크 트래픽이 상당히 많을 수 있습니다. 저의 관점은 낮은 수준의 프레임 워크/커뮤니케이션 메커니즘이 도움이된다는 것입니다. 게임 서버가있는 게임의 경우 웹 서비스를 통신은 오버 헤드가 많으며 RMI를 사용하면 비 휴대용 메커니즘에주의해야합니다. Java는 .Net 원격을 사용할 수 없습니다 .... 메시징 경로를 선택하면 사용하지 않는 것이 좋습니다. 자신의 미들웨어를 빌드 - 미친 것입니다,하지만 게임의 커뮤니 케이 션을위한 내구성 메시징을 사용하여 미친 수도 있습니다 – saret
또한 그의 질문은 당신이 그것을 읽는다면 그가 사용해야하는 프레임 워크에 대해서만 아니 었어 ("나는 XMPP 또는 다른 형식을 사용해야합니까 원격 메소드 호출? ") - RMI/DCOM/Corba/.Net Remoting과 같은 원격 프로 시저 호출 (RPC) 메커니즘 중 하나 인 XMPP가 나열된 f 중 일부에 내장되어 있는지도 물어 보았습니다. rameworks/languages (Java, Ruby, Python, C#)가 작동 할 것이고 반드시 이동하는 휴대용 경로가 아니며이 경로 이외의 다른 문제도 발생할 수 있습니다. – saret
나는 지루한 바퀴를 항상 재발견하고있다. OpenTNL을 사용할 수 있는지 확인하십시오.
- 1. XNA의 네트워크를 통한 게임 스프라이트 동기화
- 2. 모바일 네트워크를 통한 실시간 멀티 플레이어 게임?
- 3. 네트워크를 통한 비디오 액세스?
- 4. 네트워크를 통한 Java 직렬화
- 5. Boost :: 네트워크를 통한 캡슐화
- 6. C# 네트워크를 통한 응용
- 7. 네트워크를 통한 작업
- 8. 네트워크를 통한 메시지 전달
- 9. 네트워크를 통한 메시지 동기화
- 10. 셀룰러 네트워크를 통한 연결을 허용하도록 gamecenter 설정
- 11. 네트워크를 통한 디렉토리 구조 전달
- 12. 네트워크를 통한 심볼릭 링크 복사
- 13. 네트워크를 통한 데이터베이스 백업 복원
- 14. 네트워크를 통한 Android 에뮬레이터 네트워킹
- 15. 네트워크를 통한 마우스 커서 직렬화
- 16. 네트워크를 통한 gvim의 효과적인 사용
- 17. 네트워크를 통한 비디오 재생 동기화
- 18. 인터넷을 통한 아이폰 게임 개발
- 19. VB를 통한 플래시 게임 확대
- 20. 네트워크를 통한 DB2 쿼리의 무결성 제어
- 21. 네트워크를 통한 응용 프로그램 경로 문제
- 22. 네트워크를 통한 파일 기반 SVN 저장소
- 23. 네트워크를 통한 UUID 및 바이트 스왑
- 24. 네트워크를 통한 안전한 C 구조체 직렬화? - C++
- 25. 네트워크를 통한 GPS에 대한 기존 프로토콜이 있습니까?
- 26. 로컬 네트워크를 통한 웹 사이트 테스트 문제
- 27. 플래시 게임 데이터 저장
- 28. Silverlight 게임 데이터 저장
- 29. 게임 데이터 저장소로서의 데이터베이스?
- 30. 소켓을 통한 스트리밍 데이터
웹 앱이 아닙니다. QtRuby로 작성된 데스크톱 응용 프로그램입니다. 하지만 REST는 여전히 PUSH를 사용하여 봇으로부터 메시지를 보내고받을 수있는 방법에 대한 대답을 제공하지 않습니다. – Sathish