paint-brush
게임 개발 경력이 당신에게 적합합니까?~에 의해@solverit
378 판독값
378 판독값

게임 개발 경력이 당신에게 적합합니까?

~에 의해 Andrey Mikheev16m2023/11/01
Read on Terminal Reader

너무 오래; 읽다

게임 개발자가 되고 싶다면 일반적인 프로그래밍 기술에 집중하고 깔끔하고 고품질의 코드를 작성하는 것부터 시작하세요. 10억 달러 규모의 게임을 만들기 위해 서두르지 마세요. 대신 개발자로 성장하는 것을 목표로 삼으세요. 클린 코드, 클린 아키텍처, ECS, SOLID, KISS, OOP, 알고리즘 및 데이터 구조와 같은 학습 개념의 우선순위를 지정하세요. 경험을 쌓기 위해 게임 스튜디오에서 인턴십을 하거나 독학을 하는 것을 고려해 보세요. 목표에 따라 C#, Java, JavaScript, Lua 또는 Python과 같은 프로그래밍 언어를 선택하세요. 대부분의 프로그래밍 리소스가 영어로 제공되므로 기술 영어를 배우는 것이 중요합니다. 싱글 플레이어 게임 작업을 할 것인지 멀티 플레이어 게임 작업을 할 것인지 결정하세요. 작은 프로젝트부터 시작하여 경험을 구축하고 점차적으로 복잡성을 증가시키세요. 도구를 선택하고 프로그래밍 언어를 먼저 배운 다음 게임 엔진으로 넘어갑니다. Itch.io 또는 웹 포털과 같은 플랫폼에서 첫 번째 게임을 출시하는 것을 고려해 보세요. "코드 없는" 접근 방식을 피하고 즐거운 시간을 보내십시오. 게임 개발에서는 열정이 매우 중요합니다.
featured image - 게임 개발 경력이 당신에게 적합합니까?
Andrey Mikheev HackerNoon profile picture
0-item


그래서 게임 개발에 참여하고 싶습니다. 또는 더 구체적이고 간단하게 말하면, 기술적인 측면에서 일하는 게임 개발자가 되고 싶습니다. 글쎄요, 누구든지 그렇게 하는 방법에 대해 질문을 할 것입니다!


예를 들어:


  • 어디서 시작하나요?
  • 기술을 향상시키는 방법은 무엇입니까?
  • 어떤 게임 엔진을 먼저 마스터하는 것이 더 낫습니까?
  • 어떤 프로그래밍 언어를 선택할 것인가?


이러한 주제에 관한 수많은 정보가 있습니다. 너무 많아서 두뇌에 쉽게 과부하가 걸려 가치 있는 선택을 내리기가 어려워집니다.


제 이름은 Andrey Mikheev이고 Pixonic, MY.GAMES의 수석 백엔드 개발자입니다. 저는 게임업계에 20년 동안 종사해왔습니다. 저는 90년대에 당시 인기가 있었던 ZX Spectrum에서 처음으로 게임을 만들어 보았습니다. 이 글에서는 게임 개발로 전환할 때 선택할 수 있는 옵션에 대해 설명하고 이러한 옵션이 어떻게 다른지 설명하겠습니다.


먼저 몇 가지

이 게시물에서 우리는 독자가 이제 막 업계로의 여정을 시작한다는 가정하에 운영할 것입니다. 모든 것을 동시에 배우는 것은 불가능하므로 우선순위를 정하고 공부 방법을 선택해야 합니다. 물론 사람마다 경험이 다릅니다. 이 직업에서 발전할 수 있는 길은 여러 가지가 있습니다.


게임 개발(및 기타 IT 분야)의 장점은 자신의 기술을 적용할 수 있는 영역이 많다는 것입니다. 프로듀서, 마케팅 담당자, 아티스트, 디자이너, 스크립트 작성자, 모델러, 분석가, 클라이언트측 개발자, 코어 개발자, 메타 서비스 개발자, 렌더 개발자 등. 사실, 인디 게임의 세계에서는 앞서 언급한 거의 모든 기술을 결합해야 하지만 이는 나중에 다루겠습니다.

