본문 바로가기

전체 글

블루투스 Bluetooth 블루투스는 덴마크의 왕이었던 하랄 블로탄 왕(Harald Blåtand)의 평화 통일 업적에 대한 소설을 읽은 의 연구개발원 짐 카다크(Jim Kardach)의 의견으로 제시되었다. 또한 블로탄이라는 단어가 "푸른"의 뜻을 지녔기 때문에 지금의 심볼을 가지게 되었다. 블루투스는 1994년 스웨덴의 사에서 개발하기 시작했으며 1998년 , , 등의 기업들이 모여 Bluetooth SIG(Special Interest Group)를 구성하여 개발을 가속화했고 17,000개 이상의 회원사에서 사용하는 범용 표준을 만들게 되었다. 당시 저렴한 개인용 무선 케이블을 만들기 원했던 주축들은 개인 정보 보호 기능을 갖추고 전 세계에서 작동할 수 있도록 ISM 대역을 선택하여 각 국의 규제 문제를 해결해야 했다. 이들.. 더보기
자료형에 대하여 자료형 DATA Type 우리가 변수를 선언할 때에는 변수의 사용방법이나 장소에 따라 알맞은 형태 ( 정수 / 실수 / 문자 등 )를 고려해 미리 그 타입을 정해주어야 한다. 이 때 그 형태들을 자료형이라 하며 그 자료형에 대한 이야기를 하겠다. 자료형들은 효율성과 안전한 사용을 위해 각각의 범위와 형태를 제한한다. 세 개의 정수만을 사용할 곳에 엄청난 범위의 자료형을 사용하면 낭비가 될 수 있다. 각 언어마다 지원하는 종류가 다르지만 보편적으로 사용하는 자료형의 종류와 그 특성들을 알아보자. 정수 char 8 비트 8비트인 아스키 코드 값을 저장하기도 한다. short 2 바이트 -32,768 ~ 32,767 int 4 바이트 -2,147,483,648 ~ 2,147,483,648 / 모 게임 돈 벌기.. 더보기
[게임수학_01] 부동소수점 컴퓨터에서 실수를 표현하는 방법은 정수의 경우보다 더 많은 과정을 거쳐야한다. 실제로 데이터 오류를 줄이기 위해 분기나 조건을 걸 경우 정수를 쓰는 것을 지난 포스트에서 추천했다. 실수를 2진수로 표현하기 위해 이런저런 방법들이 연구되었으며 이번 포스트에서 중점적으로 다룰 부동소수점도 그 중 하나이다. 우선 고정 소수점에 대해서 알아보자면 아래와 같다. 고정 소수점 방식은 비교적 간단한 방법으로 소수부의 자릿수를 미리 정하여 고정된 자릿수의 소수를 표현하는 것이다. 하지만 이 방식은 정수부와 소수부의 자릿수가 작아 표현할 수 있는 범위도 적다. 그렇다면 부동소수점은 어떨까. 부동소수점 대체적으로 "부"라는 글자가 가지는 선입견 때문인지 不動 으로 알고 있는 사람이 있는데 부유와 같은 자를 써 浮動 이다... 더보기
[게임수학_00] 프롤로그 프로그래밍을 하며 수학을 익히는 것이 중요한 지는 스스로 느끼지 못할 수도 있지만 다들 알고 있을 것이다. 가끔가다 변수의 값을 비교할 때나 그러한 함수를 활용할 때 알 수 없는 문제가 발생했다고 생각할 때가 있다. 정말 별 것 아닌 계산 착오로 설계를 잘 못해 일어나는 그런 것들 말이다. 예를 들어 무심코 조건문을 사용할 때 if(a == 1.7) 와 같이-어떤 언어를 쓰던간에-사용하며 오류가 난 적이 있을 것이다. 내 눈에는 문제가 없어보이는데 왜 문제가 날까 하며 변수의 자료형을 바꿔도보고 이런저런 연산을 더하고 빼보고 했을 것이다. 부동소수점에 대해 알더라도 평소 코드를 작성하며 생각해보지 않았다면 언젠가 실수할 수 있다고 생각한다. 그런 의미에서 내가 공부했던 수학들을 게임과 관련되어 하나씩 써.. 더보기
컴포넌트 컴포넌트란 액터의 하위 오브젝트로 사용할 수 있도록 설계된 여러 유형의 함수성 조각을 의미한다. 독립적으로 존재할 수는 없으나 액터에 추가시키면 자립적인 함수성 조각으로 존재할 수 있다. 일반적인 서브 오브젝트의 기본 작동방식과는 상반되게 액터 안의 서브 오브젝트로 생성된 컴포넌트는 인스턴스로 생성된다. 특정 클래스의 액터 인스턴스 각각은 컴포넌트의 고유 인스턴스를 별도로 갖는다는 뜻이다. 예를 들어 자동차의 경우 네 개의 바퀴 컴포넌트를 클래스 디폴트 프로퍼티에 서브오브젝트로 만든다면 자동차 인스턴스가 생성되었을 경우 이를 위한 바퀴 컴포넌트가 생성된다. 그렇지 않을 경우 월드 내의 자동차 한 대가 움직일 경우 모든 자동차의 바퀴가 회전할 것이기 때문이다. 컴포넌트의 유형은 다음과 같다. AI 컴포넌트.. 더보기
블루프린트 통신 다수의 블루프린트 작업 시 그 사이의 정보를 전달하거나 공유하기 위해서 일정한 형태의 통신이 필요하다. 그 종류로는 간단하게 - 직접 블루프린트 통신 - 이벤트 디스패처 - 블루프린트 인터페이스 - 블루프린트 형변환 이렇게 네 가지의 방법으로 나누어진다. 각각의 방법에 대해 알아보도록 하자. 직접 블루프린트 통신 가장 흔한 통신 방법으로 1:1 방식의 통신 유형이다. 작업 블루프린트가 타깃 블루프린트로의 접근을 요청하는 방식이다. 공개적으로 노출된 오브젝트 변수를 통해 타깃 블루프린트로의 레퍼런스를 구한 다음 접근하고자 하는 블루프린트의 인스턴스를 지정하는 방식이 가장 보편적이다. 일반적으로 먼저 작업할 것은 어떤 블루프린트와 통신할 것인지 식별하는 것이다. 이를 위해 작업 블루프린트 내부에 공개적으로 .. 더보기
개요 - 용어 언리얼 엔진에 대해 공부하기 전에 흔히 사용되는 용어에 대한 정리이다. 그동한 노트에 수기로 공부하며 작성한 내용들을 기반으로 계속해서 업데이트 될 포스트다. 1. 프로젝트 Project 프로젝트란 게임을 이루는 컨텐츠와 코드가 들어있는 독립적인 유닛 저장소 상의 Directory 세트와 일치한다. .uproject 파일을 의미하기도 하지만 해당 파일은 내부의 파일들을 생성/open/저장 하는 레퍼런스 파일을 의미한다. 참고 https://docs.unrealengine.com/ko/Engine/Basics/Projects/index.html 2. 오브젝트 Object 언리얼 엔진의 기본 구성요소를 의미한다. 게임 에셋에 대한 본질적인 내부적 함수성이 다수 포함된다. (상속의 의미) 3. 클래스 Clas.. 더보기
게임의 역사 이 포스트를 쓰게 되면서 대학시절 작성했던 리포트가 생각이 난다. 창의력을 기르기 위한 교육의 일환으로 의 [Flash]를 이용해 게임을 만들었던 수업이었다. 내가 초등학생이었을 때 [Flash mx]를 이용해 그 나이 수준의 애니메이션과 간단한 게임을 만들었는데 그 때보다 프로그램 자체가 세련되게 바뀌었기에 새로 배우는 기분이기도 했다. 물론 같은 조원들은 그림을 그리거나 녹음을 하거나 리소스를 만들고 게임 자체는 내가 혼자 만들었던 기억이 있다. 뭐 그림조차 내가 [포토샵]을 야매로 가르쳐서 그리게 했지만서도. 당시 미니게임을 몇 가지를 만들고 발표자료를 작성하며 게임의 역사에 대해 간단히 정리했었다. 왜 발표도 내가 했는 지는 모르겠다. 그 당시 생각했던 것은 게임이라는 것이 "무엇에서 시작되었는 .. 더보기