SlideShare a Scribd company logo
PHASE 1
게임개발자와 툴시스템
ONE 1
개발팀은 서로 말이 안통한다 ?
PHASE 1 게임개발자와 툴시스템
결론 없는 회의 , 게임개발에 대한 회의감
개발팀은 서로 말이 안통한다 ?/ 개발자는 컴퓨터로 노가다한다 ?/ 이미지파일 , 사운드파일만 있으면 되나 ?/ 모바일은 게임성으로 승부를 건
다 !
개발노하우의 공유가 없어 더욱 높아만 지는 파티션
과연 안되는지 진짜 안되는지 10 번 묻고 다짐받아도 믿기힘든 개발세태
이렇게 작업하면 안되요를 남발하는 프로그래머와 화장실서 들려오는 흐느낌
PHASE 1 게임개발자와 툴시스템
GIF 애니메이션 만드는 디자이너의 속사정
프로그래머에게 그냥 한번 보여주기 위한 일회성 지겨운 작업
좌표를 픽셀단위로 잡아놓아도 실제로 프로그래머는 눈짐작으로 판단할 뿐
개발팀은 서로 말이 안통한다 ?/ 개발자는 컴퓨터로 노가다한다 ?/ 이미지파일 , 사운드파일만 있으면 되나 ?/ 모바일은 게임성으로 승부를 건
다 !
구현의 가능성을 모르기 때문에 효과 넣는데 부쩍 소심해지는 디자이너
PHASE 1 게임개발자와 툴시스템
시키면 한다 ! 다만 품질은 책임 못 진다
맵데이타 , 대사글 , 공격레벨링 , UI 구성등은 모두 코딩하는 사람의 몫
GIF 애니메이션은 좋은데 , 정작 게임으로 나오면 어설퍼지는 동작들
개발팀은 서로 말이 안통한다 ?/ 개발자는 컴퓨터로 노가다한다 ?/ 이미지파일 , 사운드파일만 있으면 되나 ?/ 모바일은 게임성으로 승부를 건
다 !
알아서 정의해야 할 것이 워낙 많아 프로그래머에 따라 제각각 나오는 게임
TWO 2
개발자는 컴퓨터로 노가다한다 ?
PHASE 1 게임개발자와 툴시스템
누구에게도 말 못할 헥사덤프의 공포
몇달된 헥사덤프코드는 자신조차 손대지 못한다
4 비트씩 판단하기 위한 16 진수식 코딩과 부쩍 정이가는 윈도우계산기
개발팀은 서로 말이 안통한다 ?/ 개발자는 컴퓨터로 노가다한다 ? / 이미지파일 , 사운드파일만 있으면 되나 ?/ 모바일은 게임성으로 승부를 건
다 !
배열제한이라는 헥사덤프의 막다른 골목과 잃어버린 시간
PHASE 1 게임개발자와 툴시스템
프로그래머가 가장 오랜 시간 쓰는 프로그램은 그림판
GIF 애니메이션을 하나하나 캡쳐해 일일이 그림판으로 확대하는 즐거움
캐릭터애니메이션 5 개정도의 위치를 땄을 뿐인데 업무종료
개발팀은 서로 말이 안통한다 ?/ 개발자는 컴퓨터로 노가다한다 ? / 이미지파일 , 사운드파일만 있으면 되나 ?/ 모바일은 게임성으로 승부를 건
다 !
이미지의 위치와 크기를 조금씩 틀려주는 그림판식 센스
PHASE 1 게임개발자와 툴시스템
누구나 한번쯤 흐뭇해하는 자기 퇴사 후의 프로젝트
주석 안달다 그만 자신의 코드에 디버깅 되버린 K 씨
변수명을 죄다 한글이니셜로 코딩하는 L 씨
개발팀은 서로 말이 안통한다 ?/ 개발자는 컴퓨터로 노가다한다 ? / 이미지파일 , 사운드파일만 있으면 되나 ?/ 모바일은 게임성으로 승부를 건
다 !
자기만 알아보는 툴을 만들어 놓고 암호로그인 처리까지 한 A 형 H 씨
THREE 3
이미지파일 / 사운드파일만 있으면 되나 ?
PHASE 1 게임개발자와 툴시스템
내 게임소스는 21 세기형 일회용 코드
다음 프로젝트에서도 유효한 것은 클리핑 처리되는 drawImage 뿐
갈고 닦을 시간이 없어 효율성 파악이 안된 코드와 무성한 소문의 진위
개발팀은 서로 말이 안통한다 ?/ 개발자는 컴퓨터로 노가다한다 ?/ 이미지파일 , 사운드파일만 있으면 되나 ?/ 모바일은 게임성으로 승부를
건다 !
새로운 것을 부정하게 되는 보수성향과 발전없는 습관적 개발성향
PHASE 1 게임개발자와 툴시스템
아웃사이더로 전락한 기획자
기획서는 꼭 100 장이상 쓰는 기획자와 절대 2 장이상을 넘기지않는 프로그래
머
받아쓰기시간은 전체 프로젝트의 1/5 할애 , 그래도 오타는 항상 출시후에
개발팀은 서로 말이 안통한다 ?/ 개발자는 컴퓨터로 노가다한다 ?/ 이미지파일 , 사운드파일만 있으면 되나 ?/ 모바일은 게임성으로 승부를
건다 !
현실적인 도움을 주지못해도 프로그래머와 함께 매일 밤새는 끝없는 출시임박
PHASE 1 게임개발자와 툴시스템
데이타리소스툴과 엔진형코드의 소박한 꿈
기획자는 프로그램 몰라 , 프로그래머는 기획력 부재 , 자사 툴개발 위해 퓨전
봄버맨 , 메가맨 같은 시리즈물과 엔진화에 의한 황금방석의 잊혀진 전설
개발팀은 서로 말이 안통한다 ?/ 개발자는 컴퓨터로 노가다한다 ?/ 이미지파일 , 사운드파일만 있으면 되나 ?/ 모바일은 게임성으로 승부를
건다 !
악순환을 부르는 막코딩청탁과 지난해 문서를 그대로 복사해놓은 연봉계약서
FOUR 4
모바일은 게임성으로 승부를 건다 !
PHASE 1 게임개발자와 툴시스템
고민할 필요 없는 분업화된 체계
일의 끝이란 것이 존재하는 , 툴로 분업화된 업무체계
지루한 기다림의 계주가 아닌 각각 백미터 단독 질주
개발팀은 서로 말이 안통한다 ?/ 개발자는 컴퓨터로 노가다한다 ?/ 이미지파일 , 사운드파일만 있으면 되나 ?/ 모바일은 게임성으로 승부를 건
다 !
프로젝트는 공중분해 된다해도 체계화된 리소스는 홀로 살아남는다
PHASE 1 게임개발자와 툴시스템
프로그래머의 손을 떠난 철저한 게임성 조율
이미지 / 사운드를 제외한 게임리소스를 직접 제작하는 게임툴전문 기획자
툴에 의해 눈으로 체크되는 리소스조작과 컴파일없이 바로 재적용되는 게임엔진
개발팀은 서로 말이 안통한다 ?/ 개발자는 컴퓨터로 노가다한다 ?/ 이미지파일 , 사운드파일만 있으면 되나 ?/ 모바일은 게임성으로 승부를 건
다 !
물리적 에러는 내 책임 , 그 외 사항은 여러분의 몫입니다
PHASE 1 게임개발자와 툴시스템
나만의 데이타를 만들어 주는 툴시스템
버그신고 / 기능확장의 요구는 리퀘스트게시판 , 따로 리소스빌드추가는 견적의뢰로
빌드기능은 모두에게 공개된 기술의 마켓 , 인기있는 회사별 리소스와 엔진라이센스
개발팀은 서로 말이 안통한다 ?/ 개발자는 컴퓨터로 노가다한다 ?/ 이미지파일 , 사운드파일만 있으면 되나 ?/ 모바일은 게임성으로 승부를 건
다 !
모바일게임의 체계를 연구하는 집단과 플랫폼을 뛰어넘는 표준화된 연구성과의 즐거움
PHASE 2
MBM Class
ONE 1
PNG 의 구조
PHASE 2 MBM Class
4 가지요소의 청크화된 구조
사이즈 (4) | 청크명 (4) | 내용 ( 사이즈 ) | CRC 인증코드 (4)
89PNG : PNG 식별자
IHDR : 가로세로크기 , 압축레벨 / 인터레이스여부
PNG 의 구조 / PNGnc 의 발견 / PNGnc 의 가능성 / MBM 의 구조 / MBM 의 기능
PLTE : 24 비트형 팔레트
tRNS : 팔레트별 투명도
IDAT : 픽셀별 색상정보 ( 인덱스번호 ), 유일한 압축청크
IEND : 청크종료
모바일환경에서 제외된 CRC 인증과 Adler 인증
CRC 코드 : 전 청크에서 사용되며 , 범용적인 Hash 테이블링 XOR 값
PNG 의 구조 / PNGnc 의 발견 / PNGnc 의 가능성 / MBM 의 구조 / MBM 의 기능
PHASE 2 MBM Class
Adler 코드 : IDAT 에서만 유일하게 사용되며 , 픽셀 색상의 인증
TWO 2
PNGnc 의 발견
JAR 에서 빛이나는 None Compressed PNG
LBM8 -JAR 용량 : 225416Byte, - 로딩속도 : 4128ms
MBM8 -JAR 용량 : 240866Byte, - 로딩속도 : 4284ms
PNGnc8 -JAR 용량 : 279122Byte, - 로딩속도 : 4540ms
PNG 의 구조 / PNGnc 의 발견 / PNGnc 의 가능성 / MBM 의 구조 / MBM 의 기능
PHASE 2 MBM Class
PNG8 -JAR 용량 : 355874Byte, - 로딩속도 : 6695ms
IDAT 의 열단위 비압축구간은 BMP 제어와 다를 것이 없다
국내 플랫폼은 CRC 코드와 Adler 코드 인증검사를 하지않음
인증검사를 한다해도 팔레트 / 이미지변환을 하지않으면 속도와 관계없음
PNG 의 구조 / PNGnc 의 발견 / PNGnc 의 가능성 / MBM 의 구조 / MBM 의 기능
PHASE 2 MBM Class
블럭구간헤더 (1) + 블럭길이 (2) + 블럭길이검사 (2) + 필터 ID(1)
THREE 3
PNGnc 의 가능성
BREW, GVM/GNEX 계열을 제외한 모든 JAVA 계열 및 WIPI 플랫폼호환
PNG 의 구조 / PNGnc 의 발견 / PNGnc 의 가능성 / MBM 의 구조 / MBM 의 기능
JAR 압축을 통한 리소스다이어트 및 비압축방식에 의한 로딩스피드업
손실없는 TRUE 칼라 및 256 단계 투명도 지원
PHASE 2 MBM Class
BMP 구조 비압축에 의한 이미지생성 , 색변환 , 투명도변환 , 반전 / 확대 / 축소 /
회전
MBM 의 구조
FOUR 4
System.arraycopy() 를 이용한 구간복사식 PNGnc 생성
for 문을 이용한 byte 단위 대입의 약 700 배 속도증가
PNG 의 구조 / PNGnc 의 발견 / PNGnc 의 가능성 / MBM 의 구조 / MBM 의 기능
PHASE 2 MBM Class
PNGnc 구성시 매번 메모리 생성 / 해제를 하지않는 방식
MBH 파일
헤더정보 (IHDR) 의 기본형
팔레트정보 (PLTE)
PNG 의 구조 / PNGnc 의 발견 / PNGnc 의 가능성 / MBM 의 구조 / MBM 의 기능
PHASE 2 MBM Class
투명도정보 (tRNS)
MBM 파일
픽셀정보 (IDAT) 와
가로세로크기
헤더정보 (IHDR) 용 CRC 코드
PNG 의 구조 / PNGnc 의 발견 / PNGnc 의 가능성 / MBM 의 구조 / MBM 의 기능
PHASE 2 MBM Class
HotSpot 정보
MBM 의 기능
FIVE 5
독립적인 MBM 이미지생성 , MBM 간 이미지 / 스프라이트복사 , 사각형칠하기 가
능
좌우 / 상하 복합적인 반전 : HotSpot 정보도 변환
자율적인 확대 / 축소 : HotSpot 정보도 변환
자율적인 회전 (256 도 ) : HotSpot 기준의 Shift 연산의 256 체계 회전
PNG 의 구조 / PNGnc 의 발견 / PNGnc 의 가능성 / MBM 의 구조 / MBM 의 기능
색영역효과 : R, G, B 는 각각 0 에서 255 까지
PHASE 2 MBM Class
페이드효과 : Level 은 -256 에서 256 까지
셀로판효과 : Level 은 0 에서 256 까지
그레이효과 : 단계는 없음
반투명조정 : Level 은 0 에서 255 까지
빠른작업모드 : 클리핑없는 이미지 / 스프라이트복사 , 사각형칠하기
PNG 의 구조 / PNGnc 의 발견 / PNGnc 의 가능성 / MBM 의 구조 / MBM 의 기능
MBH/MBM 오픈 : 각종 정보오픈 및 배열제공에 의한 이미지의 사용자조작
PHASE 2 MBM Class
CRC/Adler 제공 : 해외폰용 게임이나 기타 필요한 상황을 위한 함수제공
PHASE 3
코드발상법
ONE 1
What's 코드발상법 ?
PHASE 3 코드발상법
What's 코드발상법 ? / What's 코드최적화 ? / 애니메이션처리의 발상법 / 클리핑처리의 발상법 / 메모리관리의 발상법
KNOT 와 암호화의 발상법 / GW84 와 압축의 발상법
대부분의 알고리즘에는 잘 벗어나지 않는 패턴 , 디자인패턴이란 것이 있다
디자인패턴은 노하우가 쌓인 구조를 지칭 , 코드발상법은 필요한 개개의 요소를 지칭
항상 해결책을 고려할 때 , 어떤 요소를 떠올려 어떤 틀에 맞출 지가 가장 중요
언어는 중요하지 않다 , 다만 알고리즘의 연마가 중요할 뿐
What's 코드최적화 ?
TWO 2
What's 코드발상법 ? / What's 코드최적화 ? / 애니메이션처리의 발상법 / 클리핑처리의 발상법 / 메모리관리의 발상법
KNOT 와 암호화의 발상법 / GW84 와 압축의 발상법
모듈화 , 객체화에 주로 신경 씀 : 1 단계
계산적인 최적화에 주로 신경 씀 : 2 단계
알고리즘상의 불필요한 계산을 제거함 : 3 단계
최고의 해답이 아닌 최적의 근사치 답에도 주목함 4 단계
PHASE 3 코드발상법
게임의 패턴이나 AI 방식 자체를 바꿈 ( 기획자의 영역 커트라인 ) 5 단계
애니메이션처리의 발상법
THREE 3
항상 게임타이머는 째깍째깍
What's 코드발상법 ? / What's 코드최적화 ? / 애니메이션처리의 발상법 / 클리핑처리의 발상법 / 메모리관리의 발상법
KNOT 와 암호화의 발상법 / GW84 와 압축의 발상법
전체 애니메이션의 등장과 퇴장을 스케줄링 함
PHASE 3 코드발상법
게임타이머의 강제조절로 항상 스킵을 할 수 있어야 함
하나의 정수로 모든 움직임을 기억
What's 코드발상법 ? / What's 코드최적화 ? / 애니메이션처리의 발상법 / 클리핑처리의 발상법 / 메모리관리의 발상법
KNOT 와 암호화의 발상법 / GW84 와 압축의 발상법
진행형 : 정지 (-1), 행동 (ex. A = A + 1), 게임타이머로써 진행속도 조절가능
싸이클형 : 정지 (-1), 행동 (ex. A = (A + 1) % B, A = (A + 1) & 0xff)
왕복형 : 행동시 싸이클형의 A 를 사용 (ex. C = ABS(A - B 절반 ))
발산형 : 행동시 진행형의 A 를 사용 (ex. B = A * A)
수렴형 : 고정점 C 에게 수렴 (ex. A = (A + C) / 2)
PHASE 3 코드발상법
난수개입형 : 상수로 초기화된 독립된 난수사용 (ex. A = (A % B)? 난수 : A + 1)
발생 / 진행 / 출력의 3 가지 잣대로 모든 움직임을 연상하고 설계
함
What's 코드발상법 ? / What's 코드최적화 ? / 애니메이션처리의 발상법 / 클리핑처리의 발상법 / 메모리관리의 발상법
KNOT 와 암호화의 발상법 / GW84 와 압축의 발상법
발생 : 키 입력 또는 게임타이머로써 애니메이션을 발생 ( 정지 상태를 해제 )
진행 : 매 프레임마다 무조건 불리어지는 함수 , 애니메이션을 진행
PHASE 3 코드발상법
출력 : 간단한 애니메이션 정수로써 위치 또는 상태를 최종적으로 계산 , 출력함
클리핑처리의 발상법
FOUR 4
클리핑이란 ?
What's 코드발상법 ? / What's 코드최적화 ? / 애니메이션처리의 발상법 / 클리핑처리의 발상법 / 메모리관리의 발상법
KNOT 와 암호화의 발상법 / GW84 와 압축의 발상법
PHASE 3 코드발상법
계산적으로 출력해야 할 영역을 미리 줄여놓는 방식
출력방식은 백버퍼방식과 플리핑방식
What's 코드발상법 ? / What's 코드최적화 ? / 애니메이션처리의 발상법 / 클리핑처리의 발상법 / 메모리관리의 발상법
KNOT 와 암호화의 발상법 / GW84 와 압축의 발상법
백버퍼방식 : LCD 와 같은 크기의 공간에서 그림을 미리 완성후 LCD 에 복사
클리핑처리에 적합 , 전 모바일플랫폼 공통사항
PHASE 3 코드발상법
플리핑방식 : LCD 공간 자체가 2 개이상 , 쉬는 공간에 그림을 완성후 V 포인터교체
매번 모든 것을 그려줘야 함 . 클리핑이 안되는 것은 아니나 부적
합
백버퍼방식의 출력절차는 2 단계
What's 코드발상법 ? / What's 코드최적화 ? / 애니메이션처리의 발상법 / 클리핑처리의 발상법 / 메모리관리의 발상법
KNOT 와 암호화의 발상법 / GW84 와 압축의 발상법
백버퍼출력 : Graphics g 에 그리는 단계 , 그리는 도중의 모습이 화면에 안 보
임
PHASE 3 코드발상법
LCD 에 출력 : flush() 와 같은 류의 처리 , 완성 된 백버퍼를 LCD 로 복사
합집합과 교집합
What's 코드발상법 ? / What's 코드최적화 ? / 애니메이션처리의 발상법 / 클리핑처리의 발상법 / 메모리관리의 발상법
KNOT 와 암호화의 발상법 / GW84 와 압축의 발상법
합집합 : 배경구성이 복잡하여 복원될 영역 , 출력한 영역을 합산하기 위하여 쓴다
교집합 : 메뉴나 윈도우속 출력을 스택식으로 클리핑할 때 쓴다
PHASE 3 코드발상법
출력할지 말지를 판단하지 말고 클리핑걸고 모두 출력하라
What's 코드발상법 ? / What's 코드최적화 ? / 애니메이션처리의 발상법 / 클리핑처리의 발상법 / 메모리관리의 발상법
KNOT 와 암호화의 발상법 / GW84 와 압축의 발상법
상황과 시점에 따라 출력여부를 판단하는 것은 논리적 버그의 위험한 도박
PHASE 3 코드발상법
재사용성을 고려한 융통성있는 코드의 구성을 위하여 통합적인 클리핑체계를 구성함
화면요소의 정의
What's 코드발상법 ? / What's 코드최적화 ? / 애니메이션처리의 발상법 / 클리핑처리의 발상법 / 메모리관리의 발상법
KNOT 와 암호화의 발상법 / GW84 와 압축의 발상법
통짜식배경 : 평소에 배경이 움직이지 않고 레이어가 없을 경우
구성식배경 : 레이어가 많거나 또는 매 프레임 배경을 그릴 필요가 없을 경우
고정요소 : 배경의 요소이지만 , 캐릭터보다 앞쪽에 위치한 경우
PHASE 3 코드발상법
오브젝트 : 캐릭터와 효과 , 총알등 움직이는 화면요소 , 클리핑시 영역관리필
요
클리핑방식과 장단점
What's 코드발상법 ? / What's 코드최적화 ? / 애니메이션처리의 발상법 / 클리핑처리의 발상법 / 메모리관리의 발상법
KNOT 와 암호화의 발상법 / GW84 와 압축의 발상법
백버퍼출력 : 개개의 오브젝트 영역으로 복원 ( 통짜식배경의 경우 )
오브젝트 합집합 영역으로 복원 ( 구성식배경의 경우 , LCD 클리핑에 용
이 )
PHASE 3 코드발상법
LCD 에 출력 : 복원된 총 영역 + 출력한 총 영역의 합집합식 클리핑
계산시간이 복잡하거나 , 비동기적 LCD 출력이라면 클리핑을 과감히 배제
메모리관리의 발상법
FIVE 5
메모리 아껴쓰기
What's 코드발상법 ? / What's 코드최적화 ? / 애니메이션처리의 발상법 / 클리핑처리의 발상법 / 메모리관리의 발상법
KNOT 와 암호화의 발상법 / GW84 와 압축의 발상법
계산에 의한 2 차 , 3 차 결과변수는 할당없이 필요할 때마다 직접 계산
PHASE 3 코드발상법
int 형은 short 형으로 , 배열의 차원수는 팍팍 줄이자
공용메모리의 사용
What's 코드발상법 ? / What's 코드최적화 ? / 애니메이션처리의 발상법 / 클리핑처리의 발상법 / 메모리관리의 발상법
KNOT 와 암호화의 발상법 / GW84 와 압축의 발상법
파일오픈 , 매핑배열 등을 위한 대형공용메모리의 확보
PHASE 3 코드발상법
빈번한 메모리 할당 / 해제는 gc() 의 호출에 의한 딜레이의 원인
로딩은 출력시 , 해제는 메모리부족시 오래된 것부터 !(RTLT 기법 )
What's 코드발상법 ? / What's 코드최적화 ? / 애니메이션처리의 발상법 / 클리핑처리의 발상법 / 메모리관리의 발상법
KNOT 와 암호화의 발상법 / GW84 와 압축의 발상법
메모리여분 판단 , 로딩시 메모리사용량 판단 , 시스템의 여유메모리 판단이
관건
적절한 로딩배분을 위한 화면구성으로 자연스러운 프레임유지
PHASE 3 코드발상법
로딩모드가 완전히 없어져 모드별 이미지를 따로 판단할 필요가 없음
SIX 6
KNOT 와 암호화의 발상법
What's 코드발상법 ? / What's 코드최적화 ? / 애니메이션처리의 발상법 / 클리핑처리의 발상법 / 메모리관리의 발상법
KNOT 와 암호화의 발상법 / GW84 와 압축의 발상법
관련자료 시연
PHASE 3 코드발상법
SEVEN 7
GW84 와 압축의 발상법
What's 코드발상법 ? / What's 코드최적화 ? / 애니메이션처리의 발상법 / 클리핑처리의 발상법 / 메모리관리의 발상법
KNOT 와 암호화의 발상법 / GW84 와 압축의 발상법
관련자료 시연
PHASE 3 코드발상법
MGS 툴세미나