게임 개발 분야에서 경력을 시작하려고 할 때 사람들은 종종 기술적인 측면, 즉 마스터할 엔진, 먼저 선택할 프로그래밍 언어 또는 작업할 특정 기술에 중점을 둡니다.


하지만 기술은 단지 도구일 뿐이라는 점을 명심하세요. 특정한 일을 중심으로 개발자로서 전체 정체성을 구축할 필요는 없습니다 . 정비공은 렌치가 아닙니다. 오늘은 십자드라이버, 내일은 전동드라이버, 모레는 공압 공구입니다. 특정 드라이버의 사용법을 배우는 것이 목표가 아니라 자동차의 구조를 이해하고 조립 및 수리하는 방법을 배우는 것입니다.


기술은 도구일 뿐이고, 당신의 기술이 중요합니다.


이러한 렌치를 게임 엔진, 코딩 언어 및 기타 항목으로 교체해도 요점은 변하지 않습니다. 이것들은 당신이 활용하기 위한 도구일 뿐입니다.


게임 개발자를 위한 일반적인 기술에 대한 조언

그래서 제 생각에는 이 단계에서는 전반적인 능력이 가장 중요하다고 생각합니다. 왜냐하면 당신은 "게임"을 만드는 임무를 맡은 것이 아니라 좋은 코드를 작성하는 임무를 맡았기 때문입니다.


목표는 10억 달러 히트 게임을 만드는 것이 아니라 개발자로 성장하는 것이다. 수십억 달러 규모의 게임을 만드는 것은 개발에 관한 것이 아니라 아이디어와 마케팅에 관한 것입니다. 코드는 부차적인 것입니다. 물론, 이 두 가지 목표는 서로 모순되지 않습니다. 그러나 나는 놀라운 성공을 첫 번째 목표로 설정하지 않을 것입니다. 그렇게 하면 회사 전체에 대해 금세 실망하게 될 수 있습니다.


코드 주제로 돌아가서, 모든 산업에서 고품질 코드에 대한 수요가 항상 크며 게임, 핀테크, 로봇 제어 알고리즘, 우주로 로켓 발사 등 다양한 응용 분야가 있기 때문에 코드에 대한 일반적인 초점이 중요합니다. 어떤 사람들은 고품질 코드가 엄청난 지연을 의미하며 이 사업에서는 시간이 핵심이라고 말할 수도 있습니다. 믿지 마세요. 좋은 코드를 작성할 수 있다면 가동 중지 시간이 발생하지 않습니다.


또 다른 문제는 코드가 엉성하면 고품질 제품을 만들려면 습관을 고쳐야 하고, 그러려면 많은 시간과 노력이 필요하다는 것입니다.


또 다른 매우 중요한 점은 타이밍에 관한 것입니다. 좋은 코드를 만드는 데 소요되는 시간은 항상 코드를 유지하는 데 소요되는 시간의 감소로 상쇄됩니다 . 결국, 게임, 특히 멀티플레이어의 경우 수명이 긴 제품이므로 이 경우 코드의 품질이 매우 중요합니다.


다른 전문가가 귀하의 코드를 쉽게 이해하고 다시 작성할 필요 없이 이를 적용할 수 있어야 합니다 . 그리고 몇 년 안에 갑자기 무언가를 바꾸기로 결정한 경우에도 쉽게 읽을 수 있어야 합니다 . 대략적인 예를 들자면, 한 번에 몇 달에 걸쳐 고품질 코드를 작성하고 며칠 만에 신속하게 변경 사항을 적용하는 것이 일주일 안에 이해할 수 없는 내용을 작성하고 사소한 부분마다 한 달이 걸리는 것보다 낫습니다. 앞으로는 편집하세요.



깨끗한 코드를 만들어 보세요. 엄청난 도움이 될 것입니다.



간단히 말해서, 클린 코드, 클린 아키텍처, ECS, SOLID, KISS, OOP, 알고리즘 및 데이터 구조 — 게임 개발 분야에서 훌륭한 기술 전문가가 되고 싶다면 이 모든 주제에 특별한 주의를 기울여야 합니다 .


