2010-03-02 7 views
0

저는 플레이어가 프로그래밍 콘테스트에서 경쟁하는 프로그래밍 된 봇인 게임을 디자인하고 있습니다. Java, Ruby, Python, C#과 같은 언어로 봇을 프로그래밍 할 수 있습니다. 게임 서버가 봇과 대화 할 수있는 방법으로 네트워크를 통해 게임 데이터를 전송하는 방법을 찾고 있습니다. 이것에 대한 더 나은 선택은 무엇입니까? XMPP 또는 다른 형식의 원격 메서드 호출을 사용해야합니까?네트워크를 통한 게임 데이터

답변

1

당신이 descibing하는 것은 RMI 문제가 아니라 메시징 문제입니다. 사용할 수있는 몇 가지 솔루션이 있으며 응용 프로그램에 대한 제한된 지식을 기반으로 XMPP가 그 중 하나라고 말할 수 있습니다. 언어에 구애받지 않으며 라이브러리 (및 서버)가 잘 지원되는 언어로 제공됩니다.

가장 좋은 해결책이든 아니든, 나는 말할 수는 없지만 그것이 가능한 것 같아요. 그것은 포인트 투 포인트 (point to point)를 전송하고, 많은 포인트를 가리키며, 게임 서버가 모든 클라이언트에게 방송 할 수있는 수단을 제공합니다.

0

REST 기반 웹 서비스는 많은 언어가 필요할 경우 사용하기가 더 쉽습니다.

+0

웹 앱이 아닙니다. QtRuby로 작성된 데스크톱 응용 프로그램입니다. 하지만 REST는 여전히 PUSH를 사용하여 봇으로부터 메시지를 보내고받을 수있는 방법에 대한 대답을 제공하지 않습니다. – Sathish

-2

많은 Remoting 인프라의 문제점은 일반적으로 프레임 워크간에 이식 할 수 없다는 것입니다. XMPP가 도움이 될 수 있지만 주요 문제는 전송되는 데이터의 모든 헤더/존재 항목으로 인해 네트워크를 지나치는 데이터입니다. XMPP는 XML 기반이므로 바이너리 데이터는 Base64 문자열로 전송되어야합니다.

더 나은 베팅은 더 낮은 레벨의 소켓 인터페이스 일 수 있습니다. 데이터의 크기를 줄이기 위해 비트 패킹을 할 수있는 자유를 얻는 것이 유익 할 것입니다.

+1

여러 언어를 지원하는 자신의 메시징 또는 RMI 인프라를 구축하는 것이 좋습니다. – Robin

+0

그는 비즈니스 앱이 아닌 게임을 만들고 있습니다. 네트워크 트래픽이 상당히 많을 수 있습니다. 저의 관점은 낮은 수준의 프레임 워크/커뮤니케이션 메커니즘이 도움이된다는 것입니다. 게임 서버가있는 게임의 경우 웹 서비스를 통신은 오버 헤드가 많으며 RMI를 사용하면 비 휴대용 메커니즘에주의해야합니다. Java는 .Net 원격을 사용할 수 없습니다 .... 메시징 경로를 선택하면 사용하지 않는 것이 좋습니다. 자신의 미들웨어를 빌드 - 미친 것입니다,하지만 게임의 커뮤니 케이 션을위한 내구성 메시징을 사용하여 미친 수도 있습니다 – saret

+0

또한 그의 질문은 당신이 그것을 읽는다면 그가 사용해야하는 프레임 워크에 대해서만 아니 었어 ("나는 XMPP 또는 다른 형식을 사용해야합니까 원격 메소드 호출? ") - RMI/DCOM/Corba/.Net Remoting과 같은 원격 프로 시저 호출 (RPC) 메커니즘 중 하나 인 XMPP가 나열된 f 중 일부에 내장되어 있는지도 물어 보았습니다. rameworks/languages ​​(Java, Ruby, Python, C#)가 작동 할 것이고 반드시 이동하는 휴대용 경로가 아니며이 경로 이외의 다른 문제도 발생할 수 있습니다. – saret

0

나는 지루한 바퀴를 항상 재발견하고있다. OpenTNL을 사용할 수 있는지 확인하십시오.

관련 문제