분류 전체보기 (392) 썸네일형 리스트형 [4. 인지요소 명세 - 1] 인지 요소 열거 들어가며 지금부터 시스템의 인지요소를 명세하는 것에 대해 알아본다. 인지요소는 규칙을 제외한 나머지 시스템의 구성 요소들, 즉 부품들을 말한다. '캐릭터'와 '아이템'처럼 구체적인 것들부터, '지능'과 '장비 강화' 같은 추상적인 것까지 모두 포함한다. 인지요소 명세는 시스템에 어떤 인지요소가 있는지 정리하고 각 인지요소에 대해 상세한 명세를 하는 것으로 진행된다. 인지요소 열거 인지요소의 열거는 시스템 명세 준비 작업을 했음을 전제한다. 시스템의 기능들이 어느 정도 정리되어 있으면 인지요소를 찾아내기가 수월하기 때문이다. 시스템에 필요한 기능들을 보고 하향식으로 분석해 시스템에 필요한 부품들을 찾아낸다. 시스템에 필요한 '기능' 그 자체를 찾고, 기능을 사용해 만들어낼 '내용'을 찾으면, 많은 인지요소.. [3. 시스템의 큰 그림 - 3] 시스템 이외의 것들 시스템 이외의 것들 처음으로 '시스템'을 다루는 이 시점에, 그동안 고려된 것들을 모아서 같이 정리하는 것이 좋다. 벤치마킹 내용이나 방향성과 같은 것들은 물론이거니와, 기능들에 대해 검토 과정에서 있었던 회의 내용까지 정리하는 것이 좋다. 바로 이어서 지금 정리한 시스템에 대해 세부 명세 작업을 할 수도 있지만, 시간이 어느 정도 지난 다음에 세부 명세 작업을 할 수도 있다. 아니면 한참 뒤에 시스템이 만족스럽지 않아 다시 들여다볼 일이 생기기도 한다. 사람의 기억력은 휘발성이 강하며, 시간이 지나면 상당 부분 잊게 된다. 같이 논의를 했지만 그 내용에 대해 서로 기억하는 바가 다를 수 있다. 따라서 회의록을 남기거나 시스템에 대한 기록들을 추적할 수 있어야 한다. 지금 고민이 되는 내용들은 이후 다시.. [3. 시스템의 큰 그림 - 2] 시스템의 방향성 시스템의 방향성 정리된 기능들로부터 얼추 시스템들을 찾아냈다면, 이제 시스템의 방향성을 생각하도록 한다. 시스템 방향성은 시스템의 기획이나 구현을 할 때 발생할지도 모르는 문제들을 해결하거나 기능 사이에 가치가 충돌해 결정이 필요할 때 도움을 주도록 작성한다. '훌륭한 타격감을 제공한다'와 같이 의미가 별로 없거나, 게임 방향성 수준의 추상적인 내용은 지향하라. 시스템 방향성을 결정하기 위해서는 시스템의 기능들을 분석하고 평가해야 한다. 그리고 게임 방향성에 맞게 기능들을 어떻게 사용할지에 대한 정책을 세운다. 이 과정에 있어서 가장 큰 도움을 주는 것은 '벤치마킹'이며, 만약 벤치마킹이 불충분하거나 수행되지 않았다면 지금 단계에서라도 기능들에 대해 벤치마킹을 해야 한다. 벤치마킹의 내용이나 방법 등은 .. [Java] 02.04 - 자바의 기본 자료형 들어가며 변수를 선언할 때는 반드시 '자료형'을 결정해 주어야 한다. 변수의 자료형을 결정한다는 것은 해당 변수에 값을 저장하고 참조하는 방식을 결정한다는 의미다. 즉, 변수의 자료형을 정수형으로 결정하면 앞서 설명한 정수의 표현 방식으로 값을 저장 및 참조하게 된다. 그리고 실수형으로 결정하면, 앞서 설명한 실수의 표현 방식으로 값을 저장 및 참조하게 된다. 정수 자료형 자바는 총 4개의 정수 자료형을 제공한다. 따라서 이들 자료형을 기반으로 변수를 선언하면, 이로 인해 할당된 메모리 공간에는 정수의 표현 방식을 기준으로 값을 저장 및 참조하게 된다. 따라서 정수 자료형으로 선언된 변수에는 소수점 이하의 값을 포함하는 실수를 저장할 수 없다. 그리고 자바에서 제공하는 4개의 정수 자료형이 갖는 차이점은.. [Java] 02.03 - 실수 표현 방식 이해하기 들어가며 실수의 표현 방식을 이해하면 실수를 보다 효율적으로 그리고 적절히 사용할 수 있다. 더불어 앞서 제시한 실수의 덧셈에서 오차가 발생한 이유도 알 수 있다. 실수의 표현 방식 - 비하인드 다음 질문에는 어렵지 않게 대답할 수 있다. "1과 5사이에 존재하는 정수의 개수는?" 그러나 다음 질문에는 답하기가 쉽지 않다. "1과 2사이에 존재하는 실수의 개수는?" 1과 2 사이에는 무한개의 실수가 존재한다. 따라서 소수점 이하 자릿수까지 표현해야 하는 실수를 컴퓨터로 표현하는 데는 한계가 존재한다. 근데 이게 생각보다 존재감이 엄청나다. 실수의 표현 방식 - 타협과 절충 정수는 오차 없이 표현이 가능하다. 오차 없이 완벽히 양의 정수와 음의 정수를 표현할 수 있다. 그러나 오차를 허용하지 않으면서 그 .. [Java] 02.02 - 정수의 표현 방식 이해하기 들어가며 앞서 double형 변수 둘을 대상으로 한 덧셈의 결과에 오차가 있는 것을 확인하였다. 이러한 오차의 발생 이유를 알기 위해서는 컴퓨터의 정수, 실수 표현법을 이해해야 한다. 따라서 이에 대하여 간단히 설명하고자 한다. 참고로 본문에서는 2진수와 8,16진수에 대한 기본적인 이해를 갖추었다고 가정하고 진행한다. 컴퓨터가 정수를 이해하는 방식 정수의 표현에 있어 제일 먼저 결정할 사항은 '몇 바이트 정수로 표현할 것인가.'이다. 정수는 1, 2, 8바이트로도 표현할 수 있다. 물론 표현하는 바이트 크기가 클수록 표현할 수 있는 정수의 범위는 넓어진다. 그러나 값을 표현하는 기본 원리는 동일하므로 설명의 편의를 위해서 1바이트 기준으로 정수의 표현 방식을 설명하겠다. 다음의 그림은 정수 표현의 기본.. [Java] 02.01 - 변수의 이해와 활용 들어가며 살면서 본인은 모기 때문에 잠을 설쳐본 적이 없다. 하지만 이제 있게 되어 버렸다. 모기는 제발 멸종했으면 좋겠다. 느그들이 있을 곳은 박물관과 실험실 뿐이다. 솔직히 변수에 대해 모르는 것은 아니지만, 복습의 차원으로 간단하게 다뤄보도록 하겠다. 메모리 공간의 활용을 위해 필요한 변수 변수를 한 문장으로 정리하면 다음과 같다. 데이터의 저장과 참조를 위해 할당된 메모리 공간'에 붙인 이름을 '변수'라고 한다. 다음 그림은 메모리 공간의 일부를 표현한 것이다. 그리고 이 메모리 공간에는 두 개의 메모리 블록이 프로그래머가 사용할 수 있도록 할당되어 있다. 그렇다면 메모리 공간을 어떻게 할당받는 것인지, 그리고 메모리 공간에 어떻게 접근할 수 있는지는 여전히 의문으로 남는다. 변수는 메모리 공간에.. [Java] 01.03 - 들여쓰기와 주석 들어가며 본인은 여름이 싫다. 여름의 3대 죄악. 모기, 습기, 열기. 그래서 인간이 반성해야 한다. 근데 모기는 예외다. 제발 멸종했으면 좋겠다. 블록 단위 주석 다음 내용을 소스파일 앞 부분에 기록해 둔다고 가정하자. 파일 이름: Practice.java 작성자: 심플심플심플심플 작성일: 2020년 7월 17일 목적: System.out.println 메소드의 기능 테스트 이렇듯 주석으로 처리해야 할 내용이 여러 줄에 걸쳐서 존재하는 경우, 생각해 볼 수 있는 것이 '블록 단위 주석'이다. 이는 주석의 시작을 '/*'으로, 그리고 끝을 '*/'으로 표시한다. 그러면 그 사이의 모든 내용은 주석으로 인식된다. 그럼 위의 내용을 주석으로 넣으면 다음과 같다. /* 파일 이름: Practice.java 작.. [Java] 01.02 - 자바 프로그램의 관찰과 응용 들어가기 그림 한 장으로 요약하겠다. 프로그램의 골격과 구성 간단한 자바 예제를 하나 보도록 하겠다. public class class_name { public static void main(String[] args){ System.out.print("Hello World."); } } 맥락상 모두가 눈치챘을 테지만, 간단한 출력문이다. 이 명령문은 다음과 같이 이루어져 있다. 위 그림에서 보여주듯이, 자바는 중괄호를 이용해서 영역, 또는 경계를 형성한다. 즉 클래스의 이름에 이어서 다음 행에 등장하는 중괄호와 이에 쌍을 이루어 마지막에 등장하는 중괄호는 클래스의 영역을 구분하는 용도로 사용되었다. 즉, 자바는 중괄호를 이용해서 클래스와 매소드의 영역을 구분한다. 앞서 보인 간단한 예제의 실행결과에서 알.. [Java] 01.01 - 자바 프로그램과 실행의 원리에 대한 이해 들어가며 어찌저지 대학교 1학년의 1학기를 마치게 되었다. 성적도 매우 만족스럽게 나왔다. 2학기 과목 중 Java를 이용한 객체 지향 프로그래밍 과목이 있어, 미리미리 준비하고 학점에 대비할 생각이다. 근데 나 기획 지망인데? 어······? 자바 프로그램의 실행 구조 일반적인 프로그램은 윈도우 또는 리눅스와 같은 운영체제 위에서 실행이 된다. 즉, 다음의 구조로 실행된다는 의미다. 위 그림에서 보여주듯이, 하드웨어를 기반으로 운영체제가 동작하고, 그 위에서 프로그램이 실행되는 구조다. 다시 말하자면, 하드웨어 위에서 실행되는 운영체제가 프로그램을 실행시키는 구조다. 그러나 자바 프로그램은 다음의 구조로 실행이 된다. 이렇듯 운영체제는 자바 가상 머신을 먼저 실행시키고, 자바 가상 머신이 자바 프로그램.. [기획] 교내 게임잼 최근에 교내 게임잼을 했다. 역시 고등학교 때와 대학교 때의 교내 게임잼은 확연히 달랐다. 알고는 있었지만, 촉박한 시간과, 그에 따라 적절한 볼륨의 기획 수준이 중도를 찾아서 개발되어야지만 괜찮은 게임이 그럭저럭 나온 다는 것을 알고 있었기 때문에, 초기 게임 기획을 한번 완전 뒤집어 엎어버리기도 했지만 다행히도 발표와 PPT를 잘해서 1등을 받긴 했지만 아무래도 기획적으로는 개인적으로 만족하진 못 했다. 게임잼이 안 맞는 체질이라고 속단하기에는 아직 경험도 실력도 부족한 나의 능력을 탓하는 것이 옳은 것 같다. [C]오름스타트 후기 요 며칠 전에 교내 오름스타트라는 대회 비스무리한 활동의 결과가 나왔다. 며칠 밤을 새어가며 한 것 치고는 입상도 못 했다. 도중에 교수님이 방향을 한번 틀어버리지만 않으셨어도 보고서가 뒤틀려서 이렇게 되지는 않았을 것 같다. 유감스럽게도 도중에 바뀌어버린 프로젝트는 이전에 개발하던 게임을 포기할 수밖에 없었고.. 결국 입상도 못 했지만 개인적으로는 게임 클라이언트 부분을 맡아서 다른 사람들과 협업하면서 C를 이용한 게임을 만들어 봤다는 것에 의미를 두자. 덕분에 C언어 실력이 많이 늘었으니 말이다. 이전 1 ··· 22 23 24 25 26 27 28 ··· 33 다음