예, 알고리즘은 일부 사람들에게 두통을 유발할 수 있습니다. 그러나 게임 개발에는 일반적인 웹 프로젝트보다 이러한 "알고리즘 및 구조"가 더 많이 있으며, 이를 마스터하면 생활이 크게 단순화될 것입니다.


이러한 개념에 대한 더 깊은 이해는 당연히 경험을 통해서만 이루어질 것입니다. 시간이 지남에 따라 다양한 프로젝트에 참여하게 될 것이며, 다른 전문가들이 어떻게 작업하는지 이해하기 시작하고, 게임 코드 작업 시 개인적으로 문제가 되는 것이 무엇인지 알게 될 것입니다.

다른 사람의 경험으로부터 배우는 것이 중요합니다 . 오픈 소스 프로젝트를 연구하고, 업계 전문가의 강의를 듣고, 현재 이용 가능한 정보 소스가 많다는 사실을 기억하세요. 하지만 프로젝트에 너무 많은 시간을 투자해서는 안 됩니다. 특히 팀에 좋은 멘토가 없다면 더욱 그렇습니다. 유능한 개발자는 진공 상태에서 일할 수 없습니다. 여기서 가장 중요한 것은 당신이 하고 있는 일과 이유를 이해하지 못한 채 그것을 과도하게 사용하지 않고 다른 프로젝트의 코드를 사용하기 시작하는 것입니다.


그리고 한 가지 더 중요한 점: 코드를 다시 작성하는 것은 정상이므로 두려워하지 마십시오 . 게다가 훈련 기간 동안 이는 매우 중요합니다. 모범 사례를 사용하면 코드를 개선하고 유지 관리하기 쉽게 만드는 방법을 확인할 수 있습니다.


일반적인 프로그래밍 기술을 향상시키는 과정은 빠르지 않습니다. 몇 달, 심지어 몇 년이 걸릴 수도 있습니다. 그것 없이는 할 수 없기 때문에 이에 대비하십시오.


좋은 스튜디오에서 인턴십을 할 수 있는 기회가 있다면, 이는 당신의 성장을 크게 가속화할 것입니다 . 게임 개발의 다양한 측면을 배우고 멘토로부터 질문에 대한 답변을 들을 수 있는 기회를 갖게 됩니다. 하지만 솔직히 말해서 이것은 가장 일반적인 방법은 아닙니다.

처음부터 게임 업계에서 첫 번째 직업을 찾는 것은 또 다른 도전입니다. 유명한 역설: 직업을 얻으려면 경험이 필요하고, 경험을 얻으려면 직업이 필요합니다. 이 경우 자율 학습을 고려해 볼 가치가 있습니다 . 유료 강좌에 대한 아이디어를 즉시 폐기합시다. 여러 가지 이유로 모든 사람에게 적합하지 않습니다. 다행히 인터넷에는 게임 코딩의 모든 측면에 대한 수십, 수백 개의 가이드가 있습니다.



게임 엔진 선택

이러한 기본적인 질문에 스스로 대답하고 무엇을 어떻게 배울 것인지 이해했다면 이제 어떤 게임 엔진을 사용할 것인지 결정할 차례이며, 이에 따라 배워야 할 프로그래밍 언어도 결정됩니다.


이 주제는 너무 광범위하여 한 기사에서 다룰 수 없습니다. 더욱이 개발자로서 우리는 프로그래밍 언어만큼 엔진에 관심이 없습니다. 해당 주제에 대해 더 깊이 알고 싶다면 이 글을 읽어 보시기를 권합니다. 유용한 기사 Game Developer가 제공하는 Steam에서 가장 인기 있는 게임 엔진에 대해 알아보세요.


여정을 시작할 때 Unreal Engine이나 Unity와 같은 크고 심각한 엔진을 즉시 선택할 필요는 없습니다. 이론적이거나 실제적인 배경 지식이 없다면 PlayCanvas나 그와 유사한 웹 게임용 엔진만으로도 충분할 것입니다.


Defold 엔진은 . Unity보다 간단하고 2D 게임에 더 중점을 둡니다. 배우기 쉬운 매우 간단한 언어인 Lua를 사용합니다.


