경험의 차이

과거 대학 시절에는 엄청난 경력자(학교 선배였음)와 일을 할 때 (이때는 BS가 클라이언트 담당)

  • 먼저 서버-클라이언트 간의 로직 처리를 위한 프로토콜을 정한다
  • 각자 일정대로 프롴토콜 처리를 구현하다
  • 연동 테스트를 한다.
  • 행복하게 끝난다.

이랬는데…

게임 업계에 서버 프로그래머로 들어온 이후…

  • 게임 디자인에 대해 디자이너로부터 열심히 설명을 듣는다.
  • 서버 프로그래머가 디자이너가 제어하는 게임 데이터, 서버에 저장해야 하는 데이터, 클라이언트로 보내줘야 하는 데이터와 프로토콜을 정한다.
  • 정해진 내용을 클라이언트 담당자에게 공유하지만…
  • 서버 구현을 끝낸다.
  • 클라이언트 개발 시작…
  • 클라이언트 개발 중 이슈로 프로토콜 변경, 데이터 구조 변경, DB 기록되는 내용 변경…

서버 개발 일정 2주, 클라이언트 개발 비용 2주면… 과거 대학 시절에는 3주(개발 + 테스트)면 되던 일이…
BS가 다녔던 업체들에서는 5주가 걸린다. (서버 2주 + 클라이언트 2주 + 테스트)…

뭔가 이상하다…

육하원칙(5W1H)와 CS 구조의 게임서버 개발

육하원칙

  • 누가(who)
  • 언제(when)
  • 어디서(where)
  • 무엇을(what)
  • 어떻게(how)
  • 왜(why)

게임 서버

  • 누가
    클라이언트 or 서버 오브젝트
  • 언제
    디자이너의 결정
  • 어디서
    디자이너, 프로그래머의 합의
  • 무엇을
    디자이너 결정
  • 어떻게
    디자이너, 프로그래머의 합의

  • 디자이너 결정

이렇게 생각하는데…

문제는 지금까지 겪어 온 게임 디자이너들 중에 디자이너가 결정해야 하는 것을 제대로 결정하는 경우가 극히 드물다는 것이다.

특히! 왜(why)에 해당하는 것을 충분히 디자인 문서에 적는 경우가 없어서, 디자인 담당자가 변경된 경우, 이전 담당자의 의도를 파악하지 못하고…

결국은 디자인은 처음부터 갈아 엎어서 개발 기간을 쭈욱 늘리는 결과를 만들어 내는 경우가 많았음…

그리고, 왜(why)에 해당하는 걸 물었을 때에 받는 답변은…

  1. 요새 잘나가는 OOO 게임이 그렇게 하니까요.
  2. 그냥 느낌이 그래요.
  3. OOO 해서, XXX 하고, NNN 해서, AAA가 필요하게 됩니다.

3번과 같은 답변이 정상인데, 어째서 1, 2번 답변은 대부분인지…

게임 서버 프로그래밍이란…

BS가 생각하는 서버 프로그램

  1. 클라이언트에서 데이터를 입력 받으면
  2. 서버의 데이터와 검증하고
  3. 서버의 데이터와 병합해서 새로운 데이터를 만들고
  4. 서버에 저장하고
  5. 클라이언트에 알려준다

그럼 게임 서버는?

  1. NPC와 같은 클라이언트가 제어하지 않는 객체가 무수히 많다
  2. 서버 관리 객체들의 변화를 클라이언트에 알린다

이게 전부? 라고 생각되네요.

왜 개발자들만 모바일겜 만든다고 창업할까?

성공한 게임의 개발한 사람과 퍼블리싱을 한 사람이 있다

그런데 개발자는 창업을 하는데 퍼블리셔는 창업을 하지 않는다

개발자는 나도 저런 것 만들 수 있어 라고 생각한다

퍼블리싱을 담당하는 사업부 사람들은 그렇게 생각하지 않는다

그래서 잘 만들어도 실패하는 게임이 생기는 건 아닐까?

아이디어와 기술로 개발만 해서는 성공할 수 있다면 팬텍이 저렇게 무너지지 않았겠지

