Unity helps indie win the performance game

Putting Professional Services on the roster enables Canuck Play to meet key production and performance milestones.

Canuck Play: A Unity case study

어떻게 소규모 스튜디오에서 60FPS의 성능을 내는 차별화된 콘솔 게임을 제작할 수 있었을까요? Canuck Play의 경우에는 Unity Professional Services가 큰 역할을 수행했습니다. Unity Propessional Services의 지원을 활용하여 Unity 버전을 마이그레이션하고, 성능을 최적화하고, 새 Unity 기능을 이용하여 이 스튜디오는 플레이어가 자신만의 풋볼 세계를 만들 수 있는 게임, Maximum Football을 개발할 수 있었습니다.

 

  • 도전 과제

    To help a small indie team deliver a high-quality and performant console game on time and on budget

  • Platforms

    PlayStation 4, Xbox One

  • Project staff

    1 core developer, 1 UI/UX specialist, and 1 feature specialist

  • Company

    6 team members in Peterborough, Canada

Getting warmed up with the right development platform

Canuck Play 창업자 데이브 윈터는 DirectX 8 기반 API 라이브러리를 사용한 그의 자체 게임 엔진으로 Maximum Football을 제작하기 시작했습니다. 게임의 잠재력에 대한 확신이 굳어지면서 그는 콘솔 시장에 도전하기로 결심했습니다. "대부분의 인디 개발사는 스팀(Steam) 또는 모바일 플랫폼에 주력하지만 콘솔은 수준이 다르죠. 그래서 제 자체 툴로는 충분하지 않을 걸 알았어요. 콘솔과 관련한 C#의 핵심, 방대한 사용자 기반, 멀티플랫폼 개발에 대한 평판을 알게 되면서 Unity로 전환하고 게임을 처음부터 다시 작성했습니다"라고 윈터는 설명합니다. 개발에 뛰어들면서 게임의 수준을 한층 더 끌어올리기 위해 윈터는 유니티의 Professional Services 팀과 접촉했습니다.

The results

  • Migrated to the latest Unity version in several days, saving weeks of effort
  • Much smoother player performance, going from a frame rate of ~30 fps to 60 fps
  • Improved lighting, game physics, the replay system, and obstacle/player avoidance 
  • Delivered tooling, visual, and gameplay improvements for a custom animation system

Recruiting the right team

윈터는 독립하기로 마음 먹기 전까지 15년 넘게 여러 대형 스튜디오에서 근무했습니다. 예산은 충분했을지 모르지만 워크플로는 윈터의 마음을 끌지 못했습니다. 고유의 창의적인 비전을 가지고 있던 윈터는 스스로의 방식으로 비전을 실현하기로 결심했습니다. 2016년이 되자 윈터는 자택 지하실에 1인 인디 스튜디오인 Canuck Play를 설립하고 작업을 시작했습니다. 

윈터는 기존의 비디오 게이머들보다는 대학 팀, 프로 팀, 미국 팀, 캐나다 팀 및 어떤 팀의 팬이든 관계없이, 모든 규칙, 플레이어, 전략을 알고 있는 실제 미식축구 애호가들을 위한 미식축구 게임을 제작하고자 했습니다. 윈터는 "게이머가 자신만의 미식축구 월드를 만들 수 있는 샌드박스 게임을 제작하고 싶었습니다. 자신만의 유니폼과 로고 디자인을 갖고 싶은 팬들을 위한 게임이죠. "그냥 NFL이 아니고요"라고 이야기합니다.

5년 후, Canuck Play 팀은 내부에서는 Cube라는 이름으로 부르는 Doug Flutie’s Maximum Football 2020을 완성했습니다. 윈터는 모든 핵심 게임플레이 관련 작업을 담당하고 에릭은 비즈니스 개발과 커뮤니티 관리를 이끌고 있습니다. 또한 화면과 메뉴를 디자인하는 UI 전문가와 특정 기능을 전담하는 개발자, 새로운 제품 디렉터가 함께 일하고 있습니다.

Updating the playbook to eliminate weak spots

