프로그래밍

프로그래밍

작성일 2020.09.27댓글 2건
    게시물 수정 , 삭제는 로그인 필요

게임을 만들려고 합니다. 초짜여서 아무것도모르는데 언어는 뭐가 좋고 게임제작에 대해선 단계를 말해주세요(ex.언어-설정) 이런식으로..

이런쪽을 잘몰라서 질문이 부실한점 이해부탁드려요


#프로그래밍 #프로그래밍 언어 #프로그래밍 갤러리 #프로그래밍 언어 순위 #프로그래밍 언어 종류 #프로그래밍 언어론 #프로그래밍 자격증 #프로그래밍 언어 순위 2024 #프로그래밍 사이트 #프로그래밍 교과서

profile_image 익명 작성일 -

게임을 만들고자 하면, 먼저 게임같은 프로그램을 만드는 일인 코딩 다른 말로는 프로그래밍을 제대로 배우도록 하세요.

코딩 다른 말로는 프로그래밍을 제대로 배우고자 하면, 코딩 다른 말로는 프로그래밍을 체계적이고 전문적으로 배워 창의적인 혹은 창조적인 문제 해결 능력과 프로그래밍 능력을 갖추도록 하세요. 그러면, 나이, 성별, 학력, 전공과 상관없이 누구나 코딩 다른 말로는 프로그래밍할 수 있습니다. 그렇게 먼저 코딩 다른 말로는 프로그래밍을 배우면, 어떠한 프로그래밍 언어라도 보다 쉽고 재미있게 효율적으로 배울 수 있습니다.

C언어나 자바는 프로그램을 만드는 일인 프로그래밍할 때 사용되는 도구로 프로그래밍 언어입니다. C언어나 자바같은 프로그래밍 언어를 배워야 프로그래밍을 배울 수 있다고 생각하십니까? C언어나 자바같은 프로그래밍 언어를 배우는 것이 프로그래밍을 배우는 것이라 생각하십니까? C언어나 자바같은 프로그래밍 언어를 배우면 프로그래밍할 수 있을 것이라 생각하십니까? 매우 잘못된 바보같은 생각입니다. C언어나 자바같은 프로그래밍 언어를 배운다고 프로그래밍할 수 없습니다. C언어나 자바같은 프로그래밍 언어를 배우는 것과 프로그래밍을 배우는 것은 별개 문제입니다.

프로그래밍이 무엇인지 간단히 봅시다. 프로그램으로 만들고자 하는 것을 전산(컴퓨터) 분야에서는 문제라고 합니다. 그리고 프로그램은 데이터와 명령어로 구성됩니다. 그래서 문제를 풀어 프로그램으로 만들고자 한다면, 문제 관련 데이터들을 어떠한 기억장치에 어떻게 저장하고 어떻게 쓰고 읽을지를 결정하고(자료구조 설계), 어떠한 명령어들을 어떠한 순서로 몇 번씩 실행시킬지를 결정하여(알고리듬 설계), 이렇게 설계된 자료구조와 알고리듬을 C언어나 자바같은 프로그래밍 언어로 문법에 맞게 변환하여(구현) 프로그램을 만드는 일이 프로그래밍입니다.

요약하면, 프로그래밍은 컴퓨터를 이용한 문제 해결 과정입니다. 그래서 프로그래밍을 배울 때는 체계적이고 전문적으로 배워 4차 산업 혁명 하에 살아야 하는 사람이면 반드시 갖춰야 하는 능력인 창의적인 혹은 창조적인 문제 해결 능력과 프로그래밍 능력을 갖춰야 합니다.

이러한 데 프로그래밍할 때 사용되는 도구들인 C언어나 자바같은 프로그래밍 언어를 배운다고 저절로 창의적인 혹은 창조적인 문제 해결 능력과 프로그래밍 능력이 갖춰 지겠습니까? 그렇지 않습니다. 프로그래밍을 보다 쉽고 재미있게 효율적으로 배우고자 하면, 프로그래밍을 체계적이고 전문적으로 배우세요.

"이렇게 하면 나도 프로그램을 잘 만들 수 있다(나프잘)" 시리즈 책들을 참고해 보세요. 나이, 성별, 학력, 전공과 상관없이 누구나 독학으로 프로그래밍을 체계적이고 전문적으로 배워 창의적인 혹은 창조적인 문제 해결 능력과 프로그래밍 능력을 갖출 수 있습니다. 카페 "프로그래밍을 배우자"에서 공부하는 방법도 배우고 멘토링을 활용하면, 보다 재미있고 효율적으로 프로그래밍을 배울 수 있습니다.

