img img img
image
회원가입시 광고가 제거됩니다

게임 개발/프로그래밍 분야 (초보)(긴 글) 프로그래밍 시작한지 얼마 안 된 20살이고요대학은 내년 3월이 들어갑니다. 미디어

프로그래밍 시작한지 얼마 안 된 20살이고요대학은 내년 3월이 들어갑니다. 미디어 콘텐츠 관련으로요.컴공은 복수 전공 할 생각입니다. 개인적으로 뭔갈 창작하는, 그림/프로그래밍/기획/작문/애니메이션/영상편집. 이런 쪽이 너무 재밌거든요.C언어로 시작했고 게임 개발이 목표입니다.지식인이나 여러 커뮤니티에 질문 남겼다가 바보같은 질문이라고 많이들 말씀하셔서 큰 틀의 질문들을 해보려고 합니다.우선 저를 소개하자면:- 프로그래밍 시작한지 2달정도 됨- 기초가 중요하다고 해서 C언어로 시작했고, C언어는 끝까지 공부할 생각이 아닌, 그냥 프로그래밍 세계에 발을 딛는 수단으로써, 기초 문법만 공부할 생각이었음.(현재 반복문, 포인터, 구조체, typedef, union같은 기초 문법과 파일이나 메모리에 관련된 완전 기기기초 내용만 공부함)- 최종 목표는 취업과 2d 인디 게임 개발(개인)이고, 유니티가 언리얼보다 2d와 인디게임 분야에서 유리하다고 하 유니티를 배울 예정- 근데 포폴용 사이트도 만들고 싶고, Ai도 너무 재밌을 것 같고 궁금하고, 모바일 어플도 만들어보고 싶고, 3d게임도 만들어 보고 싶어서 java나 c++, 파이썬 같은 언어나 언리얼도 관심이 있음.- 언어만 배우면 끝! 아닌 거 알고 있어서 영어, 수학, 알고리즘, 컴퓨터 구조, 운영체제, 자료구조, 네트워크, 3d툴(블랜더), 그림, 기획 전부 공부 할 거임- 진짜 기초 지식 1도 없고 앞으로 어떻게 해야 할지 모르겠음이제 질문입니다:1. 물론 다 다르겠지만, 프로그래머들은 언어를 다양하게 배우지 않나요? 제가 이전에 올렸던 게시물의 답변 중 “아무도 언어를 그렇게 다양하게 쓰지도, 배우지도 않는다” 라는 답변을 많이 받았었습니다.2. 게임 개발은 어떤 식으로 진행되나요?게임을 설계하는 과정을 말하는 것이 아닙니다. (기획, 조사 등등..)제가 궁금한 것은 게임에 대한 아이디어가 준비되었다고 했을 때(유니티를 킨다, 파일을 만들고, 소스 코드를 짠 후, 뭐 그림을 그려서 그 그림을 코드에 어쩌구 저쩌구 하고, 리깅을 시켜서 애니메이션을 어쩌구 저쩌구.. 이런) 세세한 게임의 “구현 과정”입니다. 가능한 디테일하게 알려주세요.3. 사람들이 언어는 파면 팔 수록 어렵고, 그걸 완벽히 쓸 수 있는 사람은 없다고 말합니다.현재 저는 C언어의 기초 문법만 공부한 상태고, 솔직히 아직은 어디가 어렵고 어디가 어려운 건지 모르겠습니다.사람들이 어렵다고 하는 부분에는 무엇이 있나요?여러 개여도 괜찮습니다. 제 목표인 C#에 대입해 설명해주세요.4. 프로그래밍 언어를 배우는 것과 게임 엔진을 배우고 게임을 제작하는 것은 완전 다른 것이라고 들었습니다.게임 엔진에서는 프로그래밍 언어를 사용하지 않는 것도 아닌데.. 이건 왜 그런 건가요?아님 엔진에서 사용하는 C#이랑 프로그래밍 언어의 C#이랑 뭔가 다르거나 그런 건가요?5. 제가 포트폴리오 용 웹사이트를 만들어야 합니다. 이미지나 영상을 첨부하고, 간단한 상호작용+애니메이션이 적용되어있는 사이트를 만드려고 합니다.(마우스를 올려 놨을 때 사진들이 회전한다거나, 크기가 커진다거나..)이건 java같은 언어를 배워야 만들 수 있는 건가요? 아님 C#으로도 가능한가요? 아님 html인가 그거로만으로도 가능한 건가요?6. 이거 말고도: 내가 초보일 때 이런 부분에서 어려웠었다내가 예전으로 돌아간다면 이런 부분을 개선하고 싶다또는위 저의 질문이나 제 상태를 보았을 때, 저에게 해주고 싶은 조언, 또는 말을 해주세요.긴 글 읽어주심에 감사드리며 좋은 하루 되세요.

작성자 분께서 고민을 많이 하고 계셨군요. 제가 아는 정보를 통해서 답변을 해드릴수 있는 만큼 해드리겠습니다.

