[N잡러 타이쿤]을 만들기로 결정했으니, 이제 목표를 기준으로 계획 세우는 시간이다.
인터넷에 검색해 본 결과, 초보가 유니티로 게임을 만드는 데엔 2가지 방법이 있다.
첫 번째는, CS(컴퓨터 사이언스)부터 배워서 C언어, C++을 거쳐 C#을 배운 후 유니티 엔진을 숙달해서 게임을 만드는, 정석 of 정석이자 왕도이다.
두 번째는 유니티 엔진부터 다뤄서, 모르는 부분은 그때그때 찾아서 공부하는 식이다.
두 가지 방법 각각 장단점이 있다.
첫 번째 방법의 장점은, 왕도인 만큼 베이스를 확실하게 쌓을 수 있어서 장기적으로 볼 때 좋다.
하지만 시간이 너무 오래 걸리는 바람에 도중에 포기할 가능성이 농후하다.
두 번째 방법의 장점은, 유니티 엔진으로 직접 만들면서 배우는 거여서 확실한 피드백으로부터 오는 강한 동기부여가 있다.
단점으론, 베이스가 없다 보니 모르는 것을 검색하는 데에 진이 다 빠질 수 있다.
모르는 걸 찾다가 시간도 체력도 다 날아가 버린다는 말이다.
------------------------
두 가지 방법 모두 장단점이 있어서, 나는 어느 방법을 택할지 고민하였다.
그러다 문득 생각 든 것이, 굳이 한 가지 방법만 할 선택할 필요가 있나 싶었다.
두 가지 방법을 적절히 섞는다면?
베이스를 적당히 쌓아서 시행착오를 줄이는 와중에, 유니티로 결과물을 조금씩 만들어서 동기부여도 얻는 방식이다.
물론 두 마리 토끼를 다 잡을 수 없듯이, 어설프게 했다간 오히려 어중간해질 수도 있다.
많은 노력과 시간을 쏟아부어야 내가 원하는 적절한 시너지를 볼 수 있는 듯하다.
결국, 일단 해보면서 천천히 생각해 보기로 하였다.
혹시 아이디어가 있다면 댓글로 공유해 보자!
----------------
자, 그러면 계획을 천천히 짜보도록 하자.
게임 개발엔 크게 4가지 파트로 나누어진다.
기획 - 프로그래밍 - 아트 - 사운드
나는 사운드 쪽은 유니티 에셋을 쓰거나, 외주를 주기로 결정했다.
안 그래도 프로그래밍과 아트, 이 두 가지에 매달려도 허덕이는데 여기에 사운드까지 추가해버리면 넉다운이다.
안 될 건 과감히 포기하고 확실한 것만 챙기는 용기가 필요한 셈이다.
사운드를 제하니, 기획 - 프로그래밍 - 아트가 남았다.
나중에 팀원을 늘릴지는 미지수이나, 현재는 1인 개발을 지향하고 있는 만큼,
내가 모든 분야를 아우를 필요가 있다.
하지만 이 세 가지 분야를 골고루 잘할 수 없는 법.
선택과 집중을 해야 하는데, 나는 취업 준비를 프로그래밍 쪽으로 하길 원하기에 주 포지션을 프로그래밍으로, 기획과 아트를 부 포지션으로 잡았다.
---------------
일단 게임을 어느 컨셉-방향으로 만들지 기본적인 틀이라도 짜야 하기에, 초반에는 프로그래밍과 기획 공부 비중을 5 대 5로 두었다.
내가 도서관에서 빌린 기획 책은 총 5권으로 목록은,
인터랙티브 스토리텔링
게임의 심리학
게임 기획자와 시스템 기획
게임 기획의 멘토링
게임 디자이너를 위한 문서 작성 기술
이 중에서 [게임의 심리학]은 1회독한 상태고,
나머지 4권은 매일 읽어나갈 생각이다.
---------------------------
아트는 조금씩이라도 매일 하는 게 좋다고 해서, 하루에 1-2시간씩 스트레스 풀 겸 꾸준히 연습하는 중이다.
---------------------------
기획 책을 읽으면서 [N잡러 타이쿤]의 기획 윤곽을 틈틈이 세울 계획이다.
기획이 어느 정도 완성되면 아트 스타일 정해서 매일 조금씩 아트 리소스도 제작할 생각이고.
그리고 제작한 리소스와 더미를 바탕으로 해서, 프로그래밍 공부한 것을 실습할 겸 프로토타입 만들 겸 조립해나갈 예정이다.
------------------------
프로그래밍 공부는 동영상 강의 중심에 책을 곁들여서 할 생각이다.
책은 레트로의 유니티 에센스 개정판(2022년)을 여러 번 회독하면서 공부할 것이다.
다른 책들은 연도가 오래되어서 버전에 안 맞는 것도 있고, 책보단 유튜브 등 동영상 강의를 보면서 하는 게 나을 것 같다.
-------------------------
동영상 강의는 유튜브 강의와 유데미 강의로 나눠진다.
유튜브 강의로는 골드메탈의 게임 제작 시리즈를 보면서 모작해 볼 생각이다.
다른 유튜버들은 강의는 괜찮았지만 연식이 오래되어 애매한 감이 있어서 패스했다.
------------------
유데미는 할인 이벤트 할 때 한두 개씩 줍줍했다.
원래 한국의 프로그래밍 강좌를 구매하려고 했는데, 너무 비싼 감이 없지 않았다.
그래서 가격 면에서 상당히 매력적이고 퀄리티고 좋은 유데미로 결정했다.
유데미의 단점은, 한국어가 아니라 영어 위주라는 점.
뭐, 영어 공부한다는 셈 치고 열심히 봐봐야겠다.
내가 영어를 아예 못 알아듣는 편도 아니니까 말이다.
유데미 강의 소감은 나중에 연재하면서 틈틈이 써보도록 하겠다.
--------------
기본적인 지식을 배우고 난 후엔, 간단하게 [N잡러 타이쿤]의 프로토타입을 만들어볼 생각이다.
스케줄상 이르면 이번 달 말부터 늦어도 다음 달 안으로는 프로토타입 제작을 시작할 것 같다.
-------------------------
<공부 내용 정리>
내가 오늘 공부하고 정리한 C# 메모를 공유해 보도록 하겠다.
어소트락 게임아카데미의 C# 강의를 들었다.
저번에 1강 - 15강까지 들은 적 있어서 빠르게 정리했고,
오늘 16강 - 19강까지 들었다.
강의 들으면서 옆에 메모장에 기억할 만한 내용들을 짧게 메모했다.
-------------
초보자 기준, 언어는 한 가지에만 집중한다.
프로젝트명, 코드 변수명 등은 웬만하면 한글로 치지 않는다.
C#은 클래스 중심의 객체지향 언어다.
객체지향 >> 내가 표현하고 싶은 걸 클래스로 만들어서, 그 클래스로 객체를 만드는 프로그래밍.
객체를 기반으로 모든 걸 해결하기 때문에,
객체를 지향할 수밖에 없는 프로그래밍이다.
솔루션 >> 여러 개의 프로젝트를 묶어둘 수 있다.
하나의 거대한 프로그램을 여러 프로젝트로 분류해서 관리한다.
네임스페이스는 개념의 표현이라기보단, 개념의 분류이다.
디버깅(f10)을 잘 활용하자.
머릿속으로 생각하는 것보단, 한 줄씩 실행해서 눈으로 보면 더 잘 풀릴 때가 많다.
인터넷 검색을 잘해야 한다.
영어로 검색하면 웬만한 건 다 나온다.
기본적인 영어만 해도 문제없다.
exe 파일을 실행하면 램에 프로그램이 올라가게(복사) 된다.
클래스 안에 있으면 멤버변수.
함수 안에 있으면 지역변수.
지역변수 규칙 >>
내부에서만 사용 가능.
접근제한 지정자 세 가지
public >> 외부에도 공개
protected >> 자식에게만 공개
private >> 내부에만 공개
접근제한 지정자를 이용하여 함수의 잘못된 사용 방지.
접근제한 지정자를 입력하지 않으면 디폴트로 private 설정됨.
속성들은 일반적으로 외부에서 접근하지 못하도록 하는 게 좋다.
함수를 사용해서 우회 접근하는 방식을 취한다.
bool
참과 거짓이 상수화된 것이 true와 false
클래스가 객체화된 것은 값형이 아니라 레퍼런스형.
클래스를 객체화하면,
힙에 객체가 생성된다.
스택에는 레퍼런스형 지역변수가 생성된다 >> 힙에 있는 객체의 메모리 위치를 가리키는 주소값을 가진다.
정적멤버변수는 데이터 영역에 있다.
정적멤버변수는 객체를 통해서 쓰지 못한다.
클래스 안에서는 쓸 수 있다.
"몬스터의 수를 셀 때" 같은 경우에 유용하게 사용.
모든 객체가 공유하는 하나의 변수가 되어준다.
코드 영역 >> 상수, 클래스 선언 그 자체 함수의 내용. 자체 수정이 불가능함.
데이터 영역 >> 정적멤버변수
힙 영역 >> new 클래스명() 만들어진 클래스 객체들의 본체가 위치.
스택 영역 >> 함수의 실행 메모리 영역(그 박스 안에 들어 있는 지역변수). 함수가 return 등 종료되면 소멸.
f12를 누르면 그 클래스로 타고 들어가 세부내용을 알 수 있다.
swtich 문
오직 상수와 비교 가능
구조체와 클래스의 차이점
구조체는 리터럴 초기화가 안 된다.
// = 100 안된다
// =0 이 기본이다
클래스를 객체화하면 참조형
구조체는 값형
값형인가 레퍼런스형인가 구분하는 것이 중요
Enum >> 사용자 정의자료형 중 하나
(사용자 정의자료형: class, struct, enum)
열거형이라고 불린다. 값형이다.
명찰에 가까운 값
리턴이란 구문은 리턴이 되는 순간 함수를 완전히 종료시킨다.
한번 리턴했다면 그 아래 코드들은 무소용.
Console.Clear();
콘솔 화면을 지우는 함수
구조체는 swtich 문과 잘 어울림.
자동 완성됨. alt + enter
멤버변수는 웬만하면 private으로 처리하는 습관을 기르자.
클래스를 캡슐화하고, 멤버변수 간의 혼동을 방지하기 위해서임.
초보 때는 코드를 복붙하는 대신, 함수로 만든다고 생각한다.
함수는 비대하지 않을수록 좋다.
5~10줄짜리 함수를 많이 만들고,
그 함수들을 모아서 또 5~10줄짜리 함수를 만든다.
---------------------------------------
일단 오늘 메모한 건 여기까지고, 내일 강좌 더 들으면서 추가할 생각이다.
-------------------------
<일상 - 잡담>
일단 개발일지의 템플릿을 만들기 위해 초반에 여러 가지 방식의 글을 써볼 생각이다.
지금 생각하는 것은,
먼저 글 앞부분엔 오늘 개발-공부한 내용을 적고, 뒷부분엔 내 일상을 비롯한 잡담을 적는 것이다.
일상 잡담에는 자기계발에 관한 메모나 생각 등 개발-일상에 관련된 내용을 담으려고 한다.
--------------------
오늘은 내 주변 환경을 개선한 것에 대해 얘기해 보려고 한다.
원래 나는 집중에 관해서,
내가 최대한 노력해서 집중해야 한다고 생각했다.
흔히 말하는 노오-력 같은 말처럼 말이다.
하지만 자기 계발서를 읽으면서 주변 환경 또한 몹시 중요함을 깨달았다.
------------------
그래서 먼저 한 것은 이불 개기다.
이불 개기가 뭔 대수냐고 할 수 있는데, 생각보다 효과가 있다.
아침에 일어나서 이불을 개고 방 안을 간단히 정리하기만 해도, 심신이 안정되는 효과를 볼 수 있다.
밤에도 마찬가지.
피곤한 몸을 이끌고 누우려고 하는데 침대 위가 개판이라면?
또 그거 정리한다고 사소한 몸짓 하나 하는 것부터 기분이 다운된다.
이불 개는 데에 10분 걸리는 것도 아니고, 고작 30초 투자로 하루의 시작과 끝을 기분 좋게 끊을 수 있다.
----------------------
두 번째는 본격적인 방 청소.
원래 나는 방 청소하기 싫어하는 사람이었다.
책상 위에 온갖 물건들이 아무렇게나 놓여 있고, 바닥도 청소기 안 밀어서 먼지가 굴러다니곤 했다.
정돈된 책상이 집중력에 도움을 준다는 자기계발서만 믿고 2-3일에 한 번씩 청소를 해봤는데,
효과가 뚜렷하진 않았지만 점진적으로 있는 듯한 느낌이었다.
무엇보다, 책상 위에 내가 지금 할 것만 올려놓으니까 더 집중이 잘 되는 것 같다.
다른 쪽으로 시선이 덜 분산되기 때문이다.
----------------
세 번째는 소음이다.
아파트 고층에 살고 있는 사람들은 모를 수 있지만,
나는 연식이 오래된 단독주택의 2층에서 살고 있다.
주상복합인 데다가 교통량이 적지 않은 도로변에 있어서, 창문을 열고 있으면 가끔 지나가는 자동차 소리가 유난히 시끄럽다.
거기에 개 짖는 소리, 술 마시고 고성방가 지르는 소리, 싸우는 소리 등등...
무엇보다 가장 짜증 나는 점은 우리 동네 위로 비행기가 지나간다는 점이다.
김포공항에 낮게 착륙하는 비행기가 5분-10분에 한 번씩 지나가는데, 이 소음이 장난 아니다.
-----------------------
그래서 나는 인터넷에 검색해 보고, 처음엔 귀마개를 구매했다.
모두 흔히 쓰는 3m 귀마개 있지 않은가?
그런데 내 귀가 좋은 편이 아니어서 그런가, 귀마개를 쓰니까 귀안에서 팽창되어서 뭔가 느낌이 이상했다.
내가 착용법을 몰라서인지, 귀마개 성능이 안 좋아서인지 모르겠지만 자동차와 비행기 소음을 그다지 차단시켜주지 않았다.
--------------------
결국 귀마개 대용으로 3m에서 파는 2만 원대 헤드폰형 산업용 귀덮개를 샀다.
이렇게 생긴 놈인데, 솔직히 껴보기 직전까지 긴가민가했다.
하지만 착용한 순간,
"아!"
효과는 직빵이었다.
사람들과 대화하는 소리는 안정상의 이유로 어느 정도 들리지만, 내가 원하는 자동차와 비행기 소음은 확실하게 많이 줄어들었다.
게다가 내가 인지하지 못하는 잡음도 깔끔하게 잡아주어서 고요한 느낌이 들게끔 하였다.
집중력이 올라간 건 당연지사.
왜 진작 구매하지 않았나 후회할 정도다.
단점으로는, 내가 안경을 쓰고 있는데 안경대가 패드에 좀 눌린다는 것과, 여름에는 패드 쪽에 땀이 난다는 것 정도?
어떤 사람은 심장 두근대는 소리가 들려서 거슬린다 하던데, 나는 모르겠다.
하여튼 혹시 층간 소음이나 밖에서 나는 소음에 민감한 사람, 집중력 높이고 싶은 사람은 이 소음 쪽으로 컨트롤해 보기 바란다.
나는 공부나 작업 효율이 못해도 20%는 상승한 것 같다.
---------------------
시간 재가면서 글 쓰니까 1시간 20분 걸렸다.
좀 더 익숙해지면 1시간 안으로 끊을 수 있으련지 모르겠다.
그럼 오늘은 여기까지 하고,
모두 게임 개발 공부하는 데에 있어서 참고하기 좋은 책이나 사이트들을 댓글로 공유해 보자!
(IP보기클릭)125.240.***.***
(IP보기클릭)119.149.***.***
오늘 하루도 화이팅! | 22.06.20 10:22 | |
(IP보기클릭)210.179.***.***
(IP보기클릭)119.149.***.***
보통 매일 오후 10시에 업로드할 것 같아! 아 맞다, 오늘은 문제없이 올릴 것 같은데, 내일은 저녁에 일정 있어서 미지수 ㅠ | 22.06.20 10:22 | |