현재 번역은 완벽하지 않습니다. 한국어로 문서 번역에 동참해주세요.
현대 웹은 놀랍고 고품질의 게임을 만들 뿐만 아니라, 이 게임들을 배급하는 데 더욱 중요한 실현가능형 플랫폼으로 빠르게 변했다.
제작되는 게임의 범위는 데스크탑이나 기본OS용 게임들에도 필적한다. 현대 웹 기술과 최신 브라우저로 최고 사양의 웹 게임이 만들어져 놀라움을 선사한다. 예전 Flash®을 사용하던 가벼운 카드 게임이나 멀티플레이 소셜 게임을 말하는 게 아니다. 고사양의 3D 액션 슈팅 게임, RPG 게임, 그 이상을 말하는 것이다. 자바 스크립트의 실시간 컴파일러 기술과 새로운 API의 대대적인 퍼포먼스 개선으로 가능해졌다. 브라우저로 운영되는 게임을 (또는 파이어폭스에 기반한 HTML5 전원 공급 장치를) 제작할 수 있게 되었다.
HTML5 게임 플랫폼
게임에 적용하는 더 좋은 타깃 플랫폼으로서, 웹이 제격이다. "웹이 곧 플랫폼이다."라고 할 수 있을 것이다. 아래는 웹 플랫폼의 핵심이다.
기능 | 기술 |
---|---|
Audio | Web Audio API |
Graphics | WebGL (OpenGL ES 2.0) |
Input | Touch events, Gamepad API, device sensors, WebRTC, Full Screen API, Pointer Lock API |
Language | JavaScript (or C/C++ using Emscripten to compile to JavaScript) |
Networking | WebRTC and/or WebSockets |
Storage | IndexedDB or the "cloud" |
Web | HTML, CSS, SVG, Social API (and much more!) |
비즈니스 예시
개인이든 대형 게임 제작사든 게임 개발자라면, 왜 게임 제작을 웹으로 설정해야 하는지 알고 싶을 것이다. 아래는 웹이 어떤 도움을 주는지에 대한 것이다.
-
웹의 범위는 방대하여 어떤 플랫폼에서도 사용할 수 있다. HTML5로 만들어진 게임은 스마트폰, 태블릿, PC나 스마트 TV에서도 작동한다.
- 마케팅과 검색 가능성이 향상된다. 다른 앱 스토어에만 국한되지 않고 어느 곳에서나 당신의 앱을 홍보할 수 있다. 웹 고유 특성인 링크와 공유 덕분에 새로운 고객에게 전세계 웹은 물론 다른 미디어에서도 광고나 홍보가 가능하다.
- 중요한 부분을 관리할 수 있다. 바로 결제이다. 당신의 게임이 다른 이의 앱 생태계에 들어있다는 이유만으로 수익의 30%를 넘겨주지 않아도 된다. 대신, 당신이 원하는 만큼 가격을 책정하고 원하는 결제 방식을 사용할 수 있다.
- 더 중요한 점은 당신이 원할 때 게임을 업데이트할 수 있다는 것이다. 다른 회사의 누군가가 버그 수정을 오늘 올릴지, 내일 올릴지 결정하는 것을 숨 막히게 기다리지 않아도 된다.
- 게임에 대한 분석을 관리할 수 있다. 당신이 필요한 분석 자료에 대해 다른 누군가에게 의존하지 않아도 된다. 매출이나 게임의 영향력에 대한 정보를 모으기 위해 당신 스스로 분석 자료를 수집하거나 선호하는 서드파티를 선택할 수 있다.
- You get to manage your customer relationship more closely, in your own way. No more having customer feedback filtered through an app store's limited mechanisms. Engage with your customers the way you want to, without a middleman.
- Your players can play your game anywhere, anytime. Because the Web is ubiquitous, your customers can check their game's status on their phones, tablets, their home laptops, their work desktops, or anything else.
게임 개발자들을 위한 웹 기술
For the tech folks, let's dig into the APIs the Web brings to the table that cater to game developers. Here's a thorough list to give you a taste of what the Web can do for you:
- Full Screen API
- This simple API lets your game take over the entire screen, thereby immersing the player in action.
- Gamepad API
- If you want your users to be able to use gamepads or other game controllers to work your game, you'll need this API.
- HTML and CSS
- Together, these two technologies let you build, style, and lay out your game's user interface. Part of HTML is the
<canvas>
element, which provides one way to do 2D graphics. - HTML audio
- The
<audio>
element lets you easily play simple sound effects and music. If your needs are more involved, check out the Web Audio API for real audio processing power! - IndexedDB
- A powerful data storage API for maintaining user data on their own computer or device. A great way to save game state and other information locally so it doesn't have to be downloaded every time it's needed. Also useful to help make your game playable even when the user isn't connected to the Web (such as when they're stuck on an airplane for hours on end).
- JavaScript
- JavaScript, the programming language used on the Web, is blazing fast in modern browsers and getting faster all the time. Use its power to write the code for your game, or look at using technologies like Emscripten or Asm.js to easily port your existing games.
- Pointer Lock API
- The Pointer Lock API lets you lock the mouse or other pointing device within your game's interface so that instead of absolute cursor positioning you receive coordinate deltas that give you more precise measurements of what the user is doing, and prevent the user from accidentally sending their input somewhere else, thereby missing important action.
- SVG (Scalable Vector Graphics)
- Lets you build vector graphics that scale smoothly regardless of the size or resolution of the user's display.
- Typed Arrays
- JavaScript typed arrays give you access to raw binary data from within JavaScript; this lets you manipulate GL textures, game data, or anything else, even if it's not in a native JavaScript format.
- Web Audio API
- This API for controlling the playback, synthesis, and manipulation of audio from JavaScript code lets you create awesome sound effects as well as play and manipulate music in real time.
- WebGL
- Lets you create high-performance, hardware-accelerated 3D (and 2D) graphics from Web content. This is a Web-supported implementation of OpenGL ES 2.0.
- WebRTC
- The WebRTC (Real-Time Communications) API gives you the power to control audio and video data, including teleconferencing and transmitting other application data back and forth between two users. Want your players to be able to talk to each other while blowing up monsters? This is the API for you.
- WebSockets
- The WebSocket API lets you connect your app or site to a server to transmit data back and forth in real-time. Perfect for multiplayer gaming action, chat services, and so forth.
- Web Workers
- Workers give you the ability to spawn background threads running their own JavaScript code, to take advantage of modern, multi-core processors.
- XMLHttpRequest and File API
- The combination of XMLHttpRequest and the File API lets you send and receive any kind of data you want (don't let the "XML" throw you!) from a Web server. This is a great way to do anything from downloading new game levels and artwork to transmitting non-real-time game status information back and forth.