More Related Content

Viewers also liked

찾아가는 고양이 Ppt
찾아가는 고양이 Ppt찾아가는 고양이 Ppt
찾아가는 고양이 Ppt훈섭 채
 
Pet Hotel Network
Pet Hotel NetworkPet Hotel Network
Pet Hotel Network
cat_lover
 
젤리버디팀 Deskresearch
젤리버디팀 Deskresearch젤리버디팀 Deskresearch
젤리버디팀 Deskresearch명근 황
 
스마트창작터 웨버
스마트창작터 웨버스마트창작터 웨버
스마트창작터 웨버
Jang Soo Lee
 
cats&makers
cats&makerscats&makers
cats&makers
혜진 신
 
iPetBrand Co.,Ltd. 2011 Report
iPetBrand Co.,Ltd. 2011 ReportiPetBrand Co.,Ltd. 2011 Report
iPetBrand Co.,Ltd. 2011 Report
Ike Kwon
 
AI and Machine Learning Demystified by Carol Smith at Midwest UX 2017
AI and Machine Learning Demystified by Carol Smith at Midwest UX 2017AI and Machine Learning Demystified by Carol Smith at Midwest UX 2017
AI and Machine Learning Demystified by Carol Smith at Midwest UX 2017
Carol Smith
 

Viewers also liked (7)