컴퓨터 앞에 놓고 C언어나 자바같은 프로그래밍 언어, API 라이브러리, Visual Studio, NetBeans, Eclipse같은 언어 프로그램들 같은 개발 도구 사용법만을 가르쳐 남이 시키는 일만 남이 만든 코드를 편집하는 노가다를 양성하는 학원이면, 차라리 독학하세요. 그렇지 않고 컴퓨터 없이 문제를 풀어 개발 도구들로 프로그램을 만드는 방법을 가르쳐 프로그래머를 양성하는 학원이면, 스스로 문제를 풀어 프로그램을 만드는 일인 프로그래밍을 체계적이고 전문적으로 배워 창의적인 혹은 창조적인 문제 해결 능력을 갖출 수 있어 많은 도움이 될 것입니다. 왜냐하면, 개발 도구들로 하는 일인 프로그래밍이란 컴퓨터를 이용한 문제 해결 과정이기 때문입니다.

프로그래밍을 공부하는 데는 공부하는 방법이 매우 중요합니다. 공부하는 방법부터 배우고 시작해 보세요. 그렇지 않지만, 우리나라에서는 대부분 C언어부터 배우고 자바를 배우라고 해서(자바부터 배워도 됩니다) C언어나 자바를 배우다 보면, C언어나 자바 책에 적힌 내용은 그럭저럭 이해되지만, 장마다 제시되는 문제를 풀어 C언어나 자바로 프로그램을 만들고자 하면, 어떻게 해야 하는지 모르겠고, 잘되지 않습니다. 그러면 답지를 구해 코드만 외우고 넘어 갑니다. 망하는 지름길입니다.

C언어나 자바 책에 적힌 내용은 C언어나 자바의 문법이고, 장마다 제시되는 문제를 풀어 C언어나 자바로 프로그램을 만드는 일은 프로그래밍입니다. 따라서 C언어나 자바의 문법만 배운다고 프로그래밍을 할 수 있는 것은 아닙니다. 그래서 C언어나 자바의 문법을 배울 것인지 아니면 C언어나 자바로 하는 일인 프로그래밍을 배울 것인지를 먼저 명확하게 하세요. 공부하는 방법이 다르기 때문입니다. 공부하는 목표에 맞게 공부하는 방법을 배워 공부하면 보다 쉽고 재미있게 배울 수 있습니다.

공부하는 방법도 설명드려 보겠습니다. 참고해 보세요.

C언어나 자바를 보다 쉽고 재미있게 배우고, 스스로 문제를 풀어 C언어나 자바로 프로그램을 만들고자 한다면, 먼저 프로그래밍을 배우세요. 문제를 풀어 프로그램을 만드는 일인 프로그래밍을 먼저 체계적이고 전문적으로 배우세요. 그래서 창의적인 혹은 창조적인 문제 해결 능력을 갖추도록 하세요. 왜냐하면, C언어나 자바로 하는 일인 프로그래밍이란 컴퓨터를 이용한 문제 해결 과정이기 때문입니다.

위쪽 프로그래밍의 정의에 의하면, 먼저 문제를 풀어 알고리듬과 자료구조를 만드는 방법을 배우세요. 그리고 C언어나 자바로 알고리듬과 자료구조로 프로그램을 만드는 방법을 배우세요. C언어나 자바로 알고리듬과 자료구조로 프로그램을 만들 때 필요한 C언어나 자바의 문법적인 기능을 이제 C언어나 자바 책에서 찾아서 읽어 보고 적용하는 방식으로 공부하세요. 난이도를 높여 가면서 많은 문제를 풀어 프로그램을 만들다 보면, 스스로 문제를 풀어 프로그램을 만들 수 있고, C언어나 자바도 머리로 기억하는 것이 아니라 몸으로 기억되어 있을 것입니다. 그래서 숨쉬는 것처럼, 걷는 것처럼 자연스럽게 C언어나 자바로 프로그램도 만들 수 있을 것입니다.

알고리듬과 자료구조를 만드는 방법을 배우라고 해서 시중에 출간된 알고리듬과 자료구조 책들을 사서 이미 만들어져 책에 실린 정렬과 검색 알고리듬, 연결리스트, 트리, 그래프, 스택, 큐들을 외우지 마십시오. 정렬과 검색 알고리듬, 연결리스트, 트리, 그래프, 스택, 큐들을 만들 수 있도록 알고리듬과 자료구조를 만드는 방법을 먼저 배우라는 것입니다.