시중에는 수십 가지의 다양한 게임 엔진이 있으므로 하나를 선택하는 것이 어려울 수 있습니다.



프로그래밍 언어 우선순위

여러분의 시간을 절약하기 위해 언어의 몇 가지 측면을 간단히 설명하고 배울 때 우선순위에 따라 배열하겠습니다. 이 순서는 언어의 질이나 문제를 대변하지 않습니다. 대신 복잡성, 관련성 및 언어 기능 간의 균형에 대한 평가입니다.


예를 들어 Lua는 매우 흥미롭고 배우기 쉬우며 Defold 엔진을 사용하여 게임을 작성할 수 있습니다. 하지만 개발 경험의 기본 언어로 선택할 수는 없습니다. C++ 또는 C#과 같이 더 널리 사용되는 언어와 함께 사용되는 보조 언어입니다.

물론 이것이 모든 프로그래밍 언어의 전체 목록은 아닙니다. 그 중 12 개가 넘습니다. 그러나 이것이 내가 당신에게 지적하고 싶은 것입니다. 그래서 제가 배울 내용과 순서는 다음과 같습니다.


  • Korean : 네, 놀라지 마세요. 아마도 개발자에게 가장 중요한 언어일 것입니다. 당신이 원어민이 아니라면, 그것을 공부하면 큰 성과를 거둘 것입니다. 프로그래밍에 관한 대부분의 정보는 가이드, 코스, 문서, 포럼 등 영어로 제공됩니다. 일반적으로 공부하는 데 필요한 모든 것. 이론적으로는 모국어로 현지 프로그래머 커뮤니티를 검색하여 도움을 요청할 수 있지만, 영어 리소스에서 이 작업을 수행하면 문제가 100배 더 빨리 해결될 것입니다.


  • C#: 오랫동안 진지하게 개발 작업을 수행할 계획이라면 널리 사용되는 범용 언어로 시작하는 것이 좋습니다. C#도 그 중 하나입니다. 백업 계획에도 적합한 언어입니다. 게임 개발이 갑자기 지루해지더라도 핀테크, 비즈니스 애플리케이션 등 다양한 소프트웨어를 C#으로 작성할 수 있습니다.


    C#을 사용하면 표준 프로그래밍 개념을 익히고 다양한 개발 접근 방식을 구현할 수 있습니다. OOP, CQRS, DDD, ECS와 같이 무섭게 보이는 약어에 대해 모두 배우게 됩니다. 물론 이러한 접근 방식의 대부분은 모든 프로그래밍 언어로 구현될 수 있습니다. 그러나 뉘앙스가 있습니다. 예를 들어, 모든 언어에 "클래스"라는 개념이 있는 것은 아니므로 개념이 다르게 구현됩니다. 이는 초보 개발자의 마음을 아프게 하고 동기 부여 문제를 포함하여 불필요한 문제를 많이 일으킬 수 있습니다. 따라서 제 생각에는 C#은 예를 들어 JavaScript와 비교할 때 개발 경력을 시작하기 위한 가장 좋은(그러나 쉽지는 않은) 선택입니다 .


  • Java : C#과 마찬가지로 Java 는 범용 언어입니다. 하지만 게임 개발에서는 주로 서버 측면과 관련이 있습니다. 물론 Java 게임 엔진(예: LibGDX)이 있지만 게임 개발에 있어서 Unity만큼 인기가 있지는 않습니다.


    다시 말하지만, 이러한 일반 언어는 이미 Java를 알고 있지만 예를 들어 Fintech에서 근무하다가 갑자기 게임을 만들기로 결정한 상황에 적합합니다. 단지 실험을 위해 처음부터 새로운 언어를 배우고 싶지는 않을 것입니다. 그렇죠?


  • JavaScript : Stack Overflow의 창립자 중 한 명인 Jeff Atwood는 “JavaScript로 작성할 수 있는 모든 것은 JavaScript로 작성될 것입니다.


    슬프지만 점점 더 많은 게임 프로젝트가 이 언어로 작성되고 있다는 것은 사실입니다. 사실 JavaScript는 특히 초보자에게 매우 간단합니다. 그리고 어떤 종류의 웹 엔진에서 작업하는 경우 코드 줄을 어디에 입력해야 하는지 알려줄 수도 있습니다.


    단순함에도 불구하고 JavaScript는 게임 개발 여정을 시작하기에 좋은 장소가 아니라고 생각합니다. 이는 다른 범용 언어와 너무 다르기 때문에 개발자에게 속임수를 쓸 수 있습니다. 개발자가 첫 번째 프로그래밍 언어의 개념 측면에서 생각하는 아이디어가 있습니다. 그 말에는 어느 정도 사실이 있으므로 처음에는 보다 일반적인 기술과 접근 방식을 배우는 것이 좋습니다. 하지만 웹 게임을 시작하기로 결정했다면 아마도 JavaScript 없이는 성공하지 못할 것입니다. 그것은 웹 세계를 지배합니다. 이 경우 TypeScript에 주의를 기울이는 것이 좋습니다. 이 언어는 C#과 매우 유사하며 나중에 다른 언어로 전환하기가 더 쉽습니다.


  • Lua/Python: 왜 이들을 하나로 합쳤나요? 이는 일반적으로 게임 로직의 개별 부분을 스크립팅하는 데 사용되는 스크립팅 언어입니다. (예, 주요 개발 언어인 Defold와 같은 엔진이 있습니다. 그러나 규칙의 예외는 있습니다.) 예를 들어 Python은 인라인 스크립팅에 매우 널리 사용되는 도구이며 Blender 3D 편집기에서 사용됩니다.


    Lua와 Python을 알고 사용할 수 있으면 유용하지만 앞서 언급했듯이 보조 언어이므로 나중에 보관하겠습니다. 물론, 첫 번째 프로젝트에 Defold 엔진을 선택하지 않았다면 Lua는 필수 불가결합니다.


  • C++ : C++가 목록의 맨 아래에 있다는 사실에 놀라신 분들도 계실 것입니다. 그리고 언어가 나빠서가 아니라 그 길이 가장 어렵다. 이것은 제시된 언어 중에서 가장 강력한 언어이지만 고유한 기능을 가지고 있어 가장 복잡하기도 합니다.


    C++는 AAA 게임을 만드는 데 사용되며 하드웨어를 최대한 활용하는 것이 가능합니다. 하지만 초보 개발자에게는 이 방법을 제안하지 않습니다. 가능성이 높으며 업계에서 실망하게 될 것입니다. 그러나 C++가 정말로 필요한 것임을 진정으로 알고 있고 그에 따르는 어려움을 두려워하지 않으며 명확한 실행 계획을 가지고 있다면 계속 진행하십시오!​​