아이디어와 기술과 함께, 장사하는 능력, 회사가 유지될 수 있는 능력도 있어야 한다

[펌] 어느 유저의 “한국인이 원하는 게임”

데빌리언이라는 게임이 있습니다.
블루홀 지노게임즈라는 개발사에서 개발해서 한게임에서 서비스하다 1년여만에 서비스 종료가 결정된 게임입니다.

그 게시판에 어느 유저가 올린 글

“한국인이 원하는 게임”

  1. 그래픽이 뛰어나야 하지만 내 컴퓨터에서는 렉없이 플레이가 가능해야함
  2. 방대한 스토리를 요구하지만, 스킵이 가능하며 스토리를 몰라도 플레이에 무리 없어야함
  3. 퀘스트 하는게 귀찮고 짜증나지만 다양한 퀘스트가 존재해야함
  4. 밸런스가 완벽하길 원하나 본인이 키우는 케릭터가 조금더 쌔야함
  5. 버그 사용자에 대한 강력한 대처와 재제를 원하지만 내가 쓰는 버그는 일단 제외함
  6. 노가다 컨텐츠는 싫어하지만 컨텐츠는 풍부해야함

게임 개발자로 살아가는 BS의 생각에… 완전 공감되는 글이네요

일단 내가 가진 컴에서 원활하게 실행 안되면

“뭐 이렇게 무거워? 이딴 게임이 사양만 높게 요구하네?”

스토리가 없으면

“뭐 게임이 스토리가 허접해”

스토리를 유저에게 보여주면

“귀찮게 주절주절 아 몰라 스킵하게 해줘”

거기에 스토리를 모르면 안되는 퀘스트라도 넣는 날에는…

“뭐? 어쩌라고. 이거 뭐야? 어떻게 하라는거야?”

퀘스트가 적으면

“할게 없네”

많으면

“아주 그냥 퀘스트 노가다만 죽도록 하게 만들었구만”

밸런스 맞춘다고 조정하면

“내 캐릭이 짱이었는데 왜 바꿔? 나 접는다”

버그 찾아서 고치면

“그게 왜 버그야. 다시 돌려놔”

“내가 쓰면 팁, 남이 쓰면 버그”

반복적인 플레이로 파밍해서 강화를 유도하면

“노가다 싫어. 뭐 이런 겜이 다 있어”

반복적인 플레이가 없으면

“더이상 할 게 없네? 접어야겠다.”

참… 게임은 만들기 어렵습니다.

디아블로3 하드코어 캐릭터 사망!!!

살짝 짜증이 납니다.

하드코어 플레이를 18시간정도 해서 부두술사를 48렙을 찍고 적당히 장비 맞추고 악몽 클리어
후에

지옥 입성 레벨이 모잘라 잠시 소머리 지팡이 도면을 구하고자 4막의 배신자를 잡고 나오고 다시 잡고 나오고 하는데


클라이언트 창이 고스트 윈도우로 변합니다.


설마?


얼른 접속하니 역시 나의 부두술사는 사망하셨습니다.


이런 미친!!!


이러니까 하드코어를 할 의미가 없는건가?


바보같은 디아블로는 크래시 리포팅도 없이 플레이 로그 파일을 지워버립니다.


뭐야 이거?


적당히 개발했니?

답답한 노릇입니다.

직장인이 퇴근 후에… 아기 아빠가 아기랑 놀다 재워두고 살짝 해서 18시간을 하려면 얼마나 걸리는데…

위드볼 – 내 인맥은 어디까지인가?

일단 다른 야구겜처럼 내가 공을 던지고 쳐야하는 피곤함이 없다는…

그런데… 친구 만들기가 쉽지 않네용.

5명이라는 제한이 은근히 크게 느껴짐… 10명이서 같이 팀을 꾸린다면 각각 9명씩 친구를 맺을 수 있어야 되는데…

사실 한 팀에 10명으로는 힘들지 않나요?

카톡에 게임을 즐기는 친구가 극히 드문 BS는 팀 꾸리기부터가 조금 힘들군요…

