분류 전체보기
-
유니티 내장 프로파일러 _ 메모리위주로...일지 2020. 7. 3. 07:11
프로파일러는 유니티에서 개발하고 있는 혹은 개발 한 프로그램에 대한 최적화를 위해 사용되는 툴로써 CPU, GPU, 렌더링, 오디오, 메모리 등이 효율적으로 사용되고 있는 지를 분석하고 파악할 수 있는 툴이다. 정확한 결과를 위해서는 어떤 작업 이전의 프로파일된 내용과 작업 이후의 프로파일된 내용을 비교하여 해당 작업의 영향을 파악해야 한다. 유니티 에디터에서 실행되고 있는 프로그램에 대한 즉각적인 프로파일링이 가능하며 iOS나 안드로이드 앱의 경우에도 기기를 연결하여 프로파일링을 진행할 수 있다. 유니티 에디터에서 프로파일링을 진행하는 경우 유니티 엔진 자체에 포함되어있는 여러 에셋이 메모리에 함께 잡히게 되므로 iOS나 안드로이드 앱인 경우에는 기기 혹은 애뮬레이터와 연결하여 프로파일링 하는 것이 정..
-
게임 프로그래밍 패턴 Part 2 디자인 패턴 다시보기 - 상태보관함 2020. 3. 23. 19:40
게임 프로그래밍 패턴로버트 나이스트롬 (Robert Nystrom) 상세보기 이 시리즈는 [게임 프로그래밍 패턴]에 등장하는 팁을 정리하고 패턴을 직접 구현하거나 구현되어 있는 패턴을 확인하는 것으로 해당 패턴에 대해 이해하는 것을 목표로 한다. 이번 포스팅에서는 Part 2의 여섯 번째 패턴인 상태 패턴을 살펴보고 상태 패턴을 이용해 간단한 플랫포머 게임을 만들어 보는 것을 목표로 한다. 상태 패턴이란?) [GoF디자인 패턴]에서는 상태 패턴을 다음과 같이 소개했다. 객체의 내부 상태에 따라 스스로 행동을 변경할 수 있게 허가하는 패턴으로, 이렇게 하면 객체는 마치 자신의 클래스를 바꾸는 것처럼 보입니다. 내가 이해한 내용으로 설명하면 상태패턴은 FSM에 OOP를 적용한 것이라고 할 수 있겠다. 즉, ..
-
게임 프로그래밍 패턴 Part 2 디자인 패턴 다시 보기 - 싱글턴보관함 2020. 3. 1. 14:51
게임 프로그래밍 패턴로버트 나이스트롬 (Robert Nystrom) 상세보기 이 시리즈는 [게임 프로그래밍 패턴]에 등장하는 팁을 정리하고 패턴을 직접 구현하거나 구현되어 있는 패턴을 확인하는 것으로 해당 패턴에 대해 이해하는 것을 목표로 한다. 이번 포스팅에서는 Part 2의 다섯 번째 패턴인 싱글턴을 살펴보고 저자가 주장하는 싱글턴 사용을 피해야 하는 이유에 대해서 자세히 살펴보는 것을 목표로 한다. 싱글턴 패턴이란?) [GoF디자인 패턴]에서는 싱글턴 패턴을 다음과 같이 소개했다. 오직 한 개의 클래스 인스턴스만을 갖도록 보장하고, 이에 대한 전역적인 접근점을 제공합니다. 코드로 살펴보면 다음과 같이 인스턴스 생성이 하나만 되도록 제한하고 전역 변수로 접근하도록 만드는 것이다. class TestC..
-
JUNGOL 실력키우기 여러가지 - 색종이(초) | 색종이(중)보관함 2020. 2. 16. 09:28
기초 다지기에서 배운 내용을 응용하여 문제를 해결해야 하는 실력 키우기입니다. 실력 키우기는 비슷한 문제 유형별로 묶어서 풀어보겠습니다. 이번 포스팅에서는 여러가지의 색종이 시리즈를 풀어보겠습니다. 1438 : 색종이(초) 이 문제는 가장 단순한 것이 정답일 수 있다는 것을 잘 보여주는 듯한 문제인 듯 합니다. 단순하게 100 x 100 크기의 bool형 배열을 만들고 최초로 체크될 때 넓이에 1을 추가하는 방식을 사용하면 입력된 위치를 따로 저장할 필요 없이 쉽게 넓이를 알아낼 수 있습니다. #include using namespace std; bool area[101][101]; int main(void) { int n; cin >> n; int x, y; int totalArea{ 0 }; for ..
-
JUNGOL 실력키우기 문자열 - 암호풀기(Message Decowding)보관함 2020. 2. 10. 10:42
기초 다지기에서 배운 내용을 응용하여 문제를 해결해야 하는 실력 키우기입니다. 실력 키우기는 비슷한 문제 유형별로 묶어서 풀어보겠습니다. 이번 포스팅에서는 문자열의 암호풀기 문제를 풀어보겠습니다. 1880 : 암호풀기(Message Decowding) 이 문제는 입력된 복호화 키를 값으로 하는 맵을 만들어 대치시켜주면 되는 간단한 문제입니다. 그런데 c++의 getline이 안먹어요. 심지어 이번에는 cin의 clear와 ignore 메소드를 넣어도 성공하지 못합니다. #include #include #include using namespace std; int main(void) { string str; cin >> str; map keyMap; char c{ 'a' }; for (int i{ 0 }; c
-
JUNGOL 실력키우기 문자열 - 세로읽기보관함 2020. 2. 10. 10:40
기초 다지기에서 배운 내용을 응용하여 문제를 해결해야 하는 실력 키우기입니다. 실력 키우기는 비슷한 문제 유형별로 묶어서 풀어보겠습니다. 이번 포스팅에서는 문자열의 세로읽기 문제를 풀어보겠습니다. 2857 : 세로읽기 이 문제를 간단하게 생각하면 이차원 배열로 생각할 수 있고 C++에서는 string의 size를 알 수 있으므로 string 배열을 이용하면 쉽게 해결이 가능합니다. #include #include using namespace std; int main(void) { string strArr[5]; int longest{ 0 }; for (int i = 0; i > strArr[i]; if (strArr[i].size() > longest) longest = s..
-
JUNGOL 실력키우기 문자열 - 문자열 찾기 | 단어 세기보관함 2020. 2. 10. 10:37
기초 다지기에서 배운 내용을 응용하여 문제를 해결해야 하는 실력 키우기입니다. 실력 키우기는 비슷한 문제 유형별로 묶어서 풀어보겠습니다. 이번 포스팅에서는 문자열의 단어 찾기 시리즈를 풀어보겠습니다. 2514 : 문자열 찾기 C++의 string 클래스에는 find라는 좋은 메소드가 포함되어 있는데 이 메소드의 오버로드를 살펴보면 문자열의 위치를 찾고 어느 인덱스 부터 찾을지를 결정할 수 있습니다. 이 문제는 이 메소드를 이용하여 쉽게 해결이 가능합니다. #include #include using namespace std; int main(void) { string str; cin >> str; string targets[2]{ "KOI", "IOI" }; for (int i = 0; i < 2; ++i..
-
JUNGOL 실력키우기 문자열 - 그릇보관함 2020. 2. 10. 10:35
기초 다지기에서 배운 내용을 응용하여 문제를 해결해야 하는 실력 키우기입니다. 실력 키우기는 비슷한 문제 유형별로 묶어서 풀어보겠습니다. 이번 포스팅에서는 문자열의 그릇 문제를 풀어보겠습니다. 2604 : 그릇 이 문제를 살펴보면 결국 이전에 들어온 문자와 현재의 문자가 같으면 5만큼 증가하고 다르면 10만큼 증가한다는 것을 알 수 있습니다. 이것을 고려하면 쉽게 해결이 가능합니다. #include #include using namespace std; int main(void) { string str; cin >> str; char pre{ str[0] }; int height{ 10 }; for (int i = 1; i < str.size(); ++i) { if (pre == str[i]) { heig..