paint-brush
Unity용 Katas: Unity(또는 기타 게임 엔진)에 대한 이해 심화~에 의해@quilo
404 판독값
404 판독값

Unity용 Katas: Unity(또는 기타 게임 엔진)에 대한 이해 심화

~에 의해 PoutineWithSalchichon7m2023/07/03
Read on Terminal Reader
Read this story w/o Javascript

너무 오래; 읽다

가장 단순한 형태의 카타는 개별적으로 수행되는 미리 결정된 일련의 동작입니다. Katas는 기술을 개선하고 균형을 강화하며 정신적 훈련을 촉진하도록 설계되었습니다. 워크샵은 우리가 탐구할 첫 번째 카타 역할을 합니다. 이를 활용하여 새로운 기능을 배우고, 실험하고, 테스트하세요.
featured image - Unity용 Katas: Unity(또는 기타 게임 엔진)에 대한 이해 심화
PoutineWithSalchichon HackerNoon profile picture
0-item

나는 열성적인 무술 학생이지만 스스로를 전문가라고 부르지는 않습니다. 나는 나 자신을 끊임없이 지식을 추구하는 영원한 화이트 벨트라고 생각하는 것을 선호합니다.


저는 복싱, 그리스-로마 레슬링, 독일 및 이탈리아 장검, 스코틀랜드 백홀드, 주짓수(전통 및 브라질 모두), 사바테, 유도 등 다양한 무술에 대해 기본적으로 이해하고 있지만 전반적으로 제 전문 지식은 제한되어 있습니다. 그러나 다양한 무술을 초월하는 개념 중 하나가 카타(Kata)입니다.


가장 간단한 형태의 카타는 개별적으로 수행되는 미리 결정된 일련의 동작입니다. Katas는 기술을 개선하고 균형을 강화하며 정신적 훈련을 촉진하도록 설계되었습니다. 기본적인 동작을 암기하고 반복하는 데 도움이 됩니다.


대부분의 현대 무술 시스템이 성문화된 19세기 이후 교육학의 발전을 고려하면 교육 방법으로서 카타의 효능에 대한 지속적인 논쟁이 있습니다.


그러나 이 글의 범위는 그러한 논쟁을 다루지는 않습니다. 대신, 카타 개념을 사용하여 Unity 나 다른 게임 엔진에서 수행할 수 있는 일련의 연습을 소개하여 엔진에 대한 이해를 높이고 게임 개발 기술을 연마하는 것을 목표로 합니다.


카타와 마찬가지로 제가 제안하는 운동은 훈련과 시뮬라크럼을 위한 것이며 결코 업무 경험을 대체할 수 없으며 선호하는 업무 스타일에 맞게 조정하고 형성해야 합니다.

반면, 게임 개발은 금요일이나 공휴일 전에 프로젝트를 출시하지 않는 것과 같은 몇 가지 실용적인 지침을 제외하고는 규칙이 거의 없는 무정부 상태의 영역이라는 점을 기억하는 것이 중요합니다.


더 이상 고민하지 않고 카타 자체를 살펴보겠습니다.


Kata 1: 교활한 용이 폐허 궁전에서 웃는다 - 작업장

워크샵은 우리가 탐구할 첫 번째 카타 역할을 합니다. 본질적으로 워크샵은 새로운 개념을 실험하고 테스트하며 최근 출시된 기능을 탐색할 수 있는 영원한 Unity 프로젝트입니다.


