스타트업 프로젝트를 위한 
유니티 게임 개발 
2014.9.18 
박민근
알콜코더 박민근(@agebreak) 
NHN NEXT 게임 전공 교수 
쿠키 소프트 – 모바일 격투게임 프로젝트 (Unity) 
네오위즈 게임즈 - 야구의 신 개발 
NTL-inc - 드래곤볼 온라인 개발 
엔씨소프트 – PlayNC 빌링 서버 개발 
‘신입 게임 개발자의 서울 상경기’ 
(http://agebreak.blog.me) 
‘초중급 게임 개발자 스터디 (데브루키)’ 
(cafe.naver.com/devrookie) 
게임 개발자 랩소디 (팟캐스트) 
(http://www.podbbang.com/ch/3921) 
게임 클라이언트 프로그래머 
30대… 그리고 오타쿠 프로그래머... 
언젠가는 우즈벡에.. 일류젼 우즈벡 지사를 설립할 예정
오늘 이야기… 
1. 유니티 소개 
2. 개발과 출시, 경험에 대한 이야기 (서형석) 
3. UNITY 2D 살펴 보기 
4. 유니티가 당신에게 알려주지 않는 진실 (이득우) 
5. 유니티와 PLAYMAKER를 이용한 쉽고 빠른 게임 개발
유니티 처음 사용해보면.. 
• 간편한 에디터 
• 드래그 몇 번 하고, 스크립트 작업 잠깐으로 뚝딱뚝딱!! 오오옷~!! 
• 간단하고 손쉬운 개발 
• 필요한건 다 되어 있다. 어려운 프로그래밍 지식이 필요 없다. 
• 에셋스토어 짱짱~!! 필요한거 다있음!!
유니티 처음 사용해보면..
유니티 게임 만들다 보면…
UNITY 
간단한 게임이나 프로토타입 만들기엔 짱!! 
하지만 정말 제대로 게임 만들다보면… 
제대로 이해하고 해야 되는게 한두가지가 
아님.
Unity – 소개
Unity 
유니티? 
- 덴마크 출신의 3명의 개발자들이 개발한 게임엔진 
- 사용자 친화적 인터페이스와 멀티플랫폼 지원의 용이함으로 전 세계적 
으로 인기를 얻게됨 
- 최근 PSP Vita, PS4용 유니티를 무료로 하는 등 
매우 공격적인 활보를 보임 
(2014.7. 현재까지는 US, Mexico, Central America, South America, Canada 만 지원)
Unity 
유니티 사용자가 많은 이유 
- 툴 형태로 제공되는 사용자 친화적 인터페이스 
- 오픈 커뮤니티와 어셋스토어 
- 비교적 저렴했던 가격(무료로도 사용 가능)
Unity – 개발된 프로젝트 
● 템플런 
- 이만지 스튜디오(Imangi Studios)에서 개발한 무한 달리기 게임 
- 전 세계 5억다운로드를 이룬 게임
Unity – 개발된 프로젝트 
● 쉐도우 건(Shadow Gun) 
- 매드핑거 개발 
- 유니티의 기술력을 내세우기 위해 
제작된 게임
Unity – 개발된 프로젝트 
● 언데드 슬레이어(Undead Slayer) 
- 하이디어 김동규 대표 1인 개발. 
- 유니티를 통한 1인 개발의 대표적인 사례
Unity – 개발된 프로젝트 
● 게임 외의 분야
Unity – 용어정리 
- 씬(Scene) 
▷ 게임의 장면 또는 상태를 유니티에서 관리하는 단위 
▷ 씬 관리를 통해서 게임의 레벨 및 상태를 구분 
- 어셋(Asset) 
▷ 엔진에서 사용되는 모든 자원(Resources) 
▷ Resources : 3d model, audio, texture etc..
Unity – 용어정리 
- 게임오브젝트(GameObject) 
▷ 어셋의 기능을 처리하기 위한 오브젝트 
▷ 모든 게임오브젝트는 게임 공간상에 존재하기 위해 
Transform 컴퍼넌트를 지님 
- 스크립트(Script)와 컴퍼넌트(Component) 
▷ 구현된 각각의 기능들을 컴퍼넌트라 호칭 
▷ 사용자들은 컴퍼넌트를 구현하고 게임오브젝트에 추가하여 
기능을 동작시킴
Unity – 용어정리 
- 프리팹(Prefab) 
▷ 게임오브젝트에 구성된 기능들을 패키지화 시킨 어셋 
▷ 씬에 배치된 프리팹들은 항상 원본 데이터를 기준으로 동작하나, 
필요에 따라 해당 링크를 끊을 수 있음
Unity – 사용자 인터페이스
Unity – 사용자 인터페이스
Unity – 사용자 인터페이스 
- 씬(Scene) 뷰 
▷ 3D 세상을 편집하기 위한 편집 뷰 
▷ 오브젝트 배치, 회전, 크기 조절 등 
게임을 개발함에 있어 항상 주시하게 되는 뷰 
- 게임(Game) 뷰 
▷ 게임이 구성되고 최종적으로 보여지는 뷰 
▷ 이 뷰를 통해 실제 개발된 게임의 모습을 확인하거나 컨트롤이 가능
Unity – 사용자 인터페이스 
- 계층(Hierachy) 뷰 
▷ 씬뷰 상에 배치된 수많은 오브젝트의 목록을 표시하는 리스트 뷰 
▷ 게임상의 오브젝트 관리를 용이하게 하기 위해 
계층구조로 관리를 가능케 하는 뷰 
- 프로젝트(Project) 뷰 
▷ 게임을 구성하는 다양한 어셋을 관리하기 위한 뷰 
▷ 유니티 엔진에서 유일하게 하드디스크와 링크된 뷰
Unity – 사용자 인터페이스 
- 인스펙터(Inspector) 뷰 
▷ 선택된 기능 또는 게임오브젝트의 컴퍼넌트 내용을 보여주는 에디터 뷰 
▷ 코드 수정 없이 인스펙터 뷰 상에 보여지는 값을 수정하여 테스트 가능
Unity – 에디터
Unity – 에디터
[UNITE2014] 개발과 출시 경험에 대한 이야기
이것은 단지 경험에 관한 이야기입니다.
인원 : 프로그래머 2 명 
2012. 2. [쉐도우진 닌자보이] 출시. 
2012. 10. [셀레스티얼 리그] 개발. 
2014. 2. [세이빙 몬스터즈 for AfreecaTV] 출시.
강연의 목적 
너무 힘들었기 때문에 이야기를 해보고 싶었습니다.
SAVING 
MONSTERS 
지금부터 이 게임에 대한 개발 경험을 나누고자 합니다.
게임 개발 과정 
2012. 11. 개발시작 - 좋아하는 게임을 만들자
게임 개발 과정 
2012. 11. 개발시작 
가제 – 인피니티 타워
게임 개발 과정 
2012. 11. 개발시작 
2013. 3. 프로토 타입 완성
게임 개발 과정 
2012. 11. 개발시작 
2013. 3. 프로토 타입 완성 
2013. 4. UNITE 2013 
바람 주자 
3D ?
우리가 만들던 것은 …
게임 개발 과정 
2012. 11. 개발시작 
2013. 3. 프로토 타입 완성 
2013. 4. UNITE 2013 
2013. 5. 대격변 ! 
1) 카메라 구조 변경 
2) 3 Line 구성 
3) 통쾌함을 주자! 
4) 타워의 제거
게임 개발 과정 
2012. 11. 개발시작 
2013. 3. 프로토 타입 완성 
2013. 4. UNITE 2013 
2013. 5. 대격변 ! 
2013. 6. 고난(苦難)의 시기
좋은 인연들을 만나다
게임 개발 과정 
2012. 11. 개발시작 
2013. 3. 프로토 타입 완성 
2013. 4. UNITE 2013 
2013. 5. 대격변 ! 
2013. 6. 고난(苦難)의 시기 
2013. 7. 퍼블리싱 계약
게임 개발 과정 
2012. 11. 개발시작 
2013. 3. 프로토 타입 완성 
2013. 4. UNITE 2013 
2013. 5. 대격변 ! 
2013. 6. 고난(苦難)의 시기 
2013. 7. 퍼블리싱 계약 
2013. 10. FGT
게임 개발 과정 
2012. 11. 개발시작 
2013. 3. 프로토 타입 완성 
2013. 4. UNITE 2013 
2013. 5. 대격변 ! 
2013. 6. 고난(苦難)의 시기 
2013. 7. 퍼블리싱 계약 
2013. 10. FGT 
2014. 2. 아프리카 TV 출시
출시 직전 
여유로운 시간을 즐기다 
진실은 폭풍 전야..
출시 직후 
출시에 대한 행복감 
출시 소식 전달
지옥문이 열리게 됩니다..
출시 직후 
무한 로딩 
아프리카 TV 장애/버그 신고 발췌
출시 직후 
무한 로딩 
- 원인 
1. AWS 설정 실수 
2. AWS 웹 서버 재부팅을 하려 했으나..
출시 직후 
무한 로딩 
- 대응 
1. 퍼블리셔 분들을 토요일에 출근하시도록 하여 긴급 패치… 
다시 한번 사과 드리며, 
빠른 대응에 진심으로 감사 드립니다..
발생한 문제들 
메모리 치트 
- 원인 
1. 경험에 대한 자만 
2. 예상치 못한 해킹 방식
발생한 문제들 
메모리 치트 
- 대응 
1. 치트 유저 밴 
2. 치트 프로그램 리스트 갱신 
3. 메모리 치트 예방책 강화 
4. 서버단에서 주요 로직 처리
발생한 문제들 
DB 문제 
- 상황 
1. 한 순간 치트 유저수가 급격히 증가 
2. 모든 데이터 수치가 똑같다?!
발생한 문제들 
DB 문제 
- 사실상 가장 심각했던 문제 
1. 원인 파악이 안 되는 상황…
발생한 문제들 
DB 문제 
- 그럼 어떻게 문제를 파악했나? 
1. 메모리 치트 대응 중 
대화를 통한 한 순간의 번뜩임 
“어?! 이거 알 것 같아!!” 
사실상 운이 좋았습니다.
발생한 문제들 
DB 공격 
- SQL Injection
발생한 문제들 
DB 공격 
- 대응은 했지만.. 
확인을 하는 과정이 
어려웠다..
발생한 문제들 
웹 서버 파일 업로드 문제 
- 파일 서버로 파일 전송시 빈 파일로 올라가는 문제발생 
- 웹 서버가 제거된 상황과 동일한 상황…
발생한 문제들 
웹 서버 파일 업로드 문제 
- 대응은? 
1. 친구에게 질의
발생한 문제들 
웹 서버 파일 업로드 문제 
- 친구의 대답 
“로그를 살펴봐~” 
- 그리고 찾은 이상한 점 
“어?!! 
로그파일 용량이 6기가네?”
발생한 문제들 
웹 서버 파일 업로드 문제 
- 원인 
웹 서버 용량 초과 문제 
php 에러가 지속적으로 로그를 생성
발생한 문제들 
렉 이슈 
- 몇몇 기기에서 게임이 불가능 할 정도의 렉이 간혹 발생 
- 최신 기종에서 특히 발생
발생한 문제들 
렉 이슈 
- 원인 추정
발생한 문제들 
렉 이슈 
- 대응 
Unity 4.3 ▶ Unity 4.2 
Everyplay 제거
현재 
평온한 상태 유지 중
국내 출시로 얻은 것들 
10만 이상의 다운로드 
평점 4.1 
BM 구조의 문제 파악 
업데이트에 대한 빠른 피드백 - 약 4400개의 소중한 의견
알수 없던 것들 
게임의 사용자들
잘못한 부분 
생각지 못하게 길어진 개발 기간 
3D 게임 개발 비용 산정 오류 
서버 지식의 부재 
BM 설계 
해킹에 대한 대응 부족 
팀내 아티스트의 부재
앞으로의 계획 
해외 출시 준비 
규모에 맞는 게임 개발
하지만..
하지만.. 아직은…
Unity 2D 
살펴보기 
2013.12.14 
초중급 게임개발자 스터디 
<데브루키> 
알콜코더 박민근
http://www.slideshare.net/gukhwanji/unity2d
http://www.slideshare.net/gukhwanji/unity2d
근데 테스트 해본 결과 PlayMaker만큼은 못함..ㅡ.ㅡ;; 
애니메이션 State만 제어 가능 할 뿐.. 
http://www.slideshare.net/gukhwanji/unity2d
1.2D Project의 생성 
2.2D Sprite Resource 
3.Sprite Slice 
4.Sprite 애니메이션 
5.2D 스켈레톤 애니메이션 
6.Animator 
7.2D 피직스 컴포넌트 (물리 충돌)
시연과 동영상 위주 입니다. ^^~~
http://www.youtube.com/watch?v=B1F6fi04qw8&list=PL8F6B414B065FDE58&index=19
http://www.youtube.com/watch?v=ksoGW2 
j2E0Q&list=PL8F6B414B065FDE58&index 
=18
1.2D Project의 생성 
2.2D Sprite Resource 
3.Sprite Slice 
4.Sprite 애니메이션 
5.2D 스켈레톤 애니메이션 
6.Animator 
7.2D 피직스 컴포넌트 (물리 충돌)
2D 프로젝트의 생성
Scene – 2D Mode 버튼 추가 
• Scene View를 2D 모드로 고정 
• 무브툴을 2D 이동으로 변경 
• Picking이 알파 기반으로 동작 
• Sprite를 씬에 끌어다 놓으면, 새로운 GameObject 생성
2D 스프라이트 리소스
2D 스프라이트 렌더러
스프라이트 에디터 
Texture Atlas를 관리하고, 각각의 스프라이트로 Slice 한다
스프라이트 에디터
스프라이트 에디터 - Slice 
Atlas를 각각의 스프라이트로 자른다. 
크기를 설정할 수 있다. 
중심 위치(Pivot) 설정. 
Trim을 이용해서 자동 설정 가능!! 
Wow!~!~!
스프라이트 에디터 – Auto Slice
스프라이트 Slice 
Slice 된 스프라이트는 따로 사용 할 수 있고, 
애니메이션으로 사용할 수 있다.
2D 애니메이션
http://www.slideshare.net/gukhwanji/unity2d
http://www.slideshare.net/gukhwanji/unity2d
http://www.slideshare.net/gukhwanji/unity2d
스프라이트 애니메이션 
표준 도프 시트(dope Sheets) 모양으로 애니메이션을 설정 
스프라이트 체인지, 이동, 회전등 모든 속성을 변경하여, 애니메이션 가능
스프라이트 애니메이션 
여러 개의 스프라이트를 선택 후, 
씬에 끌어다 놓으면, 
스프라이트 애니메이션 자동 생성!!
스켈레톤 애니메이션 
앞의 Unite 2013 2D Workflows 동영상 참조
2D Physics
Animator 
http://www.slideshare.net/gukhwanji/unity2d
Animator 
http://www.slideshare.net/gukhwanji/unity2d
Animator 
http://www.slideshare.net/gukhwanji/unity2d
Animator 
http://www.slideshare.net/gukhwanji/unity2d
Animator 
각 상태(State) 애니메이션 세트를 정의 
각 상태의 변경 조건을 정의 한다
간단한 Unity 2D 프로젝트 샘플 
트리거 이벤트 
트리거 이벤트 
트리거 발동 
-> State 변경
간단한 Unity 2D 프로젝트 샘플 
http://agebreak.url.ph/Bin.html
간단한 Unity 2D 프로젝트 샘플 
http://agebreak.url.ph/Puyon_Web.html
Unity2D의 장점 
• 추가 플러그인(2D ToolKit)의 구입 없이, 2D 게임 개발 가능 
• 유니티의 기능이기 때문에, 완벽하게 유니티와 통합 
• 2D Physics 가 유니티 자체에서 잘 지원 되어 있음 
• Sprite의 관리가 용이함 (Sprite Editor, Sprite Packer) 
• 현재로서는 버그가 좀 있긴 하지만, 앞으로 발전 가능성
참고자료 
• Unity2D 소개(KGC13)_지국환 http://www.slideshare.net/gukhwanji/unity2d 
• Unity2D Workflowhttp://www.youtube.com/watch?v=B1F6fi04qw8&list=PL8F6B414B065FDE58&index=19 
• Unity2D 튜토리얼(한글 자막) http://www.youtube.com/watch?v=ksoGW2j2E0Q&list=WL60F612FCDB928D04 
• 유니티 4.3 릴리즈 노트 http://korea.unity3d.com/content/content.php?cont=new_unity10 
• Unity2D 샘플 1 (by 알콜코더) http://agebreak.url.ph/Bin.html 
• Unity2D 샘플 2 (by 알콜코더) http://agebreak.url.ph/Puyon_Web.html
http://www.slideshare.net/MrDustinLee/ss-27739454
FSM/AI 등을 에디터에서 드래그&드랍만으로 
제작할 수 있는 비주얼 스크립팅 애드온
어떤 물건인지.. 보고 이야기 합시다~
이걸로 뭘 할 수 
있을까요?
어디 한번 배워봅시다
주요 개념 
• FSM 
• STATE 
• ACTION 
• EVENT & TRANSITION 
• VARIABLE
FSM
FSM 
• GameObject에 부착되는 PlayMaker 컴포넌트 
• PlayMaker Browser에서 FSM을 마우스 우측클릭으 
로 생성하면 자동으로 생성된다. 
• 한 FSM내에 여러 스테이트와 Action들을 정의한다
FSM 
• 한 오브젝트내에 복수개의 FSM 컴포넌트 생성 가능 
• 각가의 FSM이 일종의 레이어처럼 사용 할 수 있다. 
• FSM 1 – 캐릭터의 상태 변화 제어 
• 축소, 확대, 변신, 무적… 
• FSM 2 – 캐릭터의 행동 변화 제어 
• 이동, 달리기, 점프, 공격…
STATE (1)
STATE (2)
STATE 
• 오브젝트의 각 상태를 정의한다 
• IDLE, 이동, 점프, 공격, 피격, 죽음… 
• 각 상태는 그 상태에서 작동하는 Action들을 추가할 
수 있다. (상태에 따라 Action이 없을 수도 있다) 
• 설정된 EVENT가 발생하면, 다른 State로 전이 
(Transition)한다.
ACTION
ACTION 
• State안에 설정된 실제 작동하는 행동 
• 텍스쳐 변경, 마우스 클릭, 오브젝트 이동 및 회전등 
모든 기본적인 100여개가 넘는 Action들이 제공 된다. 
• 게임에 맞는 Custom Action을 쉽게 제작하여 추가할 
수 있다.
ACTION 
• 복잡한 게임에서 프로그래머의 역할은 Custom 
Action을 코딩하여 제작하여 넘겨주면, 다른 개발자들 
이 사용할 수 있다. 
• Action은 전부 C#코드로 되어 있고, 소스가 포함되어 
있기 때문에, Action들의 코드만 봐도 유니티의 기본 
스크립트들을 참고할 수 있는 최고의 예제 코드가 된 
다.
EVENT
EVENT 
• 각 스테이트에서 정의한 이벤트가 발생하면, 그 이벤 
트에 연결된 스테이트로 전이된다. 
• 이벤트는 기본적인 시스템 이벤트도 있고, Event 
Browser를 통해서, 커스텀 이벤트를 추가할 수 있다. 
• 커스텀 이벤트는 FSM 제어에 따라서 호출할 수 있다.
Variable
Variable 
• FSM에 체크등에 사용되는 변수들을 추가하고, 정의 
할 수 있다. 
• 오브젝트를 체크할때 사용하는 GameObject 변수 
• 위치와 방향들 – Vector 변수 
• String, Int, Texture 등의 변수를 모두 추가하고 사용할 
수 있다.
실제 사용예 : 인체 전시전
실제 사용예 : 인체 전시전
실제 사용예 : 피격 상태
PlayMaker 정리
PlayMaker 정리 : 단점
PlayMaker 홈페이지
PlayMaker Youtube 채널
Q & A