찾아가는 고양이 Ppt
찾아가는 고양이 Ppt찾아가는 고양이 Ppt
찾아가는 고양이 Ppt
 
Pet Hotel Network
Pet Hotel NetworkPet Hotel Network
Pet Hotel Network
 
젤리버디팀 Deskresearch
젤리버디팀 Deskresearch젤리버디팀 Deskresearch
젤리버디팀 Deskresearch
 
스마트창작터 웨버
스마트창작터 웨버스마트창작터 웨버
스마트창작터 웨버
 
cats&makers
cats&makerscats&makers
cats&makers
 
iPetBrand Co.,Ltd. 2011 Report
iPetBrand Co.,Ltd. 2011 ReportiPetBrand Co.,Ltd. 2011 Report
iPetBrand Co.,Ltd. 2011 Report
 
AI and Machine Learning Demystified by Carol Smith at Midwest UX 2017
AI and Machine Learning Demystified by Carol Smith at Midwest UX 2017AI and Machine Learning Demystified by Carol Smith at Midwest UX 2017
AI and Machine Learning Demystified by Carol Smith at Midwest UX 2017
 

Similar to MGS 툴세미나

[박민근] 3 d렌더링 옵티마이징_nv_perfhud
[박민근] 3 d렌더링 옵티마이징_nv_perfhud[박민근] 3 d렌더링 옵티마이징_nv_perfhud
[박민근] 3 d렌더링 옵티마이징_nv_perfhudMinGeun Park
 