인터넷에서 사용되는 논리가 "C언어를 알아야 프로그램을 만들 수 있으므로 C언어를 먼저 배우라"고 합니다. 이러한 논리가 우리나라 영어 교육이나 학습에서도 적용되었지요. 우리나라 영어 교육이나 학습은 영어의 문법부터 시작합니다. 그렇게 해서 중학교, 고등학교 심지어 대학교까지 똑같은 방식으로, 영어 문법을 외우는 방식으로 공부하게 됩니다. 그렇게 십 수년을 하지만 헤밍웨이의 유명한 소설 책 한 권 제대로 읽지 못하고, 두 세쪽 되는 에세이 하나 제대로 작성하지 못하고, 지나가는 외국인과 담소한 번 제대로 나눌 수 없지 않습니까?

"C언어를 알아야만 프로그램을 만들 수 있다"는 논리라면, 영어의 문법을 공부했다면, 영어 소설책도, 에세이도 회화도 가능해야 하지 않습니까? 어느 분야에서 성공하려면, 10000시간 정도 분야에 집중하면 된다는 이론이 있지 않습니까? 우리나라에서 영어 공부에서는 적용되지 않는 이유는 무엇일까요? 교육과 학습에 문제가 있다는 것입니다.

그래서 요사이는 영어 교육과 학습이 매우 실용적으로 바뀌고 있습니다. 문법을 암기하는 것이 아니라, 듣기와 말하기로 바뀌고 있습니다. 듣기와 말하기할 때 필요하면 문법을 공부하고 적용하는 방식으로 말입니다. 그래서 좋은 결과를 내고 있습니다.

프로그래밍 교육과 학습도 바뀌어야 합니다. 문법위주 교육과 학습보다는 문제 해결 중심의 교육과 학습으로 바뀌어야 합니다. 프로그래밍을 공부하는 방법을 배우세요.

C언어나 JAVA언어같은 프로그래밍 언어와 프로그래밍을 체계적이고 전문적으로 공부하는 방법도 설명드려 보겠습니다. 참고해 보세요.

프로그래밍은 우리가 생활하는 데 있어 부닥치는 복잡한 문제를 새로운 생각으로 풀어 프로그래밍 언어로 컴퓨터가 처리하도록 하는 프로그램을 만들어 보다 편하게 살 수 있는 세상을 만드는 일입니다. 그래서 어렵습니다. 그렇지만 내가 생각한 프로그램을 만들고 세상 사람들이 사용한다면 엄청난 성취감과 자부심을 느낄 수 있습니다.

이러한 프로그래밍을 하고자 한다면 다음과 같은 최소한의 능력을 갖추어야 합니다.

(1) 문제 해결 능력

(2) 프로그래밍 언어 구사 능력

(3) 개발 툴 사용 능력

이 중에서 가장 중요한 것은 문제 해결 능력입니다. 문제를 해결할 수 없으면, 프로그래밍 언어 구사 능력도 개발 툴 사용 능력도 아무 소용이 없습니다. 문제 해결 능력은 많은 문제를 풀어 프로그램을 만들어 봄으로 해서 나만의 문제 해결 방법을 만들었을 때 갖추어 지는 것입니다. 따라서 프로그래밍을 배우고자 한다면 체계적이고 전문적인 학습을 해야 합니다. 그러면 누구나 프로그래밍을 할 수 있습니다.

프로그래밍 언어나 프로그래밍을 배울 때는 C언어나 자바같은 프로그래밍 언어만 배우지 마시고, C언어나 자바로 하는 일인 프로그래밍을 먼저 공부하세요. 프로그래밍 언어만 배운 사람이면 프로그래밍 언어가 배우기 어렵다고 하고, 어려운 프로그래밍 언어를 한 권 내지 두 세권 책으로 공부를 마친 후에도 문제를 스스로 풀어 배운 프로그래밍 언어로 프로그램을 만들려고 하면 어디서 부터 시작하여 어떻게 해야 하는지가 막막하다고 합니다.

왜 그럴까요? 프로그래밍 언어 책에 적힌 프로그램을 이해하기 위해서는 프로그래밍을 배워야 하는데 그렇지 않고 프로그래밍 언어를 배우고자 하기 때문입니다. 프로그래밍 자체는 어렵습니다. 프로그래밍은 문제를 풀어 컴퓨터가 처리하도록 하는 프로그램을 만드는 일이기 때문입니다.

프로그래밍 언어 책에서는 문제를 풀어 프로그램을 만드는 것을 설명하지 않고, 문제를 풀어 해결책(알고리듬)을 만든 후에 컴퓨터가 처리하도록 하는 프로그램을 만들 때 프로그래밍 언어가 언제, 어떻게 적용되는지만을 설명합니다. 그래서 프로그래밍과 프로그래밍 언어를 재미있게 공부하고자 한다면 체계적이고 합리적인 학습을 해야 합니다.

