nhn next 2014년도 게임트랙 소개

30
NHN NEXT 게임 전공 소개 2014. 2. 5.

Upload: seungmo-koo

Post on 19-Jun-2015

1.678 views

Category:

Education


4 download

DESCRIPTION

NHN NEXT Bootcamp 2014 게임 전공 소개

TRANSCRIPT

Page 1: NHN NEXT 2014년도 게임트랙 소개

NHN NEXT 게임 전공 소개

2014. 2. 5.

Page 2: NHN NEXT 2014년도 게임트랙 소개

목차

• 게임 전공 소개

• 게임 클라이언트와 서버 – 게임의 동작 구조

– 전공 과목

• 게임 개발자의 자세 – 인재상

Page 3: NHN NEXT 2014년도 게임트랙 소개

DISCLAIMER

본 내용은 이해하기 어려울 수 있는 내용을 담고 있습니다. 게임 트랙으로 관심을 두지 않는다면 이해하지 못해도 상관 없습니다. 실제로 게임 관련 전공 수업의 내용은 훨씬 더 어려워서 이해 못할 확률이 높기 때문에, 미리 그 느낌(?)을 맛보는 것도 괜찮습니다. 언제든 내 길이 아니다 싶으면 다른 길로 갈 수 있는 용기만 있으면 됩니다. 그래서 여기에 계신 모든 분들에게 본 내용을 이해시킬 의무가 없음을 알립니다.

Page 4: NHN NEXT 2014년도 게임트랙 소개

게임 전공

• 게임 개발 그 자체가 본질 – 특정 플랫폼의 특징을 배우는 것은 아님

– 그럼에도, PC 온라인 게임 환경 위에서…

• PC 게임 플랫폼 – 게임 개발 자체를 가장 잘 배울 수 있는 플랫폼

• 가장 복잡하지만 표현할 수 있는 것이 많기 때문

• 온라인 게임 – 네트워크로 연결되지 않는 게임은 거의 없음 (멀티 플레이어)

• 다수의 사람들이 서버에 접속하여 가상 공간상에서 플레이

– FPS, RPG, RTS, AOS, SPORTS, …

Page 5: NHN NEXT 2014년도 게임트랙 소개
Page 6: NHN NEXT 2014년도 게임트랙 소개
Page 7: NHN NEXT 2014년도 게임트랙 소개
Page 8: NHN NEXT 2014년도 게임트랙 소개
Page 9: NHN NEXT 2014년도 게임트랙 소개
Page 10: NHN NEXT 2014년도 게임트랙 소개

그러면, 콘솔 / 웹 / 모바일 게임은?

• 콘솔 게임 – PlayStation, XBOX

– PC 환경과 개발 방식 및 개발 환경이 거의 비슷 • PS4 및 XBOX ONE: 사실상 PC 플랫폼

• 모바일/웹 게임을 만들고자 하는 경우 – 메인을 어디로 두느냐에 따라 결정

– 가끔 게임을 만들어 볼 수도 있겠다? 모바일/웹 전공 • 이 경우, 게임전공에서 도움 줄 수 있는 과목이 있음

– 게임만 만들건데, 모바일/웹용으로 만들 수도? 게임 전공

• [참고] 복수전공 이슈 – 게임 트랙을 밟는다고 한다면:

• 게임 클라이언트 + 게임 서버 추천

– 웹UI/웹서버/모바일 트랙중 하나라도 포함될 경우 • 공통 과목이 별로 없어서 졸업이 (당연히) 늦어지게 됨

Page 11: NHN NEXT 2014년도 게임트랙 소개

모바일 / 웹 게임의 기술적인 측면

(모바일) 게임 클라이언트 모바일 전공 (웹) 게임 클라이언트 웹UI 전공

(공통) 게임 서버 웹서버 전공

Page 12: NHN NEXT 2014년도 게임트랙 소개

게임 클라이언트와 서버

(게임의 동작 구조)

Page 13: NHN NEXT 2014년도 게임트랙 소개

게임의 처리 과정

• 싱글 플레이어 게임 – client-only game

Inputs

Simulate

Render

Wait

States

events timer

State State State

Time

Page 14: NHN NEXT 2014년도 게임트랙 소개

서버가 있는 게임의 처리 과정

• 멀티 플레이어 게임 – 서버가 게임 로직 처리(Simulate) 및 상태 관리

Simulate

States

Inputs

Render

Wait

events

Server

state info

Clients

… …

Page 15: NHN NEXT 2014년도 게임트랙 소개

게임 전공 과목들

클라이언트 서버

선형대수, 물리학

확률과 통계 게임 제작 개론

프로그래밍 언어 C++ 자료구조&알고리즘

운영체제 컴퓨터 시스템 아키텍처

