티스토리 뷰

안녕하세요 게임 개발이 하고 싶은 기계공학과 졸업생 K◀EY입니다.

 

게임 개발을 포함해서 개발자가 되기 위해 익혀야 하는 기초과정이 있습니다.

제가 여기저기 찾아보고 정리해 본 바 저는 아래와 같은 과정을 따르기로 했습니다.

 

C / C++

자료구조 / 알고리즘

C#

java

디자인패턴

데이터베이스

네트워크 프로그래밍

Unity3D / Android Studio

 

각 과정을 거쳐야 하는 이유는 아래와 같습니다.

 

1. C / C++ : 

 

프로그램 개발을 위해서는 '프로그래밍 언어' 라는 것을 배워야 한다는 것은 알고 계실 겁니다.

그리고 프로그래밍 언어에 관해 조금 찾아보셨다면 C, python, java, C#, C++

다양한 언어가 있다는 사실도 알게 되었을 겁니다.

 

그럼 이 많은 언어 중 무엇을 먼저 배워야 하는지, 몇 개의 언어를 배워야 하는지도 궁금해지셨겠죠?

C언어는 초창기에 만들어져 많은 프로그래밍 언어의 기반이 되는 언어라고 볼 수 있습니다.

C언어는 하드웨어에 가장 가까운 언어입니다. 이게 무슨 말이냐, 한 번 비유로 설명하겠습니다.

 

만일 여러분이 C언어로 코딩을 하고 프로그램을 만들게 되면,

프로그램 안에서 데이터들이 메모리에 어떻게 입력되고, 입력된 데이터는 어디에 저장되고,

이 데이터를 다시 이용하기위해 저장위치를 어떻게 찾고... 등등을 '직접' 지정해주어야 합니다.

따라서 C언어는 배우고 이용하기가 다소 까다롭지만, 프로그램을 완성하면 무게가 굉장히 가볍고

실제 컴퓨터나 기계 안에서 동작하는 속도가 매우 빠르다는 장점을 가집니다.

 

반면, 'python이 초보자에게는 배우기도 쉽고 금방 써먹을 수 있다' 는 말을 들어보셨을 겁니다.

python 같은 언어는 쉽게 배우고 써먹을 수 있도록 '가공'된 언어입니다.

위의 예시에서 python은 메모리를 어떻게 입력받고, 어디에 저장하고, 어떻게 저장위치를 찾고... 등등을

신경쓰지 않아도 코딩이 가능합니다.

왜냐하면 python언어체계가 안 보이는 곳에서 알아서 그런 까다로운 일들 착착 해주기 때문입니다.

따라서 python같은 언어는 쉽게 배우고 써먹을 수 있지만 이를 통해 프로그램을 만들면

프로그램이 동작하는 동안 python에서 메모리 관리에 관한 부분을 자체 계산해야 하기 때문에

작업량이 상대적으로 늘고, 프로그램이 다소 무거워지며, 속도도 느려지게 됩니다.

 

하지만 python같은 언어로 인해 프로그램이 무거워지거나 느려지는 등의 단점은 그 비중이 매우 작고

사실 일반적인 환경에서 체감이 확 와닿진 않기 때문에 배우기 쉽고 써먹기 쉬운

python으로 코딩공부를 시작하는 것을 많이 추천하기도 합니다.

 

하지만 C언어가 컴퓨터 안에서 프로그램이 동작하는 원리 등등 기본 개념을 다지기에는 다른 언어에 비해

월등히 좋기 때문에 C언어를 첫 코딩공부 대상으로 추천합니다.

 

C++은 사실 아직 저도 배워야할 이유에 대해 잘 모르지만 아마도 C와 같은 맥락일 것이라 생각합니다.

C++은 시간이 부족하다면 과정에서 제외해도 된다고 합니다.

 

 

2. 자료구조 / 알고리즘

 

C / C++에서 ㄱ,ㄴ,ㄷ,ㅏ,ㅑ,ㅓ 와 같은 자모음과, 이를 이용해 '글자'를 만들고, '문장'을 만드는 것을 배웠다면

글의 구성이 어떻게 이루어져야 더 읽기가 편하고 효율적인지를 가르쳐 주는 것이 자료구조와 알고리즘입니다.

같은 기능을 하는 코드라도 어떻게 짜여있느냐에 따라 컴퓨터의 계산속도는 천차만별로 달라지고

컴퓨터의 부하도 줄일 수 있습니다.

 

예를 들어 1~10000까지의 숫자 중에 7456이라는 숫자를 찾아야 할 때,

1부터 10000까지 쭉 찾아보면서 7456을 찾으면 시간이 꽤 걸립니다.

하지만 1000단위로 끊어서 앞자리가 7인 구간부터 찾는다면 꽤 빠르게 찾을 수 있겠죠?

 

 

3. C#

 

저는 게임 개발을 목표로 하고 있습니다. 게임 개발을 하려면 개발 툴이 필요합니다.

게임 개발 툴에는 크게 '유니티'와 '언리얼엔진'이 있습니다.

그리고 각 개발 툴에서 사용하는 프로그래밍 언어가 다릅니다.

유니티에서는 C#을 사용하고, 언리얼엔진은 C++을 사용합니다.

유니티가 초보자들이 더 다루기 쉽고, 관련 자료도 많이 나와있어서 저는 유니티로 게임 개발을 할 계획입니다.

따라서 C#을 배우게 됩니다.

 

 

4. java

 

java도 프로그래밍 언어입니다. 이 언어는 주로 모바일게임을 만들 때 사용하게 됩니다.

 

 

5. 디자인 패턴

 

이런 이름의 학문이 있는지는 잘 모르겠습니다만, 대충 코드를 재사용하기 쉽게 작성하는 방법에 관해 배웁니다.

프로그램 개발을 시작하다보면, 프로그램마다 코딩을 처음부터 다시 작성하게 될 경우 시간이 오래 걸립니다.

그럴 때 비슷한 기능에 관해서는 이전에 썼던 것을 다시 쓸 수 있으면 좋겠죠?

그것을 용이하게 하기 위해서는 코드를 한 번 작성할 때 이 코드를 재사용할 것을 생각해서

떼고 붙이기 쉽게 모듈의 형태로 작성해주면 좋을 것 같습니다. 이에 관한 방법을 배웁니다.

 

 

6. 데이터베이스

 

데이터베이스는 수많은 데이터들을 관리하기 위해 필수로 익혀야 한다고 생각합니다.

예를 들어 RPG게임만 하더라도, 레벨, 레벨당 능력치, 아이템 이름, 아이템 능력치... 등등

정말 엄청난 양의 데이터를 다루어야 합니다. 이를 찾기 쉽게 저장하고, 필요할 때 쉽게 사용하기 위해

데이터 관리에 관해 배우게 됩니다.

 

 

7. 네트워크 프로그래밍

 

서버를 만든다고 생각하면 됩니다. 혼자 플레이하는 게임이라면 딱히 써먹을 일이 없겠지만

멀티플레이를 지원하려면 반드시 익히고 다룰 줄 알아야 합니다.

 

 

8.  Unity3D / Android Studio

 

유니티는 주로 pc게임, 안드로이드 스튜디오는 주로 모바일 게임을 제작하는 툴이라고 생각하면 됩니다.

앞의 과정들을 모두 익히면 이 툴을 사용하는 방법을 익히고, 이제 제가 만들고 싶었던 게임을 제작하게 됩니다.

 

이제부터 저는 제일 첫 과정인 C언어 공부를 시작하게 됩니다.

읽어주셔서 감사합니다.

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/10   »
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
글 보관함