프로그래밍 언어를 배우기 전에 프로그래밍 언어로 하는 일인 프로그래밍을 먼저 공부하세요. 프로그래밍이 무엇인지, 어떻게 하는지, C언어같은 프로그래밍 언어가 언제, 어떻게 사용되는지 그리고 프로그램이 어떻게 작동하는지를 공부하세요. 또한 이러한 개념과 원리를 바탕으로 문제를 풀어 프로그램을 만드는 절차를 배우세요. 이러한 내용을 배우고자 하면, 다음 책들을 참고해 보세요.

책들은 "이렇게 하면 나도 프로그램을 잘 만들 수 있다(나프잘)" 시리즈입니다.

이렇게 프로그래밍을 이해했다면, 프로그래밍 언어를 배우세요. 무작정 프로그래밍 언어 책을 사고 동영상강의를 보면서 책에 적혀 있는 프로그램을 아무 생각없이 입력해서 실행시켜 보고 머리를 끄덕이고 외우는 방식보다 쉽게 재미있게 프로그래밍 언어를 배울 수 있습니다. 왜냐하면 왜 프로그래밍 언어를 배워야 하는지를 명확하게 이해했고, 프로그래밍 언어 책에 나온 프로그램이 어떻게 작성되었는지를 이해할 수 있고, 마지막으로 프로그래밍 언어 책에 제시되는 문제를 풀어 프로그램을 만들 수 있기 때문입니다.

C언어를 공부하고자 한다면 다음 책을 참고해 보세요.

책은 "C를 배우면 함수를 잘 만들어야 한다"입니다.

문법만 설명하는 것이 아니라 문제를 풀어 프로그램을 만들 때 C언어가 언제, 어떻게 적용되는지를 설명합니다. 특히 책의 처음부터 끝까지 C언어를 배우면 반드시 만들 수 있어야 하는 함수를 만들어서 사용하는 방법을 설명합니다.

카페 "프로그래밍을 배우자"에서 게시글과 동영상강의로 프로그래밍이 무엇인지, 어떻게 하는 것인지 그리고 C언어나 JAVA언어가 언제, 어떻게 사용되는지를 확인해 보세요. 그리고 프로그래밍과 C언어나 JAVA언어를 어떻게 배워야 할지를 생각해 보고 시작하세요. 그래서 시행착오를 줄이세요.

독학을 하신다면 책을 읽는 방법을 바꾸세요. 책을 볼 때 바로 정독을 하지 마시고, 빠른 속도로 전체 내용을 훓어 보는 방식으로 여러 번 보고, 정독을 하십시오. 왜냐하면 모든 내용은 질문자 님에게 새로운 내용입니다. 따라서 어려울 수 밖에 없습니다. 그래서 최소한 책에 어떠한 내용이 담겨 있는지와 자주 사용되는 용어(혹은 개념)에는 익숙해야 정독을 할 수 있지 않습니까? 책의 줄거리나 용어에 익숙하기 위해서 빠른 속도로 전체 내용을 훑어 보는 방식으로 먼저 읽어 보시라고 권하는 것입니다.

좋지 않은 프로그래밍 공부 방법이지만, C언어나 자바의 문법만 배우고자 한다면, 책을 훑어보기로 처음부터 끝까지 빠르게 3-4회 읽어 어떠한 내용인지, 자주 사용되는 용어들에 익숙해 지도록 하세요. 내용이 파악되고, 용어들에 익숙해지면, 처음부터 책에 실린 코드도 컴퓨터에 입력해 보면서, 컴퓨터가 없으면 공책에 적어 보면서 어떠한 문법이 언제, 어떻게 사용되는지를 외우세요. 이때는 "왜 이렇게 할까", "어떻게 작동할까"라는 생각들은 하지 마시고, 외우세요.

profile_image 익명 작성일 -

게임 개발을 하고 싶지만 무엇부터 시작해야 할 지 막막하시군요.

프로그래밍 언어를 무엇을 배울까, 게임 제작은 어떻게 이루어지는가?..

저도 무엇부터 설명해야 할 지 고민이 됩니다.

일단 상용 게임이 어떻게 만들어지는지 과정부터 한번 짚어봅시다. 그러면 어떤 것을 배워야 게임을 만들 수 있는 지 조금은 감이 잡히리라 생각합니다.

-- 게임 개발 : 게임 개발사에서 만들 때 --

-- 팀원 역할 --

게임을 개발하는 것은 하나의 프로젝트입니다.

학교에서 조별과제를 할 때도 조를 짜서, 그 조 내에서 역할을 분담하지요?

게임 개발에도 마찬가지입니다. 가령 블리자드에서 오버워치를 개발한다고 합시다. 필요한 팀원과, 그 역할은 다음과 같습니다. :

1. 기획자

