SlideShare a Scribd company logo
입문자를 위한
게임 개발 가이드
오동열
강사	소개
• PC MMORPG 해외 클라이언트 프로그래머( 2007 ~ )
• 아이폰 앱 개발 프로그래머( 2010 ~ )
• 모바일 게임 클라이언트 프로그래머( 2012 ~ )
• 소소한 게임들을 만들고 있는 중( 2019 ~ )
• https://blog.naver.com/eastfever5
이야기	할	것들
• 일반적인 게임 개발 사이클
• 효율적인 게임 개발 협업
• 게임 실행 최적화를 위한 기법
• 게임 프로그래밍 패턴
게임 개발 사이클
• 프로토타입
• 알파
• 베타
• 출시. 그리고 그 이후…
목표	정하기
• 게임의 컨셉과 장르 확인
• 핵심 플레이 확인
• 재미 있는가?
프로토타입
• 게임 개발 환경 구축
• 게임 컨텐츠 싸이클 완성
알파
게임	개발	환경	구축
• 노동을 투입하여 게임 제작에 필요한 컨텐츠/리소스 획득
• 최소한의 노동으로 원하는 결과를 빠르고 쉽게 얻어야 한다.
• 작업의 각 단계마다 중간 결과물을 쉽게 확인할 수 있어야 한다.
게임	컨텐츠	싸이클	완성
게임을 플레이
게임을 준비
플레이 결과와
보상 확인
플레이
동기
• 최적화
• 폴리싱
• 정식 판매/서비스 준비
• 업데이트 전략 수립&준비&미리 구현
베타
• 유저 피드백 대응
• 업데이트
출시,	그리고	그	이후…
게임 개발 사이클
Q&A
효율적인 게임 개발 협업
게임	개발	3요소
시스템
구현
리소스
제작
컨텐츠
제작
아티스트
프로그래머
기획자
• 각자가 잘 할 수 있는 일에 집중
• 프로그래머 독립적인 환경
• 데이터와 로직의 분리
효율을	위한	기본	원칙
툴	기반	개발
• WYSIWYG
• 서로 일 떠넘기기 위함이 아님
• 각자가 몰입할 수 있는 환경
• 기계가 할 수 있는 일은 기계가!
• 노력은 반드시 보상 받는다!
• 사람이 많을수록 그 혜택은 더욱 커진다!
자동화	시스템
이슈	핸들링
• 각 팀의 문화에 맞는 알맞은 방법 찾기
• 모두가 이슈에 접근할 수 있고 처리할 수 있는 사람은 바로 대응할 수 있도록
• 일일 / 주간 / 월간 / 마일스톤
• 이슈의 규격화 / 포맷화
• 참고링크 : https://trello.com/b/zyZ93t6h/
%EB%9F%B0%EC%96%B4%EC%9B%A8%EC%9D%B4%EC%A6%88-
%EB%B2%A0%ED%83%801%EC%B0%A8-4%EC%9B%94%ED%8F%90%EC
%87%84
효율적인 게임 개발 협업
Q&A
게임 실행 최적화 기법
• 로그는 최대한 자세히
• 장애 발생 원인은 쉽게 접근할 수 있도록
• 로그 분석 툴까지 있다면 금상첨화
단서를	남겨라
• 프로파일러 활용하기
• Update문안에 범인은 있다. 혹은 PixelShader…
파레토	법칙
• 미리 만들어 둔다.
• 재활용 한다.
• 메모리 생성/해제는 한 번만!
Pool
• 엔진 지원도 있지만 직접 해결해야 할 경우도 많다.
• 상황에 따라 주변을 제외한 모든 것들을 바이패스.
게임	오브젝트의	계층화
• 현실에는 해결할 수 없는 문제들이 많다.
• 시간과 자원은 한정되어 있기에 더욱 더 그렇다.
규모,	혹은	디테일의	포기
https://www.youtube.com/watch?v=CIrGcPFgGIk
게임 실행 최적화 기법
Q&A
게임 프로그래밍 패턴
개발에	도움을	주는	패턴들
• 싱글턴
• 팩토리
• 옵저버 / 리액티브
• 스테이트
• 활용보다는 자제할 것.
• 쉽게 접근할 수 있는 만큼, 쉽게 망칠 수 있다.
• 그런데 결국 안쓰기도 힘들더라.
싱글턴
• 제작을 위임.
• 오브젝트 풀. 사운드 풀.
• new남발을 피하고 좀 더 효율적인 생성을 도모.
팩토리
• 객체에 간접적으로 관여되어 필요한 것을 얻는다.
• 수시로 객체의 상태를 체크 안해도 됨.
• 리액티브 등의 편리한 도구들이 있다.
옵저버
• 상태별로 코드를 분리하여 관리
• switch문이 길어지고 있다면 도입을 고려
• 생성/갱신/소멸을 하나의 객체로서 관리
스테이트
책책책
게임 프로그래밍 패턴
Q&A
THANK YOU!