에코노베이션 3차 세미나 교안 1st Edition.~
에코노베이션 3차 세미나 교안 1st Edition.~에코노베이션 3차 세미나 교안 1st Edition.~
에코노베이션 3차 세미나 교안 1st Edition.~Lee Jungpyo
 
20140514 team blender_v01 (Korean)
20140514 team blender_v01 (Korean)20140514 team blender_v01 (Korean)
20140514 team blender_v01 (Korean)
Dongho Kim
 
kics2013-winter-biomp-slide-20130127-1340
kics2013-winter-biomp-slide-20130127-1340kics2013-winter-biomp-slide-20130127-1340
kics2013-winter-biomp-slide-20130127-1340Samsung Electronics
 
에코노베이션 3차 세미나 교안
에코노베이션 3차 세미나 교안에코노베이션 3차 세미나 교안
에코노베이션 3차 세미나 교안
Lee Jungpyo
 
[IGC 2017] 넥스트플로어 김영수 - Protocol:hyperspace Diver 개발 포스트모템
[IGC 2017] 넥스트플로어 김영수 - Protocol:hyperspace Diver 개발 포스트모템[IGC 2017] 넥스트플로어 김영수 - Protocol:hyperspace Diver 개발 포스트모템
[IGC 2017] 넥스트플로어 김영수 - Protocol:hyperspace Diver 개발 포스트모템
강 민우
 
윈도우 매니저 스터디: 1. 윈도우 매니저 출력
윈도우 매니저 스터디: 1. 윈도우 매니저 출력윈도우 매니저 스터디: 1. 윈도우 매니저 출력
윈도우 매니저 스터디: 1. 윈도우 매니저 출력nemoux
 
KGC 2007 소프트웨어 렌더러 개발
KGC 2007  소프트웨어 렌더러 개발KGC 2007  소프트웨어 렌더러 개발
KGC 2007 소프트웨어 렌더러 개발
SeongWan Kim
 
2015 제2회 동아리 해커 세미나 - 병렬컴퓨팅 소개 (16기 김정현)
2015 제2회 동아리 해커 세미나 - 병렬컴퓨팅 소개 (16기 김정현)2015 제2회 동아리 해커 세미나 - 병렬컴퓨팅 소개 (16기 김정현)
2015 제2회 동아리 해커 세미나 - 병렬컴퓨팅 소개 (16기 김정현)
khuhacker
 
전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012
전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012
전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012devCAT Studio, NEXON
 
모바일 앱 성능 분석 방법 101 (Mobile Application Performance Analysis Methodology 101)
모바일 앱 성능 분석 방법 101 (Mobile Application Performance Analysis Methodology 101) 모바일 앱 성능 분석 방법 101 (Mobile Application Performance Analysis Methodology 101)
모바일 앱 성능 분석 방법 101 (Mobile Application Performance Analysis Methodology 101)
YoungSu Son
 
NDC2018 안드로이드+유니티 네이티브 프로파일링 삽질기
NDC2018 안드로이드+유니티 네이티브 프로파일링 삽질기NDC2018 안드로이드+유니티 네이티브 프로파일링 삽질기
NDC2018 안드로이드+유니티 네이티브 프로파일링 삽질기
Jaeseung Ha
 
[NDC2015] 언제 어디서나 프로파일링 가능한 코드네임 JYP 작성기 - 라이브 게임 배포 후에도 프로파일링 하기
[NDC2015] 언제 어디서나 프로파일링 가능한 코드네임 JYP 작성기 - 라이브 게임 배포 후에도 프로파일링 하기[NDC2015] 언제 어디서나 프로파일링 가능한 코드네임 JYP 작성기 - 라이브 게임 배포 후에도 프로파일링 하기
[NDC2015] 언제 어디서나 프로파일링 가능한 코드네임 JYP 작성기 - 라이브 게임 배포 후에도 프로파일링 하기
Jaeseung Ha
 
KGC 2014 프로파일러를 이용한 게임 클라이언트 최적화
KGC 2014 프로파일러를 이용한 게임 클라이언트 최적화KGC 2014 프로파일러를 이용한 게임 클라이언트 최적화
KGC 2014 프로파일러를 이용한 게임 클라이언트 최적화
Jongwon Kim
 
[조진현] [Kgc2011]direct x11 이야기
[조진현] [Kgc2011]direct x11 이야기[조진현] [Kgc2011]direct x11 이야기
[조진현] [Kgc2011]direct x11 이야기진현 조
 
전형규, M2 클라이언트 스레딩 아키텍쳐, NDC2013
전형규, M2 클라이언트 스레딩 아키텍쳐, NDC2013전형규, M2 클라이언트 스레딩 아키텍쳐, NDC2013
전형규, M2 클라이언트 스레딩 아키텍쳐, NDC2013devCAT Studio, NEXON
 