다음은 워크샵 내에서 수행할 수 있는 작업의 몇 가지 예입니다.

  • 이를 개념 증명 준비 장소로 활용하세요. 새로운 게임 아이디어가 있고 이름, 디자인 또는 핵심 게임 플레이(주로 초점을 맞춰야 함) 이외의 것에 대해 걱정하지 않고 신속하게 프로토타입을 만들고 싶을 때 창작마당은 이상적인 환경을 제공합니다.


  • 일반적으로 사용되는 코드의 저장소로 활용하세요. 특정 코드 조각은 필연적으로 재사용되지만 매번 웹 검색에 의존하고 싶지 않을 수도 있습니다. 예를 들어 내 워크샵에는 버튼, 게임 상태, 일시 정지 메뉴 및 모든 게임에 필요한 기타 다양한 필수 요소를 처리하기 위한 사용자 정의 코드 조각이 있습니다. 이러한 스니펫은 시간과 노력을 절약해 주므로 새로운 게임마다 맞춤 코드를 작성할 필요가 없습니다.

    • 온라인 소스에서 코드를 복사하는 경우 이 접근 방식에 대한 유용한 팁은 복사된 코드를 이해하고 프로젝트 스타일과 표준을 준수하도록 다시 작성하고 출처를 나타내는 주석을 추가하는 것입니다. 코드 작성자는 구현을 업데이트할 수도 있고 특정 솔루션을 사용하기 위한 컨텍스트를 잊어버릴 수도 있지만 주석을 통해 필요한 정보를 얻을 수 있습니다.


  • 이를 활용하여 새로운 기능을 배우고, 실험하고, 테스트하세요. 워크샵 프로젝트를 최신 버전으로 유지함으로써(LTS 버전에 대해 별도의 브랜치를 유지할 수 있음) 완전히 새로운 프로젝트를 생성하거나 진행 중인 프로젝트에 적용해야 하는 부담 없이 새로운 기능을 탐색할 수 있습니다.

    • 예를 들어, 2023년 6월 현재 Unity는 새로운 AI 도구 세트를 출시했습니다. 이러한 기능을 활용하기 위해 완전히 새로운 프로젝트를 만드는 대신 워크샵의 기존 장면을 재사용하여 실험할 수 있습니다. 예를 들어, 간단한 탁구 구현은 AI 생성 텍스처의 이점을 누릴 수 있습니다.

Kata 2: 교활한 여우가 달을 향해 춤을 춥니다 - 클론

게임을 플레이하면서 "그들이 어떻게 그걸 달성했을까?"라고 궁금해한 적이 있습니까? 지금이 알아낼 기회입니다. 게임 개발에 대한 아이디어가 부족하거나 프로젝트 사이에 있을 때 최근에 플레이한 게임을 선택하고 해당 게임의 메커니즘, 효과 또는 기능을 선택한 후 복제해 보세요.


이 연습을 수행하는 동안 다음 사항에 유의하세요.

  • 복제에 대해 언급할 때, 나는 정확한 복제물을 언급하는 것이 아니라 선택한 요소의 본질을 포착하는 것을 의미합니다.

    • 예를 들어, 저는 최근 Spider-Man: Miles Morales의 움직임 시스템에 매료되었습니다. 그러나 이렇게 복잡한 3D 액션 게임의 전체 이동 시스템을 복제하려는 시도는 상당히 어려울 것입니다. 대신 웹 스윙처럼 나를 가장 사로잡는 측면을 복제하는 데 집중할 것이다. 이를 달성하기 위해 완전한 스파이더맨 모델이나 상세한 건물이 필요하지 않습니다. 플레이어 버튼 누름에 반응하고 플레이어 캐릭터가 흔들리고 앞으로 이동하는 로프를 생성하는 간단한 큐브는 원래 게임에서 경험했던 자유로운 움직임을 재현하기에 충분합니다.


  • 자신에게 엄격한 시간 제한을 설정하십시오. 전체 게임을 만드는 것이 아니라 기존 게임에서 단일 요소를 복제하는 것임을 기억하세요. 정규 학생과 개발자에게 충분한 시간인 3일의 주말에 해당하는 약 6일의 근무일을 할당합니다.


  • 이는 워크샵을 활용할 수 있는 완벽한 기회입니다. 복제 프로젝트를 저장하기에 이상적인 공간을 제공합니다. 특정 개념을 더 추구하기로 결정한 경우 버려진 Git 프로젝트 목록을 살펴보지 않고도 해당 개념을 자체 프로젝트에 쉽게 복사할 수 있습니다.


  • 포트폴리오가 다소 부족하다고 느껴진다면 이 연습은 포트폴리오를 향상시키는 훌륭한 방법입니다. 복제된 요소에 메뉴, 일시 정지 기능, 배경 음악, 목표를 설명하는 소개를 추가하여 다듬으세요. 이러한 완성된 제품은 훌륭하지만 미완성인 게임 아이디어로 가득 찬 문서보다 채용 담당자에게 훨씬 더 깊은 인상을 줄 것입니다.


  • 각 복제 작업 후에 간단한 사후 분석을 수행합니다. 무엇이 잘 되었는지 되돌아보고, 약점을 파악하고, 향후 개선 사항을 고려하고, 앞으로 나아갈 가치가 있는 귀중한 교훈을 추출하십시오.

카타 3: 신은 바보를 사랑한다 - 광대

때때로 나는 광대 짓에 빠지다. 나는 기술적으로 흥미롭거나 배우고 싶거나 다시 방문하고 싶지만 상업적인 잠재력이나 실용적인 가치가 없는 여러 기술 구성 요소를 결합한 아이디어를 선택합니다.


