본문 바로가기

전체 글

(392)
4장 - 게임은 요소로 구성된다. 네 가지 기본 요소 게임을 구성하는 많은 요소를 구분하는 방법은 다양하다. 이중, 필자(제시 셸)이 '4개 요소'라고 부르는 범주로 구분하는 방법이 유용했다. 4가지를 각각 간단히 살펴보고, 서로 어떻게 관련되는지 살펴보자. 1. 메커니즘 게임의 절차와 규칙 메커니즘은 게임의 목표, 플레이어가 목표를 이루기 위해 할 수 있는 것과 없는 것, 그 행위를 시도했을 때 일어나는 일을 설명한다. 선형적 문화창작물(책, 영화 등)에는 기술, 스토리, 미적 요소가 들어가 있지만, '메커니즘'은 들어있지 않다. 메커니즘은 게임을 게임이게 하는 것이다. 어떤 메커니즘을 게임의 핵심으로 하기로 했다면, 그것을 뒷받침 할 수 있는 기술, 그것을 선명히 제시할 수 있는 미적 요소, 그 게임 메커니즘을 납득할 만한 스토리(이..
3장 - 게임에서 발원하는 경험 게임의 정의에 대한 근원적 질문 세상에는 여러가지 장르의 게임이 있다. 그러한 각양각색의 게임들의 공통점은 대체 무엇인가? 즉, '게임'이라는 개념을 어떻게 정의할 수 있는가? 정의에 대한 일침 우리가 다룰 일부 개념은 부득이하게도 모호하다. '경험'이나 '플레이', '게임'과 같은 용어는 사람마다 다르게 정의하며, 우리가 수천 년을 생각하고 논의해도 명확한 정의가 내려지지 않을 수도 있고, 빠른 시일 내에 확고하게 정의될 것 같지 않다. 그렇다고 이러한 용어들을 정의하려는 시도와 노력을 그만두어서는 안 된다. 무언가를 정의하려고 노력할수록 좀 더 명확하고 간결하며 분석적으로 생각하게 된다. 용어 목록과 그것들의 정의를 갖고 있어봐야 배울 수 있는 것은 생각보다 적다. 하지만 이 용어들을 정의하는 과정에..
2장 - 게임 디자이너와 경험(User eXperience) 사용자 경험 궁극적으로 게임 디자이너는 게임 자체도 중요하지만, 가장 중요한 것은, 그것을 플레이하는 사람이 느끼는 '경험' 이다. 경험 없이는 게임은 의미를 상실한다. 여기서의 '게임'은 목표를 달성하기 위한 수단이다. 경험은 사람이 느낄 수 있는 감각적 부분에 해당한다. 시각적 - 보는 것 청각적 - 듣는 것 촉각적 - 만지는 것 행동적 - 행동 하는 것 사고적 - 생각하는 것 이 모든 것들이 전부 사용자의 경험(UX)이 될 수 있는 것들이다. 이러한 경험은 어떠한 방식으로든 표현하기가 매우 어렵다. 따라서 경험은 타인과 완전한 공유가 불가능 하다. 같은 일을 경험하더라도, 사람들은 자신만의 경험을 갖게 된다. 가장 쉽게 흘러들어가는 것이며, 이것은 곧, 그 개인에게 가장 큰 영향을 미칠 수 있는 요..
1장 - 게임 디자이너 가장 중요한 능력 경청 게임 디자이너 에게 가장 중요한 능력은 '경청하기'이다. 게임 디자이너는 많은 것을 들어야 하는데, 크게 5가지로 분류할 수 있다. 팀, 유저, 게임, 클라이언트, 자기 자신 이 책의 대부분은 이 다섯곳으로부터 듣는 일에 관한 것이다. · 게임 디자이너로서의 경청 상대방의 비언어적, 언어적 요소에 모두 주의하고 관심을 기울이는 것 게임 디자이너는 매일, 모든 결정을 내릴 때마다 들어야 하는 경청의 방식이다. 사려깊게 경청한다면 모든 것을 관찰하며 지속적으로 스스로에게 질문하게 될 것이다. "이게 옳은 것인가." "왜 이렇게 되는 것인가." "상대가 진정 그렇게 생각하는 것인가" "무엇인지는 알겠지만 무슨 의미가 있는가" 주의 깊게 경청하는 것은 스스로를 위험에 빠뜨리는 일이다. 우..
188 : 문자열1 - 형성평가7 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 #include #include #pragma warning (disable:4996) // 프로그램 종료 트리거 int trigger = 0; // 공백 위치 탐색 int search_blank(char* arr, int start) { int end; for (int i = start; ; i++) { if (arr[i] == ' ') { // 해당 인..
187 : 문자열1 - 형성평가6 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 #include #include #pragma warning (disable:4996) int main() { char string[100]; char temp; int index; scanf("%s", string); while (strlen(string) != 1) { // 문자열에 문자가 하나만 남을 때까지 scanf("%d", &index); // 삭제할 문자의 위치를 입력받음 // 문자열의 길이보다 더 큰 위치를 입력받으면 if (strlen(string)
186 : 문자열1 - 형성평가5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 #include #include #pragma warning (disable:4996) int main() { char string1[100]; char string2[100]; scanf("%s", string1); scanf("%s", string2); if (strlen(string1) == strlen(string2)) { // 두 문자열의 길이가 같다면 printf("%d", strlen(string1)); } else if (strlen(string2)
185 : 문자열1 - 형성평가4 123456789101112131415161718192021222324252627#include #include #pragma warning (disable:4996) int main(){ char string[100]; char letter; int size; scanf("%s", string); scanf(" %c", &letter); size = strlen(string); for (int i = 0; i
Python - Tkinter를 이용한 2048 구현 매일매일 과제이 치여 살다보니 블로그를 운영하는 것이 쉽지 않다. 거의 방치 수준으로 치닫고 있다. 사실 방치 맞다.(;;;) 과제 중에 특히 팀 프로젝트가 많아서 하고는 있지만 힘든 건 사람 수 만큼 배로 늘어나는 느낌이다. 처음엔 파이 게임으로 구현하려고 했으나, 인터페이스가 똥망이라서 + 알고리즘 구현의 대실패의 환상적인 콜라보가 나의 대뇌를 강타하니 내 멘탈과 함께 프로젝트도 터져버렸다. 어찌저찌 구현 완료 아무튼 어찌저찌 성공을 하긴 하게 되었다. 처음에 애를 먹었던 것은 단연 알고리즘이었다. UX자체는 매우 간단하고 명료하지만, 그것을 구현하는 데에는 좌우뇌가 서로 단교하는 그런 끔찍한 느낌이었다. 그럼 그 알고리즘은 뭔가. 충공깽의 메커니즘 처음에는 혼자서 구현해보려고 노력했다. 물논 게임 ..
184 : 문자열1 - 형성평가3 123456789101112131415161718192021222324252627#include #include #pragma warning (disable:4996) int main(){ char string[100]; scanf("%s", string); for (int i = 0; i
182 : 문자열1 - 형성평가1 123456789101112131415161718192021222324#include #include #pragma warning (disable:4996) int main(){ char letter1, letter2; scanf(" %c %c", &letter1, &letter2); // 두 번째 입력값이 더 크다면 if (letter1
601 : 문자열1 - 자가진단9 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 #include #include #pragma warning (disable:4996) int main() { char string[101] = { '\0', }; char temp; scanf("%s", string); // 문자열의 길이만큼 돌려서 출력해야 함 for (int i = 0; i