컴퓨터 그래픽스

컴퓨터 네트워크

게임서버 아키텍처

게임 서버 프로그래밍

데이터베이스

게임 미들웨어 (Unity3D 등)

Windows

게임 프로그래밍

컴퓨터 그래픽스

Advanced

Page 16: NHN NEXT 2014년도 게임트랙 소개

공통 기초 과목

• 선형대수 – 게임의 상당수 로직은 매트릭스로 시작해서 매트릭스로 끝남

• 3차원 공간 계산에 강해야 함 이것 못하면 게임 트랙 비추

• 확률과 통계 – 게임 밸런싱, 유저 데이터 분석

• 게임은 알고 보면 확률 기반의 놀이 기구

• 물리학 – 게임 내 물리 현상 시뮬레이션을 위해 쓰임

• 운동(Kinetic) 법칙, 유체(Fluid) 역학 물리 엔진

• 자료구조 & 알고리즘 – 게임 로직 최적화, AI (길찾기 등), …

– 꼼꼼하게 잘 만들지 못하면 출시 자체가 불가능한 경우가 많음 • 수만 명의 유저 대상으로 𝑛 log 𝑛과 𝑛2의 차이는 아주 크다

Page 17: NHN NEXT 2014년도 게임트랙 소개

공통 전공 과목

• 게임 제작 개론 – 게임 그 자체(기획)에 대한 이해

– 게임 제작 과정(프로세스)에 대한 이해

– 프로그램 구현을 제외한 부분에 대해 학습 타 직군에 대한 이해

• 프로그래밍 언어 in C++ – 성능과 높은 추상화를 동시에 제공하는 유일한 언어

– 프로그래밍 언어 자체에 대한 개념이 있어야 각종 문제 해결 가능

• 운영체제 (Windows) – PC뿐만 아니라 XBOX ONE 및 PS4도 PC 기반

• 윈도우 프로그래밍과 매우 흡사

• 컴퓨터 시스템 아키텍처 – 게임은 하드웨어 성능의 뽕을 뽑는 소프트웨어

• 성능 최적화 및 메모리 덤프 디버깅을 위해서

Page 18: NHN NEXT 2014년도 게임트랙 소개

컴퓨터 그래픽스

• 더 이상의 설명은 생략한다

게임 클라이언트에 가까운 과목이지만 게임 서버 전공을 하더라도 기본적인 것은 알아야 됨

Page 19: NHN NEXT 2014년도 게임트랙 소개

컴퓨터 네트워크

• 네트워크로 연결되지 않는 게임은 거의 없음 – 게임 서버 프로그래머는 이 분야의 숙련자

• 서버는 수많은 클라이언트와 연결되어 통신

– 게임 클라이언트 프로그래머도 기본적인 것은 알아야 됨

• 기본적인 소켓 프로그래밍을 통해 서버와 연결

• P2P 게임의 경우 클라이언트간 네트워크로 연결

Peer Peer

Peer Peer

Page 20: NHN NEXT 2014년도 게임트랙 소개

게임 클라이언트 전공 과목

• 그래픽스 Advanced – 컴퓨터 그래픽스 심화 과정

• 게임에서는 그래픽스의 거의 모든 기술을 활용함

– 각종 광원(빛), 물리 효과, 재질 처리 등의 고급기술 학습

• Windows 게임 프로그래밍 – Windows 기반의 프로그래밍