More Related Content

What's hot

[숭실대학교 SODA] Pair Programming(페어 프로그래밍)
[숭실대학교 SODA] Pair Programming(페어 프로그래밍) [숭실대학교 SODA] Pair Programming(페어 프로그래밍)
[숭실대학교 SODA] Pair Programming(페어 프로그래밍)
Soongsil University
 
2020년 09월 27일 특별 도서 증정 이벤트
2020년 09월 27일 특별 도서 증정 이벤트2020년 09월 27일 특별 도서 증정 이벤트
2020년 09월 27일 특별 도서 증정 이벤트
Jay Park
 
2021년 3월 27일 개발자 이야기
2021년 3월 27일 개발자 이야기2021년 3월 27일 개발자 이야기
2021년 3월 27일 개발자 이야기
Jay Park
 
(책 소개) 레거시 코드 활용 전략
(책 소개) 레거시 코드 활용 전략(책 소개) 레거시 코드 활용 전략
(책 소개) 레거시 코드 활용 전략
Jay Park
 
[Kgc12] 게임 개발자 랩소디 박민근
[Kgc12] 게임 개발자 랩소디 박민근[Kgc12] 게임 개발자 랩소디 박민근
[Kgc12] 게임 개발자 랩소디 박민근MinGeun Park
 
[이벤트] 게임 엔진 블랙 북: 울펜슈타인3D 증정
[이벤트] 게임 엔진 블랙 북: 울펜슈타인3D 증정[이벤트] 게임 엔진 블랙 북: 울펜슈타인3D 증정
[이벤트] 게임 엔진 블랙 북: 울펜슈타인3D 증정
Jay Park
 

What's hot (6)

[숭실대학교 SODA] Pair Programming(페어 프로그래밍)
[숭실대학교 SODA] Pair Programming(페어 프로그래밍) [숭실대학교 SODA] Pair Programming(페어 프로그래밍)
[숭실대학교 SODA] Pair Programming(페어 프로그래밍)
 
2020년 09월 27일 특별 도서 증정 이벤트
2020년 09월 27일 특별 도서 증정 이벤트2020년 09월 27일 특별 도서 증정 이벤트
2020년 09월 27일 특별 도서 증정 이벤트
 
2021년 3월 27일 개발자 이야기
2021년 3월 27일 개발자 이야기2021년 3월 27일 개발자 이야기
2021년 3월 27일 개발자 이야기
 
(책 소개) 레거시 코드 활용 전략
(책 소개) 레거시 코드 활용 전략(책 소개) 레거시 코드 활용 전략
(책 소개) 레거시 코드 활용 전략
 
[Kgc12] 게임 개발자 랩소디 박민근
[Kgc12] 게임 개발자 랩소디 박민근[Kgc12] 게임 개발자 랩소디 박민근
[Kgc12] 게임 개발자 랩소디 박민근
 
[이벤트] 게임 엔진 블랙 북: 울펜슈타인3D 증정
[이벤트] 게임 엔진 블랙 북: 울펜슈타인3D 증정[이벤트] 게임 엔진 블랙 북: 울펜슈타인3D 증정
[이벤트] 게임 엔진 블랙 북: 울펜슈타인3D 증정
 

Similar to 입문자를 위한 게임 개발 가이드

애자일 스크럼과 JIRA
애자일 스크럼과 JIRA 애자일 스크럼과 JIRA
애자일 스크럼과 JIRA
Terry Cho
 
[IGC 2017] 넥스트플로어 김영수 - Protocol:hyperspace Diver 개발 포스트모템
[IGC 2017] 넥스트플로어 김영수 - Protocol:hyperspace Diver 개발 포스트모템[IGC 2017] 넥스트플로어 김영수 - Protocol:hyperspace Diver 개발 포스트모템
[IGC 2017] 넥스트플로어 김영수 - Protocol:hyperspace Diver 개발 포스트모템
강 민우
 
용사는 진행중 포스트모템_KGC2014 발표자료
용사는 진행중 포스트모템_KGC2014 발표자료용사는 진행중 포스트모템_KGC2014 발표자료
용사는 진행중 포스트모템_KGC2014 발표자료
Dohyoung Kim
 
게임제작개론 8
게임제작개론 8게임제작개론 8
게임제작개론 8Seokmin No
 