광대 짓의 목적은 완벽에 대한 압력을 제거하는 것입니다. 이익을 목적으로 하거나 다른 사람에게 발표할 목적으로 프로젝트를 수행할 때 디자인 결정은 더욱 신중해집니다. 광대를 사용하면 특정 영역에 대한 지식을 심화하는 데에만 집중할 수 있습니다.


예를 들어, 몇 년 전 저는 "Wizardry Exchange"라는 프로젝트에 착수했습니다. 실제 화폐(CAD, EUR, GBP, USD)를 해리포터 세계에서 사용되는 화폐(크넛, 낫, 갤리온)로 변환해주는 앱이었습니다. 이 프로젝트에는 프런트엔드용 Unity3D WebGL, 백엔드용 Go, 사용자 지정 캐싱 시스템, Docker를 사용한 AWS 배포가 포함되었습니다.


이 프로젝트는 실용적이거나 유용한 프로젝트인가요? 별말씀을요! 프런트 엔드에는 Unity가 필요하지 않으며 Go는 몇 가지 간단한 엔드포인트에 비해 과잉이며 애플리케이션은 AWS는 물론 감자에서도 실행될 수 있습니다.


그렇다면 왜 어려움을 겪을까요? Unity에서 WebGL 에 대해 알아보려면 서버 개발에 Go를 사용하고 AWS 에서 Docker를 사용하여 애플리케이션을 구축 및 배포하는 경험을 쌓으세요. 최종 결과는 지식을 습득하는 과정만큼 중요하지 않습니다.


광대에 대한 몇 가지 추가 고려 사항은 다음과 같습니다.

  • 광대 프로젝트는 공유를 위한 것이 아니므로 진정으로 관심 있는 일을 자유롭게 수행할 수 있습니다. The Clone과 달리 이 프로젝트는 시간이 더 많이 걸립니다.
  • 그러나 광대 프로젝트는 2개월 이하로 제한하세요. 이는 귀중한 운동이지만 훈련 요법에 다양성을 도입하는 수단으로 접근해야 합니다.
  • 가능한 모든 학습 측면을 광대 프로젝트에 통합하려고 하지 마세요. 탐색하고 싶은 영역 2~3개를 선택하고 자유롭게 코드를 재사용하거나(아마도 워크샵에서) 특별히 걱정하지 않는 부분에 대한 코드를 복사하세요.


곰은 가득 차면 잠을 잔다 - 결론

이상으로 Unity나 게임 엔진에 대한 이해를 심화하는 데 도움이 되는 세 가지 카타를 마치겠습니다.


앞서 사용한 특정 문구인 "훈련 요법" 에 주목하고 싶습니다.


이 접근 방식은 15년 넘게 나의 엔지니어링 업무를 이끌어 왔습니다. 나는 대학을 졸업하는 것을 검은 띠를 얻는 것과 같이 생각하며, 유도(띠 시스템의 유래)와 유사하게 검은 띠는 숙달보다는 기본을 이해하는 것을 의미합니다.


검은 띠를 획득한 후에는 유도 기술을 더욱 발전시키기 위해 독립적인 연구를 수행할 것으로 예상됩니다.


마찬가지로, 졸업 후에는 기술 능력을 지속적으로 향상시키고 지식을 습득하기 위한 훈련 방식을 확립하는 것이 귀하의 책임이 됩니다. 일을 통해 지식을 얻을 수는 있지만 지침과 개인적 발전이 부족할 수 있습니다.


따라서 엔지니어링 기술을 연마하기 위한 교육 방법을 만드는 것이 중요합니다. 이렇게 하면 회사에 새로운 자리가 생기거나, 현재 직장에서 해고되거나, 다른 곳에서 매력적인 역할을 맡는 등의 기회가 생기면 단순한 업무 경험 이상의 것을 갖추게 됩니다.


대학과 달리 직업에서는 특정 수준 이상으로 재능을 발전시키는 데 반드시 우선순위를 두지 않을 수도 있다는 점을 기억하세요. 좋은 일을 하게 되겠지만, 이 둘을 구별하는 것이 때때로 어려울 수 있습니다. 훈련 방법을 마련하면 전문적인 성장을 보호할 수 있습니다.


이 카타가 유용하지는 않더라도 최소한 흥미로웠기를 바라며 기술 능력을 향상시킬 수 있는 새로운 방법을 열어줄 수 있기를 바랍니다.


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