– .NET 프로그래밍 (C#)

• 게임 제작을 위한 각종 도구(tool)도 만들 수 있어야 하기 때문

• 게임 미들웨어 – 상용 게임 엔진을 이용하여 게임을 만들어 보는 과정

– 실제 게임 회사 대부분은 그래픽스 라이브러리와 각통 툴을 처음부터 만들지 않고, 잘 만들어진 게임 엔진을 최대한 활용

Page 21: NHN NEXT 2014년도 게임트랙 소개

Unity3D 엔진

Page 22: NHN NEXT 2014년도 게임트랙 소개

서버 전공 과목

• 게임 서버 프로그래밍 – 대규모 플레이어 처리에 대한 학습

• 멀티쓰레드 프로그래밍 및 비동기 프로그래밍

• 하드웨어 최적화: CPU, 메모리, 네트워크

• 데이터베이스 – 대규모 플레이어 데이터에 대한 체계적이고 효율적인 관리

• (예) 수많은 캐릭터, 아이템 데이터 관리

• 게임 서버 아키텍처 – 게임의 장르나 특징에 따른 효율적인 서버 구성은?

Client

World Server

DB Proxy

Realm

Broadcaster

Page 23: NHN NEXT 2014년도 게임트랙 소개

게임 개발자의 자세

(게임을 좋아한다는 이유만으로 개발자를 꿈꾸지 말아라)

Page 24: NHN NEXT 2014년도 게임트랙 소개

게임 개발자?

• 크게 3가지의 길 – 게임디자이너

• 게임 기획, 시나리오 작가, 레벨 디자인, …

– 아티스트 • 애니메이터, 캐릭터/배경 원화, 모델러, 월드 제작, 사운드, …

– 프로그래머 • 서버, 클라이언트, 툴, 플랫폼, …

• 최종적으로 실제 소프트웨어를 만드는 사람 – 프로그래머

Page 25: NHN NEXT 2014년도 게임트랙 소개

게임 프로그래머

• 게임 프로그램을 개발 – 소프트웨어 개발 중 최고의 난이도에 속함

– 진짜 실력을 키울 수 있음

• 게임 프로그래머로서 인정을 받으면 자부심을 가져도 됨

• 끝없는 자기 계발 – 가장 빨리 변하는 분야

• 자기주도적으로 (꽂혀서) 계속 공부하고 적응해야 살 수 있음

• 게임 기술에 대한 오덕력(?)이 어느 정도 필요함

• 궁금하면 못 참고(?) 끝까지 추적해서 배우고자 하는 자세

• 변화에 대응을 잘 하기 위해서는 – 학과 전공 기초에 충실

• 기초가 튼튼할수록 새로운 환경에 적응을 잘 하기 때문

– 어설픈(?) 테크닉보다 전공 기초 과목 이해도가 높아야 함

Page 26: NHN NEXT 2014년도 게임트랙 소개

더 중요한 것

• 인간성(?)이 좋아야 함 – 성격이 좋아야 함

• 자신의 실력이 아무리 좋아도, 성격이 더러우면(?) 협업이 곤란

• 게임은 혼자서 만들 수 있는 물건이 아니기 때문

– 혼자서 만들 수 있는 게임은 거의 없음 (최소3 ~ 최대300)

– 원만한 대인관계

• 정말 다양한 사람들이 모여서 일하기 때문

• 사고 방식이 상당히 다른 아티스트, 게임 디자이너와 잘 통해야 함

– 핵심 비법은?

• 경청을 우선으로 긍정적으로 협력하려는 자세

• 아무리 실력이 좋아도 – 협업 능력에 문제 있다면 (레알 진심으로) 오지 말기를 추천

Page 27: NHN NEXT 2014년도 게임트랙 소개

One More Thing

• 게임에 대한 애정 어린(?) 관심 – 기술은 단지, 그 분야(도메인)를 받쳐주는 장치일 뿐

• 프로그래밍을 아무리 잘해도 게임에 대한 관심이 없으면…

• 시키는 것만 딱 하고 “난 몰라라~”하는 사람은 환영 받지 못함

• 자신의 잉여력을 알아서 투입(?)하는 열정적인 자세

– “이렇게 바꿔보면 좀 더 재미 있지 않을까?”

– 화제작이나 이슈가 되는 게임을 찾아가며 플레이 해보려고 노력

• 개발자 입장에서 생각해보기: “왜 이렇게 만들었을까?”

Page 28: NHN NEXT 2014년도 게임트랙 소개

자세와 적성

클라이언트 서버

Interpersonal Skills

소통과 협업

Continuous Improvement 끝없는 자기 계발

Passion for Games 게임에 대한 열정

계획적

끈기

추론에 능함

직관력

정면돌파 (정공법)

호기심

섬세함

감각적

적응력

임기응변 (재치)

플랫폼에 영향 많음 Breadth (잡기에 능함) 일단 만들고 보자

플랫폼에 영향 적음 Depth (난 한놈만 패) 치밀하게 설계하자

Page 29: NHN NEXT 2014년도 게임트랙 소개

그럼에도 불구하고,

• 이 길을 가고자 한다면, 꼭 확인 할 것 – 그냥 재미있을 것 같아서 게임을 만들려고 하는 것이 아닌지?

– 이거 아니면 안될 것 같은가?

• 진정 게임을 만들고 싶은 자만 환영 받음

• 이왕 게임 개발을 업으로 삼는다고 하면 – 본인이 반드시 잘 되어서 후배들의 롤 모델이 될 수 있어야 함

“게임 업계 선배들은 연봉 많이 받고, 잘사는 모습을 후배들에게 보여줘야 하는 의무가 있다. 오래된 선배들이 가난에 허덕이고 맨날 야근만 하는 모습을 보여준다면, 누가 이 업계에 미래가 있다는 희망을 품을 것인가?”

Page 30: NHN NEXT 2014년도 게임트랙 소개

감사합니다!

게임 전공 소개 시간에 겁줬다고 해서…

쫄지마~ 끝.