왜 개발자는 컴퓨터공학을 공부해야 할까? (비전공자는 컴퓨터공학 과목에서 무엇을 알아야할까?)
왜 개발자는 컴퓨터공학을 공부해야 할까? (비전공자는 컴퓨터공학 과목에서 무엇을 알아야할까?)왜 개발자는 컴퓨터공학을 공부해야 할까? (비전공자는 컴퓨터공학 과목에서 무엇을 알아야할까?)
왜 개발자는 컴퓨터공학을 공부해야 할까? (비전공자는 컴퓨터공학 과목에서 무엇을 알아야할까?)
Covenant Ko
 
모바일환경에서의 크로스 플랫폼_3D_렌더링엔진_제작과정
모바일환경에서의 크로스 플랫폼_3D_렌더링엔진_제작과정모바일환경에서의 크로스 플랫폼_3D_렌더링엔진_제작과정
모바일환경에서의 크로스 플랫폼_3D_렌더링엔진_제작과정
funmeate
 
[IGC2017] Protocol:hyperspace Diver 개발 포스트모템
[IGC2017] Protocol:hyperspace Diver 개발 포스트모템[IGC2017] Protocol:hyperspace Diver 개발 포스트모템
[IGC2017] Protocol:hyperspace Diver 개발 포스트모템
Young Soo Kim
 
Hideroot - Inc0gnito 2016
Hideroot - Inc0gnito 2016Hideroot - Inc0gnito 2016
Hideroot - Inc0gnito 2016
perillamint
 

Similar to MGS 툴세미나 (20)

[박민근] 3 d렌더링 옵티마이징_nv_perfhud
[박민근] 3 d렌더링 옵티마이징_nv_perfhud[박민근] 3 d렌더링 옵티마이징_nv_perfhud
[박민근] 3 d렌더링 옵티마이징_nv_perfhud
 
에코노베이션 3차 세미나 교안 1st Edition.~
에코노베이션 3차 세미나 교안 1st Edition.~에코노베이션 3차 세미나 교안 1st Edition.~
에코노베이션 3차 세미나 교안 1st Edition.~
 
20140514 team blender_v01 (Korean)
20140514 team blender_v01 (Korean)20140514 team blender_v01 (Korean)
20140514 team blender_v01 (Korean)
 
kics2013-winter-biomp-slide-20130127-1340
kics2013-winter-biomp-slide-20130127-1340kics2013-winter-biomp-slide-20130127-1340
kics2013-winter-biomp-slide-20130127-1340
 
에코노베이션 3차 세미나 교안
에코노베이션 3차 세미나 교안에코노베이션 3차 세미나 교안
에코노베이션 3차 세미나 교안
 
[IGC 2017] 넥스트플로어 김영수 - Protocol:hyperspace Diver 개발 포스트모템
[IGC 2017] 넥스트플로어 김영수 - Protocol:hyperspace Diver 개발 포스트모템[IGC 2017] 넥스트플로어 김영수 - Protocol:hyperspace Diver 개발 포스트모템
[IGC 2017] 넥스트플로어 김영수 - Protocol:hyperspace Diver 개발 포스트모템
 
윈도우 매니저 스터디: 1. 윈도우 매니저 출력
윈도우 매니저 스터디: 1. 윈도우 매니저 출력윈도우 매니저 스터디: 1. 윈도우 매니저 출력
윈도우 매니저 스터디: 1. 윈도우 매니저 출력
 
KGC 2007 소프트웨어 렌더러 개발
KGC 2007  소프트웨어 렌더러 개발KGC 2007  소프트웨어 렌더러 개발
KGC 2007 소프트웨어 렌더러 개발
 
2015 제2회 동아리 해커 세미나 - 병렬컴퓨팅 소개 (16기 김정현)
2015 제2회 동아리 해커 세미나 - 병렬컴퓨팅 소개 (16기 김정현)2015 제2회 동아리 해커 세미나 - 병렬컴퓨팅 소개 (16기 김정현)
2015 제2회 동아리 해커 세미나 - 병렬컴퓨팅 소개 (16기 김정현)
 
전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012
전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012
전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012
 
모바일 앱 성능 분석 방법 101 (Mobile Application Performance Analysis Methodology 101)
모바일 앱 성능 분석 방법 101 (Mobile Application Performance Analysis Methodology 101) 모바일 앱 성능 분석 방법 101 (Mobile Application Performance Analysis Methodology 101)
모바일 앱 성능 분석 방법 101 (Mobile Application Performance Analysis Methodology 101)
 
NDC2018 안드로이드+유니티 네이티브 프로파일링 삽질기
NDC2018 안드로이드+유니티 네이티브 프로파일링 삽질기NDC2018 안드로이드+유니티 네이티브 프로파일링 삽질기
NDC2018 안드로이드+유니티 네이티브 프로파일링 삽질기
 
[NDC2015] 언제 어디서나 프로파일링 가능한 코드네임 JYP 작성기 - 라이브 게임 배포 후에도 프로파일링 하기
[NDC2015] 언제 어디서나 프로파일링 가능한 코드네임 JYP 작성기 - 라이브 게임 배포 후에도 프로파일링 하기[NDC2015] 언제 어디서나 프로파일링 가능한 코드네임 JYP 작성기 - 라이브 게임 배포 후에도 프로파일링 하기
[NDC2015] 언제 어디서나 프로파일링 가능한 코드네임 JYP 작성기 - 라이브 게임 배포 후에도 프로파일링 하기
 
KGC 2014 프로파일러를 이용한 게임 클라이언트 최적화
KGC 2014 프로파일러를 이용한 게임 클라이언트 최적화KGC 2014 프로파일러를 이용한 게임 클라이언트 최적화
KGC 2014 프로파일러를 이용한 게임 클라이언트 최적화
 
[조진현] [Kgc2011]direct x11 이야기
[조진현] [Kgc2011]direct x11 이야기[조진현] [Kgc2011]direct x11 이야기
[조진현] [Kgc2011]direct x11 이야기
 
전형규, M2 클라이언트 스레딩 아키텍쳐, NDC2013
전형규, M2 클라이언트 스레딩 아키텍쳐, NDC2013전형규, M2 클라이언트 스레딩 아키텍쳐, NDC2013
전형규, M2 클라이언트 스레딩 아키텍쳐, NDC2013
 
왜 개발자는 컴퓨터공학을 공부해야 할까? (비전공자는 컴퓨터공학 과목에서 무엇을 알아야할까?)
왜 개발자는 컴퓨터공학을 공부해야 할까? (비전공자는 컴퓨터공학 과목에서 무엇을 알아야할까?)왜 개발자는 컴퓨터공학을 공부해야 할까? (비전공자는 컴퓨터공학 과목에서 무엇을 알아야할까?)
왜 개발자는 컴퓨터공학을 공부해야 할까? (비전공자는 컴퓨터공학 과목에서 무엇을 알아야할까?)
 
모바일환경에서의 크로스 플랫폼_3D_렌더링엔진_제작과정
모바일환경에서의 크로스 플랫폼_3D_렌더링엔진_제작과정모바일환경에서의 크로스 플랫폼_3D_렌더링엔진_제작과정
모바일환경에서의 크로스 플랫폼_3D_렌더링엔진_제작과정
 
[IGC2017] Protocol:hyperspace Diver 개발 포스트모템
[IGC2017] Protocol:hyperspace Diver 개발 포스트모템[IGC2017] Protocol:hyperspace Diver 개발 포스트모템
[IGC2017] Protocol:hyperspace Diver 개발 포스트모템
 
Hideroot - Inc0gnito 2016
Hideroot - Inc0gnito 2016Hideroot - Inc0gnito 2016
Hideroot - Inc0gnito 2016
 