이것은 프로그래밍 언어 중 일부일 뿐입니다.


프로그래밍 언어를 선택하는 것은 중요하지만 무엇보다도 기술 영어 수준을 높여야 한다는 점을 잊지 마십시오. 이는 가이드, 강좌 및 기타 귀중한 정보 소스를 탐색하는 데 도움이 됩니다.


싱글 플레이어 또는 멀티 플레이어?

내 생각에는 이것이 게임 개발자가 내려야 할 다음 결정이다. (모바일 게임 개발, AAA 또는 웹 게임 개발 중 하나를 선택하는 것과는 다릅니다.) 이유는 간단합니다. 여정의 맨 처음에는 큰 게임을 만들 수 있는 선택권이 거의 없을 것이기 때문입니다. 생각해 보세요. 경험도 없이 어떻게 Escape from Tarkov나 Call of Duty를 작업할 수 있겠습니까? 첫 번째 게임은 크고 복잡해서는 안 됩니다. 그렇지 않으면 게임을 완료할 수 없습니다. 당신은 지쳐서 게임 개발을 그만두게 될 것입니다.


자신이 하고 싶은 일이 무엇인지 정확히 이해하는 것이 좋습니다. 숙련된 개발자에게는 이것이 그다지 중요하지 않지만, 처음에는 이 질문에 대한 대답이 가능한 연구 경로를 좁힐 것입니다.


