2010-06-30 2 views
3

데스크탑 기반 게임을 코딩하고 싶다면 일부 XNA 코드 및 UDP 소켓을 가져 와서 적절한 멀티 플레이어 게임을 만들 수 있습니다. 내가 원하는 게임을 코딩하는 방법을 매우 분명하게 알았을 것이다.웹 브라우저 기반 멀티 플레이어 게임을 코딩하는 방법은 무엇입니까?

그러나 브라우저 기반 온라인 멀티 플레이어 게임을 코딩하고 싶다면 어떻게해야합니까? XNA를 사용할 수 없습니다 .... 몇 가지 질문을보고 있었고 PHP, ASP.NET, Silverlight, Flash 및 Java가 대체 언어로 표시됩니다 ... 어떻게 작동하는지 이해하지 못합니다. . 데스크톱 기반 게임의 경우 UDP 소켓을 열고 클라이언트를 수락하고 데이터를 전송하며 플레이어 상태를 업데이트하고 XNA를 사용하여 결과를 그립니다. 하지만 브라우저에서 소켓과 물건을 어떻게 열 수 있습니까? 이 개념은 어떻게 작동하며 웹 브라우저를 통해 실시간으로 사람들과 커뮤니케이션합니다. 어떤 방향으로? 저는 C#에 익숙하며 Java에 친숙합니다. Flash, ASP.NET 또는 Silverlight를 전혀 사용하지 않았습니다.

답변

0

브라우저 기반 게임과 거의 같은 해결책이 있습니다. 플래시는 그것을 할 수 있습니다, 아마 PHP와 아약스로 가능합니다, 당신은 항상 자바를 사용할 수 있습니다. 그것은 당신이 이미 익숙한 것에 달려 있습니다.

2

UI의 경우 Silverlight 또는 Flash, Java가 가장 좋을 것입니다. 다중 사용자 상호 작용에 관한 한 웹 서비스를 사용하여 UDP/소켓 통신이 아닌 데이터를 보내고받을 수 있습니다.

이미 C#에 익숙하므로 Silverlight와 웹 서비스 모두에서 해당 지식을 활용할 수 있으므로 배우기 다소 어렵습니다.

+1

+1. 나는 사용자가 게임 내 객체의 상태를 질의/수정할 수있게하는 웹 서비스를 설정할 것이다. 사용자가 브라우저에서 무언가를 클릭하면 웹 서비스에 충돌 할 수있는 일부 아약스 또는 뭔가를 트리거하는 UI 이벤트가 발생하고 객체의 현재 상태를 유지하는 json 응답을 얻은 다음 화면에 렌더링합니다. – user12345613

4

패러다임은 조금 다릅니다. 브라우저 기반 게임에서 게임 상태는 서버에 저장되고 계산됩니다. 모든 사용자는이 단일 게임 상태에서 데이터를 가져 오는 사용자 인터페이스를 봅니다.

플레이어 1은 34,29에 우주선을 가지고 있습니다. 그는 앞으로 나아가 35,30로 나아 간다. 이것은 AJAX와 같은 것으로 서버에 전송됩니다. 다른 플레이어는 웹 서버에 다른 플레이어의 위치를 ​​쿼리 할 때이 변경을 봅니다. 이런 일이 일어나기 위해서는이 위치가 서버의 어딘가에 저장되어 있어야합니다.

Google 문서와 Microsoft Word의 차이점에 대해 생각하십시오. 하나는 컴퓨터에 문서가 있고 다른 하나는 온라인으로 문서를 저장하고 있으며 먼 거리의 HTTP 서버와 상호 작용하고 있습니다.

0

데스크톱 게임을 프로그래밍 할 때 게임은 플레이어의 컴퓨터에 있습니다. 웹 브라우저 기반 게임을 프로그래밍 할 때 게임은 플레이어의 컴퓨터가 아니라 사용자의 서버에 있습니다. 모든 플레이어는 브라우저에서 UI를 볼 수 있습니다. 따라서 서버 측면에서는 게임의 모든 논리를 프로그래밍하고 클라이언트 측면에서는 인터페이스 만 프로그래밍해야합니다.

브라우저를 스테로이드 모니터처럼 생각하면 도움이됩니다.

UDP/소켓에 관한 ... 웹 응용 프로그램에는 그런 것이 없지만 AJAX 또는 FLASH를 통해 비동기 요청을 사용할 수 있습니다 (플래시가 비동기를 수행 할 수 있는지 꽤 잘 모르겠습니다. 그럴 수있어.).

따라서 keyboard -> program -> monitor 흐름 대신 keyboard -> browser-scripts -> AJAX request -> server-scripts -> monitor 흐름이 있습니다.

+2

플래시에 소켓 통신이 있습니다. –

+0

오, 정말요? : S 멋지다. 감사! –

0

C#에 익숙하고 Java에 친숙하기 때문에 브라우저 측에서 실행되는 클라이언트 측 코드는 Unity3D이고 서버 측 코드는 SmartfoxServer입니다.

Unity3D은 브라우저에서 실행되는 게임을 제작하는 데 사용할 수있는 강력한 게임 엔진입니다. Javascript 또는 C#을 사용하여 게임을 코딩 할 수 있습니다.SmartfoxServer은 Java로 작성된 멀티 플레이어 게임 서버로 통신을위한 간단하고 유연한 API를 제공합니다.

둘 다 결합하면 놀라운 2D/3D 멀티 플레이어 게임을 만들 수 있습니다.

0

HTML5에서 web sockets을 살펴볼 수 있습니다. 어떤 종류의 게임을 만들고 싶은가에 따라 Canvas를 사용하는 순수한 HTML5와 JQuery 같은 일부 자바 스크립트 라이브러리가 당신이 찾고있는 것일 수 있습니다.

관련 문제