MGS 툴세미나

  • 1.
  • 3. ONE 1 개발팀은 서로 말이 안통한다 ?
  • 4. PHASE 1 게임개발자와 툴시스템 결론 없는 회의 , 게임개발에 대한 회의감 개발팀은 서로 말이 안통한다 ?/ 개발자는 컴퓨터로 노가다한다 ?/ 이미지파일 , 사운드파일만 있으면 되나 ?/ 모바일은 게임성으로 승부를 건 다 ! 개발노하우의 공유가 없어 더욱 높아만 지는 파티션 과연 안되는지 진짜 안되는지 10 번 묻고 다짐받아도 믿기힘든 개발세태 이렇게 작업하면 안되요를 남발하는 프로그래머와 화장실서 들려오는 흐느낌
  • 5. PHASE 1 게임개발자와 툴시스템 GIF 애니메이션 만드는 디자이너의 속사정 프로그래머에게 그냥 한번 보여주기 위한 일회성 지겨운 작업 좌표를 픽셀단위로 잡아놓아도 실제로 프로그래머는 눈짐작으로 판단할 뿐 개발팀은 서로 말이 안통한다 ?/ 개발자는 컴퓨터로 노가다한다 ?/ 이미지파일 , 사운드파일만 있으면 되나 ?/ 모바일은 게임성으로 승부를 건 다 ! 구현의 가능성을 모르기 때문에 효과 넣는데 부쩍 소심해지는 디자이너
  • 6. PHASE 1 게임개발자와 툴시스템 시키면 한다 ! 다만 품질은 책임 못 진다 맵데이타 , 대사글 , 공격레벨링 , UI 구성등은 모두 코딩하는 사람의 몫 GIF 애니메이션은 좋은데 , 정작 게임으로 나오면 어설퍼지는 동작들 개발팀은 서로 말이 안통한다 ?/ 개발자는 컴퓨터로 노가다한다 ?/ 이미지파일 , 사운드파일만 있으면 되나 ?/ 모바일은 게임성으로 승부를 건 다 ! 알아서 정의해야 할 것이 워낙 많아 프로그래머에 따라 제각각 나오는 게임
  • 8. PHASE 1 게임개발자와 툴시스템 누구에게도 말 못할 헥사덤프의 공포 몇달된 헥사덤프코드는 자신조차 손대지 못한다 4 비트씩 판단하기 위한 16 진수식 코딩과 부쩍 정이가는 윈도우계산기 개발팀은 서로 말이 안통한다 ?/ 개발자는 컴퓨터로 노가다한다 ? / 이미지파일 , 사운드파일만 있으면 되나 ?/ 모바일은 게임성으로 승부를 건 다 ! 배열제한이라는 헥사덤프의 막다른 골목과 잃어버린 시간
  • 9. PHASE 1 게임개발자와 툴시스템 프로그래머가 가장 오랜 시간 쓰는 프로그램은 그림판 GIF 애니메이션을 하나하나 캡쳐해 일일이 그림판으로 확대하는 즐거움 캐릭터애니메이션 5 개정도의 위치를 땄을 뿐인데 업무종료 개발팀은 서로 말이 안통한다 ?/ 개발자는 컴퓨터로 노가다한다 ? / 이미지파일 , 사운드파일만 있으면 되나 ?/ 모바일은 게임성으로 승부를 건 다 ! 이미지의 위치와 크기를 조금씩 틀려주는 그림판식 센스
  • 10. PHASE 1 게임개발자와 툴시스템 누구나 한번쯤 흐뭇해하는 자기 퇴사 후의 프로젝트 주석 안달다 그만 자신의 코드에 디버깅 되버린 K 씨 변수명을 죄다 한글이니셜로 코딩하는 L 씨 개발팀은 서로 말이 안통한다 ?/ 개발자는 컴퓨터로 노가다한다 ? / 이미지파일 , 사운드파일만 있으면 되나 ?/ 모바일은 게임성으로 승부를 건 다 ! 자기만 알아보는 툴을 만들어 놓고 암호로그인 처리까지 한 A 형 H 씨
  • 11. THREE 3 이미지파일 / 사운드파일만 있으면 되나 ?
  • 12. PHASE 1 게임개발자와 툴시스템 내 게임소스는 21 세기형 일회용 코드 다음 프로젝트에서도 유효한 것은 클리핑 처리되는 drawImage 뿐 갈고 닦을 시간이 없어 효율성 파악이 안된 코드와 무성한 소문의 진위 개발팀은 서로 말이 안통한다 ?/ 개발자는 컴퓨터로 노가다한다 ?/ 이미지파일 , 사운드파일만 있으면 되나 ?/ 모바일은 게임성으로 승부를 건다 ! 새로운 것을 부정하게 되는 보수성향과 발전없는 습관적 개발성향
  • 13. PHASE 1 게임개발자와 툴시스템 아웃사이더로 전락한 기획자 기획서는 꼭 100 장이상 쓰는 기획자와 절대 2 장이상을 넘기지않는 프로그래 머 받아쓰기시간은 전체 프로젝트의 1/5 할애 , 그래도 오타는 항상 출시후에 개발팀은 서로 말이 안통한다 ?/ 개발자는 컴퓨터로 노가다한다 ?/ 이미지파일 , 사운드파일만 있으면 되나 ?/ 모바일은 게임성으로 승부를 건다 ! 현실적인 도움을 주지못해도 프로그래머와 함께 매일 밤새는 끝없는 출시임박
  • 14. PHASE 1 게임개발자와 툴시스템 데이타리소스툴과 엔진형코드의 소박한 꿈 기획자는 프로그램 몰라 , 프로그래머는 기획력 부재 , 자사 툴개발 위해 퓨전 봄버맨 , 메가맨 같은 시리즈물과 엔진화에 의한 황금방석의 잊혀진 전설 개발팀은 서로 말이 안통한다 ?/ 개발자는 컴퓨터로 노가다한다 ?/ 이미지파일 , 사운드파일만 있으면 되나 ?/ 모바일은 게임성으로 승부를 건다 ! 악순환을 부르는 막코딩청탁과 지난해 문서를 그대로 복사해놓은 연봉계약서
  • 16. PHASE 1 게임개발자와 툴시스템 고민할 필요 없는 분업화된 체계 일의 끝이란 것이 존재하는 , 툴로 분업화된 업무체계 지루한 기다림의 계주가 아닌 각각 백미터 단독 질주 개발팀은 서로 말이 안통한다 ?/ 개발자는 컴퓨터로 노가다한다 ?/ 이미지파일 , 사운드파일만 있으면 되나 ?/ 모바일은 게임성으로 승부를 건 다 ! 프로젝트는 공중분해 된다해도 체계화된 리소스는 홀로 살아남는다
  • 17. PHASE 1 게임개발자와 툴시스템 프로그래머의 손을 떠난 철저한 게임성 조율 이미지 / 사운드를 제외한 게임리소스를 직접 제작하는 게임툴전문 기획자 툴에 의해 눈으로 체크되는 리소스조작과 컴파일없이 바로 재적용되는 게임엔진 개발팀은 서로 말이 안통한다 ?/ 개발자는 컴퓨터로 노가다한다 ?/ 이미지파일 , 사운드파일만 있으면 되나 ?/ 모바일은 게임성으로 승부를 건 다 ! 물리적 에러는 내 책임 , 그 외 사항은 여러분의 몫입니다
  • 18. PHASE 1 게임개발자와 툴시스템 나만의 데이타를 만들어 주는 툴시스템 버그신고 / 기능확장의 요구는 리퀘스트게시판 , 따로 리소스빌드추가는 견적의뢰로 빌드기능은 모두에게 공개된 기술의 마켓 , 인기있는 회사별 리소스와 엔진라이센스 개발팀은 서로 말이 안통한다 ?/ 개발자는 컴퓨터로 노가다한다 ?/ 이미지파일 , 사운드파일만 있으면 되나 ?/ 모바일은 게임성으로 승부를 건 다 ! 모바일게임의 체계를 연구하는 집단과 플랫폼을 뛰어넘는 표준화된 연구성과의 즐거움
  • 19.
  • 21. ONE 1 PNG 의 구조
  • 22. PHASE 2 MBM Class 4 가지요소의 청크화된 구조 사이즈 (4) | 청크명 (4) | 내용 ( 사이즈 ) | CRC 인증코드 (4) 89PNG : PNG 식별자 IHDR : 가로세로크기 , 압축레벨 / 인터레이스여부 PNG 의 구조 / PNGnc 의 발견 / PNGnc 의 가능성 / MBM 의 구조 / MBM 의 기능 PLTE : 24 비트형 팔레트 tRNS : 팔레트별 투명도 IDAT : 픽셀별 색상정보 ( 인덱스번호 ), 유일한 압축청크 IEND : 청크종료
  • 23. 모바일환경에서 제외된 CRC 인증과 Adler 인증 CRC 코드 : 전 청크에서 사용되며 , 범용적인 Hash 테이블링 XOR 값 PNG 의 구조 / PNGnc 의 발견 / PNGnc 의 가능성 / MBM 의 구조 / MBM 의 기능 PHASE 2 MBM Class Adler 코드 : IDAT 에서만 유일하게 사용되며 , 픽셀 색상의 인증
  • 24. TWO 2 PNGnc 의 발견
  • 25. JAR 에서 빛이나는 None Compressed PNG LBM8 -JAR 용량 : 225416Byte, - 로딩속도 : 4128ms MBM8 -JAR 용량 : 240866Byte, - 로딩속도 : 4284ms PNGnc8 -JAR 용량 : 279122Byte, - 로딩속도 : 4540ms PNG 의 구조 / PNGnc 의 발견 / PNGnc 의 가능성 / MBM 의 구조 / MBM 의 기능 PHASE 2 MBM Class PNG8 -JAR 용량 : 355874Byte, - 로딩속도 : 6695ms
  • 26. IDAT 의 열단위 비압축구간은 BMP 제어와 다를 것이 없다 국내 플랫폼은 CRC 코드와 Adler 코드 인증검사를 하지않음 인증검사를 한다해도 팔레트 / 이미지변환을 하지않으면 속도와 관계없음 PNG 의 구조 / PNGnc 의 발견 / PNGnc 의 가능성 / MBM 의 구조 / MBM 의 기능 PHASE 2 MBM Class 블럭구간헤더 (1) + 블럭길이 (2) + 블럭길이검사 (2) + 필터 ID(1)
  • 27. THREE 3 PNGnc 의 가능성
  • 28. BREW, GVM/GNEX 계열을 제외한 모든 JAVA 계열 및 WIPI 플랫폼호환 PNG 의 구조 / PNGnc 의 발견 / PNGnc 의 가능성 / MBM 의 구조 / MBM 의 기능 JAR 압축을 통한 리소스다이어트 및 비압축방식에 의한 로딩스피드업 손실없는 TRUE 칼라 및 256 단계 투명도 지원 PHASE 2 MBM Class BMP 구조 비압축에 의한 이미지생성 , 색변환 , 투명도변환 , 반전 / 확대 / 축소 / 회전
  • 30. System.arraycopy() 를 이용한 구간복사식 PNGnc 생성 for 문을 이용한 byte 단위 대입의 약 700 배 속도증가 PNG 의 구조 / PNGnc 의 발견 / PNGnc 의 가능성 / MBM 의 구조 / MBM 의 기능 PHASE 2 MBM Class PNGnc 구성시 매번 메모리 생성 / 해제를 하지않는 방식
  • 31. MBH 파일 헤더정보 (IHDR) 의 기본형 팔레트정보 (PLTE) PNG 의 구조 / PNGnc 의 발견 / PNGnc 의 가능성 / MBM 의 구조 / MBM 의 기능 PHASE 2 MBM Class 투명도정보 (tRNS)
  • 32. MBM 파일 픽셀정보 (IDAT) 와 가로세로크기 헤더정보 (IHDR) 용 CRC 코드 PNG 의 구조 / PNGnc 의 발견 / PNGnc 의 가능성 / MBM 의 구조 / MBM 의 기능 PHASE 2 MBM Class HotSpot 정보
  • 34. 독립적인 MBM 이미지생성 , MBM 간 이미지 / 스프라이트복사 , 사각형칠하기 가 능 좌우 / 상하 복합적인 반전 : HotSpot 정보도 변환 자율적인 확대 / 축소 : HotSpot 정보도 변환 자율적인 회전 (256 도 ) : HotSpot 기준의 Shift 연산의 256 체계 회전 PNG 의 구조 / PNGnc 의 발견 / PNGnc 의 가능성 / MBM 의 구조 / MBM 의 기능 색영역효과 : R, G, B 는 각각 0 에서 255 까지 PHASE 2 MBM Class 페이드효과 : Level 은 -256 에서 256 까지
  • 35. 셀로판효과 : Level 은 0 에서 256 까지 그레이효과 : 단계는 없음 반투명조정 : Level 은 0 에서 255 까지 빠른작업모드 : 클리핑없는 이미지 / 스프라이트복사 , 사각형칠하기 PNG 의 구조 / PNGnc 의 발견 / PNGnc 의 가능성 / MBM 의 구조 / MBM 의 기능 MBH/MBM 오픈 : 각종 정보오픈 및 배열제공에 의한 이미지의 사용자조작 PHASE 2 MBM Class CRC/Adler 제공 : 해외폰용 게임이나 기타 필요한 상황을 위한 함수제공
  • 36.
  • 39. PHASE 3 코드발상법 What's 코드발상법 ? / What's 코드최적화 ? / 애니메이션처리의 발상법 / 클리핑처리의 발상법 / 메모리관리의 발상법 KNOT 와 암호화의 발상법 / GW84 와 압축의 발상법 대부분의 알고리즘에는 잘 벗어나지 않는 패턴 , 디자인패턴이란 것이 있다 디자인패턴은 노하우가 쌓인 구조를 지칭 , 코드발상법은 필요한 개개의 요소를 지칭 항상 해결책을 고려할 때 , 어떤 요소를 떠올려 어떤 틀에 맞출 지가 가장 중요 언어는 중요하지 않다 , 다만 알고리즘의 연마가 중요할 뿐
  • 41. What's 코드발상법 ? / What's 코드최적화 ? / 애니메이션처리의 발상법 / 클리핑처리의 발상법 / 메모리관리의 발상법 KNOT 와 암호화의 발상법 / GW84 와 압축의 발상법 모듈화 , 객체화에 주로 신경 씀 : 1 단계 계산적인 최적화에 주로 신경 씀 : 2 단계 알고리즘상의 불필요한 계산을 제거함 : 3 단계 최고의 해답이 아닌 최적의 근사치 답에도 주목함 4 단계 PHASE 3 코드발상법 게임의 패턴이나 AI 방식 자체를 바꿈 ( 기획자의 영역 커트라인 ) 5 단계
  • 43. 항상 게임타이머는 째깍째깍 What's 코드발상법 ? / What's 코드최적화 ? / 애니메이션처리의 발상법 / 클리핑처리의 발상법 / 메모리관리의 발상법 KNOT 와 암호화의 발상법 / GW84 와 압축의 발상법 전체 애니메이션의 등장과 퇴장을 스케줄링 함 PHASE 3 코드발상법 게임타이머의 강제조절로 항상 스킵을 할 수 있어야 함
  • 44. 하나의 정수로 모든 움직임을 기억 What's 코드발상법 ? / What's 코드최적화 ? / 애니메이션처리의 발상법 / 클리핑처리의 발상법 / 메모리관리의 발상법 KNOT 와 암호화의 발상법 / GW84 와 압축의 발상법 진행형 : 정지 (-1), 행동 (ex. A = A + 1), 게임타이머로써 진행속도 조절가능 싸이클형 : 정지 (-1), 행동 (ex. A = (A + 1) % B, A = (A + 1) & 0xff) 왕복형 : 행동시 싸이클형의 A 를 사용 (ex. C = ABS(A - B 절반 )) 발산형 : 행동시 진행형의 A 를 사용 (ex. B = A * A) 수렴형 : 고정점 C 에게 수렴 (ex. A = (A + C) / 2) PHASE 3 코드발상법 난수개입형 : 상수로 초기화된 독립된 난수사용 (ex. A = (A % B)? 난수 : A + 1)
  • 45. 발생 / 진행 / 출력의 3 가지 잣대로 모든 움직임을 연상하고 설계 함 What's 코드발상법 ? / What's 코드최적화 ? / 애니메이션처리의 발상법 / 클리핑처리의 발상법 / 메모리관리의 발상법 KNOT 와 암호화의 발상법 / GW84 와 압축의 발상법 발생 : 키 입력 또는 게임타이머로써 애니메이션을 발생 ( 정지 상태를 해제 ) 진행 : 매 프레임마다 무조건 불리어지는 함수 , 애니메이션을 진행 PHASE 3 코드발상법 출력 : 간단한 애니메이션 정수로써 위치 또는 상태를 최종적으로 계산 , 출력함
  • 47. 클리핑이란 ? What's 코드발상법 ? / What's 코드최적화 ? / 애니메이션처리의 발상법 / 클리핑처리의 발상법 / 메모리관리의 발상법 KNOT 와 암호화의 발상법 / GW84 와 압축의 발상법 PHASE 3 코드발상법 계산적으로 출력해야 할 영역을 미리 줄여놓는 방식
  • 48. 출력방식은 백버퍼방식과 플리핑방식 What's 코드발상법 ? / What's 코드최적화 ? / 애니메이션처리의 발상법 / 클리핑처리의 발상법 / 메모리관리의 발상법 KNOT 와 암호화의 발상법 / GW84 와 압축의 발상법 백버퍼방식 : LCD 와 같은 크기의 공간에서 그림을 미리 완성후 LCD 에 복사 클리핑처리에 적합 , 전 모바일플랫폼 공통사항 PHASE 3 코드발상법 플리핑방식 : LCD 공간 자체가 2 개이상 , 쉬는 공간에 그림을 완성후 V 포인터교체 매번 모든 것을 그려줘야 함 . 클리핑이 안되는 것은 아니나 부적 합
  • 49. 백버퍼방식의 출력절차는 2 단계 What's 코드발상법 ? / What's 코드최적화 ? / 애니메이션처리의 발상법 / 클리핑처리의 발상법 / 메모리관리의 발상법 KNOT 와 암호화의 발상법 / GW84 와 압축의 발상법 백버퍼출력 : Graphics g 에 그리는 단계 , 그리는 도중의 모습이 화면에 안 보 임 PHASE 3 코드발상법 LCD 에 출력 : flush() 와 같은 류의 처리 , 완성 된 백버퍼를 LCD 로 복사
  • 50. 합집합과 교집합 What's 코드발상법 ? / What's 코드최적화 ? / 애니메이션처리의 발상법 / 클리핑처리의 발상법 / 메모리관리의 발상법 KNOT 와 암호화의 발상법 / GW84 와 압축의 발상법 합집합 : 배경구성이 복잡하여 복원될 영역 , 출력한 영역을 합산하기 위하여 쓴다 교집합 : 메뉴나 윈도우속 출력을 스택식으로 클리핑할 때 쓴다 PHASE 3 코드발상법
  • 51. 출력할지 말지를 판단하지 말고 클리핑걸고 모두 출력하라 What's 코드발상법 ? / What's 코드최적화 ? / 애니메이션처리의 발상법 / 클리핑처리의 발상법 / 메모리관리의 발상법 KNOT 와 암호화의 발상법 / GW84 와 압축의 발상법 상황과 시점에 따라 출력여부를 판단하는 것은 논리적 버그의 위험한 도박 PHASE 3 코드발상법 재사용성을 고려한 융통성있는 코드의 구성을 위하여 통합적인 클리핑체계를 구성함
  • 52. 화면요소의 정의 What's 코드발상법 ? / What's 코드최적화 ? / 애니메이션처리의 발상법 / 클리핑처리의 발상법 / 메모리관리의 발상법 KNOT 와 암호화의 발상법 / GW84 와 압축의 발상법 통짜식배경 : 평소에 배경이 움직이지 않고 레이어가 없을 경우 구성식배경 : 레이어가 많거나 또는 매 프레임 배경을 그릴 필요가 없을 경우 고정요소 : 배경의 요소이지만 , 캐릭터보다 앞쪽에 위치한 경우 PHASE 3 코드발상법 오브젝트 : 캐릭터와 효과 , 총알등 움직이는 화면요소 , 클리핑시 영역관리필 요
  • 53. 클리핑방식과 장단점 What's 코드발상법 ? / What's 코드최적화 ? / 애니메이션처리의 발상법 / 클리핑처리의 발상법 / 메모리관리의 발상법 KNOT 와 암호화의 발상법 / GW84 와 압축의 발상법 백버퍼출력 : 개개의 오브젝트 영역으로 복원 ( 통짜식배경의 경우 ) 오브젝트 합집합 영역으로 복원 ( 구성식배경의 경우 , LCD 클리핑에 용 이 ) PHASE 3 코드발상법 LCD 에 출력 : 복원된 총 영역 + 출력한 총 영역의 합집합식 클리핑 계산시간이 복잡하거나 , 비동기적 LCD 출력이라면 클리핑을 과감히 배제
  • 55. 메모리 아껴쓰기 What's 코드발상법 ? / What's 코드최적화 ? / 애니메이션처리의 발상법 / 클리핑처리의 발상법 / 메모리관리의 발상법 KNOT 와 암호화의 발상법 / GW84 와 압축의 발상법 계산에 의한 2 차 , 3 차 결과변수는 할당없이 필요할 때마다 직접 계산 PHASE 3 코드발상법 int 형은 short 형으로 , 배열의 차원수는 팍팍 줄이자
  • 56. 공용메모리의 사용 What's 코드발상법 ? / What's 코드최적화 ? / 애니메이션처리의 발상법 / 클리핑처리의 발상법 / 메모리관리의 발상법 KNOT 와 암호화의 발상법 / GW84 와 압축의 발상법 파일오픈 , 매핑배열 등을 위한 대형공용메모리의 확보 PHASE 3 코드발상법 빈번한 메모리 할당 / 해제는 gc() 의 호출에 의한 딜레이의 원인
  • 57. 로딩은 출력시 , 해제는 메모리부족시 오래된 것부터 !(RTLT 기법 ) What's 코드발상법 ? / What's 코드최적화 ? / 애니메이션처리의 발상법 / 클리핑처리의 발상법 / 메모리관리의 발상법 KNOT 와 암호화의 발상법 / GW84 와 압축의 발상법 메모리여분 판단 , 로딩시 메모리사용량 판단 , 시스템의 여유메모리 판단이 관건 적절한 로딩배분을 위한 화면구성으로 자연스러운 프레임유지 PHASE 3 코드발상법 로딩모드가 완전히 없어져 모드별 이미지를 따로 판단할 필요가 없음
  • 58. SIX 6 KNOT 와 암호화의 발상법
  • 59. What's 코드발상법 ? / What's 코드최적화 ? / 애니메이션처리의 발상법 / 클리핑처리의 발상법 / 메모리관리의 발상법 KNOT 와 암호화의 발상법 / GW84 와 압축의 발상법 관련자료 시연 PHASE 3 코드발상법
  • 60. SEVEN 7 GW84 와 압축의 발상법
  • 61. What's 코드발상법 ? / What's 코드최적화 ? / 애니메이션처리의 발상법 / 클리핑처리의 발상법 / 메모리관리의 발상법 KNOT 와 암호화의 발상법 / GW84 와 압축의 발상법 관련자료 시연 PHASE 3 코드발상법