[스터디] 시스템 프로그래밍 - Chapter 1. 컴퓨터 구조에 대한 첫 번째 이야기
·
독서/뇌를 자극하는 윈도우즈 시스템 프로그래밍
뇌를 자극하는 윈도우즈 시스템 프로그래밍(저자, 윤성우) 01. 시스템 프로그래밍의 이해와 접근 - 시스템 프로그래밍의 정의 시스템 프로그래밍을 알아보기 위해서 시스템 프로그램에 대해서 먼저 알아보자. 시스템 프로그램은 하드웨어를 사용할 수 있도록 도와주는 소프트웨어를 말한다. 대표적으로 Window, Linux, Mac, 등과 같은 OS가 있다. 그렇다면 시스템 프로그래밍은 하드웨어의 성능을 사용해서 작업할 수 있게 프로그램을 만드는 행위라고 설명할 수 있다. - 왜 우리는 시스템 프로그래밍을 공부해야 할까? 소프트웨어를 개발하는 입장에서 시스템 프로그래밍의 중요도는 높다. 하드웨어의 성능을 이용한다고 말하면 단순히 전산학이나 전기 회로, 등의 전공에서 중요도가 부각될 것 같지만, 하드웨어의 구조를 이..
[스터디] 시스템 프로그래밍 - 0
·
독서/뇌를 자극하는 윈도우즈 시스템 프로그래밍
3. Tutorial 시스템 리팩터링 일지 (2)
·
개발 일지/퓨처리티
3. Tutorial 시스템 리팩터링 일지 (2) 앞서 이야기를 적은 내용인데, 튜토리얼 시스템에는 크게 Perform 시스템과 Dialog 시스템이 존재한다. Perform의 경우에는 튜토리얼 내부에서만의 사용이 결정되었기에 해당 스크립트를 사용하게 될 프로그래머가 나 혼자일 것이고, 사용 범위가 적으니 크게 부담이 없는 시스템이었다. 하지만, Dialog 시스템은 Perform 시스템과 다르게 게임 전역에서 광범위하게 사용이 될 예정(개발하고 있는 게임이 액션 RPG에 스토리가 있기 때문)이기 때문에 나 말고도 다른 작업자가 사용을 할 수 있다는 점에서 고민이 깊었다. 각자 시스템의 공통 요소를 찾기. Dialog 시스템에서 사용되는 타입이 4가지가 있었다. 한 마디로 디자인이 다른 4개의 Dialo..
2. Tutorial 시스템 리팩터링 일지 (1)
·
개발 일지/퓨처리티
2. Tutorial 시스템 리팩터링 일지 (1) 어쩌다보니까 이 카테고리에는 정말 오랜만에 글을 작성하게 됐다. 뭐든지 꾸준함이 좋은 것은 알지만 제대로 실천하기가 힘들다. 이번 게시글은 이전에 작성하겠다는 내용이 아니라, 튜토리얼 씬을 리팩터링 하면서 생겼던 이슈에 관해서 게시글을 작성해볼까 한다. 튜토리얼 시스템을 왜 리팩터링 하는가? 지금 팀에 합류 당시에는 Shader를 개발하는 그래픽 프로그래머 직군으로 팀에 합류 했었으나, 여러 사정으로 인해서 클라이언트 프로그래밍도 담당하게 되었다. 기존에 이미 프로그래머가 3명이나 있었기에 내가 크게 필요로 하지는 않았으나 변동이 일어나면서 작업 할당량이 늘기 시작했다. 졸업 작품 팀에서 프로그래머 파트장을 담당하게 되면서, 이전 편에 작성했던 것 처럼 ..
Unity - Bezier Curve에 대해서 학습해보자.
·
엔진, 프레임워크/Unity
Bezier Curve의 원리 유니티뿐만 아니라, 컴퓨터 그래픽에서 부드러운 곡선의 구현을 위해서 많이 사용된다. 그래서 해당 내용을 Unity 카테고리에 적을까 Math 카테고리에서 작성할까 고민을 하다가 Unity에서 구현하는 방법을 가지고 Bezier Curve를 소개할 예정이라 Unity 카테고리에 작성을 한다. 베지어 커브(Bezier Curve)는 선분에서 얻는 점을 가지고 구현을 할 수 있다. 1차 베지어 커브부터 N차 베지어 커브까지의 값을 구할 수 있는데, 해당하는 수식들은 아래와 같다. 1차 베지어 커브 B(t)= (1−t)P0​+tP1​ 2차 베지어 커브 B(t)= (1−t)[(1−t)P0​+tP1​]+t[(1−t)P1​+tP2​]=(1−t)2P0​+2(1−t)tP1​+t2P2​ 3차..
Unity - AnimationCurve를 사용해보자.
·
엔진, 프레임워크/Unity
유니티에서 연출 작업을 위해서 선형적이지 않은 움직임이 필요할 때가 있다. 이럴 때에 나는 AnimationCurve를 자주 사용하는 편이다. 선형적과 비선형적인 움직임의 차이라면 흔히 들어봤을 법한 Easing이 있다. 관련된 내용은 아래의 GIF를 같이 보자. Easing은 게임개발 이외에 다양한 분야에서 사용된다. 우리가 핸드폰을 켰을 때, 바로 나타나는 것이 아니라 서서히 빠르게 밝아진다거나, 웹사이트에서 버튼을 눌렀을 때, 따닥! 하고 움직이는 애니메이션들이 Easing을 활용한 연출이다. 여러 공식들이 존재하지만, 유니티에서 간단하게 Easing을 구현할 수 있는 방법은 AnimationCurve를 사용하는 것이다. (Easing 공식 관련 사이트 : https://easings.net/) 유..