작성자 분께서 고민을 많이 하고 계셨군요. 제가 아는 정보를 통해서 답변을 해드릴수 있는 만큼 해드리겠습니다.
1. 물론 다 다르겠지만, 프로그래머들은 언어를 다양하게 배우지 않나요?
A. 보통은 주력분야를 정해두는 편입니다. 특히 게임개발자의 경우에는 더더욱이요.
여기서 또 갈리는게 작성자께서 말씀하는 게임업계는 큰틀로 보면 유니티와 언리얼엔진으로 나뉩니다.
두 엔진은 서로 C++, C#으로 사용하는 언어가 다릅니다. 같은 C라고 해서 같은게 아니고 그냥 다른 언어입니다. 언어를 학습하고 이해해서 엔진을 사용해야하는데 저 두 언어를 제외하고도 수많은 언어를 마냥 학습하기만 한다면 현업에 들어가기에 너무 늦고, 또 그럴 필요도 없습니다. 그렇기에 보통은 본인이 개발하고자 하는 엔진에 맞춰 언어를 학습하고 경쟁력을 갖추기위해서 서브로 하나를 배우는게 좋습니다.
2. 게임 개발은 어떤 식으로 진행되나요?
게임 개발은 복잡합니다. 어떤 식으로 진행되냐고 할 때 세세히 설명하기에는 지식인으로는 부족합니다 간략히 과정만 설명 드리면 초기 세팅 및 프로젝트를 구조화합니다. 버전 및 패키지, 툴 등을 정립하죠.
그리고 에셋 파이프라인->모델->임포트->세팅 수능로 아트파일을 엔진에 넣기 위해 표준화를 거칩니다.
그리고 핵심시스템 구현 및 아키텍처 등 코드 구조 및 시초 시스템, 흔히 뼈대라 불리는 과정을 거칩니다.
유니티의 경우에는 애니메이션 시스템을 하기위해 유니티에서 리깅/애니를 적용하고 루트 모션, 최적화를 이루어 줍니다.
게임플레이 객체(오브젝트)를 만들고, UI&UX를 구현하고 오디오 파이프라인을 거칩니다.
멀티플레이에 경우 서버-클라이언트를 활용하기에 네트워크와 관련된 동기화 및 보안을 설정해줍니다.
뒤로 가면 이 과정에서 레벨 디자인 등 기획과 게임아트가 병행하면서 들어가기에 실질적으로는 엔진을 활용해 구현하는 것이 대부분이고 실제로 게임을 만들때는 엔진을 활용해 게임을 제작하신다고 생각하면 됩니다.
3. 사람들이 언어는 파면 팔 수록 어렵고, 그걸 완벽히 쓸 수 있는 사람은 없다고 말합니다.
맞습니다. 언어는 파면 팔 수록 어렵고 완벽히 마스터했다라고 하는 사람은 없습니다.
대신 나에게 필요한 부분에 대해서는 알고 있어야하며 필요한 부분은 그때그때 학습할 수 있을 정도로
언어에 대해 이해해두면 됩니다.
4. 프로그래밍 언어를 배우는 것과 게임 엔진을 배우고 게임을 제작하는 것은 완전 다른 것이라고 들었습니다.
게임 엔진을 활용해 게임을 제작하는 것을 배우는 건 말 그대로 누구나 할 수 있습니다. 요즘 저학년 학생들이
로블록스라는 게임을 활용해 컨텐츠를 제작하는 것처럼 엔진은 말 그래도 이미 프로그래밍 언어를 통해 만들어진 엔진을 다뤄서 게임을 구성하는 일이구요. 프로그래밍 언어를 배워서 엔진에 써먹는다는건
이후 만들어진 게임, 엔진에 오류가 발생해 수정이 필요할 때, 언어를 사용해 수정하기 때문이지요.
프로그래밍 언어에 대한 실력이 부족해도 게임을 만들 수는 있지만 프로그래밍 언어를 모른다면 게임사에서는 구지 그 사람을 채용할 필요가 없는거죠. 로봇을 단순히 만들고 수리할 줄 모르는 사람이랑 똑같습니다.
5. 제가 포트폴리오 용 웹사이트를 만들어야 합니다.
제가 대학생때 과제로 블로그를 구현해보는 것과 비슷한거 같은데 그런 사이트의 경우에는 HTML만 있어도 구현은 가능합니다.
만약 애니메이션이나 상호작용을 원하신다면 경우에 따라 CSS와 자바스크립트는 필요하겠네요.
6. 이거 말고도:
작성자 분께서 실전으로 들어가기전에 고민이 많으신것 같습니다.
저의 경우에는 언리얼엔진을 다뤄보고 싶어서 C++을 먼저 배워보려했는데 어렵습니다...
제가 과거로 돌아간다면 유니티기반의 C#부터 공부하고 나서 언리얼로 넘어가려고 할거같네요.
특히 초보자의 경우에는 그렇게 추천드립니다. 작성자 분께서는 게임개발자가 되고 싶으시다면
고민이 되실겁니다. 요즘엔 언리얼엔진을 사용하는 게임들이 정말 많으니까요.
너무 조급하시지마시고 차근차근 목표 세우시면서 원하시는 바 이루시길 바라겠습니다.