싱글 플레이어와 멀티 플레이어 측면에서 클라이언트 개발(즉, 플레이어가 직접 상호 작용하는 게임 부분)의 관점에서 볼 때 개발자에게는 그 차이가 그리 크지 않을 수 있습니다. 하지만 멀티플레이어에는 백엔드와 이와 관련된 모든 문제가 필요하며 이는 별개의 광범위한 주제이기도 합니다.


싱글 플레이어 게임은 다른 플레이어의 세계 상태 동기화, 게임 로직 분리 또는 기타 유사한 문제에 대해 걱정할 필요가 없기 때문에 더 쉽습니다.


게임 메커니즘 측면에서 싱글 플레이어 게임은 멀티 플레이어 게임보다 훨씬 간단할 수 있으며, 프로젝트가 단순할수록 완료하기가 더 쉽습니다. 그리고 시작한 일을 마무리하는 것은 모든 비즈니스에서 중요한 기술입니다!


요약하자면, 싱글 플레이어 게임부터 시작하는 것이 좋습니다. 더 쉬울 것입니다 . 하지만 정말로 친구들과 함께 플레이할 수 있는 간단한 멀티플레이어 게임을 만들고 싶다면 안 되겠습니까? 첫 번째 작업 버전을 얻으려면 더 많은 시간이 필요하다는 점을 이해하면 됩니다. 그러나 사람의 내부 추진력은 매우 복잡한 것입니다. 아마도 온라인 게임을 만드는 것은 싱글 플레이어 게임보다 훨씬 더 많은 동기를 부여하여 첫 번째 프로젝트를 완료할 기회를 높일 것입니다.


첫 번째 프로젝트

자, 여기서 주요 질문에 이르렀습니다. 게임을 만들고 싶다면 정확히 어디서부터 시작합니까?


1단계: 도구 선택