게임의 전체적인 컨셉을 짜고, 어떻게 하면 게임이 재밌을까, 이 게임이 어떤 장르인지, 어떤 시대적 배경을 갖는지, 지금 개발하려는 게임이 다른 시장에 나와있는 게임들과 어떻게 차별화되고 어떻게 그 차별점이 재미가 있는지 등을 분석해서 아이디어 노트 내지 기획안으로 냅니다. 사실 이거 말고도 기획자가 하는 일은 무궁무진합니다. '게임 기획자'에 대해 공부를 하다 보면 정말 밑도 끝도 없다는 것을 알 수 있습니다. 물론 겁먹지는 마세요, 이 사람들도 어디에선가는 시작했고, 아직 공부가 완전히 끝나지 않았지만 일을 하면서 또 새로 배우는 것도 있으니까요.

2. 프로그래머

프로그래머는 기획자가 제시한 기획서에 맞추어, 기획서에 적혀있는 내용을 컴퓨터가 이해할 수 있는 프로그래밍 언어를 통해 프로그램을 만들어 구현합니다. 가령 기획자가 쓴 기획서에는,

"오버워치는 좌클릭을 통해 자신이 선택한 캐릭터가 가지고 있는 성능에 따라 공격을 한다. 그 중에 솔져:76이란 캐릭터는 좌클릭을 하면 총을 쏘고 총알은 25발이며 25발을 다 쓰면 재장전을 해야 하고 우클릭을 하면 유탄을 쏜다."

라고 써져 있다면, 프로그래머는 솔져:76라는 캐릭터가 좌클릭을 할 때 '공격'을 수행하도록, 좌클릭을 할 때 ' 유탄 발사'를 수행하도록, 좌클릭을 꾹 누르다가 25번 '공격' 이 수행되면 자동으로 재장전하도록 하고, 재장전을 하면 다시 '공격' 할 수 있도록 만듭니다.

3. 그래픽 디자이너

기획서는 계획을 제시했고, 프로그래머는 기계가 이해할 수 있도록 기획자의 언어를 번역해 줍니다. 그래픽 디자이너란 게임을 플레이 하는 사람의 '눈'을 즐겁게 해줄 시각적 요소를 만드는 모든 사람을 통칭합니다.

그래픽 디자이너는 정말 종류가 많은데요, 규모가 작을 수록 한 사람 당 해야 할 작업의 종류는 많아집니다. 한 사람이 일러스트레이터도, 모델 디자이너도 UI디자이너의 역할 3가지를 다 할 수도 있는 것이죠.

어쨌든 직군에 따라 어떤 일을 하는지 대강 알아봅시다.

a) 일러스트레이터 : 게임에 등장할 캐릭터의 컨셉 아트를 그려서 기획자가 제시한 디자인을 그려내는 사람들입니다. 가령, 기획자가 "윈스턴은 엄청 큰 고릴라인데, 커다란 몸집을 가지고 있고 우주복을 입고 있으며 커다란 전기 충격기를 가지고 있다." 라고 말했다면 일러스트레이터는 그러한 묘사에 맞게 "윈스턴은 이런 모습을 할 것이다." 라는 그림을 그려줍니다.

b) 3D 모델 디자이너 : 오버워치는 3D 게임입니다. 그럼 그 게임에 등장하는 캐릭터들, 건물, 오브젝트(상자나 오락기처럼 움직일 수 있는 쪼끄만 물체들 같은거)들도 다 3D 형태를 갖추고 있어야겠죠. 그러한 것들을 3D파일로 제작하는 사람들입니다.

c) UI 디자이너 : 화면에 보이는 체력바, 스킬의 쿨타임을 알려주는 시각적 표시, 점점 줄어드는 타이머의 숫자가 어떤 글꼴, 어느 정도의 크기를 갖고 있는지, 혹은 메인 메뉴에서 플레이-설정-종료 이런 버튼들이 어떻게 배치될 것인지를 디자인 하는 사람들입니다. UI란 User Interface(유저 인터페이스)란 뜻인데, 사람들이 직접 상호작용 하는 버튼이나 화면에 띄워지는 정보들을 이쁘게 가공하는 사람들이라는 뜻입니다.

4. 사운드 디자이너

게임에는 소리가 나와야죠, 테마 송도 있어야지요! 그러한 것들을 디자인하는 사람입니다. 작게는 총알이 날아가는 소리, 로켓이 푸슝~ 하고 머리 옆을 지나가서 펑! 터지는 소리들을 제작하고, 세밀하게 조정하여 게임을 플레이 하는 사람들이 소리가 너무 불편하진 않은지, 너무 작지는 않은지 등을 조정하는 사람들입니다.

앞서 말했다시피 곡을 작곡하는 사람도 크게는 포함할 수 있겠지요. 보통은 오버워치같은 대형 프로젝트에서는 효과음을 만드는 사람도 따로 있고, 노래를 작곡하는 사람도 따로 있습니다.