A big part of Winter’s winning strategy is to constantly update the game. “One of the things I try to do with each edition is offer substantial changes from the previous one. Other annual football titles may just change their team rosters, but I try to make Maximum Football very different from year to year. And improving overall performance was a big goal for 2020.”

To get started, Winter decided to update his Unity 2017 codebase to Unity 2019 to take advantage of many powerful new features. At the same time, he didn’t want the migration to affect his productivity or tight release schedule. “With any software upgrade there are bound to be compatibility issues you don’t anticipate, so you need to consider how you’ll resolve them,” he says. And that includes getting expert advice. 

He also had to improve performance. “When you have a close-up of a quarterback cocking his arm and throwing, when a receiver runs his route, jumps, and grabs the football, you have to have super-smooth animations at 60 frames per second,” Winter explains. “We had sequences captured at really high frame rates, but things were still coming out choppy.” Stadium crowds were another issue. “I had 60,000-plus 3D meshes cheering independently, but I just didn’t have it dialed in. Shadows weren’t rendering the way I expected them to.”

In addition, Microsoft and Sony have a number of strict requirements for their console games such as load times and updating sequences. Maximum Football was getting much bigger and, from a development standpoint, much more complex, so complying with added rules was putting a real strain on the production schedule.

Scouting the free agents

윈터는 "스스로 엄청난 양의 작업을 했지만, 몇 가지 기술 및 성능 문제에 직면했습니다. 중요한 마감 시한이 다가오면서 이제 도움을 받을 때라는 걸 깨달았죠"라고 이야기합니다. 우연하게도 이 무렵에 윈터는 유니티 프로페셔널 서비스로부터 프로모션 이메일을 받게 되었습니다. Unity의 입증된 베스트 프랙티스를 활용하고 싶었던 윈터는 채팅과 회의 통화로 대화를 시작했습니다. 유니티의 프로페셔널 서비스 팀은 일반적으로 훨씬 큰 규모의 스튜디오에서 수많은 팀에 의해 제작되는 종류의 게임을 그러한 소규모 스튜디오가 제작하고 큰 성과를 거뒀다는 사실에 매우 놀랐습니다. 

윈터와 에릭, 프로페셔널 서비스는 구체적인 목표와 기간을 정한 커스터마이즈된 행동 계획을 세웠습니다. 에릭은 "유니티 프로페셔널 서비스와의 협업은 처음부터 원활하고 쉬웠습니다. 프로페셔널 서비스 팀은 저희의 기술적인 요구 사항을 파악하고, 소규모 스튜디오는 확실하고 모호하지 않은 비용과 결과물이 필요하다는 사실을 이해하고 있었습니다. 유니티 프로페셔널 서비스와의 협업은 처음부터 끝까지 모두 좋았고, 매우 소중한 결과를 얻을 수 있었습니다"라고 강조합니다.

Turning pit drills into easy workouts

서비스의 일환으로 2명의 유니티 엔지니어가 스튜디오를 방문해 다음과 같은 작업을 수행했습니다. 

  • Unity 버전 마이그레이션 완료
  • 성능 병목현상과 성능 문제에 대한 원인을 정확하게 파악하기 위한 게임 코드 검토
  • 필요에 따라 커스텀 시스템 작성 및 재작성
  • Canuck Play에서 Unity 2019의 새로운 기능 일부를 사용할 수 있도록 지원

여러 방면에 걸쳐 성능 최적화가 이루어졌습니다. 예를 들어 싱글 스레드 경로 탐색 시스템(예: 플레이어가 골 포스트와 같은 장애물을 둘러서 갈 수 있도록 함)이 성능 병목현상의 원인으로 밝혀졌습니다. 윈터는 다음과 같이 설명합니다. "기존 코드가 작동하긴 했지만 CPU 점유율이 너무 높았습니다. Professional Services에서 훨씬 더 효율적인 새로운 Unity C# 잡 시스템으로 멀티스레딩을 사용하는 방법을 제시했고, 이를 통해 프레임 속도를 크게 높일 수 있었습니다." 또다른 예로, Unity 팀은 역운동학(IK)과 블렌드 트리를 다양한 게임플레이 상황에 맞게 조정했습니다.

