32
언언언 4 언 언언언 언언언언언 블블블블블

언리얼 4 와 비주얼 프로그래밍

Embed Size (px)

Citation preview

Page 1: 언리얼 4 와 비주얼 프로그래밍

언리얼 4 와 비주얼 프로그래밍

블루프린트

Page 2: 언리얼 4 와 비주얼 프로그래밍

시작하기 전에 비주얼 프로그래밍 전에 어떻게 프로그래밍

했지 ?

Page 3: 언리얼 4 와 비주얼 프로그래밍

2001 년쯤 C++ 만 배웠는데 , 게임은 C 라니

요 !!! 콘솔들은 아직…(GP32???)

If 와 if,,, 그리고 for 문

함수포인터가 뭔가요 ?

Page 4: 언리얼 4 와 비주얼 프로그래밍

2005 년 드디어 C++

안다고 생각했지만 모르네 ? 객체는 왜 쓰나요 ? 디자인 패턴

MVC 싱글톤 Interface Factory

Page 5: 언리얼 4 와 비주얼 프로그래밍

2005 년쯤 스크립트 ? Lua? Python? Visual Studio 에서 디버깅이 안되요…

컴파일이 필요 없음 Lua 인터페이스는 ? LuaBind? LuaTinker

동적 로드 ?( 잘 되나요 ?) 기획자용 ?( 디버깅은 누가 하나요 ?) 근데 되는 디버깅 되는 경우도 (Havok Lua?) 요즘은 디버깅이 더 좋아졌다 ‘카더라’

Page 6: 언리얼 4 와 비주얼 프로그래밍

2008 년쯤 Entity? Component? 상용엔진들도 Component? 정말 우리는 게임 중간에 날아다니는 고블린을

만들기 쉬었는지 ?

그리고 디버깅 , 코딩 복잡도… 코드 읽는게 어려워요

Page 7: 언리얼 4 와 비주얼 프로그래밍

Gamebryo Component Entity? Component? 그럭저럭 Component Tick 관리가 어려움 Scenegraph 구조와 Component?

Page 8: 언리얼 4 와 비주얼 프로그래밍

Gamebryo Lightspeed Entity? Component? Property 는 데이터만

PropertyGrid, 타입없는 변수 기능은 Lua 에서

모든 Component 는 Async Load + Asynic Tick

우와 멋진데 ? 디버깅 디버깅 디버깅

Page 9: 언리얼 4 와 비주얼 프로그래밍

프로그래밍 언어들쉬어가기

Page 10: 언리얼 4 와 비주얼 프로그래밍
Page 11: 언리얼 4 와 비주얼 프로그래밍

Programming Languages Python

Why Python is so popular PTVS 좋아요 현재는 웹도 , 클라이언트도 , 모바일도 잘 됨 ?

C# Unity3D 를 쓴다면

JS 웹으로 뭔가 해보고 싶다면 Java 와는 다른 언어

Visual Language 는 언제쯤 ?

Page 12: 언리얼 4 와 비주얼 프로그래밍

Visual Programming2D 게임 프로그래밍에선 이미 제법 많이 쓰이는 ,

Page 13: 언리얼 4 와 비주얼 프로그래밍

Scratch

Page 14: 언리얼 4 와 비주얼 프로그래밍

Gamesalad

Page 15: 언리얼 4 와 비주얼 프로그래밍
Page 17: 언리얼 4 와 비주얼 프로그래밍

Visual Programming 의 징검다리 Visual Shdaer

Page 18: 언리얼 4 와 비주얼 프로그래밍

이쯤에서 생각해보는 Visual Shader

Shader 세상에서는 Node 기반이 최고 ? 디자이너가 쉽게 조작 가능 결과 예측이 쉬움 (Preview 도 되요 )

단점 수 많은 Visual Shader 에 있는 Copy &

Paste 최적화 ?

Page 19: 언리얼 4 와 비주얼 프로그래밍

대략 요런 느낌 ?

Page 20: 언리얼 4 와 비주얼 프로그래밍

Visual Shader 프로그래머는 불편해했지만

나머지는 ? 노드와 인터페이스 만드는 게 어려웠음

언리얼에서는 ? 대부분의 3D 게임 엔진에서 지원

Unreal Unity Vision

Page 21: 언리얼 4 와 비주얼 프로그래밍

Graph?Visual Shader 로 익숙해진 프로그래머와 디자이너의 다양한 시도 !!

Page 22: 언리얼 4 와 비주얼 프로그래밍

Visual Shader 이후 다양한 시도

NDC 08 의 실시간 비주얼 그래프 편집 참고 http://www.slideshare.net/noerror/

ndc08

Page 23: 언리얼 4 와 비주얼 프로그래밍

블루프린트부연 설명이 길었습니다만 , 이제 본론입니다 .

Page 24: 언리얼 4 와 비주얼 프로그래밍

블루프린트 ?

Page 25: 언리얼 4 와 비주얼 프로그래밍

블루프린트 쓸만한가요 ? Node 구조가 복잡해질텐데 ? 그리기 귀찮지 않나요 ?

직접 노드 구현 C++ – 쉽진 않지만

매크로 라이브러리 여러 노드를 한꺼번에

C++ Node Spawn 괜찮은 툴의 도움으로 할만하다는 느낌 ?

브레이크 포인트 실체 디버깅 하고 싶은 객체 선택 가능 ?

Page 26: 언리얼 4 와 비주얼 프로그래밍

블루프린트 디버깅여기서 디버깅 객체 설정

여기서 값도 보여요 !!

Page 27: 언리얼 4 와 비주얼 프로그래밍

블루프린트 커스토마이징 우리는 그래도 C++ 에서 노드를 만들고 싶다 하나의 노드가 여러 기능을 하도록

노드 확장 UK2Node 를 상속 받아서 시작ExpandNode – 이 함수에서 실제 다양한 중간 노드를 만들어서 기능을 추가 참고 )

UK2Node_SpawnActorFromClass::ExpandNode CompilerContext.SpawnIntermediateNode

중간노드 만들기 CompilerContext.MovePinLinksToIntermedi-

ate 연결된 핀 링크 옮기기

Page 28: 언리얼 4 와 비주얼 프로그래밍

그래서 쓸만한가요 ? 전 스크립트보다 좋아요

잘 준비된 툴 Component 기반의 문제점 ?

툴로 해결됨 코드 읽기가 쉬워졌어요

이것도 툴로 해결 .

스크립트 언어와 비교하면 ? Coroutine? Closure?

Page 29: 언리얼 4 와 비주얼 프로그래밍

그럼 Scalable 한가요 ? 리팩토링

익숙한 Visual Studio + Visual Assist 처럼은 안됨

한 땀 한 땀 Diff, Merge, 동시작업 ?

Diff 는 제법 좋아요 ? Merge 는 안될꺼에요 Text 방식이 좋은데 ,,,

Page 30: 언리얼 4 와 비주얼 프로그래밍

블루프린트 Diff

Page 31: 언리얼 4 와 비주얼 프로그래밍

그럼 좋은 가요 ? 새로운 방식으로 생각하는 재미

노드 단위로 설계하고 , 코딩하고

C++ 를 아직 놓지 않아요 C++ 와 다양한 연동 방식 그리고 소스가 공개 되어 있으니 , 다양한 테크닉 보

는 / 쓰는 재미 C++ 언어적 한계를 어떻게 넘을 지 ?

컴파일러도 공부 ?

Page 32: 언리얼 4 와 비주얼 프로그래밍

질문 ?