5. 기타 필요 인력

시나리오작가 : 게임 내용의 생동감 있는 전달을 위해 이야기를 지어내는 사람입니다. 스토리를 짜는 사람이죠.

레벨 디자이너 : 오버워치에서 맵을 디자인할 때, 예쁘기만 한 것이 아니라 양 팀이 공평하게 지형지물을 활용하여 싸울 수 있도록, 궁극적으로는 플레이 하는 것이 재밌는 맵을 만들기 위해, 주어진 오브젝트, 건물을 활용하여 잘 배치함으로써 디자인을 하는 사람들입니다. 싱글 플레이 게임에서도 마찬가지로, 지루하지 않고, 완급조절이 잘 되는 맵을 짜기 위해 계속 레벨을 디자인하는 사람들이죠.

-- 개발의 진행 --

일단 게임의 개발 기간을 정해놓습니다. 2~3년정도를 잡는 것이 보통입니다만, 더 길어질 수도 있습니다.

그 2년동안 총괄 기획자 내지 그런 책임지는 사람이 2~3년간 어떻게 게임을 완성할지 계획을 잡습니다.

오버워치라는 게임을 만들려면 수많은 것들을 만들어내야겠죠.

프로그래머는 3가지 직군(공격, 돌격, 지원)을 만들고, 이들이 각자 다른 체력, 이동속도를 가지도록 구현하고,

그래픽 디자이너는 열 몇가지 캐릭터들의 개성적인 모습을 일러스트로 그리고, 일러스트에 기반하여 3D모델을 만듭니다. 동시에 체력 게이지는 어떻게 생겨야 잘 보이면서 거슬리지 않을까, 고민해야죠.

사운드 디자이너는 그 열 몇가지 캐릭터들의 목소리를 담당한 성우를 찾아 목소리를 녹음하고, 잡음이 없도록 조절하며, 동시에 또 어떤 팀은 겐지의 표창 던지는 소리를 녹음하고, 더욱 더 소리가 귀에 잘 꽂히고 듣기 좋도록 수정합니다.

지금 이러한 작업들을 일주일이면 일주일, 한달이면 한달씩 정리해 나가면서 진도를 맞추어 나갑니다.

그렇게 2년~3년이 되면 게임이 플레이 가능한 수준이 되어가고, 완벽히 출시를 하기 전에 테스트를 진행합니다.

테스트는 몇가지로 나뉩니다.

알파 테스트 : 회사 내에서, 외부사람들에게 공개하지 않은 채로 개발자나 팀원들이 플레이해보면서 버그가 있는지 없는지 테스트합니다.

클로즈드 베타 테스트 : 회사 외부 사람들에게, 몇몇 사람만 지정해서 이 게임을 플레이해보면서 버그가 있는지, 이 게임의 개발과는 상관 없는 사람인데 과연 재미있는지, 재미가 없다면 어디가 재미없어서 개선이 필요한지 등을 그 사람들에게 물어봅니다.

오픈 베타 테스트 : 공개적으로 사람들에게 게임을 공개하여 게임을 플레이하도록 하고, 개선점 등을 찾습니다. 오픈베타는 사실상 실제 게임 발매 했을 때의 상황을 상정하고 테스트하는 것이라고 볼 수 있죠. 이를테면 오버워치에 총 10명의 사람이 접속해 있을 땐 게임이 잘 되지만, 1만명, 10만명이 동시에 접속해 게임을 하고 있을 때도 잘 버틸까요? 오픈 베타 테스트를 통해 알아낼 수 있겠죠.

오픈 베타 테스트에도 특별히 결함이 없다면, 몇가지 자잘한 버그 수정을 더 한 뒤 공식적으로 게임을 발매합니다.

-- 게임 개발 : 1인 내지 소규모 팀일 때 --

1인 게임 개발 내지 소규모 팀이라면 위에 분할된 역할을 더 적은 사람들이 분담합니다.

저같은 경우는 1인 게임 개발을 목표로 프로그래밍, 작곡, 효과음 제작, 간단한 드로잉 연습을 지금까지 해온 상태입니다.

기본적인 과정은 위와 동일합니다. 게임의 규모가 작고, 또한 1인 개발에서는 자기 자신이 기획자이자 프로그래머, 디자이너인 만큼 기획서를 쓸 필요가 상대적으로 적습니다. 왜냐하면 기획서란 보통 자신의 생각을 다른 동업자들에게 이해시켜주기 위해 필요한 내용을 담고 있거든요.

-- 어떤 프로그래밍 언어를 배우고, 어떤 도구를 쓸까? --