[스마트벤처 창업학교] 스타트업 프로젝트를 위한 유니티 게임 개발

  • 1.
    스타트업 프로젝트를 위한 유니티 게임 개발 2014.9.18 박민근
  • 2.
    알콜코더 박민근(@agebreak) NHNNEXT 게임 전공 교수 쿠키 소프트 – 모바일 격투게임 프로젝트 (Unity) 네오위즈 게임즈 - 야구의 신 개발 NTL-inc - 드래곤볼 온라인 개발 엔씨소프트 – PlayNC 빌링 서버 개발 ‘신입 게임 개발자의 서울 상경기’ (http://agebreak.blog.me) ‘초중급 게임 개발자 스터디 (데브루키)’ (cafe.naver.com/devrookie) 게임 개발자 랩소디 (팟캐스트) (http://www.podbbang.com/ch/3921) 게임 클라이언트 프로그래머 30대… 그리고 오타쿠 프로그래머... 언젠가는 우즈벡에.. 일류젼 우즈벡 지사를 설립할 예정
  • 4.
    오늘 이야기… 1.유니티 소개 2. 개발과 출시, 경험에 대한 이야기 (서형석) 3. UNITY 2D 살펴 보기 4. 유니티가 당신에게 알려주지 않는 진실 (이득우) 5. 유니티와 PLAYMAKER를 이용한 쉽고 빠른 게임 개발
  • 5.
    유니티 처음 사용해보면.. • 간편한 에디터 • 드래그 몇 번 하고, 스크립트 작업 잠깐으로 뚝딱뚝딱!! 오오옷~!! • 간단하고 손쉬운 개발 • 필요한건 다 되어 있다. 어려운 프로그래밍 지식이 필요 없다. • 에셋스토어 짱짱~!! 필요한거 다있음!!
  • 6.
  • 7.
  • 8.
    UNITY 간단한 게임이나프로토타입 만들기엔 짱!! 하지만 정말 제대로 게임 만들다보면… 제대로 이해하고 해야 되는게 한두가지가 아님.
  • 9.
  • 10.
    Unity 유니티? -덴마크 출신의 3명의 개발자들이 개발한 게임엔진 - 사용자 친화적 인터페이스와 멀티플랫폼 지원의 용이함으로 전 세계적 으로 인기를 얻게됨 - 최근 PSP Vita, PS4용 유니티를 무료로 하는 등 매우 공격적인 활보를 보임 (2014.7. 현재까지는 US, Mexico, Central America, South America, Canada 만 지원)
  • 11.
    Unity 유니티 사용자가많은 이유 - 툴 형태로 제공되는 사용자 친화적 인터페이스 - 오픈 커뮤니티와 어셋스토어 - 비교적 저렴했던 가격(무료로도 사용 가능)
  • 12.
    Unity – 개발된프로젝트 ● 템플런 - 이만지 스튜디오(Imangi Studios)에서 개발한 무한 달리기 게임 - 전 세계 5억다운로드를 이룬 게임
  • 13.
    Unity – 개발된프로젝트 ● 쉐도우 건(Shadow Gun) - 매드핑거 개발 - 유니티의 기술력을 내세우기 위해 제작된 게임
  • 14.
    Unity – 개발된프로젝트 ● 언데드 슬레이어(Undead Slayer) - 하이디어 김동규 대표 1인 개발. - 유니티를 통한 1인 개발의 대표적인 사례
  • 15.
    Unity – 개발된프로젝트 ● 게임 외의 분야
  • 16.
    Unity – 용어정리 - 씬(Scene) ▷ 게임의 장면 또는 상태를 유니티에서 관리하는 단위 ▷ 씬 관리를 통해서 게임의 레벨 및 상태를 구분 - 어셋(Asset) ▷ 엔진에서 사용되는 모든 자원(Resources) ▷ Resources : 3d model, audio, texture etc..
  • 17.
    Unity – 용어정리 - 게임오브젝트(GameObject) ▷ 어셋의 기능을 처리하기 위한 오브젝트 ▷ 모든 게임오브젝트는 게임 공간상에 존재하기 위해 Transform 컴퍼넌트를 지님 - 스크립트(Script)와 컴퍼넌트(Component) ▷ 구현된 각각의 기능들을 컴퍼넌트라 호칭 ▷ 사용자들은 컴퍼넌트를 구현하고 게임오브젝트에 추가하여 기능을 동작시킴
  • 18.
    Unity – 용어정리 - 프리팹(Prefab) ▷ 게임오브젝트에 구성된 기능들을 패키지화 시킨 어셋 ▷ 씬에 배치된 프리팹들은 항상 원본 데이터를 기준으로 동작하나, 필요에 따라 해당 링크를 끊을 수 있음
  • 19.
    Unity – 사용자인터페이스
  • 20.
    Unity – 사용자인터페이스
  • 21.
    Unity – 사용자인터페이스 - 씬(Scene) 뷰 ▷ 3D 세상을 편집하기 위한 편집 뷰 ▷ 오브젝트 배치, 회전, 크기 조절 등 게임을 개발함에 있어 항상 주시하게 되는 뷰 - 게임(Game) 뷰 ▷ 게임이 구성되고 최종적으로 보여지는 뷰 ▷ 이 뷰를 통해 실제 개발된 게임의 모습을 확인하거나 컨트롤이 가능
  • 22.
    Unity – 사용자인터페이스 - 계층(Hierachy) 뷰 ▷ 씬뷰 상에 배치된 수많은 오브젝트의 목록을 표시하는 리스트 뷰 ▷ 게임상의 오브젝트 관리를 용이하게 하기 위해 계층구조로 관리를 가능케 하는 뷰 - 프로젝트(Project) 뷰 ▷ 게임을 구성하는 다양한 어셋을 관리하기 위한 뷰 ▷ 유니티 엔진에서 유일하게 하드디스크와 링크된 뷰
  • 23.
    Unity – 사용자인터페이스 - 인스펙터(Inspector) 뷰 ▷ 선택된 기능 또는 게임오브젝트의 컴퍼넌트 내용을 보여주는 에디터 뷰 ▷ 코드 수정 없이 인스펙터 뷰 상에 보여지는 값을 수정하여 테스트 가능
  • 24.
  • 25.
  • 26.
    [UNITE2014] 개발과 출시경험에 대한 이야기
  • 27.
    이것은 단지 경험에관한 이야기입니다.
  • 28.
    인원 : 프로그래머2 명 2012. 2. [쉐도우진 닌자보이] 출시. 2012. 10. [셀레스티얼 리그] 개발. 2014. 2. [세이빙 몬스터즈 for AfreecaTV] 출시.
  • 29.
    강연의 목적 너무힘들었기 때문에 이야기를 해보고 싶었습니다.
  • 30.
    SAVING MONSTERS 지금부터이 게임에 대한 개발 경험을 나누고자 합니다.
  • 31.
    게임 개발 과정 2012. 11. 개발시작 - 좋아하는 게임을 만들자
  • 32.
    게임 개발 과정 2012. 11. 개발시작 가제 – 인피니티 타워
  • 33.
    게임 개발 과정 2012. 11. 개발시작 2013. 3. 프로토 타입 완성
  • 34.
    게임 개발 과정 2012. 11. 개발시작 2013. 3. 프로토 타입 완성 2013. 4. UNITE 2013 바람 주자 3D ?
  • 35.
  • 37.
    게임 개발 과정 2012. 11. 개발시작 2013. 3. 프로토 타입 완성 2013. 4. UNITE 2013 2013. 5. 대격변 ! 1) 카메라 구조 변경 2) 3 Line 구성 3) 통쾌함을 주자! 4) 타워의 제거
  • 38.
    게임 개발 과정 2012. 11. 개발시작 2013. 3. 프로토 타입 완성 2013. 4. UNITE 2013 2013. 5. 대격변 ! 2013. 6. 고난(苦難)의 시기
  • 41.
  • 42.
    게임 개발 과정 2012. 11. 개발시작 2013. 3. 프로토 타입 완성 2013. 4. UNITE 2013 2013. 5. 대격변 ! 2013. 6. 고난(苦難)의 시기 2013. 7. 퍼블리싱 계약
  • 43.
    게임 개발 과정 2012. 11. 개발시작 2013. 3. 프로토 타입 완성 2013. 4. UNITE 2013 2013. 5. 대격변 ! 2013. 6. 고난(苦難)의 시기 2013. 7. 퍼블리싱 계약 2013. 10. FGT
  • 44.
    게임 개발 과정 2012. 11. 개발시작 2013. 3. 프로토 타입 완성 2013. 4. UNITE 2013 2013. 5. 대격변 ! 2013. 6. 고난(苦難)의 시기 2013. 7. 퍼블리싱 계약 2013. 10. FGT 2014. 2. 아프리카 TV 출시
  • 45.
    출시 직전 여유로운시간을 즐기다 진실은 폭풍 전야..
  • 46.
    출시 직후 출시에대한 행복감 출시 소식 전달
  • 48.
  • 49.
    출시 직후 무한로딩 아프리카 TV 장애/버그 신고 발췌
  • 50.
    출시 직후 무한로딩 - 원인 1. AWS 설정 실수 2. AWS 웹 서버 재부팅을 하려 했으나..
  • 52.
    출시 직후 무한로딩 - 대응 1. 퍼블리셔 분들을 토요일에 출근하시도록 하여 긴급 패치… 다시 한번 사과 드리며, 빠른 대응에 진심으로 감사 드립니다..
  • 53.
    발생한 문제들 메모리치트 - 원인 1. 경험에 대한 자만 2. 예상치 못한 해킹 방식
  • 54.
    발생한 문제들 메모리치트 - 대응 1. 치트 유저 밴 2. 치트 프로그램 리스트 갱신 3. 메모리 치트 예방책 강화 4. 서버단에서 주요 로직 처리
  • 55.
    발생한 문제들 DB문제 - 상황 1. 한 순간 치트 유저수가 급격히 증가 2. 모든 데이터 수치가 똑같다?!
  • 56.
    발생한 문제들 DB문제 - 사실상 가장 심각했던 문제 1. 원인 파악이 안 되는 상황…
  • 57.
    발생한 문제들 DB문제 - 그럼 어떻게 문제를 파악했나? 1. 메모리 치트 대응 중 대화를 통한 한 순간의 번뜩임 “어?! 이거 알 것 같아!!” 사실상 운이 좋았습니다.
  • 58.
    발생한 문제들 DB공격 - SQL Injection
  • 59.
    발생한 문제들 DB공격 - 대응은 했지만.. 확인을 하는 과정이 어려웠다..
  • 60.
    발생한 문제들 웹서버 파일 업로드 문제 - 파일 서버로 파일 전송시 빈 파일로 올라가는 문제발생 - 웹 서버가 제거된 상황과 동일한 상황…
  • 62.
    발생한 문제들 웹서버 파일 업로드 문제 - 대응은? 1. 친구에게 질의
  • 63.
    발생한 문제들 웹서버 파일 업로드 문제 - 친구의 대답 “로그를 살펴봐~” - 그리고 찾은 이상한 점 “어?!! 로그파일 용량이 6기가네?”
  • 64.
    발생한 문제들 웹서버 파일 업로드 문제 - 원인 웹 서버 용량 초과 문제 php 에러가 지속적으로 로그를 생성
  • 66.
    발생한 문제들 렉이슈 - 몇몇 기기에서 게임이 불가능 할 정도의 렉이 간혹 발생 - 최신 기종에서 특히 발생
  • 67.
    발생한 문제들 렉이슈 - 원인 추정
  • 68.
    발생한 문제들 렉이슈 - 대응 Unity 4.3 ▶ Unity 4.2 Everyplay 제거
  • 69.
  • 70.
    국내 출시로 얻은것들 10만 이상의 다운로드 평점 4.1 BM 구조의 문제 파악 업데이트에 대한 빠른 피드백 - 약 4400개의 소중한 의견
  • 71.
    알수 없던 것들 게임의 사용자들
  • 72.
    잘못한 부분 생각지못하게 길어진 개발 기간 3D 게임 개발 비용 산정 오류 서버 지식의 부재 BM 설계 해킹에 대한 대응 부족 팀내 아티스트의 부재
  • 73.
    앞으로의 계획 해외출시 준비 규모에 맞는 게임 개발
  • 74.
  • 75.
  • 77.
    Unity 2D 살펴보기 2013.12.14 초중급 게임개발자 스터디 <데브루키> 알콜코더 박민근
  • 78.
  • 79.
  • 80.
    근데 테스트 해본결과 PlayMaker만큼은 못함..ㅡ.ㅡ;; 애니메이션 State만 제어 가능 할 뿐.. http://www.slideshare.net/gukhwanji/unity2d
  • 81.
    1.2D Project의 생성 2.2D Sprite Resource 3.Sprite Slice 4.Sprite 애니메이션 5.2D 스켈레톤 애니메이션 6.Animator 7.2D 피직스 컴포넌트 (물리 충돌)
  • 82.
  • 83.
  • 84.
  • 85.
    1.2D Project의 생성 2.2D Sprite Resource 3.Sprite Slice 4.Sprite 애니메이션 5.2D 스켈레톤 애니메이션 6.Animator 7.2D 피직스 컴포넌트 (물리 충돌)
  • 86.
  • 87.
    Scene – 2DMode 버튼 추가 • Scene View를 2D 모드로 고정 • 무브툴을 2D 이동으로 변경 • Picking이 알파 기반으로 동작 • Sprite를 씬에 끌어다 놓으면, 새로운 GameObject 생성
  • 88.
  • 89.
  • 90.
    스프라이트 에디터 TextureAtlas를 관리하고, 각각의 스프라이트로 Slice 한다
  • 91.
  • 92.
    스프라이트 에디터 -Slice Atlas를 각각의 스프라이트로 자른다. 크기를 설정할 수 있다. 중심 위치(Pivot) 설정. Trim을 이용해서 자동 설정 가능!! Wow!~!~!
  • 93.
  • 94.
    스프라이트 Slice Slice된 스프라이트는 따로 사용 할 수 있고, 애니메이션으로 사용할 수 있다.
  • 95.
  • 96.
  • 97.
  • 98.
  • 99.
    스프라이트 애니메이션 표준도프 시트(dope Sheets) 모양으로 애니메이션을 설정 스프라이트 체인지, 이동, 회전등 모든 속성을 변경하여, 애니메이션 가능
  • 100.
    스프라이트 애니메이션 여러개의 스프라이트를 선택 후, 씬에 끌어다 놓으면, 스프라이트 애니메이션 자동 생성!!
  • 101.
    스켈레톤 애니메이션 앞의Unite 2013 2D Workflows 동영상 참조
  • 102.
  • 103.
  • 104.
  • 105.
  • 106.
  • 107.
    Animator 각 상태(State)애니메이션 세트를 정의 각 상태의 변경 조건을 정의 한다
  • 108.
    간단한 Unity 2D프로젝트 샘플 트리거 이벤트 트리거 이벤트 트리거 발동 -> State 변경
  • 109.
    간단한 Unity 2D프로젝트 샘플 http://agebreak.url.ph/Bin.html
  • 110.
    간단한 Unity 2D프로젝트 샘플 http://agebreak.url.ph/Puyon_Web.html
  • 111.
    Unity2D의 장점 •추가 플러그인(2D ToolKit)의 구입 없이, 2D 게임 개발 가능 • 유니티의 기능이기 때문에, 완벽하게 유니티와 통합 • 2D Physics 가 유니티 자체에서 잘 지원 되어 있음 • Sprite의 관리가 용이함 (Sprite Editor, Sprite Packer) • 현재로서는 버그가 좀 있긴 하지만, 앞으로 발전 가능성
  • 112.
    참고자료 • Unity2D소개(KGC13)_지국환 http://www.slideshare.net/gukhwanji/unity2d • Unity2D Workflowhttp://www.youtube.com/watch?v=B1F6fi04qw8&list=PL8F6B414B065FDE58&index=19 • Unity2D 튜토리얼(한글 자막) http://www.youtube.com/watch?v=ksoGW2j2E0Q&list=WL60F612FCDB928D04 • 유니티 4.3 릴리즈 노트 http://korea.unity3d.com/content/content.php?cont=new_unity10 • Unity2D 샘플 1 (by 알콜코더) http://agebreak.url.ph/Bin.html • Unity2D 샘플 2 (by 알콜코더) http://agebreak.url.ph/Puyon_Web.html
  • 113.
  • 115.
    FSM/AI 등을 에디터에서드래그&드랍만으로 제작할 수 있는 비주얼 스크립팅 애드온
  • 118.
    어떤 물건인지.. 보고이야기 합시다~
  • 119.
    이걸로 뭘 할수 있을까요?
  • 135.
  • 137.
    주요 개념 •FSM • STATE • ACTION • EVENT & TRANSITION • VARIABLE
  • 138.
  • 139.
    FSM • GameObject에부착되는 PlayMaker 컴포넌트 • PlayMaker Browser에서 FSM을 마우스 우측클릭으 로 생성하면 자동으로 생성된다. • 한 FSM내에 여러 스테이트와 Action들을 정의한다
  • 140.
    FSM • 한오브젝트내에 복수개의 FSM 컴포넌트 생성 가능 • 각가의 FSM이 일종의 레이어처럼 사용 할 수 있다. • FSM 1 – 캐릭터의 상태 변화 제어 • 축소, 확대, 변신, 무적… • FSM 2 – 캐릭터의 행동 변화 제어 • 이동, 달리기, 점프, 공격…
  • 141.
  • 142.
  • 143.
    STATE • 오브젝트의각 상태를 정의한다 • IDLE, 이동, 점프, 공격, 피격, 죽음… • 각 상태는 그 상태에서 작동하는 Action들을 추가할 수 있다. (상태에 따라 Action이 없을 수도 있다) • 설정된 EVENT가 발생하면, 다른 State로 전이 (Transition)한다.
  • 144.
  • 145.
    ACTION • State안에설정된 실제 작동하는 행동 • 텍스쳐 변경, 마우스 클릭, 오브젝트 이동 및 회전등 모든 기본적인 100여개가 넘는 Action들이 제공 된다. • 게임에 맞는 Custom Action을 쉽게 제작하여 추가할 수 있다.
  • 146.
    ACTION • 복잡한게임에서 프로그래머의 역할은 Custom Action을 코딩하여 제작하여 넘겨주면, 다른 개발자들 이 사용할 수 있다. • Action은 전부 C#코드로 되어 있고, 소스가 포함되어 있기 때문에, Action들의 코드만 봐도 유니티의 기본 스크립트들을 참고할 수 있는 최고의 예제 코드가 된 다.
  • 147.
  • 148.
    EVENT • 각스테이트에서 정의한 이벤트가 발생하면, 그 이벤 트에 연결된 스테이트로 전이된다. • 이벤트는 기본적인 시스템 이벤트도 있고, Event Browser를 통해서, 커스텀 이벤트를 추가할 수 있다. • 커스텀 이벤트는 FSM 제어에 따라서 호출할 수 있다.
  • 149.
  • 150.
    Variable • FSM에체크등에 사용되는 변수들을 추가하고, 정의 할 수 있다. • 오브젝트를 체크할때 사용하는 GameObject 변수 • 위치와 방향들 – Vector 변수 • String, Int, Texture 등의 변수를 모두 추가하고 사용할 수 있다.
  • 155.
    실제 사용예 :인체 전시전
  • 156.
    실제 사용예 :인체 전시전
  • 158.
    실제 사용예 :피격 상태
  • 159.
  • 160.
  • 161.
  • 162.
  • 163.