[IGC2017] Protocol:hyperspace Diver 개발 포스트모템
[IGC2017] Protocol:hyperspace Diver 개발 포스트모템[IGC2017] Protocol:hyperspace Diver 개발 포스트모템
[IGC2017] Protocol:hyperspace Diver 개발 포스트모템
Young Soo Kim
 
게임제작개론 : #8 게임 제작 프로세스
게임제작개론 : #8 게임 제작 프로세스게임제작개론 : #8 게임 제작 프로세스
게임제작개론 : #8 게임 제작 프로세스
Seungmo Koo
 
Unity소개
Unity소개Unity소개
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
devCAT Studio, NEXON
 
NDC 2013, 마비노기 영웅전 개발 테크니컬 포스트-모템
NDC 2013, 마비노기 영웅전 개발 테크니컬 포스트-모템NDC 2013, 마비노기 영웅전 개발 테크니컬 포스트-모템
NDC 2013, 마비노기 영웅전 개발 테크니컬 포스트-모템tcaesvk
 
NDC17 장창완(최종)
NDC17 장창완(최종)NDC17 장창완(최종)
NDC17 장창완(최종)
창완 장
 
[오픈소스컨설팅]Session 6. scrum과 jira 기반의 소프트웨어 개발 프로세스
[오픈소스컨설팅]Session 6. scrum과 jira 기반의 소프트웨어 개발 프로세스[오픈소스컨설팅]Session 6. scrum과 jira 기반의 소프트웨어 개발 프로세스
[오픈소스컨설팅]Session 6. scrum과 jira 기반의 소프트웨어 개발 프로세스
Hee Jae Lee
 
커뮤니티와 함께한 예비개발자 성장기- 조성수님
커뮤니티와 함께한 예비개발자 성장기- 조성수님커뮤니티와 함께한 예비개발자 성장기- 조성수님
커뮤니티와 함께한 예비개발자 성장기- 조성수님
NAVER D2
 
애자일 게임 개발이란?
애자일 게임 개발이란?애자일 게임 개발이란?
애자일 게임 개발이란?
Kay Kim
 
[아이펀팩토리] 클라이언트 개발자, 서버 개발 시작하기
[아이펀팩토리] 클라이언트 개발자, 서버 개발 시작하기 [아이펀팩토리] 클라이언트 개발자, 서버 개발 시작하기
[아이펀팩토리] 클라이언트 개발자, 서버 개발 시작하기
iFunFactory Inc.
 
[KGC2011_박민근] 신입 게임 개발자가 알아야 할 것들
[KGC2011_박민근] 신입 게임 개발자가 알아야 할 것들[KGC2011_박민근] 신입 게임 개발자가 알아야 할 것들
[KGC2011_박민근] 신입 게임 개발자가 알아야 할 것들MinGeun Park
 
2020년 5월 9일 개발 이야기 정리
2020년 5월 9일 개발 이야기 정리2020년 5월 9일 개발 이야기 정리
2020년 5월 9일 개발 이야기 정리
Jay Park
 
2021년 4월 10일 개발자 이야기
2021년 4월 10일 개발자 이야기2021년 4월 10일 개발자 이야기
2021년 4월 10일 개발자 이야기
Jay Park
 
C++ 코드 품질 관리 비법
C++ 코드 품질 관리 비법C++ 코드 품질 관리 비법
C++ 코드 품질 관리 비법
선협 이
 
반복적인 코드 작업 자동화, Codebone으로 손쉽게
반복적인 코드 작업 자동화, Codebone으로 손쉽게반복적인 코드 작업 자동화, Codebone으로 손쉽게
반복적인 코드 작업 자동화, Codebone으로 손쉽게
Sungju Jin
 
오픈소스 소프트웨어 개발, 어디서부터 시작하는게 좋을까요? @ CNU(충남대)
오픈소스 소프트웨어 개발, 어디서부터 시작하는게 좋을까요? @ CNU(충남대)오픈소스 소프트웨어 개발, 어디서부터 시작하는게 좋을까요? @ CNU(충남대)
오픈소스 소프트웨어 개발, 어디서부터 시작하는게 좋을까요? @ CNU(충남대)
Jaewon Choi
 

Similar to 입문자를 위한 게임 개발 가이드 (20)

애자일 스크럼과 JIRA
애자일 스크럼과 JIRA 애자일 스크럼과 JIRA
애자일 스크럼과 JIRA
 
