2019.01.24 판도라큐브 세미나
제작자: 프로그래밍 파트 송민욱
코멘트: 없음
비고: 1일 2발표
판도라큐브는 세종대학교 소프트웨어융합대학 소속의 게임 제작 동아리입니다.
매주 회의마다 게임 제작과 관련된 주제로 세미나를 개최합니다.
모든 자료는 세미나 자료 제작자의 동의 하에 업로드됩니다.
세미나의 소유 및 책임은 제작자가 지닙니다.
목차
1. INTRODUCE
2. Platform
a. Northbound app & Interfaces
b. Controller Platform Services/Applications
i. Services & Applications
ii. Service Abstraction Layer/Core
c. Southbound Interfaces & Protocol Plugins
d. Data Plane Elements
3. ODL Multi Controller Distributed
4. Release Note
5. ODL & Tools Install
a. ODL install
b. Tool(Open vSwitch & Mininet) Install
6. ODL view
멀티플레이어 게임을 서비스하는 데 필요한 게임 장르별 백엔드 아키텍처에 대한 설명해 드립니다. 기본적인 게임의 상태 동기화 개념과 서버 구성에 관한 이야기, 게임 클라이언트 엔진(Unity, Lumberyard, Unreal Engine 등)에서 제공하는 복제 프레임워크를 통하여 손쉽게 게임 서버를 만드는 방법에 대한 내용을 다룹니다. 또한, 이렇게 만들어진 게임 서버를 Amazon GameLift라는 클라우드 서비스를 통해 DevOps형태의 비용 효율적으로 서비스하는 방법에 대해 소개합니다.
2020.01.20 판도라큐브 세미나
제작자: 프로그래밍 파트 김준우
코멘트: 두둥~ (보노보노 사진)
비고: (해달 선배와 함께 하는) 게임에 재미 요소 부여하기
판도라큐브는 세종대학교 소프트웨어융합대학 소속의 게임 제작 동아리입니다.
매주 회의마다 게임 제작과 관련된 주제로 세미나를 개최합니다.
모든 자료는 세미나 자료 제작자의 동의 하에 업로드됩니다.
세미나의 소유 및 책임은 제작자가 지닙니다.
2020.01.13 판도라큐브 세미나
제작자: 프로그래밍 파트 조재현
코멘트: 없음
비고: 없음
판도라큐브는 세종대학교 소프트웨어융합대학 소속의 게임 제작 동아리입니다.
매주 회의마다 게임 제작과 관련된 주제로 세미나를 개최합니다.
모든 자료는 세미나 자료 제작자의 동의 하에 업로드됩니다.
세미나의 소유 및 책임은 제작자가 지닙니다.
목차
1. INTRODUCE
2. Platform
a. Northbound app & Interfaces
b. Controller Platform Services/Applications
i. Services & Applications
ii. Service Abstraction Layer/Core
c. Southbound Interfaces & Protocol Plugins
d. Data Plane Elements
3. ODL Multi Controller Distributed
4. Release Note
5. ODL & Tools Install
a. ODL install
b. Tool(Open vSwitch & Mininet) Install
6. ODL view
멀티플레이어 게임을 서비스하는 데 필요한 게임 장르별 백엔드 아키텍처에 대한 설명해 드립니다. 기본적인 게임의 상태 동기화 개념과 서버 구성에 관한 이야기, 게임 클라이언트 엔진(Unity, Lumberyard, Unreal Engine 등)에서 제공하는 복제 프레임워크를 통하여 손쉽게 게임 서버를 만드는 방법에 대한 내용을 다룹니다. 또한, 이렇게 만들어진 게임 서버를 Amazon GameLift라는 클라우드 서비스를 통해 DevOps형태의 비용 효율적으로 서비스하는 방법에 대해 소개합니다.
2020.01.20 판도라큐브 세미나
제작자: 프로그래밍 파트 김준우
코멘트: 두둥~ (보노보노 사진)
비고: (해달 선배와 함께 하는) 게임에 재미 요소 부여하기
판도라큐브는 세종대학교 소프트웨어융합대학 소속의 게임 제작 동아리입니다.
매주 회의마다 게임 제작과 관련된 주제로 세미나를 개최합니다.
모든 자료는 세미나 자료 제작자의 동의 하에 업로드됩니다.
세미나의 소유 및 책임은 제작자가 지닙니다.
2020.01.13 판도라큐브 세미나
제작자: 프로그래밍 파트 조재현
코멘트: 없음
비고: 없음
판도라큐브는 세종대학교 소프트웨어융합대학 소속의 게임 제작 동아리입니다.
매주 회의마다 게임 제작과 관련된 주제로 세미나를 개최합니다.
모든 자료는 세미나 자료 제작자의 동의 하에 업로드됩니다.
세미나의 소유 및 책임은 제작자가 지닙니다.
2019.12.23 판도라큐브 세미나
제작자: 프로그래밍 파트 양수진
코멘트: 없음
비고: 없음
판도라큐브는 세종대학교 소프트웨어융합대학 소속의 게임 제작 동아리입니다.
매주 회의마다 게임 제작과 관련된 주제로 세미나를 개최합니다.
모든 자료는 세미나 자료 제작자의 동의 하에 업로드됩니다.
세미나의 소유 및 책임은 제작자가 지닙니다.
2019.11.12 판도라큐브 세미나
제작자: 프로그래밍 파트 김규리
코멘트: 쉐이더를 겉핡기로 알아봅시다.
비고: 없음
판도라큐브는 세종대학교 소프트웨어융합대학 소속의 게임 제작 동아리입니다.
매주 회의마다 게임 제작과 관련된 주제로 세미나를 개최합니다.
모든 자료는 세미나 자료 제작자의 동의 하에 업로드됩니다.
세미나의 소유 및 책임은 제작자가 지닙니다.
2019.11.05 판도라큐브 세미나
제작자: 프로그래밍 파트 문성현
코멘트: 없음
비고: 없음
판도라큐브는 세종대학교 소프트웨어융합대학 소속의 게임 제작 동아리입니다.
매주 회의마다 게임 제작과 관련된 주제로 세미나를 개최합니다.
모든 자료는 세미나 자료 제작자의 동의 하에 업로드됩니다.
세미나의 소유 및 책임은 제작자가 지닙니다.
2019.10.29 판도라큐브 세미나
제작자: 프로그래밍 파트 박기춘
코멘트: 없음
비고: 없음
판도라큐브는 세종대학교 소프트웨어융합대학 소속의 게임 제작 동아리입니다.
매주 회의마다 게임 제작과 관련된 주제로 세미나를 개최합니다.
모든 자료는 세미나 자료 제작자의 동의 하에 업로드됩니다.
세미나의 소유 및 책임은 제작자가 지닙니다.
2019.10.01 판도라큐브 세미나
제작자: 프로그래밍 파트 김건
코멘트: 없음
비고: Wow!
판도라큐브는 세종대학교 소프트웨어융합대학 소속의 게임 제작 동아리입니다.
매주 회의마다 게임 제작과 관련된 주제로 세미나를 개최합니다.
모든 자료는 세미나 자료 제작자의 동의 하에 업로드됩니다.
세미나의 소유 및 책임은 제작자가 지닙니다.
2019.09.24 판도라큐브 세미나
제작자: 프로그래밍 파트 김건
코멘트: 없음
비고: 선형 보간법에 관한 내용입니다.
판도라큐브는 세종대학교 소프트웨어융합대학 소속의 게임 제작 동아리입니다.
매주 회의마다 게임 제작과 관련된 주제로 세미나를 개최합니다.
모든 자료는 세미나 자료 제작자의 동의 하에 업로드됩니다.
세미나의 소유 및 책임은 제작자가 지닙니다.
2019.09.10 판도라큐브 세미나
제작자: 기획 파트 조경열
코멘트: 영상을 급하게 찍어서 넣어봤는데, 영상 퀄리티가 떨어지는 점 양해 부탁드립니다.
ppt치고 용량이 큰 편이므로 다운로드 시 유의해주세요.
비고: 없음
판도라큐브는 세종대학교 소프트웨어융합대학 소속의 게임 제작 동아리입니다.
매주 회의마다 게임 제작과 관련된 주제로 세미나를 개최합니다.
모든 자료는 세미나 자료 제작자의 동의 하에 업로드됩니다.
세미나의 소유 및 책임은 제작자가 지닙니다.
2019.09.03 판도라큐브 세미나
제작자: 프로그래밍 파트 이명석
코멘트: 입부한지 1년인데 벌써 세 번째 세미나네요.
곧 경고차감세미나로 또 만날 예정입니다.
비고: 없음
판도라큐브는 세종대학교 소프트웨어융합대학 소속의 게임 제작 동아리입니다.
매주 회의마다 게임 제작과 관련된 주제로 세미나를 개최합니다.
모든 자료는 세미나 자료 제작자의 동의 하에 업로드됩니다.
세미나의 소유 및 책임은 제작자가 지닙니다.
2019.08.19 판도라큐브 세미나
제작자: 프로그래밍 파트 이진호
코멘트: 없음
비고: 없음
판도라큐브는 세종대학교 소프트웨어융합대학 소속의 게임 제작 동아리입니다.
매주 회의마다 게임 제작과 관련된 주제로 세미나를 개최합니다.
모든 자료는 세미나 자료 제작자의 동의 하에 업로드됩니다.
세미나의 소유 및 책임은 제작자가 지닙니다.
2019.08.12 판도라큐브 세미나
제작자: 기획 파트 김혜연
코멘트: 없음
비고: 없음
판도라큐브는 세종대학교 소프트웨어융합대학 소속의 게임 제작 동아리입니다.
매주 회의마다 게임 제작과 관련된 주제로 세미나를 개최합니다.
모든 자료는 세미나 자료 제작자의 동의 하에 업로드됩니다.
세미나의 소유 및 책임은 제작자가 지닙니다.
2019.08.05 판도라큐브 세미나
제작자: 프로그래밍 파트 이상우
코멘트: 없음
비고: 없음
판도라큐브는 세종대학교 소프트웨어융합대학 소속의 게임 제작 동아리입니다.
매주 회의마다 게임 제작과 관련된 주제로 세미나를 개최합니다.
모든 자료는 세미나 자료 제작자의 동의 하에 업로드됩니다.
세미나의 소유 및 책임은 제작자가 지닙니다.
2019.07.29 판도라큐브 세미나
제작자: 기획 파트 방재현
코멘트: 발표를 진행한 후, 31일날 NC소프트에서 오토배틀러 관련하여 글을 게시했습니다. 본 발표보다 오토배틀러에 대해 더 자세한 내용을 알고 싶으신 분은 링크를 참고하여주시기 바랍니다.
LINK: 게임 디자인 레벨업 #18: https://blog.ncsoft.com/game-design-levelup-18-20190731/
비고: 없음
판도라큐브는 세종대학교 소프트웨어융합대학 소속의 게임 제작 동아리입니다.
매주 회의마다 게임 제작과 관련된 주제로 세미나를 개최합니다.
모든 자료는 세미나 자료 제작자의 동의 하에 업로드됩니다.
세미나의 소유 및 책임은 제작자가 지닙니다.
2019.07.22 판도라큐브 세미나
제작자: 프로그래밍 파트 박기웅
코멘트: 없음
비고: 없음
판도라큐브는 세종대학교 소프트웨어융합대학 소속의 게임 제작 동아리입니다.
매주 회의마다 게임 제작과 관련된 주제로 세미나를 개최합니다.
모든 자료는 세미나 자료 제작자의 동의 하에 업로드됩니다.
세미나의 소유 및 책임은 제작자가 지닙니다.
2019.07.15 판도라큐브 세미나
제작자: 프로그래밍 파트 나원준
코멘트: 없음
비고: 없음
판도라큐브는 세종대학교 소프트웨어융합대학 소속의 게임 제작 동아리입니다.
매주 회의마다 게임 제작과 관련된 주제로 세미나를 개최합니다.
모든 자료는 세미나 자료 제작자의 동의 하에 업로드됩니다.
세미나의 소유 및 책임은 제작자가 지닙니다.
2019.07.01 판도라큐브 세미나
제작자: 프로그래밍 파트 강승곤
코멘트: 없음
비고: 없음
판도라큐브는 세종대학교 소프트웨어융합대학 소속의 게임 제작 동아리입니다.
매주 회의마다 게임 제작과 관련된 주제로 세미나를 개최합니다.
모든 자료는 세미나 자료 제작자의 동의 하에 업로드됩니다.
세미나의 소유 및 책임은 제작자가 지닙니다.
2019.06.24 판도라큐브 세미나
제작자: 프로그래밍 파트 이정민
코멘트: 떼돈 벌즈아
비고: 없음
판도라큐브는 세종대학교 소프트웨어융합대학 소속의 게임 제작 동아리입니다.
매주 회의마다 게임 제작과 관련된 주제로 세미나를 개최합니다.
모든 자료는 세미나 자료 제작자의 동의 하에 업로드됩니다.
세미나의 소유 및 책임은 제작자가 지닙니다.
2019.05.28 판도라큐브 세미나
제작자: 기획 파트 김종성
코멘트: 야 재밌는 이야기 좀 해봐라
비고: 없음
판도라큐브는 세종대학교 소프트웨어융합대학 소속의 게임 제작 동아리입니다.
매주 회의마다 게임 제작과 관련된 주제로 세미나를 개최합니다.
모든 자료는 세미나 자료 제작자의 동의 하에 업로드됩니다.
세미나의 소유 및 책임은 제작자가 지닙니다.
2019.05.21 판도라큐브 세미나
제작자: 프로그래밍 파트 권혁재
코멘트: 인디게임계에서 자주 쓰이고 있는 '게임메이커(GameMaker)'에 대해 간단히 알아보는 시간을 가져보는 건 어떨까요?
비고: 19관리자의 두번째 발표입니다. 다른 발표와 마찬가지로 움짤이나 이벤트 등이 삽입되어있으므로 받아서 보는게 더 좋을 것으로 예상됩니다.
아...진짜 못만들었네...
판도라큐브는 세종대학교 소프트웨어융합대학 소속의 게임 제작 동아리입니다.
매주 회의마다 게임 제작과 관련된 주제로 세미나를 개최합니다.
모든 자료는 세미나 자료 제작자의 동의 하에 업로드됩니다.
세미나의 소유 및 책임은 제작자가 지닙니다.
2. 목차
■ 서버는 무엇인가
■ 데이터 통신 프로토콜 UDP vs TCP
■ 어떤 네트워크 통신 구조들을 이용하는가
■ 클라이언트-서버 구조
■ Thin-Client 모델 vs Fat-Client 모델
2/20
3. 서버는 무엇인가
■ 서버의 역할:
– 서버는 클라이언트에게 네트워크
를 통해 정보나 서비스를 제공하
는 역할을 프로그램을 의미한다.
설마 이게 서버?
3/20
4. 서버는 무엇인가
■ 고전적 정의(위키피디아)
– 클라이언트: 고객, 무언가를 요청하는 사람
– 서버: 서빙하는 사람, 요청받은 것을 제공하는 사람
4/20
5. 데이터 통신 프로토콜 UDP vs TCP
■ UDP는 매우 빠른 속도(ping)을 가지고 있지만 데이터를 전송하다가 손실되거나 사라질 수
도 있음
■ TCP는 상대적으로 느린 속도(ping)을 가지지만 데이터를 전송하다가 손실되거나 사라지지
않음
– 정확히는 오류가 발생하면 다시 전송함
■ 아주 오랜 옛날, 게임 서버에선 TCP와 UDP 둘 다를 이용했음
■ 한국같이 네트워크가 좋은 지역은 TCP를, 미국에선 대체로 UDP를?....
■ 그리고 요즘처럼 전반적으로 네트워크 품질이 향상되고 나서는 대부분 TCP를 사용한다는…
인터넷 썰도 있음
■ 아마 TCP가 개발이 쉬워서 빨리 개발할 수 있으니 TCP로 몰린게 아닐까 하는 개인적인 생각
5/20
6. 어떤 네트워크 통신 구조들을 이용하는가
■ C/S구조: 서버가 나머지 클라이언트들을 제어하는 것
■ P2P구조: 서로가 서로에게 영향을 주는 것
■ 현재 P2P는 이제 점점 사양하는 추세임
– 1. 서버를 구축하는데 가격이 말도 안되게 줄어들음
– 2. 다들 공유기를 기본으로 장착하고 있어서 연결이 안 됨
■ 공유기가 있으면 원하는 PC에 직접적으로 접근할 방법이 없음
클라이언트-서버(C/S) Peer to Peer(P2P)
6/20
7. 클라이언트-서버 구조
■ 서비스를 제공하는 서버가 다수의 클라이언
트들 각각에게 요청에 따른 서비스를 제공
하는 것
■ 대체로 공개된 고정IP를 가지고 있음(*중요*)
– 대학교나 집에서 서버를 열었을 때 외
부에서 접속이 안 되는 가장 큰 이유
■ 대표적으로 웹서버나 게임서버, 애플리케
이션 서버 등… 이 존재함
7/20
8. Thin-Client 모델 vs Fat-Client 모델
■ Thin-Client: 중요 데이터 처리는 서버에 맡기고 단순한 역할
들만 수행함
■ Fat-Client: 중요 데이터 처리를 클라이언트에서 담당하고
서버는 단순히 데이터 취합 및 전달 등의 역할만 맡음
8/20
9. Thin-Client 모델 vs Fat-Client 모델
- 장단점
■ Thin-Client:
– 장점: 클라이언트가 변조되더라도 서버나 다른 유저들은
영향을 받지 않음
– 단점: 에러 확인 과정 및 기능 구현 때문에 서버의 부하가
증가함
■ Fat-Client:
– 장점: 서버의 부하가 줄어든다
– (저렴한비용으로 서버 구축이 가능)
– 단점: 클라이언트를 변조할 경우 그대로 변조된 데이터가 돌
아다님 9/20
11. Fat-Client 모델
- 서든어택의 경우
■ 멀티 할 때 방장 컴퓨터 사양이 나쁘면 게임 전체가 느려진
다는 것을 바탕으로 서버는 아무런 일을 하지 않는다는 것을
유추 가능
■ 만약 방장 컴퓨터 혹은 유저 컴퓨터를 조작하면?
■ 다음과 같은 일 들이 발생 가능함
11/20
14. Fat-Client 모델
- 특징
■ 위의 두 게임 모두 클라이언트에서 캐릭터 이동, 아이템 소
모, 공격 등 여러가지 연산 들을 담당하기 때문에 발생함
■ 클라이언트에서 캐릭터가 벽을 무시하고 이동하려고 해도
– 서버에서 확인하고 판단하지 않기 때문에 그대로 허용함
■ 만약 체력도 클라이언트에서 담당한다면 캐릭터를 무적으로
만들 수도 있음
14/20
15. Thin-Client 모델
- 을 사용한 게임들
■ 월드오브탱크
■ 월드오브워크래프트
■ 하스스톤
■ 리그오브레전드
■ 작업장은 있지만 핵은 아주 소수
15/20
16. Thin-Client 모델
- 월드오브탱크의 경우
■ 대략 9년간 운영한 게임
■ 그러나 지금까지 단 한번도 핵이 개발된 적이 없음
■ 특징
■ 매우 강한 Thin-client 모델을 가지고 있음
– 플레이어의 시점과 이동 방향, 속도까지 서버의 통제를
받음
– 플레이어가 어디를 조준하는지, 어디를 향하는지 모두
전술적 요소가 되기 때문 16/20
17. Thin-Client 모델
- 하스스톤의 경우
■ 단순한 카드 게임이기 때문에 클라이언트에서 계산할 것 들
이 별로 없음
■ 특징
■ 모든 연산을 서버에서만 하는 Thin-client 모델을 선택했기
때문에, 매주 클라이언트 업데이트 없이 새로운 모드 플레이
가 가능
17/20
18. Thin-Client 모델
- 리그오브레전드
■ Thin-client 모델이고 TCP를 사용하기 때문에 ping의 영향을
많이 받는 게임
■ 마우스 커서를 제외한 모든 것이 서버의 제어 하에 있음
■ 그러나 클라이언트에게 너무나 과다한 정보를 제공하기 때
문에 스킬 쿨타임 표시 핵 등이 개발됨
18/20
19. Thin-Client Fat-Client 혼합 모델
■ 요즘 많이 쓰이는 추세
■ PUBG, 마인크래프트 외 여러 게임들이 Fat과 Thin의 경계선
사이에 있음
■ 일부 필수적인 돈, 거래, 아이템 등은 서버에서 제어하고,
■ 낮은 Ping이 중요하거나 많은 부하가 드는 캐릭터 움직임, 시
점 등은 클라이언트에서 제어하는것
19/20
20. Thin-Client Fat-Client 혼합 모델
- (cont.)
■ 일반적인 개발일 경우 가장 이상적인 경우임
■ 개발 비용과 시간이 적게 들고 치명적인 핵이나 치트들을 막을
수 있기 때문
■ 게다가 PUBG처럼 일부 요소를 자바스크립트로 개발하면 완전한
Thin클라이언트가 아님에도 업데이트 없이 게임 요소 변경이 가
능함
■ 단점
■ 애매하게 개발할 경우 PUBG처럼 여러가지 핵 들이 개발될 수 도
있음 20/20