크게 말하자면 이것은 정말 무궁무진합니다.

집을 지을 때 콘크리트를 쓸 수도 있지만, 벽돌을 쓸수도, 볏짚이나 나무, 흙을 쓸 수 있는 것과도 같은 맥락입니다.

또 집을 지을 때 삽을 이용해 흙집을 지을 수도 있지만, 포크레인과 같은 중장비를 활용해서 흙집을 지을 수도 있죠.

자신이 원하는 집이 모래성이나 1인 토굴이라면 그냥 삽으로 해도 그럭저럭 됩니다.

하지만 50명 이상이 거주할 수 있는 다인주택을 짓고싶다면 삽만 가지고는 어려울 겁니다. 못 할 건 없겠지만요. 다만 겁나게 어려울 뿐입니다.

본인이 개발하고자 하는 게임의 장르는 어떠한가요?

본인이 개발하고자 하는 게임은 2D인가요, 3D인가요?

본인이 개발할 때, 대규모 팀에서 일하고 싶나요, 소규모 팀을 꾸려서 하고 싶나요, 혼자 힘으로 개발하고 싶나요?

개발하고자 하는 게임의 규모는 어떠한가요?

만약 취미로 개발하고자 한다면, 어느 정도의 시간을 투자할 수 있을까요?

이러한 요소들을 고려해야 합니다.

가령, 본인이 혼자 개발하고 싶고, 프로그래밍 언어를 배우지 않고도 간단한 RPG를 만들어서 이야기를 풀어나가고 싶으며, 노래나 효과음은 다른 데서 혹은 그 도구에서 가져다 쓸 것이다. 라고 하면

EnterBrain 사의 RPG 만들기 시리즈 를 사용할 수 있습니다. 간단하게 만들고자 하면 프로그래밍이 필요하지 않고, 어떤 캐릭터를 놓고 거기에 엔터를 누르면 대화를 할 수 있으며, 골드, 아이템, 이런 것들은 다 만들어져 있습니다.

프로그래밍 언어를 배울 것이라면 조금 선택지는 넓어집니다.

GML이라는 독립적인 언어를 사용하는 GameMakerStudio 시리즈도 있으며(다만 이 도구는 2D 특화이며, 신작 라이선스가 10만원이나 해서 좀 가격의 장벽이 있습니다. 하지만 2D 애니메이션 제작은 나쁘지 않게 잘 됩니다.)

보통 국립학원에서 가르치고 입문이 비교적 쉽다고 평가받는 Unity(유니티) 가 있습니다.

유니티를 다루기 위해서는 프로그래밍 언어 C#에 대한 공부가 필수적입니다.

유니티는 국내뿐만 아니라 세계적으로도 꽤 커뮤니티가 크기 때문에 한글이든 영어로든 많은 도움을 인터넷에서 받을 수 있습니다.

당장 저도 유니티를 사용하고 있고요.

하지만 유니티로 개발하다가도 게임의 규모가 본격적으로 커지면서 언리얼 엔진으로 갈아타는 회사들이 많습니다. 유니티는 대규모 게임 개발에서는 C#이란 프로그래밍 언어 특성 상 부딪히는 최적화 문제 때문에, C++이란 언어를 사용하는 언리얼 엔진으로 갈아타곤 합니다. AAA급 게임을 개발하는 회사라면 유니티보다는 언리얼을 선호하며, 그렇지 않더라도 좀 규모가 크다면 언리얼을 사용하지요.

--

말이 두서없었습니다.

저는 5월에 군대에 전역해서 지금 4개월정도 유니티를 공부하고 있습니다. 유튜브로 독학하는 방법도 있지만 저는 책을 사는 편을 택했습니다. 다시 찾아보기 편하거든요.

4권정도 관련된 책을 구입해 본 결과, 아예 입문하신다면 아래의 두 책을 추천합니다.

1. 유니티 교과서 : 기타무라 마나미 저

http://www.yes24.com/Product/Goods/63348114

25000원쯤 합니다.

맨 처음 구입한 책입니다. 무작정 따라하기엔 이 책이 나쁘지 않다고 봅니다.

기본적인 2D 미니게임 4개, 3D 미니게임 2개를 따라 만들어보면서 게임을 만들 수 있으며, 유니티 설치 방법을 매우 매우 자세히 알려줍니다.

2. 레트로의 유니티 게임 프로그래밍 에센스 : 이제민 저

http://www.yes24.com/Product/Goods/69320872

6만원 정도 합니다.

제일 최근에 구입한 책입니다. 제가 멀티플레이 게임 구현에 관심이 많았는데 이 책 뒷부분엔 그것을 구현하는 내용도 있어 배우고 싶어 샀습니다.