특히 카톡의 내 프로필 사진이 맘에 안든다는… ㅋㅋㅋㅋ (당장 바꾸고 싶으나 너무 귀찮음)

아래는 유튜브 영상~

큐브 퍼즐 3x3x3 맞추는 초보적인 방법

아… 회사 직원이 가져와서는 BS에게 불을 지릅니다.

큐브 퍼즐이 뭐지 하실 분을 위해 위키 설명을 링크합니다.
[Rubik’s Cube 위키 페이지]

그럼 맞추는 방법을 알아 보겠습니다.
F: 앞면 회전 (시계방향)
U: 윗면 회전 (시계방향)
L: 왼쪽면 회전 (시계방향)
R: 오른쪽면 회전 (시계방향)
B: 뒷면 회전 (시계방향)
F’, U’, L’, R’, B’: 각 방향의 반시계 방향
F2, U2, L2, R2, B2: 각 방향으로 2회

  1. 큐브를 잘 섞습니다.
  2. 원하는 색상 하나를 선택합니다. (보통의 큐브는 하양, 빨강, 파랑, 노랑, 초록, 주황 이지요…)
    BS는 흰색을 선택하겠습니다.
  3. 흰색을 기준으로 옆면에 빨강, 초록, 주황, 파랑이 있습니다.
    여기에 맞춰서 흰색을 십자가 모양으로 맞춥니다.
  4. 이제 흰색의 4개 모서리 부분을 색상을 맞추어 맞춥니다.
    흰색을 윗면으로 하게 하면 옆면의 모양이 T 와 같이 되야 합니다.
  5. 흰색을 바닥으로 향하게 하고 가운데 2층을 맞춥니다.
    빨강을 예를 들면 빨강의 좌측에 초록이 있고, 우측에 파랑이 있습니다.
    윗면에서 (빨강+초록), (빨강+파랑)을 찾습니다.
    빨강이 연결 되도록 이동합니다.

    위 그림에서 가장 위에 둔 블럭이 좌측으로 가서 초록을 맞추려면
    빨강을 앞면으로 보고 아래처럼 움직입니다.
    U’ L’ U L F’ L F L’
    반대로 파랑으로 옮기려면
    U R U’ R’ F R’ F’ R
    과 같이 반대 방향으로 하시면 됩니다.
    만약 2층에 필요한 블럭이 있으면 위 공식으로 다른 블럭을 해당 자리에 넣으면 있던 블럭은 빠지게 됩니다.
  6. 2층을 모두 맞추면 윗면 십자가를 맞춥니다.
    BS는 흰색을 아래로 하였기 때문에 윗면이 노랑입니다.
    F R U R’ U’ F’
    를 반복하면 됩니다.
    블럭의 움직임을 보면 정면에 있는 노랑이 윗면으로 올라가게 됩니다.
  7. 윗면 모서리 맞추기
    F R’ F’ L F R F’ L’
    이 방법 하나로 됩니다.
    BS의 경우 앞면이 빨강, 오른쪽이 초록입니다.
    빨강면 왼쪽 위 블럭이 노랑, 초록면 오른쪽 위 블럭이 노랑일 때에 공식을 이용하면 윗면이 모두 노랑이 됩니다.
  8. 윗면 모서리 맞추기 2
    윗면의 모서리를 노랑만이 아니라 옆면까지도 맞추는 과정입니다.
    R U2 R’ U’ R U2 L’ U R’ U’ L
    이 과정을 하면 윗면 노랑의 오른쪽 위와 아래 모서리 블럭 두개가 자리를 바꾸게 됩니다.
    이를 응용해서 모서리 블럭을 모두 맞춥니다.
  9. 마지막 윗면 십자가 제자리로 맞추기
    윗면인 노랑면의 정 가운데 블럭을 기준으로 위, 오른쪽, 아래를 시계 방향으로 바꾸려면
    R2 U F B’ R2 F’ B U R2
    반시계 방향으로 바꾸려면
    R2 U’ F B’ R2 F’ B U’ R2
    이걸 이용해서 돌리면… 완성!!!
헷갈리고 그림도 없고 모르시겠다구요???
자알 생각해 보시면… 됩니다.