VioletaBabel
DirectX GDI를 통하지 않고 그래픽카드로 바로 메세지를 꽂아주기 위해 만들어진 것이 DirectX. Window 운영체제에서 Window Handle[HWND]이라는 창을 만든다.HINSTANCE도 들어가 있다. 제일 처음엔 WinMain이란 함수가 불리고, 안에는 메세지 프로시저가 들어가있고, 무한 루프가 돌면서 기존은 Idle로 있다가 메세지가 오면 처리하는 방식으로 한다. DirectXTest라는 프로젝트를 만들고, 윈도우 데스크탑 응용 프로그램으로 만든다.그리고 해당 프로젝트의 리소스 폴더의 DirectXTest.rc 파일을 연다.Accelerator 폴더 : 단축키String Table 폴더 : 문자열 (타이틀 등) 1234567891011121314151617181920212223242..
기초 필수 수학 1. 벡터 대수 [DirectX 12를 이용한 3D 게임 프로그래밍 입문] 1.1 벡터 벡터(Vector) : 크기(Magnitude)와 방향(Direction)을 모두 가진 수량(Quantity)3차원 벡터의 경우 v = (x, y, z)로 표기할 수 있다. (여기서 x, y, z는 float 또는 double) 1.1.1 벡터와 좌표계꼬리를 좌표계 원점에 일치시킨 벡터를 '표준 위치에 있는 벡터'라고 한다. 같은 벡터 v라도 기준계(공간, 좌표계라고도 할 수 있다)에 따라 좌표가 다르다. (섭씨에서는 100도, 화씨에서는 212도라 표현하듯 같은 벡터이나 표현 방식이 다른 것)3차원 컴퓨터 그래픽에서는 여러 기준계를 사용하는 경우가 많으므로 현재 벡터의 좌표가 어떤 기준계에 상대적인지..
브랜치란? - 한 번에 해야할 작업이 너무 클 때. 마스터 브랜치를 쓰기만 해봤지만, 릴리즈 브랜치를 만든다. 그리고 출시할 작업들만 모으는 식. 또 디벨롭 브런치에서는 계속 개발하고 하는 식으로 할 수 있다. - 브랜치 만드는 건 브랜치 - 새 브랜치 - 릴리즈용, 디벨롭용 등으로 여러 브랜치를 따로 둔다. 급한 버그는 릴리즈에서, 개발은 디벨롭용에서. - 키워드는 git branch. 그리고 이런 식으로 관리하는 걸 '깃 플로우'라고 한다. - tag는 정말 꼭 써야하는 것. 체크아웃이란? - 브랜치를 이동할 때 쓰는 것. 작업하는 브랜치를 바꾸거나, 브랜치 내에서도 특정 시점으로 뒤로 가고플 때. 더블클릭하면 가능. - 체크아웃한 후 수정하면 Head 브랜치라는게 나타날 때가 있는데, 그 상태로 수..
Git Git이란? - 소스 코드 관리를 위한 분산 버전 관리 시스템 Git 호스팅 웹 서비스의 종류 - GitHub : 가장 유명, 오픈 소스는 무조건 여기로. private은 유료, 리포지터리당 1GB, LFS(라지 파일 스토리지) 트래픽 제한 - BitBucket : private은 5인까지 무료, 리포지터리당 1GB - GitLab : private 무료(협업자 수 무제한), 리포지터리당 10GB, 빌드머신 구현에 용의, 설치형, 호스팅형 두가지. 가끔 불안정 함 (6시간 데이터 유실 사건 등) SourceTree - 로컬에서 git을 편리하게 사용할 수 있도록 만들어진 유틸리티 (원래 git은 터미널에서 명령어로 작업해야하는데, 편리하게 쓰도록 누가 만든 것) 유니티 프로젝트에 깃 설정하기 - ..
이전 편 : http://violetababel.tistory.com/444 PostMessage - 지금 하던 일 끝난 후 할 것 (LateUpdate 이용)DelayMessage - 일정 시간이 지난 후 함 === 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128..
- 툴 만드는 법크게 두 가지이다.우선 Editor라는 폴더 안에 있지 않으면 인스펙터 변형에 작동이 되지 않음. 에디터 폴더의 위치나 갯수는 상관 X1. 인스펙터를 변형Enemy를 만들어 그 오브젝트에 이 스크립트를 넣어준다.1234567891011121314151617181920//Enemy.csusing System.Collections;using System.Collections.Generic;using UnityEngine; public class Enemy : MonoBehaviour{ public MonsterType monsterType; public int HP; public float Damage; public string Tag; public bool CanRun;} public en..
2018.11.7 - 모바일에서 이미지, 사운드의 용량과 퀄리티간의 밸런스안드와 아이폰 텍스쳐 압축 방식이 다르고, 아이폰은 6 이전과 이후에 따라 압축 방식 등이 나뉨.안드로이드는 유니티 버전 별로 다름. 유니티 2018의 경우엔 텍스쳐 누르면 플랫폼 별로 나오는데, Max Size = 적당히 실제보단 같거나 크게 해라Resize Algorithm = 가만 둬라. 가능한 기본이 좋고 아니면 육안으로 보며 판단.Compression = High Quality압축된 건 색감이 달라진다. 근데 압축 푸는 건 비추. 모바일 상에서 압축 안되면 메모리가 상당히 무리. 색감이 달라져서 맘에 안들면 차라리 이미지를 바꿔라.압축은 필수!!pvrtc는 아이폰 용 압축 알고리즘인데, 굉장히 이미지가 많이 깨짐.그래서 A..
- 게임을 각 챕터마다 다운받게 하는 것장점 : 끝까지 하는 사람이 아니면 다 받아가지 않기 때문에 서버비 절감단점 : 개발도상국의 경우 인터넷 연결될 때 쫙 받기 때문에 플레이가 막히는 문제 - NGUI, UGUI 차이점환생킹은 NGUI. 차기작은 UGUI.과거엔 NGUI가 좋았고 업뎃은 계속 되고있지만 이제 UGUI가 더 좋아져버림.NGUI는 퍼포먼스가 딸린다고 함. 만들기는 쉬운데 최적화가 매우 어려움.이제는 UGUI.UGUI를 공부하는 방법 : 에셋 스토어에서 유니티 테크놀로지라고 검색. 그 다음 유니티가 만들어 올린 게임 데모 프로젝트 패키지를 보고 거기 있는 UI를 보고 공부해서 따라하라. 그게 가장 훌륭한 공부 방법. 직접 만든 사람이 그렇게 샘플을 만들었기 때문. 그걸 보고 따라 만들어보고..
---코드 리뷰 입문--- 1. 코드 리뷰 - 개발자가 작성한 코드를 다른 개발자가 검토하는 것 장점 : 잠재된 버그 조기 발견, 코드 품질 개선, 문제가 터졌을 때 작성자가 부재해도 리뷰한 개발자가 있으면 빠른 대처 가능. 개발자가 의견을 교류하며 학습할 수 있는 기회. 단점 : 감정 소모. 한 가지 작업(버그 잡기, 기능 추가 등)이 끝나면 해당 부분에 대해 코드 리뷰. 도구는 버전 관리 시스템(git, svn 등)을 이용해 작업단위를 구분하고 코드 리뷰를 도와주는 도구들을 이용. 2. 좋은 코드란? 사람마다 기준이 다르다. 하지만 강연자 분의 기준은 이해하기 좋은 코드. - 내가 작업한 코드도 몇 주 지나고 보면 뭘 작업한건지 몰라 다시 해독하는 시간이 필요하다. - 남이 작업한 코드는 해독하는 시..
Model-View-Controller 구조 1. SendMessage [Player] [U I] [Sound] [Key]│ ↑ │└────→FrameWork←─────────┘ 이렇게 따로 떨어져있으면 독립성 유지. 디버깅 편리, 각자 알아서 동작하게 함. 모델 뷰 컨트롤러라는 디자인 모델을 변경한 것. FrameWork는 SendMsg(바로 지금 처리), PostMsg(지금 하는 일이 다 끝나면 처리), DelayMsg(몇 초 후에 처리) 등을 가지고 있다.Manager라는 클래스를 두고 ReceiveMsg라는 함수를 둔 후, Player, UI, Sound, Key 등에게 상속시켜준다. === 프로젝트를 하나 만들고GameObject, Player, KeyManager라는 오브젝트를 만들어준다.Pl..