이미 소장하고 있다면 판매해 보세요.
|
1장. 오늘날의 웹 게임
___멀티플레이 게임은 어디에 적합할까 ___접속 기능 2장. 사용자 접속 ___소켓 서버 선택 3장. 보안: 나 자신 vs. 사용자 ___논리적 보안 ___물리적 보안 ___서비스 기능 4장. 일렉트로서버 소개 ___설치 ___헬로우 월드 ___관리자 페이지 ___둘러보기 5장. 대화 ___간단한 대화방 ___대화 메시지 보내기 ___새로운 개념 6장. 결정 우선권 ___일렉트로버 플러그인의 개념 ___확장 기능 설치 ___땅파기 게임 7장. 실시간 이동 ___컨트롤 반응 ___경로의 종류 ___프레임 기반 이동 ___지연 과 시동기화 ___시간 기반 이동 ___공통 기능 8장. 로비 시스템 ___게임 진행 ___땅파기 게임2 ___게임 둘러보기 9장. 실시간 탱크 게임 ___주도권과 예측 ___시선 ___게임 메시지 ___미니맵 ___메시지 통합 ___맵 에디터 ___공간 음향 ___아트 vs. 타일 10장. 타일 기반 게임 ___타일 기반의 장점 ___에이스타A* 경로탐색 11장. 협력적 게임 진행 ___협력의 다양한 방식 ___예제 게임: 슈퍼 블롭 브라더스 ___서버 대 클라이언트: 누가 보스인가? ___게임 메시지 ___클라이언트 상세 12장. 등척 투영 시점 ___등척 투영 보기의 기본과 장점 ___기술적 측면 ___정렬 알고리즘 ___아바타와의 만남 13장. 아바타 ___렌더링 ___스프라이트 시트 ___아바타 생성과 수정 ___공통 기능 14장. 가상세계 ___낡은 세계 ___지도 파일 ___맵 렌더링 ___가상세계 ___관계 15장. 친구 맺기 ___낡은 세계의 친구 ___오픈 하우스 16장. 사용자 홈 ___낡은 세계의 사용자 홈 ___서버 레벨 컴포넌트 부록 예제 확장기능 설치 ___낡은 세계 ___로그 설정 ___서버 개발 환경 설정 |
|
아마도 90년대 중반, 초등학생일 때였던 것으로 기억한다. 당시 우리 집에는 286컴퓨터 한 대가 마루에 나와 있었고, 나와 두 살 터울의 누나는 짬이 날 때마다 '보글보글' 게임에 여념이 없었다. 번개 방울에 고래고래 소리 지르며 열광하고, 빠 바바바바 바 소리와 함께 등장하는 유령고래에 좌절해 방바닥을 굴렀다. 그로부터 20년 가까운 시간이 흘러 그 어린 아이는 '보글보글'을 만들 수 있는 개발자로 자라났다.
최근 게임은 실로 화려하다. 몇 년 전의 '니드포 스피드'라던가 '철기대전' 같은 게임만 하더라도 전공자인 내 입조차 떡 벌어질 지경이다. 그러나 도리어 그래픽이 현란해질수록, 효과가 화려할수록, 옛날처럼 게임에 울고 웃기는 어려워졌다. 왜 그럴까? 나는 그것이 '사람'의 문제라고 생각한다. 보글보글 게임을 하던 시절, 내 옆에는 말을 걸면 반응하고, 때릴 수도 있고(때리면 더 빨리 반응한다), 눈치도 봐야 하는 '사람'이 있었다. 오늘날 보글보글의 추억이 즐거움으로 남을 수 있는 이유는, 단순히 그것이 보글보글 게임이었기 때문이 아니라, 함께하는 사람이 있었기 때문이다. 사람을 행복하게, 혹은 불행하게 만들 수 있는 것은 사람뿐이다. 오로지, 사람뿐이다. 세상이 어떻게 변해 가더라도. 어느새 '앵그리버드'를 비롯해 '소셜게임', '모바일 게임 앱' 등의 이름으로 하루에만도 수백 개 게임이 새로 출시되는 시대가 왔다. 네트워킹의 시대, 소통의 시대가 왔다고 한다. 그러나 게임 안에서 진정한 의미에서의 멀티플레이, 즉 실시간으로 사용자 간에 소통할 수 있는 기능을 제공하는 게임은 수만 가지 게임 중에 하나 꼴도 되지 않는다. 애플리케이션 개발에 클라우드가 도입되건, 앱스토어에 올라가건, 소셜 네트워킹을 활용하는 게임이건, 소셜 게임이건, 실시간 사용자 인터랙션 기능이란 대개 대규모 게임 개발사가 만든 MMORPG 게임에서나 찾아 볼 수 있다. 소셜게임, 미니게임에서는 불가능한 기능일까? 이를테면, 친구와 함께 앵그리버드 대전을 할 순 없을까? 이 책은 '할 수 있다'라고 답한다. 이 책은 플래시 게임에서 멀티플레이 환경을 구현할 때 필요한 기능들을 설명한다. 지연 숨김(latency hiding)처럼, 정말 필요한 기능이지만, 문제가 터지기 전에는 모를 수밖에 없는 기능은 물론이고, 저자의 경험에서 배운 가장 실질적인 기능들을 기반 원리에서부터 구현 코드까지 깔끔하게 설명한다. 이 책에 실린 예제 코드와 기능을 몇 가지 조합하는 것만으로 출시 가능한 수준의 게임을 쉽게 만들 수 있다. 혹시라도 플래시를 사용하지 않는다고 성급하게 책을 내려놓진 말자. 이 책의 중심 내용은 '플래시 프로그램 개발'이 아니라 '멀티플레이 게임 기능'이다. 다른 좋은 것들이 그러하듯, 이 책은 예제 코드만 빼면 그대로 적용할 수 있는 상세한 설명을 담고 있다. 혹 플래시 환경에서 게임을 개발하려 한다면, 이 책이 제격이다. 예제 코드와 서비스 제공 기능을 그대로 사용하면, 이제 개발자로서 고민해야 할 것은 거의 전적으로 게임 로직뿐이다. 이 책대로 개발한 후에는 혹시, 몰려드는 수많은 사용자를 상대할 수 있는 전략에 대해 고민해야 할지도 모른다. 아니, 그래야 할 것이다. 과거 몇몇 번역 작업을 해본 전과(?)는 있지만, 책 한 권을 내 이름으로 번역한 것은 이번이 처음이다. 이 번역은 나에게도 의미가 깊다. 무엇보다 번역 작업을 하게 되기까지 함께 해 온 사람들이 있기 때문에. 초벌 번역의 마지막 날, 마지막 글자를 입력하고 시계를 보니 어느새 오후 8시였다. 오전에 세 시간 앉아서 말 한 마디 없이 자판만 두드리던, 그리고 밥 먹고 돌아와서 네 시간 앉아서 또 말 한 마디 없이 자판만 두드리던 나를 사교적이라고 보긴 어려울 것 같다. 번역이 끝나는 순간, '끝났다'라는 생각밖에 들지 않았다. 그러면서도 나도 모르는 새 이 기쁜 소식을 자랑할 사람을 찾아 휴대전화 주소록을 뒤지고 있었다. 결국 나에게도 모든 것은 사람의 문제다. - 옮긴이의 말 |