1. 물론 다 다르겠지만, 프로그래머들은 언어를 다양하게 배우지 않나요?

A. 보통은 주력분야를 정해두는 편입니다. 특히 게임개발자의 경우에는 더더욱이요.

여기서 또 갈리는게 작성자께서 말씀하는 게임업계는 큰틀로 보면 유니티와 언리얼엔진으로 나뉩니다.

두 엔진은 서로 C++, C#으로 사용하는 언어가 다릅니다. 같은 C라고 해서 같은게 아니고 그냥 다른 언어입니다. 언어를 학습하고 이해해서 엔진을 사용해야하는데 저 두 언어를 제외하고도 수많은 언어를 마냥 학습하기만 한다면 현업에 들어가기에 너무 늦고, 또 그럴 필요도 없습니다. 그렇기에 보통은 본인이 개발하고자 하는 엔진에 맞춰 언어를 학습하고 경쟁력을 갖추기위해서 서브로 하나를 배우는게 좋습니다.

2. 게임 개발은 어떤 식으로 진행되나요?

게임 개발은 복잡합니다. 어떤 식으로 진행되냐고 할 때 세세히 설명하기에는 지식인으로는 부족합니다 간략히 과정만 설명 드리면 초기 세팅 및 프로젝트를 구조화합니다. 버전 및 패키지, 툴 등을 정립하죠.

그리고 에셋 파이프라인->모델->임포트->세팅 수능로 아트파일을 엔진에 넣기 위해 표준화를 거칩니다.

그리고 핵심시스템 구현 및 아키텍처 등 코드 구조 및 시초 시스템, 흔히 뼈대라 불리는 과정을 거칩니다.

유니티의 경우에는 애니메이션 시스템을 하기위해 유니티에서 리깅/애니를 적용하고 루트 모션, 최적화를 이루어 줍니다.

게임플레이 객체(오브젝트)를 만들고, UI&UX를 구현하고 오디오 파이프라인을 거칩니다.

멀티플레이에 경우 서버-클라이언트를 활용하기에 네트워크와 관련된 동기화 및 보안을 설정해줍니다.

뒤로 가면 이 과정에서 레벨 디자인 등 기획과 게임아트가 병행하면서 들어가기에 실질적으로는 엔진을 활용해 구현하는 것이 대부분이고 실제로 게임을 만들때는 엔진을 활용해 게임을 제작하신다고 생각하면 됩니다.

3. 사람들이 언어는 파면 팔 수록 어렵고, 그걸 완벽히 쓸 수 있는 사람은 없다고 말합니다.

맞습니다. 언어는 파면 팔 수록 어렵고 완벽히 마스터했다라고 하는 사람은 없습니다.

대신 나에게 필요한 부분에 대해서는 알고 있어야하며 필요한 부분은 그때그때 학습할 수 있을 정도로

언어에 대해 이해해두면 됩니다.

4. 프로그래밍 언어를 배우는 것과 게임 엔진을 배우고 게임을 제작하는 것은 완전 다른 것이라고 들었습니다.

게임 엔진을 활용해 게임을 제작하는 것을 배우는 건 말 그대로 누구나 할 수 있습니다. 요즘 저학년 학생들이

로블록스라는 게임을 활용해 컨텐츠를 제작하는 것처럼 엔진은 말 그래도 이미 프로그래밍 언어를 통해 만들어진 엔진을 다뤄서 게임을 구성하는 일이구요. 프로그래밍 언어를 배워서 엔진에 써먹는다는건

이후 만들어진 게임, 엔진에 오류가 발생해 수정이 필요할 때, 언어를 사용해 수정하기 때문이지요.

프로그래밍 언어에 대한 실력이 부족해도 게임을 만들 수는 있지만 프로그래밍 언어를 모른다면 게임사에서는 구지 그 사람을 채용할 필요가 없는거죠. 로봇을 단순히 만들고 수리할 줄 모르는 사람이랑 똑같습니다.

5. 제가 포트폴리오 용 웹사이트를 만들어야 합니다.

제가 대학생때 과제로 블로그를 구현해보는 것과 비슷한거 같은데 그런 사이트의 경우에는 HTML만 있어도 구현은 가능합니다.

만약 애니메이션이나 상호작용을 원하신다면 경우에 따라 CSS와 자바스크립트는 필요하겠네요.

6. 이거 말고도:

작성자 분께서 실전으로 들어가기전에 고민이 많으신것 같습니다.

저의 경우에는 언리얼엔진을 다뤄보고 싶어서 C++을 먼저 배워보려했는데 어렵습니다...

제가 과거로 돌아간다면 유니티기반의 C#부터 공부하고 나서 언리얼로 넘어가려고 할거같네요.

특히 초보자의 경우에는 그렇게 추천드립니다. 작성자 분께서는 게임개발자가 되고 싶으시다면

고민이 되실겁니다. 요즘엔 언리얼엔진을 사용하는 게임들이 정말 많으니까요.

너무 조급하시지마시고 차근차근 목표 세우시면서 원하시는 바 이루시길 바라겠습니다.