HTML5로 멀티 플레이어 게임을 개발할 수 있습니까?


9

HTML5가 웹 게임에 유용하다는 것을 알고 있지만, 여러 사용자와 온라인 게임을 개발하여 모든 사람을 동기화하고 로그인을 처리 할 수 ​​있는지 등은 잘 모르겠습니다. 이것을 할 수 있습니까?

답변:


7

HTML5만으로는 쓸 수 없습니다. 브라우저 스크립팅의 보안 제한으로 인해 사용자 간 통신을 처리하고 부정 행위를 방지하기 위해 항상 스크립팅과 서버가 필요합니다.

많은 사람들이 멀티 플레이어 html5 게임을 작성했습니다. html5 자체를 사용하는 것이 아마도 가장 중요한 부분은 아닙니다. 필요한 것 (모두는 아님)의 대부분은 html 4.01에서도 사용 가능합니다. 캔버스는 예외이지만 캔버스는 svg보다 느리고 svg는 이미 많은 브라우저에서 사용 가능했습니다.

"html5 게임"매니아를 실제로 만들어 낸 것은 서버 측 앱을 자바 스크립트로 만드는 기능이라고 생각합니다. 이것은 모든 클라이언트 측 프로그래머가 갑자기 전체 시스템을 스스로 만들 수 있다는 것을 의미하며 게임과 같은 물건에 관해서는 일반적으로 창조적 인 사람들입니다. JS도 너무 쉬워 할머니도 프로그래밍 할 수 있습니다. 아마도.

OP의 의견 후 업데이트 :

브라우저 게임의 일반적인 아키텍처는

          Client                                     Server
|-----------------------|                   |---------------------|
View - input/output logic - Communication - Validation - Game World
              |                                              |
   client database (if needed)                    server database (if needed)

또는 실제 "언어"의 관점에서 :

  • 클라이언트보기 : HTML5 (angular.js로, 아직 LOTS가 얼마나 빠른지 테스트하지 않았으며 "graphics"에 대한 raphael.js도 확인하십시오)
  • 클라이언트 로직 : JavaScript (jquery / vapor / plain / whatever)
  • 클라이언트 데이터베이스 : WebSQL (HTML5 "스위트"의 일부)
  • 통신 : socket.io (최적의 통신 프로토콜 자동 감지를위한 JS 라이브러리)를 통한 JSON (Javascript 객체 표기법, 본질적으로 직렬화 된 Javascript 객체)
  • 서버 언어 : JS (코어가 거의없는 동시 사용자의 TONS가있는 경우 node.js, 다른 솔루션도 사용 가능)
  • 유효성 검사 : (고객으로부터) 들어오는 게임 데이터가 유효한지 확인하십시오. 클라이언트에서도 발신을 확인할 필요가 없습니다. 올바른 것으로 가정합니다. 항상 .
  • Game World : 모든 클라이언트가 들어올 때 재분배되는 확인 된 데이터 모음
  • 서버 데이터베이스 : couchdb, mongodb, 작업 할 원시 json 오브젝트를 제공하는 모든 데이터베이스

여기 있습니다. 자바 스크립트와 html로만 작성된 완벽한 인터넷 게임. 아름다운.


나는 당신의 대답이 매우 흥미 롭다는 것을 알게되었습니다. 어떤 부품을 만들어야하는지 (가장 중요) 엔드 기술과 각 부품에 어떤 기술이 공급되는지에 대해 약간의 조언을 줄 수 있습니까? 미안합니다. . 감사!
arrrrgv

1
+1, HTML5가 분노하지만 사람들이 그 특성을 나타내는 것은 주로 4.01 기능과 JavaScript입니다. JavaScript를 쉽게 호출하지 말라고 요청할 수 있습니까? 그것은 특권을 얻었지만 실제 프로그램을 작성하려면 실제 프로그래머가되어야합니다. JavaScript는 변수 선언 및 메모리 관리의 번거 로움을 제거하지만 코드 구성 및 알고리즘 및 데이터 구조 파악이 더 쉬워지지는 않으며 이러한 작업에 대한 프로그래머의 사고 방식과 경험이 필요합니다.
aaaaaaaaaaaa

@ eBusiness 내가 쉽게 의미하는 것은 프로그래밍 측면에서 너무 요약되어 있으며 그 사용 사례는 문서화되어 있습니다. 언제든지 원하는 것을 수행하는 자습서 또는 함수를 찾을 수 있습니다. 또한 설정하기가 쉽습니다 (필요하지는 않지만 이미 브라우저에 있습니다).
토르 발라 모

귀하의 질문에 대답과 업데이트 된 게시물을 @arrrrgv
토르 Valamo에게

1
HTML5 게임의 등장이 서버 측 JavaScript와 관련이 있을지 의심 스럽지만 +1입니다. 엄밀히 말해서 JS는 HTML5의 일부가 아닙니다. 캔버스, webGL, 오디오 및 비디오와 같은 새로운 기능과 HTML5 게임을 향상시키는 로컬 스토리지라고 생각합니다. 물론 새롭고 과장되어 모든 사람들이 악 대차를 뛰어 넘습니다.
bummzack

3

http://smus.com/multiplayer-html5-games-with-node 의 기사와 기사와 함께 제공된 소스를 살펴보십시오 . 네트워킹에도 JavaScript를 사용합니다.


2
혼동을 피하기 위해 "JavaScript"를 한 단어로 작성하십시오.
o0 '.

언젠가는 웹 소켓에 대한 크로스 브라우저 지원이 널리 퍼져있는 Node.js가 필요하지 않습니다.
엔지니어

웹 소켓에 대한 브라우저 간 지원이 브라우저 외부의 서버 구성 요소에 대한 요구를 변경하는 이유를 모르겠습니다. 클라이언트가 클라이언트 대 클라이언트가 아닌 중앙 서버에 연결되도록 항상 멀티 플레이어 게임을 프로그래밍해야합니다.
jhocking

1
또한 체크 아웃 NowJS ( nowjs.com )
팀 홀트

웹 소켓은 본질적으로 모든 애플리케이션에서 안전하지 않기 때문에 계획된 구현이 많은 브라우저에 의해 포기 된 이유입니다. "anywhere"에 액세스 할 수있는 환경을 허용하지 않으면 서 "anywhere"에서 입력을받을 수 있습니다.
토르 발라 모
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.