근데 그러면서 1장~3장의 내용부분(매우 기초가 되는 부분)을 다시 살펴보았는데, 윗 책 못지 않게 쉽게 알려줍니다.

또한 이 책은 유튜브에 무료 영상 강좌도 올라와 있어서, 만약에 한권으로 끝내고 싶다면 이 책도 권장하고 싶습니다.

윗 책과 비교했을 때 값은 2배정도 차이가 나지만, 값어치는 충분히 하는 것 같네요.

그 외에 제가 공부한 책 2권은 다음과 같습니다.

3. 인생 유니티 교과서

http://www.yes24.com/Product/Goods/90178804?OzSrank=2

FPS 만드는 방법을 알려줍니다. 다만 제가 생각했을 때에는 뭔가 편집부가 잘못했는지 설명을 띵가뽕한 부분이 많습니다;;

일례로 중간에 게임에 '사운드'를 넣으라고 말하는데, 사운드 파일을 구하는 경로를 안알려주고는 '아까 다운받은 사운드를 넣습니다.' 라는 식으로 설명이 되있는 부분이 한 군데 있습니다.

제가 생각했을 때에는 심화 과정으로 참고할 만한 책입니다. 특히나 FPS 개발 측면에선 도움이 됩니다.

하지만 저는 입문용으로 추천하고 싶지는 않네요.

4. 이것이 C#이다, 박상현 저

http://www.yes24.com/Product/Goods/61929871

위의 책에서 열심히 진도나가다가, 갑자기 '람다식이 어쩌구저쩌구' 하면서 너무 당연히 저한테 '람다식 알지?' 라는 식으로 물어보는 거 같아서 열받아서 사버린 책입니다.

게임공학과 지인 말로는 유니티 C# 공부할 때 이 책도 많이들 쓴다고 하더군요. 제가 이 책을 한달 정도 걸려서 다 뗐는데, C#에 대한 기본적인 이해를 하는 데에는 많은 도움이 됩니다.

하지만 분량이 많고, 유니티에 직접적으로 관련되지 않은 부분도 많으며(이를테면 이벤트 처리에 관한 부분이라던지 세세한 부분에서 유니티는 C# 구버전을 사용해서 귀찮게 구식 기술을 사용해야 할 때가 있습니다) 배우다 보면 복잡한 부분이 많습니다.

하지만 C#에 대해서 정확하게 이해하고 사용하고 싶다면 이 책은 2번째로 추천하고 싶네요. 프로래밍을 하는 사람으로서는 한번쯤은 넘어야 할 허들을 쉽게 이해하게 도와주는 C#계의 사전이라고 볼 수 있겠네요.

아, 이 책 사고나면 이 책 저자가 직접 답변해주는 카페도 있습니다. 내용이 궁금하면 거기 질문들 많이 하곤 합니다. 자세한건 직접 찾아보세요.

---

이상입니다. 충분한 답변이 되었는지 모르겠습니다.

어떤 일이든 공부에는 끝이 없습니다. 게임 개발은 워낙 분야가 넓기에 항상 배울 것이 많습니다. 제가 쓴 글이 그 넓디 넓은 게임개발 분야에서 어디로 나아가야할지, 어디부터 시작해야 할 지 가이드가 되었으면 좋겠습니다.

좋은 하루 되세요.

자바 프로그래밍 변수 초기화

... 코딩할 때, 어떤 문제는 변수 초기화 시켜 놓고 프로그래밍을 짜는데, 어떤 문제는 변수 초기화를 프로그래밍... 어떤 문제는 변수 초기화 시켜 놓고 프로그래밍을 짜는...

노원프로그래밍학원 찾아봐요!

노원프로그래밍학원 다니고 싶은데요. 제가 배워본 적이... 프로그래밍 언어를 처음 배워보실려고 하시는군요! 프로그래밍은 사람이 컴퓨터에게 명령을 내리는데 사용하는...

소켓프로그래밍 패킷

소켓프로그래밍이란 패킷을 어떻게 처리할지 결정하는... 소켓 프로그래밍이라고 할 수 있고요. 좁은 의미로는 직접... 좁은 의미로의 소켓 프로그래밍은 잘 안 하죠.

ai와 프로그래밍 관련 직업

... AI와 프로그래밍을 하는 직업을 알려주세요 그리고 그 직업이 하는 일을 알려주세요... 이 직업들은 AI와 프로그래밍을 기반으로 하며, 각각의 역할에 따라 다양한 기술과...

게임 프로그래밍 관련 행사

올해 게임 프로그래밍 관련 행사들이 있으면 알려주세요. 여러개 알려주시면 감사하겠습니다. 게임 프로그래밍 관련 행사 올해 게임 프로그래밍 관련 행사들이 있으면...