"Professional Services는 적용 중인 API 방법론을 개선하는 방법은 물론 포스트 프로세싱 렌더링을 더 적게 사용하는 방법을 알려 주었죠"라고 윈터는 말합니다. Professional Services는 Unity의 NativeContainer로 메모리 활용도를 높여 게임 녹화 기능을 개선하는 데에도 도움을 주었습니다. 또한 관중 음영 문제를 해결하기 위해 유니티는 관중 시스템을 수정하여 컬링 그룹을 사용하고, 인스턴스 배칭을 개선하고 시각적 결함을 제거했습니다.

The Unity home-field advantage

윈터는 Professional Services뿐만 아니라 유니티의 대형 개발자 커뮤니티도 생산성에 큰 도움이 되었다고 생각합니다. "Unity 포럼의 자료는 매우 풍부하므로, 더 효율적인 작업에 대한 팁을 항상 얻을 수 있었어요"라고 말합니다. 또 다른 중요한 리소스는 Unity 에셋 스토어입니다. 윈터는 에셋 스토어를 다방면으로 활용했습니다. 예를 들어 게임의 연습 모드에서 경기장이 비어 있을 때 표시할 배경 빌딩과 경관을 여러 에셋 스토어 콘텐츠에서 가져와 추가했습니다. 

개발 초기에는 오픈 소스 PuppetMaster 캐릭터 물리 시스템을 구매하여, 몇 년에 걸쳐 자신만의 특정 요구 사항에 맞게 거의 완전히 재작성을 단행했습니다. 한편 지능적인 핫 플러깅에 즉시 사용할 수 있는 콘솔용 Rewired 입력 시스템을 코드에 추가하기도 했습니다.

빈스 롬바르디에서 월리 부오노, 조 몬타나에서 더그 플루티로 대표되는 수상자들과 같은 자신감을 가지고 있는 윈터는 다음과 같이 말합니다. "유니티, 개발자 커뮤니티, 지원 팀, 그리고 Canuck Play의 엑스퍼트들로 구성된 놀라운 팀이 저와 함께합니다. 저희가 견주지 못할 스튜디오나 게임은 없다고 생각합니다." Unity Professional Services의 도움으로 가장 까다로운 성능 문제를 해결하고 유니티의 실시간 3D 개발 플랫폼을 최대한 활용할 수 있었습니다. Doug Flutie’s Maximum Football 2020이 올해 하반기에 출시되면 분명 풋볼 게이머를 열광시킬 것입니다.

Dave Winter, President/Founder and Lead Developer, Canuck Play

“I had done an enormous amount of work on my own, but then I hit some technical and performance roadblocks. With some serious deadlines approaching, I realized it was time to reach out to ... Unity Professional Services.”

Dave Winter, President/Founder and Lead Developer, Canuck Play
Eric S., Business Development Manager, Canuck Play

“From the start, working with Unity Professional Services was smooth and easy. They understood our technical needs as well as the fact that a small studio needs clear, unambiguous costs and deliverables. It was a pleasure working with Unity Professional Services from start to finish, and the results were priceless.”

Eric S., Business Development Manager, Canuck Play
Dave Winter, President/Founder and Lead Developer, Canuck Play

"기존 코드가 작동하긴 했지만 CPU 점유율이 너무 높았습니다. Professional Services에서 훨씬 더 효율적인 새로운 Unity C# 잡 시스템으로 멀티스레딩을 사용하는 방법을 알려 주었고, 이를 통해 프레임 속도를 크게 높일 수 있었습니다."

Dave Winter, President/Founder and Lead Developer, Canuck Play
Dave Winter, President/Founder and Lead Developer, Canuck Play

“I have an incredible team with Unity, its developer community, its support, and our Canuck Play specialists. I don’t think there’s any studio or game out there that we couldn’t take on.”

Dave Winter, President/Founder and Lead Developer, Canuck Play

Unity에서는 최적의 웹사이트 경험을 제공하기 위해 쿠키를 사용합니다. 자세한 내용은 쿠키 정책 페이지를 참조하세요.

확인