우리가 처음에 만들고 싶은 게임의 유형을 대략적으로 이미 이해하고 있다고 가정해 보겠습니다. 우리는 어떤 종류의 프로그래밍 언어가 주로 사용되는지, 어떤 엔진에서 사용되는지 알고 있습니다. 이 언어와 엔진을 선택해야 하는 단계입니다. (C#으로 시작하는 것이 좋습니다. AAA 히트작을 만들려면 C++가 필요하지만 나중에 경험을 쌓을 때를 위해 저장해 두겠습니다.) 따라서 언어 엔진 콤보는 C# + Unity일 수 있습니다 . 이는 수요가 많으며 탁월한 선택입니다.



일반적인 오해


2단계: 언어를 배우세요

이것은 중요한 점입니다. 엔진으로 시작하지 말고 먼저 언어를 선택하십시오 . 언어가 없으면 엔진을 전혀 효과적으로 배울 수 없습니다. 당신은 예제와 문서의 어떤 것도 이해하지 못할 것이고 혼란스러울 뿐입니다. 이상적으로는 언어를 마스터하고 자신 있게 간단한 프로그램을 작성할 수 있기 전에는 게임 엔진 학습을 시작하지 않는 것입니다.


프로그래밍 기술을 향상하려면 다음과 같은 프로젝트를 확인하세요. 코딩게임 작은 게임 형태로 다양한 알고리즘 작성을 연습할 수 있는 곳입니다. 이는 LeetCode 만큼 골치아프지 않으며 초보자에게 더 흥미로운 작업입니다. 게다가 자체 커뮤니티도 있는데 앞서 말했듯이 유능한 개발자라면 커뮤니티는 매우 중요하다.


3단계: 엔진

언어에 약간 익숙해지면 마침내 엔진 공부를 시작할 수 있습니다. 2023년에는 이 주제에 관한 많은 정보가 있습니다. 인터넷은 리소스로 가득 차 있습니다. 원하는 모든 것을 위한 수십 개의 YouTube 채널. 게다가 제가 말했듯이 Unity는 매우 인기가 높기 때문에 자료가 부족하지 않습니다.


엔진 제작자가 모든 문제에 대한 비디오 솔루션을 찾을 수 있습니다(처음에 설치할 Unity Hub에서 직접 사용 가능). 자세한 문서에 , 또는 인터넷에서. 사람들이 자신의 성공 사례를 공유하고 서로 돕는 존경받는 Discord 커뮤니티에 가입할 수도 있습니다. 수십 개가 있습니다. 오랜 시간에 걸쳐 검증된 것이 필요하다면 예를 들어 다음과 같이 시도해 보십시오. 브래키스 .


여행의 다음 단계

이상은 시작하기 위한 세 가지 기본 단계였으며 거기서부터 계속해서 나아갈 수 있습니다. 대략적인 개요를 말씀드리겠습니다.


선택한 언어와 엔진을 조금 배운 후에는 간단한 게임을 만들어 보십시오 . 모든 게임, 심지어 틱택토(tic-tac-toe)도 가능합니다. 원하는 대로 모든 작업을 수행하세요. 제한은 없습니다. 코드는 직접 작성해야 합니다. (그럼에도 불구하고 매우 유용한 리소스인 Stack Overflow 에서 복사하여 붙여넣는 것을 피하세요.) 주요 기준은 게임이 작동해야 한다는 것입니다.


다음으로, 게임에 대한 몇 가지 새로운 기능을 생각해내고 추가해 보세요 . 예를 들어 플랫폼 게임을 만드는 경우 버튼을 누르면 레벨의 중력이 변경되는 기능을 만들어 보세요. 또는 레벨의 한 부분에서 다른 부분으로 순간 이동하는 기능.


작업 초안에 새로운 것을 추가하는 것이 얼마나 쉬웠는지/어려웠는지 기록해 보세요. 코드 구조를 변경하는 데 필요한 양 등. 그런 다음 모범 사례를 연구하고, 다른 개발자가 프로젝트 및 코드(OOP, SOLID, KISS) 구성을 제안하는 방법을 확인하고, 새로운 지식을 고려하여 게임을 다시 작성하세요.


그런 다음 다시 새로운 기능을 생각해내고 그 새로운 지식을 사용하여 만들어 보세요 . 향상된 코드로 인해 새 기능을 추가하는 것이 어떻게 더 쉬워지거나 더 어려워지고, 얼마나 많은 버그를 찾을 수 있는지 고려하세요.


점차적으로 여러 번의 반복을 통해 프로젝트에 복잡성을 추가하고 배운 교훈을 바탕으로 다시 작성하십시오.



글쎄요...



모서리를 깎지 않는다고 가정하면, 자신이 내리는 결정이 어떻게 새로운 기능 구현에 방해가 되거나 도움이 되는지 알게 될 것입니다. 코드 품질의 주요 기준 중 하나는 프로젝트를 변경하는 것이 얼마나 쉬운가입니다. 불행히도 이에 대한 명확한 법률은 없습니다. 그것은 모두 경험과 함께 제공됩니다.


간단한 게임을 만들고 싶지 않다면 대신 개별 메커니즘을 코딩하는 것으로 시작할 수 있습니다 . 예를 들어, 일부 표면에서 구동되는 두 개의 큐브로 구성된 기본적인 "자동차"를 만드는 것부터 시작한 다음 점차적으로 다른 메커니즘을 혼합에 추가할 수 있습니다.


그 후에는 더 복잡한 게임을 고안할 수 있으며, 다시 여러 번 반복하여 프로젝트를 개선할 수 있습니다. 흥미로운 결과를 얻으면 결국 이 게임을 매장에 출시해 볼 수 있습니다.


첫 번째 게임 출시

다음을 통해 출시해 볼 수 있습니다. Itch.io , 아직 대규모 플랫폼에 참여하고 싶지 않다면. 그곳에서 게임 개발의 다른 관련 영역에 대한 경험을 쌓을 수 있으며, 가장 중요한 것은 다른 사람들로부터 피드백을 수집할 수 있다는 것입니다. 특히 간단한 초보자 프로젝트의 경우 항상 건설적인 것은 아닙니다. 하지만 약간의 피드백은 당신이 성장하고 더 나은 프로그래머가 되는 데 도움이 될 것입니다.


게임 출시와 관련하여 웹/브라우저 게임과 같은 작은 생활 꿀팁을 제공할 수 있습니다 . 비록 현재 유저들이 주로 모바일 기기나 PC, 콘솔에서 플레이하는 상황에서 이 형식이 인기를 잃은 것 같지만, 웹 게임은 여전히 ​​충분한 잠재 고객을 보유하고 있으므로 하나로 데뷔 프로젝트를 시작해 볼 수 있습니다. 이는 모바일 장치에서 기본 게임으로 출시하는 것보다 훨씬 쉽습니다.


모바일 게임 경쟁은 치열하며, 홍보되지 않으면 게임이 눈에 띄지 않을 가능성이 높습니다. 퍼블리셔 없이 프로젝트를 홍보하는 것은 매우 어렵습니다. 웹 게임의 경우 이러한 프로젝트를 호스팅하는 특수 포털(예: Armor Games, Newgrounds, WebGames )이 있습니다. 그곳에서 출시하는 것은 매우 쉽고 광고를 통해 수익을 얻을 수도 있습니다. 너무 큰 기대는 하지 마세요. 하지만 만약 그런 일이 일어난다면 기분 좋은 보너스가 될 것입니다.


"코드 없음" 접근 방식에 대한 작은 경고

이제 약간의 경고가 있습니다. 요즘에는 "노코드" 접근 방식이 매우 인기가 있습니다. 코드를 작성하지 않고 프로젝트를 생성하는 경우입니다. (“마우스 클릭 프로그래밍”이라고도 합니다.) 나의 충고? 이 접근 방식을 멀리하는 것이 좋습니다.


이러한 노코드 접근 방식은 게임 메커니즘을 시험해 보거나 간단한 프로토타입을 구축하는 데 이상적입니다. 하지만 우리의 전반적인 목표는 다릅니다. 코드 없이 간단한 게임을 조립한다고 해서 개발자가 되는 데 더 가까워지는 것은 아닙니다.


기억하세요: 아무리 많은 기사를 읽고 YouTube 가이드를 시청해도 연습을 대신할 수는 없습니다. 여러 개(그리고 실제로는 하나가 아닌 여러 개)의 프로젝트를 생성해야만 의미 있는 것을 배울 수 있습니다. 게임 개발에서 프로그래머로서의 길을 계획하기 위해 여기서 중요한 것은 단순한 것에서 복잡한 것까지 단계별로 진행하는 것입니다.


나는 게임 개발에 들어가고 게임 프로그래밍을 시작하는 것에 관해 몇 가지 조언을 하려고 노력했습니다. 올바른 언어와 엔진 선택, 끈기와 끈기, 피드백 수집, 성찰 등은 모두 매우 중요합니다. 하지만 이 과정에는 무시할 수 없는 또 다른 요소가 있습니다. 바로 즐거움입니다.


게임에 대한 열정이 없고 게임을 하지 않는다면 아마도 이 벤처에서 아무 것도 나오지 않을 것입니다. 기본적으로 모든 창의적인 작업에 적용되는 슬픈 진실입니다. 재미가 없다면 돈 버는 일이 일상이 될 것입니다. 물론, 어쨌든 몇 년이 지나면 흥미를 잃을 수도 있지만, 그때쯤이면 이미 성취를 이루고 관련된 일 중에서 선택할 수 있게 되거나, 그 시점에서 새롭고 흥미로운 일을 할 수 있을 만큼 충분한 돈을 벌게 되기를 바랍니다.

특히 여행 초기에는 일만 하고 놀지 않으면 지치고 실망하게 될 것입니다.


그러므로 나의 마지막 조언은 무엇입니까? 당신을 열정적으로 만드는 것 , 밤낮으로 프로젝트에 참여하도록 이끄는 것(물론 문자 그대로 그렇게 해서는 안 됩니다!)을 찾으십시오. 일단 운전 동기를 찾으면, 그렇지 않으면 일반적인 일상이 흥미롭고 매력적인 도전으로 바뀔 것입니다. 그리고 이것은 당신의 전문적인 성장을 가속화할 것입니다!


여기에도 게시되었습니다 .