[IGC 2017] 넥스트플로어 김영수 - Protocol:hyperspace Diver 개발 포스트모템
[IGC 2017] 넥스트플로어 김영수 - Protocol:hyperspace Diver 개발 포스트모템[IGC 2017] 넥스트플로어 김영수 - Protocol:hyperspace Diver 개발 포스트모템
[IGC 2017] 넥스트플로어 김영수 - Protocol:hyperspace Diver 개발 포스트모템
 
용사는 진행중 포스트모템_KGC2014 발표자료
용사는 진행중 포스트모템_KGC2014 발표자료용사는 진행중 포스트모템_KGC2014 발표자료
용사는 진행중 포스트모템_KGC2014 발표자료
 
게임제작개론 8
게임제작개론 8게임제작개론 8
게임제작개론 8
 
[IGC2017] Protocol:hyperspace Diver 개발 포스트모템
[IGC2017] Protocol:hyperspace Diver 개발 포스트모템[IGC2017] Protocol:hyperspace Diver 개발 포스트모템
[IGC2017] Protocol:hyperspace Diver 개발 포스트모템
 
게임제작개론 : #8 게임 제작 프로세스
게임제작개론 : #8 게임 제작 프로세스게임제작개론 : #8 게임 제작 프로세스
게임제작개론 : #8 게임 제작 프로세스
 
Unity소개
Unity소개Unity소개
Unity소개
 
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
 
NDC 2013, 마비노기 영웅전 개발 테크니컬 포스트-모템
NDC 2013, 마비노기 영웅전 개발 테크니컬 포스트-모템NDC 2013, 마비노기 영웅전 개발 테크니컬 포스트-모템
NDC 2013, 마비노기 영웅전 개발 테크니컬 포스트-모템
 
NDC17 장창완(최종)
NDC17 장창완(최종)NDC17 장창완(최종)
NDC17 장창완(최종)
 
[오픈소스컨설팅]Session 6. scrum과 jira 기반의 소프트웨어 개발 프로세스
[오픈소스컨설팅]Session 6. scrum과 jira 기반의 소프트웨어 개발 프로세스[오픈소스컨설팅]Session 6. scrum과 jira 기반의 소프트웨어 개발 프로세스
[오픈소스컨설팅]Session 6. scrum과 jira 기반의 소프트웨어 개발 프로세스
 
커뮤니티와 함께한 예비개발자 성장기- 조성수님
커뮤니티와 함께한 예비개발자 성장기- 조성수님커뮤니티와 함께한 예비개발자 성장기- 조성수님
커뮤니티와 함께한 예비개발자 성장기- 조성수님
 
애자일 게임 개발이란?
애자일 게임 개발이란?애자일 게임 개발이란?
애자일 게임 개발이란?
 
[아이펀팩토리] 클라이언트 개발자, 서버 개발 시작하기
[아이펀팩토리] 클라이언트 개발자, 서버 개발 시작하기 [아이펀팩토리] 클라이언트 개발자, 서버 개발 시작하기
[아이펀팩토리] 클라이언트 개발자, 서버 개발 시작하기
 
[KGC2011_박민근] 신입 게임 개발자가 알아야 할 것들
[KGC2011_박민근] 신입 게임 개발자가 알아야 할 것들[KGC2011_박민근] 신입 게임 개발자가 알아야 할 것들
[KGC2011_박민근] 신입 게임 개발자가 알아야 할 것들
 
2020년 5월 9일 개발 이야기 정리
2020년 5월 9일 개발 이야기 정리2020년 5월 9일 개발 이야기 정리
2020년 5월 9일 개발 이야기 정리
 
2021년 4월 10일 개발자 이야기
2021년 4월 10일 개발자 이야기2021년 4월 10일 개발자 이야기
2021년 4월 10일 개발자 이야기
 
C++ 코드 품질 관리 비법
C++ 코드 품질 관리 비법C++ 코드 품질 관리 비법
C++ 코드 품질 관리 비법
 
반복적인 코드 작업 자동화, Codebone으로 손쉽게
반복적인 코드 작업 자동화, Codebone으로 손쉽게반복적인 코드 작업 자동화, Codebone으로 손쉽게
반복적인 코드 작업 자동화, Codebone으로 손쉽게
 
오픈소스 소프트웨어 개발, 어디서부터 시작하는게 좋을까요? @ CNU(충남대)
오픈소스 소프트웨어 개발, 어디서부터 시작하는게 좋을까요? @ CNU(충남대)오픈소스 소프트웨어 개발, 어디서부터 시작하는게 좋을까요? @ CNU(충남대)
오픈소스 소프트웨어 개발, 어디서부터 시작하는게 좋을까요? @ CNU(충남대)
 

입문자를 위한 게임 개발 가이드