<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:media="http://search.yahoo.com/mrss/"><channel><title>게임</title><link>https://cloud.google.com/blog/ko/topics/gaming/</link><description>게임</description><atom:link href="https://cloudblog.withgoogle.com/blog/ko/topics/gaming/rss/" rel="self"></atom:link><language>ko</language><lastBuildDate>Tue, 12 Mar 2024 04:57:14 +0000</lastBuildDate><image><url>https://cloud.google.com/blog/ko/topics/gaming/static/blog/images/google.a51985becaa6.png</url><title>게임</title><link>https://cloud.google.com/blog/ko/topics/gaming/</link></image><item><title>클라우드에서 라이브 서비스 게임을 위한 머신러닝 실행하기</title><link>https://cloud.google.com/blog/ko/topics/gaming/the-case-for-running-ml-in-the-cloud-for-live-service-games/</link><description>&lt;div class="block-paragraph"&gt;&lt;p data-block-key="06zip"&gt;*본 아티클의 원문은 2024년 2월 23일 Google Cloud 블로그(&lt;a href="https://cloud.google.com/blog/products/gaming/the-case-for-running-ml-in-the-cloud-for-live-service-games"&gt;영문&lt;/a&gt;)에 게재되었습니다.&lt;/p&gt;&lt;p data-block-key="e4ldq"&gt;생성형 AI는 작년 한 해 동안 여러 산업 분야에 걸쳐 가장 많은 관심을 받은 기술입니다. Google Cloud for Games에서는 온라인 게임이 가장 유망한 생성형 AI 사용 사례라고 생각합니다. 게임 개발자는 생성형 AI를 사용해 더 역동적인 게임을 빌드하고, 더 많은 수익을 창출하며, 제품 출시 기간을 단축할 수 있습니다. 우리가 지향하는 목표를 위해 Google Cloud for Games에서는 게임 회사가 Google Cloud를 활용하여 생성형 AI를 학습시키고 배포, 유지 관리할 수 있는 방법을 연구해 왔습니다. 이제 그 방법을 소개하고 지금 바로 게임에 어떻게 사용할 수 있는지도 알려드리겠습니다. 생성형 AI 애플리케이션에 중점을 두고 설명하겠지만 여기서 소개할 프레임워크는 생성형 AI 모델 뿐만 아니라 모든 머신러닝을 염두에 두고 개발되었습니다.&lt;/p&gt;&lt;p data-block-key="a0k96"&gt;장기적으로 볼 때 게임에서 생성형 AI의 가능성은 무궁무진하지만, 단기적으로 향후 1~2년간 게임 산업에 가장 현실적이고 가치가 있으리라 생각하는 분야는 다음과 같습니다.&lt;/p&gt;&lt;ol&gt;&lt;li data-block-key="4ndju"&gt;게임 개발&lt;/li&gt;&lt;li data-block-key="cvll0"&gt;적응형 게임플레이(Adaptive gameplay)&lt;/li&gt;&lt;li data-block-key="fj30s"&gt;인게임 광고&lt;/li&gt;&lt;/ol&gt;&lt;p data-block-key="cmus1"&gt;이들 각 분야는 게임 개발과 퍼블리싱 프로세스의 핵심 부분에 도움이 됩니다. 게임 개발 과정에서 생성형 AI는 주로 2D 텍스처, 3D 애셋, 코드의 개발과 관련하여 신규 게임 제작의 수고를 덜고, TTM(time to market)을 단축하고, 게임 개발자의 전반적인 작업 효율성을 높이는 데 도움이 됩니다. 플레이어의 참여를 지속시키고 기존 타이틀에서 수익을 창출하기 위해서는 적응형 대화, 게임플레이와 같은 시스템으로 플레이어의 참여를 계속 유도하고 맞춤 인게임 오브젝트로 플레이어의 흥미를 끌 수 있습니다. 수익 창출의 새로운 세계를 열어준 인게임 광고를 통해서는 고도로 개인화된 맞춤 광고 팝업과 함께 게재 위치를 세부적으로 설정하여 게임에 통합할 수 있으며 광고 조회수와 참여를 최적화하는 원활한 광고 경험을 제공할 수 있습니다. AAA 블록버스터 게임은 말할 것도 없고 소규모 게임 하나를 제작하는 데 드는 시간만 따져 봐도 개별 게임 애셋을 개발하는 데에는 막대한 시간이 소요됩니다. 생성형 AI 모델이 개발자의 반복 업무를 줄이고 스튜디오 개발팀의 생산성을 조금이라도 높여줄 수 있다면 TTM(time to market)을 단축하고 모두에게 더 나은 게임을 제공할 수 있을 것입니다.&lt;/p&gt;&lt;p data-block-key="cmd1d"&gt;이 게시물에서는 Google Cloud에서 게임용 생성형 AI를 실행하기 위한 템플릿과 이러한 라이브 모델을 지원하는 데이터 수집 및 저장 프레임워크를 제공하는 &lt;a href="https://github.com/googleforgames/GenAI-quickstart" target="_blank"&gt;Generative AI Framework for Games(게임용 생성형 AI 프레임워크)&lt;/a&gt;에 대해서도 알아보겠습니다. 아래에서 이 프레임워크의 데모를 살펴보며 샘플 게임 환경에서의 이미지 생성, 코드 생성과 관련된 두 가지 사례를 구체적으로 보여 드리겠습니다.&lt;/p&gt;&lt;p data-block-key="17tuf"&gt;이러한 Google Cloud의 노력을 소개하기 전에 먼저 게임에서의 머신러닝에 대한 일반적인 오해를 풀어보겠습니다.&lt;/p&gt;&lt;h3 data-block-key="97vqf"&gt;클라우드 기반 ML과 라이브 서비스 게임의 가능성&lt;/h3&gt;&lt;p data-block-key="ge1e"&gt;흔히 클라우드에서 라이브 게임 서비스를 위해 머신러닝을 실행하면 비용이 너무 높거나 최종 사용자가 경험하는 지연 시간이 너무 길어진다고 지적합니다. 라이브 게임은 항상 클라이언트-서버 패러다임으로 실행되어 왔으며 권한이 필요하지 않은 컴퓨팅 집약적인 프로세스는 클라이언트 측에서 실행하는 편이 더 바람직할 때가 많습니다. 이는 일부 모델과 프로세스에 효과적인 배포 패턴이기는 하지만, 유일한 방법은 아닙니다. 클라우드 기반 생성형 AI 또는 모든 형태의 AI/ML이 가능할 뿐 아니라, 이를 사용하면 개발자의 반복 업무가 크게 줄어들고, 게임 배급사의 유지 보수 비용이 절감되며, 오늘날 라이브 게임에 필요한 지연 시간도 지원할 수 있습니다. 또한 더 안전합니다. 클라우드 기반 AI는 공격, 조작, 사기로부터 모델을 보호합니다.&lt;/p&gt;&lt;p data-block-key="4mi0u"&gt;스튜디오의 설정에 따라 Google Cloud는 적응형 게임 분야를 위한 생성형 모델의 완전한 인클라우드 또는 하이브리드 배포를 지원할 수 있습니다. 일반적으로 기술 스택과 니즈에 따라 두 가지 접근 방식을 권장합니다.&lt;/p&gt;&lt;ol&gt;&lt;li data-block-key="d0ofn"&gt;처음부터 시작하는 경우, LowOps 솔루션을 찾고 있거나 라이브 게임 환경과 상호작용하지 않는 서비스를 실행 중이라면 서빙 지연 시간이 짧은 Vertex AI의 비공개 엔드포인트를 활용하는 것이 좋습니다.&lt;/li&gt;&lt;li data-block-key="1e79l"&gt;Google Cloud에서, 특히 Google Kubernetes Engine(GKE)에서 게임 서버를 실행 중이고 서빙 지연 시간이 매우 짧은 환경을 활용하고 싶다면 모델을 GKE와 자체 게임 서버에 함께 배포하는 것이 좋습니다.&lt;/li&gt;&lt;/ol&gt;&lt;p data-block-key="fkhkk"&gt;Vertex AI부터 알아보겠습니다. Vertex AI는 공개 및 비공개 엔드포인트를 모두 지원하지만 일반적으로 게임의 경우 원하는 지연 시간으로 줄이려면 비공개 엔드포인트를 활용하는 것이 좋습니다. Vertex AI 모델은 어댑터 레이어(adaptor layer)라는 것을 활용하는데 여기에는 두 가지 이점이 있습니다. 즉, 예측을 수행할 때 전체 모델을 호출하지 않아도 되고, 개발자가 설정하는 모든 세부 조정사항이 자체 테넌트에 저장됩니다. 모델을 온프렘 또는 클라우드에서 직접 실행하는 경우와 달리, 방대한 기본 모델과 이를 지원하는 관련 서빙 및 스토리지 인프라를 처리하지 않아도 됩니다. 앞서 언급했듯이 이 두 가지를 아래의 데모에서 보여드리겠습니다.&lt;/p&gt;&lt;p data-block-key="7g2qj"&gt;이미 GKE에서 게임 서버를 실행하고 있다면 독점 또는 오픈소스 머신러닝 모델을 모두 GKE에서 실행할 수 있고 GKE의 기반 네트워킹도 활용할 수 있어 많은 이점을 누릴 수 있습니다. 테스트 결과 GKE Autopilot을 사용하면 모델이 자체 게임 서버에 함께 배포된 경우 밀리초 이하 범위의 예측 성능을 달성할 수 있는 것으로 나타났습니다. 퍼블릭 인터넷에서는 기존 클라이언트 측 배포에서 확인한 것보다 더 짧지는 않지만 일관성 있는 밀리초 단위의 짧은 지연 시간을 달성했습니다. GKE에서 실행할 때 발생할 수 있는 잠재 비용이 걱정된다면 다른 관점에서 접근해보세요. 대다수의 게임 분야 고객이 GKE에 배포하여 비용을 절감하였고 개발자 생산성이 약 30% 향상되었습니다. 머신러닝 배포와 자체 게임 서버를 모두 GKE Autopilot으로 관리하면 운영 부담도 크게 줄어듭니다. 테스트 결과, 모델을 Vertex에 배포하든 GKE에 배포하든 비용은 거의 비슷하다는 것을 확인했습니다.&lt;/p&gt;&lt;h3 data-block-key="c9v3f"&gt;실시간 AI를 지원하는 통합된 데이터 플랫폼&lt;/h3&gt;&lt;p data-block-key="323ef"&gt;AI/ML 기반 맞춤설정은 플레이어 환경설정, 게임플레이, 게임의 세계관과 서사에 관한 데이터의 양이 많을수록 효과적입니다. 게임용 생성형 AI를 위한 노력의 일환으로 Google Cloud for Games에서는 일관성과 가용성을 보장하기 위해 최고의 Google Cloud 기능을 활용하는 데이터 파이프라인과 데이터베이스 템플릿을 개발했습니다.&lt;/p&gt;&lt;p data-block-key="clber"&gt;라이브 게임에는 strong consistency가 필요하고, 모델에는 생성형 AI 모델 여부와 상관없이 플레이어와 플레이어의 행동 패턴에 관한 최신 정보가 필요합니다. 모델을 최신 상태로 안전하게 유지하려면 주기적인 재학습이 필요하며 Spanner, BigQuery 등 전 세계적으로 이용 가능한 데이터베이스를 사용하면 생성형 AI 모델 여부에 관계없이 모델에 입력되는 데이터를 최신 상태로 안전하게 유지할 수 있습니다. 현재 많은 게임에서는 사용자가 maps/realms으로 분류되어 있고 그 사이에 엄격한 경계를 두어 천편일률적인 결정과 조치로 플레이어의 경험을 제한하고 있습니다. 게임이 사용자가 단일 realms에 상주하는 모델로 전환함에 따라 이제 게임에는 전 세계적으로 사용 가능한 단일 데이터 스토어가 필요합니다. 인게임 맞춤설정에는 플레이어 활동의 실시간 상태 데이터도 필요합니다. LiveOps 환경에서 머신러닝 모델을 실행하는 경우 데이터 파이프라인과 데이터 사용 공간도 모델 자체만큼이나 중요합니다. 자체 관리형 데이터 센터 공간 전반에서 모델이 자주 업데이트된다는 복잡성을 고려할 때 차라리 모델의 학습, 배포, 전반적인 유지 보수를 클라우드에서 관리하는 것이 더 쉬울 수 있습니다.&lt;/p&gt;&lt;p data-block-key="360tc"&gt;실시간 데이터 파이프라인과 생성형 AI 모델을 결합하면 플레이어 환경설정에 관한 프롬프트를 모델에 제공하거나 위치, 시간, 이유를 추적할 수 있는 다른 모델과 결합하여 게임 상태를 맞춤설정할 수도 있습니다. 현재 제공되는 기능에는 사용자와 관련된 3D 메시를 사전 생성하거나, 플레이어 환경설정이나 분위기에 맞게 메시를 다양한 색상, 패턴, 조명으로 재설정하거나, 플레이어가 자연어를 기반으로 게임 환경을 완전히 맞춤설정할 수 있는 기능까지 다양한 기능이 있습니다. 이 모든 기능은 플레이어가 게임에 만족하고 몰입할 수 있도록 하기 위한 서비스입니다.&lt;/p&gt;&lt;h3 data-block-key="6k444"&gt;기능 시연&lt;/h3&gt;&lt;p data-block-key="8basb"&gt;이제 프레임워크를 살펴보겠습니다. 이 데모에서는 Google Cloud의 데이터, AI, 컴퓨팅 기술을 결합하여 게임 상태를 실시간으로 맞춤설정할 수 있는 기능을 제공하는 방법을 집중적으로 알아보겠습니다.&lt;/p&gt;&lt;/div&gt;
&lt;div class="block-image_full_width"&gt;






  
    &lt;div class="article-module h-c-page"&gt;
      &lt;div class="h-c-grid"&gt;
  

    &lt;figure class="article-image--large
      
      
        h-c-grid__col
        h-c-grid__col--6 h-c-grid__col--offset-3
        
        
      "
      &gt;

      
      
        
        &lt;img
            src="https://storage.googleapis.com/gweb-cloudblog-publish/images/1_live_service_games_.max-1000x1000.png"
        
          alt="1 live service games"&gt;
        
        &lt;/a&gt;
      
    &lt;/figure&gt;

  
      &lt;/div&gt;
    &lt;/div&gt;
  




&lt;/div&gt;
&lt;div class="block-paragraph"&gt;&lt;p data-block-key="06zip"&gt;프레임워크에는 다음이 포함됩니다.&lt;/p&gt;&lt;ul&gt;&lt;li data-block-key="8f3jv"&gt;클라이언트 및 서버용 Unity&lt;/li&gt;&lt;/ul&gt;&lt;p data-block-key="ac07t"&gt;오픈소스:&lt;/p&gt;&lt;ul&gt;&lt;li data-block-key="1qv0q"&gt;Terraform&lt;/li&gt;&lt;li data-block-key="679ol"&gt;Agones&lt;/li&gt;&lt;/ul&gt;&lt;p data-block-key="1q3aq"&gt;Google Cloud:&lt;/p&gt;&lt;ul&gt;&lt;li data-block-key="c842n"&gt;GKE&lt;/li&gt;&lt;li data-block-key="11c75"&gt;Vertex AI&lt;/li&gt;&lt;li data-block-key="7tlub"&gt;Pub/Sub&lt;/li&gt;&lt;li data-block-key="e6ced"&gt;Dataflow&lt;/li&gt;&lt;li data-block-key="30fmn"&gt;Spanner&lt;/li&gt;&lt;li data-block-key="8292g"&gt;BigQuery&lt;/li&gt;&lt;/ul&gt;&lt;p data-block-key="14t7t"&gt;이 프레임워크를 위해 Google Cloud for Games는 Unity에서 Unity 스토어의 애셋을 사용하는 오픈 월드 데모 게임을 제작했습니다. 플레이어가 NPC와 상호작용해야 하고 동적 빌보드를 통해 게임 목표 달성에 도움이 되는 안내를 받는 오픈 월드 게임으로 설계했습니다. 이 게임은 GKE와 &lt;a href="https://agones.dev/" target="_blank"&gt;Agones&lt;/a&gt;에서 실행되며 여러 플레이어를 지원하도록 설계되었습니다. 여기서는 간단하게 한 명의 플레이어와 이 플레이어의 활동에 중점을 두고 살펴보겠습니다.&lt;/p&gt;&lt;/div&gt;
&lt;div class="block-video"&gt;



&lt;div class="article-module article-video "&gt;
  &lt;figure&gt;
    &lt;a class="h-c-video h-c-video--marquee"
      href="https://youtube.com/watch?v=LzOLidx7JL0"
      data-glue-modal-trigger="uni-modal-LzOLidx7JL0-"
      data-glue-modal-disabled-on-mobile="true"&gt;

      
        

        &lt;div class="article-video__aspect-image"
          style="background-image: url(https://storage.googleapis.com/gweb-cloudblog-publish/images/2_live_service_games_.max-1000x1000.png);"&gt;
          &lt;span class="h-u-visually-hidden"&gt;Generative AI in Games - Demo Game&lt;/span&gt;
        &lt;/div&gt;
      
      &lt;svg role="img" class="h-c-video__play h-c-icon h-c-icon--color-white"&gt;
        &lt;use xlink:href="#mi-youtube-icon"&gt;&lt;/use&gt;
      &lt;/svg&gt;
    &lt;/a&gt;

    
  &lt;/figure&gt;
&lt;/div&gt;

&lt;div class="h-c-modal--video"
     data-glue-modal="uni-modal-LzOLidx7JL0-"
     data-glue-modal-close-label="Close Dialog"&gt;
   &lt;a class="glue-yt-video"
      data-glue-yt-video-autoplay="true"
      data-glue-yt-video-height="99%"
      data-glue-yt-video-vid="LzOLidx7JL0"
      data-glue-yt-video-width="100%"
      href="https://youtube.com/watch?v=LzOLidx7JL0"
      ng-cloak&gt;
   &lt;/a&gt;
&lt;/div&gt;

&lt;/div&gt;
&lt;div class="block-paragraph"&gt;&lt;p data-block-key="06zip"&gt;이제 프레임워크로 돌아가 보겠습니다. 백엔드 Spanner 데이터베이스에는 해당 플레이어와 이 플레이어의 과거 활동 정보가 저장되어 있습니다. Google Marketing Platform과의 연결을 통해 이 가상 게임 세계에서의 구매 습관에 관한 데이터도 보유하고 있습니다. 따라서 데모 게임에서 플랫폼 전반에 걸친 광범위한 플레이어 데이터를 수집할 수 있습니다. Spanner는 Google Cloud의 트랜잭션 데이터베이스이고 BigQuery는 Google Cloud의 분석 데이터베이스이며, 데이터 흐름이 두 제품 사이에서 자유롭게 일어납니다.&lt;/p&gt;&lt;p data-block-key="3n3on"&gt;이 프레임워크에는 플레이어에 대한 모든 정보를 활용하여 학습시킨 Vertex AI의 추천 모델이 포함되어 있으므로 인게임 혜택과 광고를 맞춤설정할 수 있습니다. 이 데모에서는 이러한 모델에 대한 설명은 잠시 미뤄두고, 두 가지 생성형 AI 사용 사례, 즉 적응형 게임플레이 사용 사례에 대한 이미지 생성, NPC 채팅, 코드 생성을 중점적으로 살펴보겠습니다. 게임에 권장하는 두 가지 배포 패턴, 즉 GKE와 게임 서버에 함께 배포하는 방법과 Vertex AI를 활용하는 방법을 모두 보여드리겠습니다. 이미지 생성에는 GKE에서 안정적인 오픈소스 확산 모델을 호스팅하고, 코드 생성과 NPC 채팅에는 Vertex AI 내의 Gemini Pro 모델을 사용합니다. 텍스처를 수정하거나 게임 오브젝트의 위치를 조정해야 하는 경우에는 Gemini LLM을 사용하여 게임 환경에서 프리팹(prefabs)을 렌더링, 위치 지정, 구성할 수 있는 코드를 생성합니다.&lt;/p&gt;&lt;p data-block-key="fk9qq"&gt;캐릭터로 게임을 진행할 때 플레이어에게 다음 동작과 경로를 제안하는 이미지를 조정하여 표시합니다. 실제로는 게임 테마 이미지나 광고가 될 수도 있습니다. 이 사례에서는 플레이어가 게임플레이를 진행하려면 무엇을 찾아야 하는지 제안하는 이미지를 표시합니다.&lt;/p&gt;&lt;/div&gt;
&lt;div class="block-video"&gt;



&lt;div class="article-module article-video "&gt;
  &lt;figure&gt;
    &lt;a class="h-c-video h-c-video--marquee"
      href="https://youtube.com/watch?v=LzOLidx7JL0"
      data-glue-modal-trigger="uni-modal-LzOLidx7JL0-"
      data-glue-modal-disabled-on-mobile="true"&gt;

      
        

        &lt;div class="article-video__aspect-image"
          style="background-image: url(https://storage.googleapis.com/gweb-cloudblog-publish/images/3_live_service_games_.max-1000x1000.png);"&gt;
          &lt;span class="h-u-visually-hidden"&gt;Generative AI in Games - Demo Game&lt;/span&gt;
        &lt;/div&gt;
      
      &lt;svg role="img" class="h-c-video__play h-c-icon h-c-icon--color-white"&gt;
        &lt;use xlink:href="#mi-youtube-icon"&gt;&lt;/use&gt;
      &lt;/svg&gt;
    &lt;/a&gt;

    
  &lt;/figure&gt;
&lt;/div&gt;

&lt;div class="h-c-modal--video"
     data-glue-modal="uni-modal-LzOLidx7JL0-"
     data-glue-modal-close-label="Close Dialog"&gt;
   &lt;a class="glue-yt-video"
      data-glue-yt-video-autoplay="true"
      data-glue-yt-video-height="99%"
      data-glue-yt-video-vid="LzOLidx7JL0"
      data-glue-yt-video-width="100%"
      href="https://youtube.com/watch?v=LzOLidx7JL0"
      ng-cloak&gt;
   &lt;/a&gt;
&lt;/div&gt;

&lt;/div&gt;
&lt;div class="block-paragraph"&gt;&lt;p data-block-key="06zip"&gt;위 예시에서 플레이어에게 책에 둘러싸인 남성을 보여주어 다음 목표로 도서관을 찾아야 할 수도 있다는 힌트를 제공합니다. 이 힌트는 NPC가 게임 초반에 공유한 수수께끼와도 일치합니다. 플레이어가 빌보드 중 하나와 상호작용하면, 즉 빌보드로 더 가까이 이동하거나 미리 설정된 시간 동안 빌보드를 보기만 해도 게임의 스토리라인이 이러한 맥락에 맞게 조정됩니다.&lt;/p&gt;&lt;p data-block-key="2bv00"&gt;코드 생성으로 프리팹을 빠르게 로드하여 구성할 수도 있습니다. 아래에 현재 상태의 게임 환경이 나와 있으며 NPC에게 버스 색상을 노란색으로 바꿔 달라고 요청하면 버스의 색상과 텍스처가 동적으로 업데이트됩니다.&lt;/p&gt;&lt;/div&gt;
&lt;div class="block-video"&gt;



&lt;div class="article-module article-video "&gt;
  &lt;figure&gt;
    &lt;a class="h-c-video h-c-video--marquee"
      href="https://youtube.com/watch?v=LzOLidx7JL0"
      data-glue-modal-trigger="uni-modal-LzOLidx7JL0-"
      data-glue-modal-disabled-on-mobile="true"&gt;

      
        

        &lt;div class="article-video__aspect-image"
          style="background-image: url(https://storage.googleapis.com/gweb-cloudblog-publish/images/4_live_service_games_.max-1000x1000.png);"&gt;
          &lt;span class="h-u-visually-hidden"&gt;Generative AI in Games - Demo Game&lt;/span&gt;
        &lt;/div&gt;
      
      &lt;svg role="img" class="h-c-video__play h-c-icon h-c-icon--color-white"&gt;
        &lt;use xlink:href="#mi-youtube-icon"&gt;&lt;/use&gt;
      &lt;/svg&gt;
    &lt;/a&gt;

    
  &lt;/figure&gt;
&lt;/div&gt;

&lt;div class="h-c-modal--video"
     data-glue-modal="uni-modal-LzOLidx7JL0-"
     data-glue-modal-close-label="Close Dialog"&gt;
   &lt;a class="glue-yt-video"
      data-glue-yt-video-autoplay="true"
      data-glue-yt-video-height="99%"
      data-glue-yt-video-vid="LzOLidx7JL0"
      data-glue-yt-video-width="100%"
      href="https://youtube.com/watch?v=LzOLidx7JL0"
      ng-cloak&gt;
   &lt;/a&gt;
&lt;/div&gt;

&lt;/div&gt;
&lt;div class="block-paragraph"&gt;&lt;p data-block-key="06zip"&gt;텍스트나 음성으로 이를 요청하면 Google Cloud 생성형 AI 모델이 해당 환경에서 프리팹을 업데이트하는 데 필요한 정확한 코드를 생성한 다음, 이를 게임에서 실시간으로 렌더링합니다.&lt;/p&gt;&lt;p data-block-key="8j3cn"&gt;이 예시는 게임 중에 코드 생성이 어떻게 사용되는지를 보여줍니다. 한편 게임 개발자도 비슷한 프로세스를 사용하여 게임 오브젝트를 게임 환경에 배치하고 구성하여 게임 개발 속도를 높일 수 있습니다.&lt;/p&gt;&lt;p data-block-key="4ak7m"&gt;다음 단계를 수행하며 기술을 확인하고 싶다면 아래 GitHub 링크와 리소스를 살펴보세요.&lt;/p&gt;&lt;p data-block-key="2ktm8"&gt;또한 모든 개발자가 프레임워크의 모든 속성에 관심이 있는 것은 아니라는 점을 잘 알고 있습니다. 그래서 프레임워크를 유연하게 만들었습니다. 전체 프로젝트를 살펴보고 싶든, 특정 기능을 구현한 방법을 이해하기 위해 코드의 특정 부분만 살펴보고 싶든, 선택은 사용자의 몫입니다.&lt;/p&gt;&lt;p data-block-key="6rklq"&gt;Google Cloud 생성형 AI에 대해 더욱 깊이 이해하고 싶다면 아래에 선별해 놓은 유용한 리소스 모음을 확인해 보세요.&lt;/p&gt;&lt;ul&gt;&lt;li data-block-key="avjqk"&gt;&lt;a href="https://cloud.google.com/ai/generative-ai"&gt;Google Cloud의 생성형 AI&lt;/a&gt;&lt;/li&gt;&lt;li data-block-key="cemug"&gt;&lt;a href="https://cloud.google.com/vertex-ai/docs/generative-ai/start/quickstarts/quickstart-multimodal"&gt;Vertex의 생성형 AI 시작하기&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p data-block-key="2j4c8"&gt;마지막으로, 이 프로젝트의 작업에 관심이 있거나 프로젝트에 기여하고 싶다면 이 데모에 사용된 생성형 AI 서비스에 초점을 맞춘 코드를 GitHub에서 자유롭게 살펴보세요.&lt;/p&gt;&lt;ul&gt;&lt;li data-block-key="djdo0"&gt;&lt;a href="https://github.com/googleforgames/GenAI-quickstart" target="_blank"&gt;게임을 위한 생성형 AI 빠른 시작&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;</description><pubDate>Tue, 12 Mar 2024 01:00:00 +0000</pubDate><guid>https://cloud.google.com/blog/ko/topics/gaming/the-case-for-running-ml-in-the-cloud-for-live-service-games/</guid><category>AI &amp; Machine Learning</category><category>Gaming</category><media:content height="540" url="https://storage.googleapis.com/gweb-cloudblog-publish/images/gaming.max-600x600.png" width="540"></media:content><og xmlns:og="http://ogp.me/ns#"><type>article</type><title>클라우드에서 라이브 서비스 게임을 위한 머신러닝 실행하기</title><description></description><image>https://storage.googleapis.com/gweb-cloudblog-publish/images/gaming.max-600x600.png</image><site_name>Google</site_name><url>https://cloud.google.com/blog/ko/topics/gaming/the-case-for-running-ml-in-the-cloud-for-live-service-games/</url></og><author xmlns:author="http://www.w3.org/2005/Atom"><name>Patrick Smith</name><title>Head of Specialist Customer Engineers, Google Cloud for Games</title><department></department><company></company></author><author xmlns:author="http://www.w3.org/2005/Atom"><name>Dan Zaratsian</name><title>Tech Lead, AI/ML Solutions Architect, Google Cloud for Games</title><department></department><company></company></author></item><item><title>게임 업계의 생성형 AI 혁명: 무한한 창의성으로 나아가는 길</title><link>https://cloud.google.com/blog/ko/products/gaming/generative-ai-in-the-games-industry/</link><description>&lt;div class="block-paragraph"&gt;&lt;p data-block-key="48zh3"&gt;*본 아티클의 원문은 2023년 10월 7일 Google Cloud 블로그(&lt;a href="https://cloud.google.com/blog/products/gaming/generative-ai-in-the-games-industry"&gt;영문&lt;/a&gt;)에 게재되었습니다.&lt;/p&gt;&lt;p data-block-key="3dv18"&gt;게임 업계는 기술의 한계를 끊임없이 넘며 인간의 상상력을 발휘하는 데 기술을 활용해 왔습니다. 게임 개발자는 오늘날 &lt;a href="https://newzoo.com/resources/blog/the-games-market-in-2022-the-year-in-numbers" target="_blank"&gt;전 세계 30억 명 이상의 플레이어&lt;/a&gt;를 사로잡는 환경을 만들기 위해 컴퓨팅, 그래픽, 네트워킹, 소셜 미디어, 데이터 부문에서 최첨단 기술을 채택하고 있습니다.&lt;/p&gt;&lt;p data-block-key="dlir5"&gt;게임 산업은 기술의 최전선에서 다른 비즈니스에 혁신의 등대 역할을 하며 대규모로 정보를 제공하고, 참여를 독려하며, 사용자를 연결하는 새로운 방법을 제시하고 있습니다. 예를 들어 소비자가 모바일 기기를 대규모로 사용하기 시작했던 2000년대 중반, 게임은 이와 같은 추세를 비즈니스 모델에 적용하는 데 선구적인 역할을 했습니다. 오늘날 전 세계 인구의 거의 절반에 가까운 사용자가 게임을 하며, 이 중 대다수는 모바일 기기를 사용합니다.&lt;/p&gt;&lt;p data-block-key="71lc4"&gt;모바일에 대한 업계의 초기 학습은 오늘날 거의 모든 게임 플랫폼에 걸쳐 업계를 지배하는 비즈니스 모델인 '&lt;a href="https://cloud.google.com/blog/products/gaming/how-google-cloud-for-games-enables-live-service-games"&gt;라이브 서비스 게임&lt;/a&gt;'으로 이어졌습니다. 라이브 서비스 게임은 개발자와 플레이어 간의 제작, 참여, 학습 주기에 따라 끊임없이 변화하고 발전합니다.&lt;/p&gt;&lt;p data-block-key="9n98g"&gt;오늘날 우리는 새로운 시대의 선두에 서 있습니다. 게임 업계가 생성형 인공지능(생성형 AI)의 혁신적인 잠재력을 활용하여 게임 환경의 경계를 계속 넓힐 수 있는 방법을 탐구하는 것이 무엇보다 중요합니다. 생성형 AI를 통해 디자이너, 개발자, 아티스트, 마케팅 담당자 등 게임을 만드는 사람들의 작업 방식을 혁신하고 제공 환경의 범위를 확장할 수 있습니다.&lt;/p&gt;&lt;/div&gt;
&lt;div class="block-image_full_width"&gt;






  
    &lt;div class="article-module h-c-page"&gt;
      &lt;div class="h-c-grid"&gt;
  

    &lt;figure class="article-image--large
      
      
        h-c-grid__col
        h-c-grid__col--6 h-c-grid__col--offset-3
        
        
      "
      &gt;

      
      
        
        &lt;img
            src="https://storage.googleapis.com/gweb-cloudblog-publish/images/20563_GenAI_Games_Blog_Img14x.max-1000x1000.png"
        
          alt="20563_GenAI_Games_Blog_Img1@4x"&gt;
        
        &lt;/a&gt;
      
    &lt;/figure&gt;

  
      &lt;/div&gt;
    &lt;/div&gt;
  




&lt;/div&gt;
&lt;div class="block-paragraph"&gt;&lt;h3 data-block-key="48zh3"&gt;게임용 생성형 AI의 차이점 이해하기&lt;/h3&gt;&lt;p data-block-key="22bmn"&gt;그렇다면 생성형 AI가 기존 AI와 다른 점은 무엇일까요? 일단 한 가지 측면에서의 차이점은 진화성입니다. 돌이켜보면 게임 업계에서 오랫동안 'AI'라는 용어를 사용해 왔지만, 당시의 정의는 제한된 규칙, 결정 트리, 행동의 조합이었습니다. 플레이어는 '봇'과 소통했지만, 봇은 사람에 비해 그다지 매력적이지 않은 경우가 많았습니다. 최근의 게임 회사들은 데이터와 분석에 기반한 진정한 AI 및 ML 프레임워크를 사용하여 플레이어를 이해하고 이탈을 관리하며 수익 창출을 늘리고 있습니다. 일부는 생성형 AI를 제공하는 대규모 언어 모델(LLM)과 같은 고급 AI 알고리즘에 프레임워크를 통합하기도 했습니다.&lt;/p&gt;&lt;p data-block-key="4t3oo"&gt;그러나 생성형 AI는 진화의 단계를 훌쩍 뛰어넘습니다. 이는 완전히 새로운 차원의 혁신이며, 게임 업계에서는 실시간 3D 그래픽 도입 이후 가장 큰 변화이기도 합니다&lt;b&gt;&lt;i&gt;.&lt;/i&gt;&lt;/b&gt; 생성형 AI는 다음의 두 가지 근본적인 방법으로 게임을 혁신할 것입니다.&lt;/p&gt;&lt;ol&gt;&lt;li data-block-key="b896a"&gt;&lt;b&gt;생성형 AI를&lt;/b&gt; &lt;b&gt;통한&lt;/b&gt; &lt;b&gt;확장&lt;/b&gt; &lt;b&gt;가능한&lt;/b&gt; &lt;b&gt;개발:&lt;/b&gt; 콘텐츠 제작은 게임 산업에서 발생하는 비용 중 하나로 때로는 가장 큰 비용이기도 합니다. &lt;a href="https://assets.publishing.service.gov.uk/media/644939aa529eda000c3b0525/Microsoft_Activision_Final_Report_.pdf" target="_blank"&gt;영국 CMA&lt;/a&gt;에 따르면 블록버스터 게임의 개발 예산이 1억 달러를 훌쩍 넘는 경우도 있다고 합니다. 이러한 막대한 투자에도 불구하고 게임팀은 특히 전 세계적으로 잠재고객이 증가함에 따라 새로운 콘텐츠에 대한 플레이어의 요구를 따라잡는 데 어려움을 겪을 수 있습니다. 이때 생성형 AI를 활용하면 코드, 아트, 대화 등 게임 제작 전반의 속도를 높여 팀에서 플레이어에게 더 나은 서비스를 대규모로 제공하는 데 도움이 됩니다. 덕분에 기존 팀은 향상된 공동작업, 아이디어 구상, 맞춤설정을 통해 더 빠른 속도로 더 우수한 콘텐츠를 제작할 수 있습니다. 또한, 개발자는 엔터프라이즈급 생성형 AI를 통해 지식 재산을 존중하는 방식으로 이 새로운 기술을 활용하는 동시에 자신의 독점 데이터를 보호할 수 있습니다.&lt;/li&gt;&lt;li data-block-key="3jcd3"&gt;&lt;b&gt;실시간&lt;/b&gt; &lt;b&gt;생성형 AI&lt;/b&gt;: 개발팀에서 생성형 AI를 제작 프로세스에 통합함에 따라 생성형 AI를 게임 자체에 통합하기 시작한 팀도 있습니다. 이와 같은 통합은 게임이 진행되는 동안 실시간 실행되는 생성형 AI를 통해 플레이어 환경을 혁신할 수 있는 잠재력이 있습니다. 이같이 반응성이 뛰어나고 역동적인 생성형 AI는 거대한 LLM을 추출하여 플레이어와 실시간으로 반응하고 소통합니다. 즉시 생성되는 새 아이템과 레벨부터 생생한 대화를 나눌 수 있는 게임 내 캐릭터에 이르기까지 게임 자체에서 플레이어의 명시적이거나 암시적인 행동을 기반으로 콘텐츠를 생성할 수 있게 됩니다. 플레이어의 음성에 자연스럽게 반응하거나 플레이어 행동에 대응해 완전히 새로운 콘텐츠를 생성하는 게임이 있다고 상상해 보세요. 이와 같은 예를 통해 이전의 세계에서 볼 수 없었던 플레이어 맞춤설정 및 게임 상호작용의 새로운 패러다임을 그려볼 수 있습니다.&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;
&lt;div class="block-image_full_width"&gt;






  
    &lt;div class="article-module h-c-page"&gt;
      &lt;div class="h-c-grid"&gt;
  

    &lt;figure class="article-image--large
      
      
        h-c-grid__col
        h-c-grid__col--6 h-c-grid__col--offset-3
        
        
      "
      &gt;

      
      
        
        &lt;img
            src="https://storage.googleapis.com/gweb-cloudblog-publish/images/20563_GenAI_Games_Blog_Img24x.max-1000x1000.png"
        
          alt="20563_GenAI_Games_Blog_Img2@4x"&gt;
        
        &lt;/a&gt;
      
    &lt;/figure&gt;

  
      &lt;/div&gt;
    &lt;/div&gt;
  




&lt;/div&gt;
&lt;div class="block-paragraph"&gt;&lt;h3 data-block-key="48zh3"&gt;혁신의 길로 나아가기&lt;/h3&gt;&lt;p data-block-key="ar79p"&gt;앞서 제시한 미래가 공상처럼 들릴 수도 있지만 이 미래는 생각보다 더 빨리 실현될 것입니다. 실제로 개인과 기업이 게임 업계의 판도를 바꿀 기본 모델을 탐색하는 과정에서 이미 오늘날 이러한 미래를 위한 기반이 구축되고 있습니다. 게임 업계에서 생성형 AI를 수용함에 따라 비즈니스에 또 다른 구조적 변화가 일어나리라고 봅니다. 탁월한 비즈니스 모델로 박스형 소프트웨어 게임이 라이브 서비스 게임으로 진화했듯이 이번에는 '살아있는 게임' 그 자체를 향한 또 다른 진화가 일어날 것입니다. 이 모델에서는 플레이어와 개발자 사이의 관계 주기가 게임 자체로까지 확장되어 세 당사자가 모두 상호작용하게 될 것이고 이에 따라 플레이어 환경과 비즈니스 결과가 더욱 풍성해질 것입니다.&lt;/p&gt;&lt;/div&gt;
&lt;div class="block-image_full_width"&gt;






  
    &lt;div class="article-module h-c-page"&gt;
      &lt;div class="h-c-grid"&gt;
  

    &lt;figure class="article-image--large
      
      
        h-c-grid__col
        h-c-grid__col--6 h-c-grid__col--offset-3
        
        
      "
      &gt;

      
      
        
        &lt;img
            src="https://storage.googleapis.com/gweb-cloudblog-publish/images/20563_GenAI_Games_Blog_Flow4x.max-1000x1000.png"
        
          alt="20563_GenAI_Games_Blog_Flow@4x"&gt;
        
        &lt;/a&gt;
      
    &lt;/figure&gt;

  
      &lt;/div&gt;
    &lt;/div&gt;
  




&lt;/div&gt;
&lt;div class="block-paragraph"&gt;&lt;p data-block-key="48zh3"&gt;생성형 AI를 게임에 성공적으로 통합하려면 기대와 추진력 이상의 무언가가 더 필요합니다. 개발자는 데이터를 활용하되, 일관되고 설득력 있는 결과를 생성하는 신뢰할 수 있는 데이터 세트를 기반으로 모델을 학습시키는 완전히 새로운 방식으로 활용해야 합니다. 또한 게임 개발자는 플레이어를 철저하게 존중하면서 지식 재산을 보호하는 방식으로 책임감 있고 안전하게 AI를 구현해야 합니다.&lt;/p&gt;&lt;p data-block-key="fvf5"&gt;Google Cloud에서는 강력한 게임 서버, 견고한 데이터 애셋, 빠른 네트워크, 가장 강력하면서도 책임감 있는 AI 기능을 포함해 살아있는 게임을 위한 포괄적인 생태계를 제공하기 위해 최선을 다하고 있습니다. 오늘날의 게임 개발자는 안전하고 강력한 환경에서 독점 데이터에 대한 생성형 AI를 지원하는 &lt;a href="https://cloud.google.com/vertex-ai"&gt;Vertex AI&lt;/a&gt;에 특별한 관심을 기울여야 합니다. Google Cloud의 Model Garden은 Vertex AI 내에서 팀이 게임 개발에 가장 적합한 수준의 안전하고 강력한 엔터프라이즈 환경에서 학습하고 제작할 수 있도록 독점적인 개방형 기반 모델을 다양하게 제공합니다. 지난 몇 달 동안 Google Cloud는 귀중한 피드백을 수집하고 게임 회사가 Google 생성형 AI를 통해 다음 단계로 나아가고자 기대하는 바를 바탕으로 한 로드맵을 개발했습니다.&lt;/p&gt;&lt;p data-block-key="15qbf"&gt;앞서 말씀드렸듯이 게임 업계는 항상 인간의 발명, 창의성, 최첨단 기술 채택에 대한 추진력을 기반으로 성장해 왔습니다. 생성형 AI로 워크플로 가속화, 새로운 플레이어 환경 조성, 잠재고객 참여, 수익 창출을 위한 새로운 길이 열린다 하더라도 이 근본적인 진실은 바뀌지 않습니다. 이전의 혁신 기술과 마찬가지로 게임 산업을 흥미진진하게 만드는 근본은 결국 창의성이기 때문에 게임 개발자는 자신의 재능을 대체하기보다는 증폭하기 위한 도구로 생성형 AI를 사용할 것입니다.&lt;/p&gt;&lt;p data-block-key="57rfu"&gt;생성형 AI 여정을 시작하는 방법에 대한 자세한 내용은 &lt;a href="https://inthecloud.withgoogle.com/kr--executives-guide-to-generative-ai/dl-cd.html" target="_blank"&gt;경영진을 위한 생성형 AI 가이드&lt;/a&gt; eBook을 다운로드하세요.&lt;/p&gt;&lt;/div&gt;
&lt;div class="block-aside"&gt;&lt;dl&gt;
    &lt;dt&gt;aside_block&lt;/dt&gt;
    &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;title&amp;#x27;, &amp;quot;여러분의 프롬프트는 무엇인가요? &amp;#x27;경영진을 위한 생성형 AI 가이드&amp;#x27;를 소개합니다&amp;quot;), (&amp;#x27;body&amp;#x27;, &amp;lt;wagtail.rich_text.RichText object at 0x7f82bc504580&amp;gt;), (&amp;#x27;btn_text&amp;#x27;, &amp;#x27;자세히 읽기&amp;#x27;), (&amp;#x27;href&amp;#x27;, &amp;#x27;https://cloud.google.com/transform/ko/introducing-executives-guide-to-generative-ai?hl=ko&amp;#x27;), (&amp;#x27;image&amp;#x27;, &amp;lt;GAEImage: introducing-executives-guide-to-generative-ai-midjourney-hero.png&amp;gt;)])]&amp;gt;&lt;/dd&gt;
&lt;/dl&gt;&lt;/div&gt;</description><pubDate>Wed, 20 Dec 2023 01:00:00 +0000</pubDate><guid>https://cloud.google.com/blog/ko/products/gaming/generative-ai-in-the-games-industry/</guid><category>AI &amp; Machine Learning</category><category>Gaming</category><og xmlns:og="http://ogp.me/ns#"><type>article</type><title>게임 업계의 생성형 AI 혁명: 무한한 창의성으로 나아가는 길</title><description></description><site_name>Google</site_name><url>https://cloud.google.com/blog/ko/products/gaming/generative-ai-in-the-games-industry/</url></og><author xmlns:author="http://www.w3.org/2005/Atom"><name>Jack Buser</name><title>Global Director for Games, Google Cloud</title><department></department><company></company></author></item><item><title>게임은 계속된다: 구글 클라우드의 라이브 서비스 게임 전략</title><link>https://cloud.google.com/blog/ko/topics/gaming/how-google-cloud-for-games-enables-live-service-games/</link><description>&lt;div class="block-paragraph"&gt;&lt;p&gt;* 본 아티클의 원문은 2023년 3월 9일 Google Cloud 블로그(&lt;a href="https://cloud.google.com/blog/products/gaming/how-google-cloud-for-games-enables-live-service-games?hl=en"&gt;영문&lt;/a&gt;)에 게재되었습니다.&lt;/p&gt;&lt;hr/&gt;&lt;p&gt;라이브 서비스 게임(또는 라이브 게임)이 게임 산업의 새로운 미래라는 사실은 이제 부인할 수 없습니다. 2022년에 사람들이 가장 많이 플레이한 상위 10개 게임이 모두 라이브 게임이었을 정도로, 라이브 게임은 새로운 콘텐츠, 기능 및 플레이 방식으로 플레이어에게 지속적인 즐거움을 선사하고 있습니다. 오늘날 라이브 서비스 모델은 콘솔, PC, 모바일 등 모든 플랫폼과 장르 전반으로 널리 확산됐습니다. &lt;a href="https://kstatic.googleusercontent.com/files/27e03cbcd4a9807d601459a0328d57dc4b793b9d4d0ff9e143363e6634a8550f71c8ad05d1ce1934b286272f8512cfc5d5d1113672367e441f8438c6a859c876" target="_blank"&gt;2024년에는 라이브 게임 플레이어 수가 36억 명&lt;/a&gt;에 이를 것으로 예상되면서 라이브 게임 시장은 그 어느 때보다 좋은 성장 기회를 맞이했습니다. &lt;br/&gt;&lt;/p&gt;&lt;p&gt;구글은 구글 검색, 유튜브와 같은 세계 최대 규모의 라이브 서비스를 전 세계 수십억 명의 사용자에게 제공하고 있는 만큼, 누구보다 라이브 서비스 모델에 익숙합니다. 구글 클라우드 역시 마찬가지로 전 세계 플레이어에게 라이브 게임 경험을 제공하는 게임 개발자에게 최고의 구글 서비스를 제공하기 위해 노력하고 있습니다. &lt;/p&gt;&lt;p&gt;업계 최고 매출을 자랑하는 게임사 대부분이 구글 클라우드와 협업하고 있습니다. 이러한 여정 속에서 구글 클라우드는 개발자가 게임 성능과 인사이트를 결합할 수 있도록 지원하는 세 가지 핵심 전략을 배울 수 있었습니다.  &lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;p&gt;어디서나 가능한 플레이&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;게임 데이터 수집 및 정리&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;플레이어 및 게임 인사이트 도출&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;b&gt;어디서나 가능한 플레이&lt;/b&gt;&lt;/p&gt;&lt;p&gt;라이브 게임은 언제든 접속할 수 있어야 합니다. 구글 클라우드는 개발자가 플레이어를 세계 최대 규모의 가장 안전한 네트워크에 구축된 게임 서버에 연결할 수 있도록 지원합니다. &lt;/p&gt;&lt;p&gt;게임 출시를 예로 들어보겠습니다. 개발자는 출시 전 게임이 얼마나 성공할지 효과적으로 예측해야 하는데 이는 매우 어려운 문제입니다. “과연 이 게임이 천 명의 플레이어를 유치할 수 있을까? 아니면 백만 명? 그 이상? 그 많은 인원이 (설마) 동시에 접속하겠어?” 아이러니하게도 최악의 시나리오는 게임이 대성공을 거두는 순간에 종종 발생합니다. 대규모 인원의 동시 접속을 원활히 지원하지 못하는 바람에 게임을 즐기려고 했던 플레이어를 놓치게 되는 상황이 벌어지는 것입니다. &lt;/p&gt;&lt;p&gt;게임의 흥행이 개발자의 걱정 거리가 되어서는 안 되겠죠. 이러한 걱정을 해소할 수 있도록 구글 클라우드가 제공하는 가장 중요한 기능 중 하나는 바로 확장성입니다. 쿠버네티스(Kubernetes)는 대규모 컴퓨팅을 처리할 수 있는 최상의 방법 중 하나로 인정받고 있습니다. 구글이 쿠버네티스 프로젝트를 처음 설계했고 계속해서 기술 발전에 가장 많은 기여를 하고 있는 만큼, 구글 클라우드는 그 누구보다 쿠버네티스에 대해 높은 이해도를 가지고 있습니다. &lt;/p&gt;&lt;p&gt;쿠버네티스에 대한 전문 지식을 바탕으로 개발된 &lt;a href="https://cloud.google.com/kubernetes-engine"&gt;구글 쿠버네티스 엔진(Google Kubernetes Engine, GKE)&lt;/a&gt;은 게임 개발자가 대규모 플레이어에게 서비스를 제공하는 데 필요한 역량과 자신감을 선사합니다. GKE는 가장 확장성 높고 자동화된 관리형 쿠버네티스 서비스로 15,000개 이상의 노드 클러스터를 실행할 수 있으며, 다른 클라우드 제공업체보다 최대 10배 더 확장할 수 있습니다.&lt;/p&gt;&lt;p&gt;GKE는 다양한 컴퓨팅 작업에 사용되지만 라이브 게임의 워크로드는 고유합니다. 그래서 구글 클라우드는 유비소프트(Ubisoft)와 협력해 쿠버네티스용 오픈소스 게임 서버 오케스트레이터(orchestrator) ‘아고네스(Agones)’를 개발했습니다. GKE와 함께 아고네스를 사용하면 개발자는 인프라 대신 플레이어 경험에 더욱 집중할 수 있습니다. &lt;/p&gt;&lt;p&gt;&lt;i&gt;“유비소프트는 게임 서버를 위한 중앙집중식 표준 솔루션이 필요했습니다. 구글 클라우드와 협력해 아고네스를 개발한 결과, 시간이 지날수록 플레이어의 참여와 신뢰도를 극대화할 수 있었습니다.”&lt;br/&gt;&lt;/i&gt;&lt;i&gt;피에르 로마네(Pierre Romagné) 유비소프트 엔지니어링 &amp;amp; 플랫폼 담당 부회장&lt;/i&gt;&lt;/p&gt;&lt;br/&gt;&lt;p&gt;&lt;b&gt;게임 데이터 수집 및 정리&lt;/b&gt;&lt;/p&gt;&lt;p&gt;라이브 게임은 늘 플레이어의 진행 상황을 고려해야 합니다. 구글 클라우드는 개발자가 규모나 성능에 대한 걱정 없이 안전한 플레이어 경험을 제공할 수 있도록 지원합니다.&lt;/p&gt;&lt;p&gt;라이브 서비스 게임은 지속적입니다. 플레이어는 레벨을 달성하거나 친구를 추가하고 스킨을 구매하기도 합니다. “이번 샷은 정확도가 얼마나 더 올라갔을까?” 매번 궁금해하며 아주 사소한 데이터까지 소중하게 살펴보기도 하죠. 이러한 데이터 열망이 전 세계 수백만 명의 플레이어가 동시 접속하는 라이브 게임에서는 얼마나 폭발적으로 증가할지 상상해 보십시오. 물론 대규모 데이터를 효과적으로 관리하는 것이 분명 쉬운 일은 아닐 것입니다. &lt;/p&gt;&lt;p&gt;구글 클라우드는 자체 라이브 서비스를 운영하며 축적한 방대한 경험을 활용해 데이터 확장성을 완벽히 해결하는 &lt;a href="https://cloud.google.com/spanner"&gt;클라우드 스패너(Cloud Spanner)&lt;/a&gt;를 개발했습니다. 스패너는 초당 20억 건 이상의 요청을 처리할 수 있는 논리적이고 수평 확장 가능한 단일 데이터베이스를 제공합니다. 즉, 게임 개발자는 성능, 관리 용이성, 확장성 사이에서 타협하지 않아도 됩니다. (더 이상 샤딩(Sharding)할 필요가 없습니다!) 단일 데이터베이스만으로 대규모 플레이어의 데이터 활동을 처리할 수 있는 것입니다.&lt;/p&gt;&lt;p&gt;&lt;i&gt;“약 5,000개의 스패너 노드가 트래픽을 처리하고 있으며, 모든 노드가 함께 작동해 어떤 순간에도 전 세계 수백 만 명의 플레이어가 동시에 플레이를 즐길 수 있도록 지원하고 있습니다.”&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;제임스 프롬파냐(James Prompanya) 나이앤틱(Niantic) 포켓몬고(Pokémon GO) 담당 수석 엔지니어링 매니저&lt;/i&gt;&lt;/p&gt;&lt;p&gt;스패너는 확장성 외에도 지연 시간을 최대 25%까지 감소해 플레이어 경험을 개선하는 동시에 비용을 최대 50%까지 절감할 수 있습니다. 플레이어가 새로운 스킨의 잠금을 해제하는 즉시 장착할 수 있는 것입니다.&lt;/p&gt;&lt;p&gt;&lt;b&gt;플레이어 및 게임 인사이트 도출&lt;/b&gt;&lt;/p&gt;&lt;p&gt;라이브 게임은 올바른 방향으로 지속적으로 진화해야 합니다. 구글 클라우드는 개발자가 구글의 분석 및 AI 기술을 활용해 플레이어를 유치하고 유지하는 데 효과적인 방식을 파악할 수 있도록 지원합니다.&lt;br/&gt;&lt;/p&gt;&lt;p&gt;전 세계에는 모습도 규모도 다양한 30억 명 이상의 플레이어가 존재합니다. 이들을 만족시키기 위해서는 어떤 방식이 효과적인지 이해하고, 그에 따라 플레이어를 세분화해야 합니다. 글로벌 게임 퍼블리셔인 스퀘어 에닉스(Square Enix)는 플레이어를 이해하고 참여시키기 위해 데이터와 분석 기능을 이용해 ‘싱글 게이머 뷰(Single Gamer View)’를 구축했고, 그 결과 플레이어 참여도와 만족도를 증가시킬 수 있었습니다. &lt;/p&gt;&lt;p&gt;인사이트 창출을 가속화하는 빅쿼리(BigQuery)는 대형 게임 개발자 사이에서 킬러 앱(killer app)으로 알려져 있습니다. 구글 클라우드의 상위 게임 고객사 대부분이 빅쿼리를 사용하고 있습니다. 데이터 분석 분야에서 일명 ‘사기캐(OP)’로 등극한 빅쿼리는 개발자가 대규모 플레이어 및 게임 데이터를 분석하고 통합할 수 있도록 지원합니다. &lt;/p&gt;&lt;p&gt;빅쿼리는 새로운 기능의 성공 가능성 예측부터 플레이어 행동에 기반한 맞춤형 제안까지, 게임사가 이전에는 물어볼 생각조차 못 했거나 누구에게 물어봐야 할지 몰랐던 질문에 대한 답을 찾는 데 도움을 줍니다. 빅쿼리가 접근성을 고려해 설계된 덕분에 게임사 전 직원은 사일로에 갇혀 있던 데이터를 활용해 인사이트를 얻을 수 있습니다. 나아가 빅쿼리에 내장된 ML 기능과 버텍스 AI(Vertex AI)를 통해 기업 전반에서 인사이트를 도출할 수 있습니다. &lt;/p&gt;&lt;p&gt;&lt;b&gt;게임을 향한 영원한 사랑을 위하여 &lt;/b&gt;&lt;/p&gt;&lt;p&gt;구글 클라우드는 라이브 게임의 성공 여부가 인프라의 성능을 넘어 게임이 선사하는 즐거움에 달려 있다고 생각합니다. 그렇기 때문에 게임에 대한 이해와 성능을 통합하는 라이브 게임 에코시스템을 구축하고 있습니다.&lt;br/&gt;&lt;/p&gt;&lt;p&gt;게임을 위한 구글 클라우드(Google Cloud for Games)는 구글 클라우드뿐만 아니라 유비투스(Ubitus), 인크레디빌드(Incredibuild), 히로익랩스(Heroic Labs), 유니티(Unity) 등과 같은 개발사의 솔루션을 포함하고 있습니다.&lt;/p&gt;&lt;p&gt;&lt;i&gt;“구글과 협력해 개발자에게 게임을 글로벌 규모로 원활하게 구축, 출시, 성장시킬 수 있는 가장 강력한 도구와 인프라를 제공하는 ‘유니티 게이밍 서비스(Unity Gaming Services)’ 스위트를 제공할 수 있게 되어 매우 기쁘게 생각합니다.”&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;제프 콜린스(Jeff Collins) 유니티 게이밍 서비스 부문 수석부회장(SVP) &amp;amp; GM&lt;/i&gt;&lt;/p&gt;&lt;p&gt;에코시스템을 구성하는 여러 솔루션은 전체가 긴밀히 통합돼 한 몸처럼 작동할 때 최상의 효과를 발휘합니다. 개인 기량이 뛰어난 플레이어도 분명 있겠지만, 최고의 MVP가 되기 위해서는 스쿼드, 클랜, 레이드처럼 잘 짜인 팀의 뒷받침이 반드시 필요한 것과 같은 맥락입니다. &lt;/p&gt;&lt;p&gt;게임을 위한 구글 클라우드에 대한 보다 자세한 정보는 &lt;a href="http://goo.gle/cloudforgames" target="_blank"&gt;웹사이트&lt;/a&gt;에서 확인하실 수 있습니다. &lt;/p&gt;&lt;p&gt;그럼 모두 ‘즐겜(GLHF)’하시기 바랍니다!&lt;/p&gt;&lt;/div&gt;</description><pubDate>Fri, 21 Apr 2023 19:00:00 +0000</pubDate><guid>https://cloud.google.com/blog/ko/topics/gaming/how-google-cloud-for-games-enables-live-service-games/</guid><category>Gaming</category><media:content height="540" url="https://storage.googleapis.com/gweb-cloudblog-publish/images/gaming_2022.max-2500x2500_3fqdlY8.max-600x600.png" width="540"></media:content><og xmlns:og="http://ogp.me/ns#"><type>article</type><title>게임은 계속된다: 구글 클라우드의 라이브 서비스 게임 전략</title><description></description><image>https://storage.googleapis.com/gweb-cloudblog-publish/images/gaming_2022.max-2500x2500_3fqdlY8.max-600x600.png</image><site_name>Google</site_name><url>https://cloud.google.com/blog/ko/topics/gaming/how-google-cloud-for-games-enables-live-service-games/</url></og><author xmlns:author="http://www.w3.org/2005/Atom"><name>Jack Buser</name><title>Global Director for Games, Google Cloud</title><department></department><company></company></author></item><item><title>Quilkin 소개: 게임 서버 통신을 위해 빌드된 오픈소스 UDP 프록시</title><link>https://cloud.google.com/blog/ko/topics/gaming/introducing-quilkin/</link><description>&lt;div class="block-paragraph"&gt;&lt;p&gt;* 본 아티클의 원문은 2021년 7월 16일 Google Cloud 블로그(&lt;a href="https://cloud.google.com/blog/products/gaming/introducing-quilkin"&gt;영문&lt;/a&gt;)에 게재되었습니다.  &lt;/p&gt;&lt;p&gt;기존에 실시간 멀티플레이어 게임 전용 게임 서버는 한 게임에서 여러 플레이어의 통신과 게임플레이 동기화를 위해 맞춤 &lt;a href="https://en.wikipedia.org/wiki/User_Datagram_Protocol" target="_blank"&gt;UDP 프로토콜&lt;/a&gt;을 사용했습니다. 이러한 통신은 모놀리식 게임 서버 및 클라이언트에 포함되어 커스텀 네트워크 물리 동기화, 보안, 액세스 제어, 원격 분석 및 측정항목과 같은 통신 프로토콜의 기술적 기능과 물리 시뮬레이션, AI 연산 등 고도의 컴퓨팅 요구사항을 결합하는 경우가 많습니다.&lt;/p&gt;&lt;p&gt;&lt;a href="https://www.embark-studios.com/" target="_blank"&gt;Embark Studios&lt;/a&gt;와 공동 개발한 Quilkin은 고성능 실시간 멀티플레이어 게임을 위해 맞춤 제작된 UDP 프록시입니다. 이 프록시의 목표는 두 가지입니다.&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;p&gt;모놀리식 전용 게임 서버 및 클라이언트에서 보안, 액세스 제어, 원격 분석, 측정항목 등의 공통 기능을 가져옵니다.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;이러한 공통 기능을 구성 및 설정 가능한 방식으로 제공하여 광범위한 멀티플레이어 게임에서 재사용할 수 있습니다.&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;이 재사용 가능한 기반 덕분에 게임 개발자가 공통된 요소 대신 멀티플레이어 통신 프로토콜을 빌드하는 게임별 요소에 더 많은 시간을 할애할 수 있습니다.&lt;/p&gt;&lt;h3&gt;멀티플레이어 게임 서버 통신의 과제&lt;/h3&gt;&lt;p&gt;빠른 속도의 멀티플레이 게임에서는 일반적으로 네트워크 물리 및 AI 시뮬레이션부터 클라이언트와 서버 간 통신에 이르기까지 모든 작업을 담당하는 모놀리식 전용 게임 서버의 메모리에서 게임플레이 세션의 전체 시뮬레이션이 진행됩니다.&lt;/p&gt;&lt;/div&gt;
&lt;div class="block-image_full_width"&gt;






  
    &lt;div class="article-module h-c-page"&gt;
      &lt;div class="h-c-grid"&gt;
  

    &lt;figure class="article-image--large
      
      
        h-c-grid__col
        h-c-grid__col--6 h-c-grid__col--offset-3
        
        
      "
      &gt;

      
      
        
        &lt;img
            src="https://storage.googleapis.com/gweb-cloudblog-publish/images/1_Quilkin.max-1000x1000.jpg"
        
          alt="1 Quilkin.jpg"&gt;
        
        &lt;/a&gt;
      
    &lt;/figure&gt;

  
      &lt;/div&gt;
    &lt;/div&gt;
  




&lt;/div&gt;
&lt;div class="block-paragraph"&gt;&lt;p&gt;게임의 전체 상태가 메모리에 상주하므로 각 클라이언트에서 플레이어가 이용하고 있는 전용 게임 서버에 직접 연결하는데 이로 인해 여러 가지 문제가 발생합니다.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;각각의 전용 게임 서버가 &lt;b&gt;단일 장애점&lt;/b&gt;이 됩니다. 다운되면 전체 게임 세션(경우에 따라 여러 세션)이 실패합니다. 이 때문에 악의적인 행위자의 표적이 됩니다.&lt;/li&gt;&lt;li&gt;게임 서버의 IP 및 연결 포트가 &lt;b&gt;공개&lt;/b&gt;되어 게임 클라이언트에 노출되기 때문에 쉽게 발견되어 공격 대상이 됩니다.&lt;/li&gt;&lt;li&gt;게임 서버 시뮬레이션 및 네트워크 통신의 여러 측면이 &lt;b&gt;동일한 프로세스에서 긴밀하게 연결&lt;/b&gt;되어 재사용과 모듈화가 어려워지고 성능 문제가 발생할 위험이 커집니다. &lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;지난 몇 년간의 웹 기술과 모바일 기술을 살펴보면 이와 같은 몇 가지 과제를 공통적으로 안고 있음을 알 수 있습니다. 다행히 전용 서버 워크로드의 분산된 중복 조정을 유도하는 데 도움이 되는 솔루션이 있으며 그 중 하나가 바로 트래픽 프록시를 활용하는 것입니다. &lt;/p&gt;&lt;/div&gt;
&lt;div class="block-image_full_width"&gt;






  
    &lt;div class="article-module h-c-page"&gt;
      &lt;div class="h-c-grid"&gt;
  

    &lt;figure class="article-image--large
      
      
        h-c-grid__col
        h-c-grid__col--6 h-c-grid__col--offset-3
        
        
      "
      &gt;

      
      
        
        &lt;img
            src="https://storage.googleapis.com/gweb-cloudblog-publish/images/2_Quilkin.max-1000x1000.jpg"
        
          alt="2 Quilkin.jpg"&gt;
        
        &lt;/a&gt;
      
    &lt;/figure&gt;

  
      &lt;/div&gt;
    &lt;/div&gt;
  




&lt;/div&gt;
&lt;div class="block-paragraph"&gt;&lt;p&gt;&lt;a href="https://cloud.google.com/blog/products/gcp/5-steps-to-better-gcp-network-performance"&gt;Google Cloud에서 사용&lt;/a&gt;할 수 있는 것과 같이 지연 시간이 짧은 네트워크의 전용 게임 서버 앞에 멀티플레이어 UDP 트래픽용 프록시를 사용하면 다음과 같은 주요 과제를 해결할 수 있습니다.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;안정성 강화&lt;/b&gt;. 프록시는 &lt;b&gt;중복된 통신 진입점&lt;/b&gt;을 제공합니다. UDP 패킷을 원하는 수의 프록시에 전송하여 전용 게임 서버에 라우팅할 수 있습니다. 전용 게임 서버가 여전히 일반적인 단일 장애점이겠지만 프록시가 통신 레이어의 중복성과 잠재적 장애 조치를 개선해 줍니다.&lt;/li&gt;&lt;li&gt;&lt;b&gt;보안 강화&lt;/b&gt;. 더 이상 전용 &lt;b&gt;게임 서버의 IP 및 포트가 공개되지 않습니다&lt;/b&gt;. 게임 클라이언트가 프록시 풀의 하위 집합에 대한 가시성만 가질 수 있어 공격에 노출될 수 있는 영역이 제한됩니다.&lt;/li&gt;&lt;li&gt;&lt;b&gt;확장성 강화&lt;/b&gt;. 통신 프로토콜, 측정항목, 통신 보안, 액세스 제어를 프록시로 이전할 수 있어 &lt;b&gt;단일 프로세스를 분할&lt;/b&gt;하기 시작했습니다. 이로 인해 게임 서버의 처리 루프에서 게임 이외의 컴퓨팅이 제거됩니다.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;그 결과, 성능을 고려함은 물론 악의적인 행위자에 대비한 부하 분산을 위해 프록시를 독립적으로 확장할 수 있어 전체 &lt;b&gt;시스템의 복원력이 향상&lt;/b&gt;&lt;b&gt;됩니다&lt;/b&gt;.&lt;/p&gt;&lt;h3&gt;Quilkin 소개: Game Servers용 UDP 프록시&lt;/h3&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;&lt;a href="https://www.embark-studios.com/" target="_blank"&gt;Embark Studios&lt;/a&gt;와 &lt;a href="https://cloud.google.com/gaming"&gt;Google Cloud&lt;/a&gt;는 공동으로 Quilkin을 빌드하여 표준 오픈소스 솔루션을 제공하고 있습니다.  스톡홀름에 위치한 Embark Studios는 업계 경력자들로 구성된 (비교적) 신생 스튜디오입니다.  Embark Studios는 대규모 실시간 멀티플레이어 게임 분야에서 많은 경험을 쌓아 Quilkin을 공동 개발하기에 완벽한 파트너였습니다.  &lt;/p&gt;&lt;p&gt;Quilkin은 대규모 멀티플레이어 전용 게임 서버 배포에 사용하여 보안, 액세스 제어, 원격 분석 데이터, 측정항목 등을 지원하도록 특별히 설계된 투명하지 않은 오픈소스 UDP 프록시입니다.&lt;/p&gt;&lt;p&gt;Quilkin은 게임 클라이언트의 백그라운드는 물론 전용 게임 서버 앞에 사용되도록 설계되며 다음과 같은 주요 이점을 제공합니다.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;난독화&lt;/b&gt;.  UDP 데이터가 &lt;b&gt;투명하지 않은 프록시&lt;/b&gt;로 처리되어 게임 아키텍처의 내부 상태가 악의적인 행위자에게 잘 드러나지 않습니다.&lt;/li&gt;&lt;li&gt;&lt;b&gt;즉시 사용 가능한 측정항목&lt;/b&gt;.  UDP 패킷 트래픽 및 통신 측정항목이 지원됩니다.&lt;/li&gt;&lt;li&gt;&lt;b&gt;가시성&lt;/b&gt;.  &lt;b&gt;구성 가능한 처리 필터 집합&lt;/b&gt;을 라우팅, 액세스 제어, 비율 제한 등에 적용할 수 있습니다.&lt;/li&gt;&lt;li&gt;&lt;b&gt;유연성&lt;/b&gt;. 사용자가 원하는 시스템 통합 수준 또는 빌드할 커스텀 처리 필터에 따라 &lt;b&gt;클라이언트/서버 변경이 필요 없는&lt;/b&gt; 독립 실행형 바이너리로 활용하거나 &lt;b&gt;Rust 라이브러리&lt;/b&gt;로 사용할 수 있습니다.&lt;/li&gt;&lt;li&gt;&lt;b&gt;호환성&lt;/b&gt;.  필요한 경우 &lt;a href="https://docs.rust-embedded.org/book/interoperability/rust-with-c.html" target="_blank"&gt;Rust FFI&lt;/a&gt;를 통해 &lt;b&gt;기존 C/C++&lt;/b&gt; 코드베이스와 통합할 수 있습니다.&lt;/li&gt;&lt;li&gt;&lt;b&gt;온보딩&lt;/b&gt;.  &lt;b&gt;여러 통합 패턴&lt;/b&gt;이 지원되어 아키텍처 및 기존 플랫폼에 적합한 통합 수준을 선택할 수 있습니다.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;hr/&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;지금까지는 자체 독점 기술을 구축할 리소스를 갖춘 대형 게임 스튜디오에서만 이러한 기능을 사용할 수 있었습니다. &lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;Embark Studios는 게임 업계 종사자 모두에게 공평한 경쟁의 장을 마련하는 것이 중요하고 가치 있는 시도라고 생각합니다. Google Cloud와 협력하여 이 프로젝트를 시작한 이유가 바로 여기에 있습니다.&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;Embark는 오픈소스가 게임 산업의 미래이며 기업 간 개방적인 협업이 앞으로 나아가야 할 방향이라고 생각합니다. 그래야 규모를 불문하고 모든 스튜디오가 동일한 수준의 기술 역량을 갖출 수 있습니다.&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;루나 듀클로스, Embark Studios 기술 책임자&lt;/i&gt;&lt;/p&gt;&lt;hr/&gt;&lt;p&gt;&lt;i&gt;Google Cloud의 게임용 오픈소스 솔루션 포트폴리오에 최근 Quilkin이 추가되었다는 소식을 알려드리게 되어 기쁩니다.  Quilkin은 게임 서버용 &lt;a href="https://agones.dev" target="_blank"&gt;Agones&lt;/a&gt;, 랜덤 대결에 사용되는 &lt;a href="https://open-match.dev" target="_blank"&gt;Open Match&lt;/a&gt;, 지속성을 위한 &lt;a href="https://github.com/googleforgames/open-saves" target="_blank"&gt;Open Saves&lt;/a&gt;와 같은 기존 OSS 솔루션을 보완해 줍니다.  이러한 솔루션은 개방적인 통합 게임 생태계에서 함께 작동하도록 설계되었습니다.  Ubisoft, Unity, 2K Games에 이어 최근에는 Embark Studios와 게임 분야에서 오픈소스 협업을 진행하게 된 것을 자랑스럽게 생각합니다.  Google Cloud는 앞으로도 업계 및 커뮤니티의 파트너들과 긴밀히 협력하며 세계 최대 규모의 게임을 지원하는 세계적 수준의 솔루션을 제공할 것입니다.&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;롭 마틴, Google Cloud for Games 수석 설계자&lt;/i&gt;&lt;/p&gt;&lt;hr/&gt;&lt;h3&gt;Quilkin 시작하기&lt;/h3&gt;&lt;p&gt;Quilkin은 위에 설명한 고급 배포 시나리오를 지원할 수 있지만 Quilkin을 시작하는 가장 쉬운 방법은 기존 전용 게임 서버의 사이드카로 배포하는 것입니다. 처음에는 몇 가지 이점이 제한적으로 제공될 수 있지만 UDP 통신에 대한 측정항목 및 원격 분석 데이터를 쉽게 얻을 수 있고 진입 장벽이 낮으며 시간이 지나면서 확장이 가능한 방법입니다.&lt;/p&gt;&lt;/div&gt;
&lt;div class="block-image_full_width"&gt;






  
    &lt;div class="article-module h-c-page"&gt;
      &lt;div class="h-c-grid"&gt;
  

    &lt;figure class="article-image--large
      
      
        h-c-grid__col
        h-c-grid__col--6 h-c-grid__col--offset-3
        
        
      "
      &gt;

      
      
        
        &lt;img
            src="https://storage.googleapis.com/gweb-cloudblog-publish/images/3_Quilkin.max-1000x1000.jpg"
        
          alt="3 Quilkin.jpg"&gt;
        
        &lt;/a&gt;
      
    &lt;/figure&gt;

  
      &lt;/div&gt;
    &lt;/div&gt;
  




&lt;/div&gt;
&lt;div class="block-paragraph"&gt;&lt;p&gt;Quilkin은 바이너리 및 컨테이너 이미지로 출시되지만 특정 호스팅 플랫폼에 의지하지 않으므로 이 예시에서는 &lt;a href="https://agones.dev" target="_blank"&gt;Agones&lt;/a&gt; 및 &lt;a href="https://cloud.google.com/game-servers"&gt;Google Cloud Game Servers&lt;/a&gt;를 게임 서버 호스팅 플랫폼으로 사용합니다.&lt;/p&gt;먼저 &lt;a href="https://kubernetes.io/docs/concepts/configuration/configmap/" target="_blank"&gt;ConfigMap&lt;/a&gt;을 만들어 Quilkin의 정적 구성에 대한 yaml을 저장합니다. 그러면 포트 26001에 대한 연결을 수락하고 포트 26000의 &lt;a href="https://xonotic.org/" target="_blank"&gt;Xonotic&lt;/a&gt;(오픈소스 멀티플레이어 FPS 게임) 전용 게임 서버로 라우팅합니다.&lt;/div&gt;
&lt;div class="block-code"&gt;&lt;dl&gt;
    &lt;dt&gt;code_block&lt;/dt&gt;
    &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;code&amp;#x27;, &amp;#x27;apiVersion: v1\r\nkind: ConfigMap\r\nmetadata:\r\n  name: quilkin-config\r\ndata:\r\n  quilkin.yaml: |  # quilkin configuration\r\n    version: v1alpha1\r\n    proxy:\r\n      port: 26001\r\n    static:\r\n      endpoints:\r\n        - address: 127.0.0.1:26000&amp;#x27;), (&amp;#x27;language&amp;#x27;, &amp;#x27;&amp;#x27;), (&amp;#x27;caption&amp;#x27;, &amp;lt;wagtail.rich_text.RichText object at 0x7f82bcfce8b0&amp;gt;)])]&amp;gt;&lt;/dd&gt;
&lt;/dl&gt;&lt;/div&gt;
&lt;div class="block-paragraph"&gt;&lt;p&gt;그런 다음 Agones에서 제공하는 Xonotic 전용 게임 서버에 대한 예시 컨테이너를 가져와 다음과 같이 게임 서버의 &lt;a href="https://agones.dev/site/docs/getting-started/create-fleet/" target="_blank"&gt;Agones Fleet&lt;/a&gt;에서 Quilkin을 각 전용 게임 서버와 함께 사이드카로 실행합니다.&lt;/p&gt;&lt;/div&gt;
&lt;div class="block-code"&gt;&lt;dl&gt;
    &lt;dt&gt;code_block&lt;/dt&gt;
    &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;code&amp;#x27;, &amp;#x27;apiVersion: &amp;quot;agones.dev/v1&amp;quot;\r\nkind: Fleet\r\nmetadata:\r\n  name: xonotic-sidecar\r\nspec:\r\n  replicas: 2\r\n  template:\r\n    spec:\r\n      container: xonotic\r\n      ports:\r\n        - name: default\r\n          containerPort: 26001\r\n          container: quilkin\r\n      health:\r\n        initialDelaySeconds: 30\r\n        periodSeconds: 60\r\n      template:\r\n        spec:\r\n          containers:\r\n            - name: xonotic\r\n              image: gcr.io/agones-images/xonotic-example:0.8\r\n            - name: quilkin  # quilkin sidecar\r\n              image: us-docker.pkg.dev/quilkin/release/quilkin:0.1.0\r\n              volumeMounts:\r\n                - name: config\r\n                  mountPath: &amp;quot;/etc/quilkin&amp;quot;\r\n              livenessProbe:\r\n                httpGet:\r\n                  path: /live\r\n                  port: 9091\r\n                initialDelaySeconds: 3\r\n                periodSeconds: 2\r\n          volumes:\r\n            - name: config\r\n              configMap:\r\n                name: quilkin-config&amp;#x27;), (&amp;#x27;language&amp;#x27;, &amp;#x27;&amp;#x27;), (&amp;#x27;caption&amp;#x27;, &amp;lt;wagtail.rich_text.RichText object at 0x7f82bcfcea00&amp;gt;)])]&amp;gt;&lt;/dd&gt;
&lt;/dl&gt;&lt;/div&gt;
&lt;div class="block-paragraph"&gt;&lt;p&gt;적용한 후 실행 중인 GameServers의 클러스터를 쿼리하면 Quilkin을 제외하고는 모든 것이 동일하게 유지되어 있습니다. 시스템의 다른 부분에서는 트래픽을 가로챈다는 사실을 알아야 할 필요가 없으며 클라이언트나 서버 코드를 조정하지 않고도 Quilkin의 기능을 자유롭게 활용할 수 있습니다.&lt;/p&gt;&lt;/div&gt;
&lt;div class="block-code"&gt;&lt;dl&gt;
    &lt;dt&gt;code_block&lt;/dt&gt;
    &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;code&amp;#x27;, &amp;#x27;$ kubectl get gameservers\r\nNAME                          STATE   ADDRESS         PORT   NODE           AGE\r\nxonotic-sidecar-gdpgn-2pfkc   Ready   34.95.106.201   7929   gke-0f7d8adc   25m\r\nxonotic-sidecar-gdpgn-c8bds   Ready   34.95.106.201   7028   gke-0f7d8adc   25m&amp;#x27;), (&amp;#x27;language&amp;#x27;, &amp;#x27;&amp;#x27;), (&amp;#x27;caption&amp;#x27;, &amp;lt;wagtail.rich_text.RichText object at 0x7f82bcfced60&amp;gt;)])]&amp;gt;&lt;/dd&gt;
&lt;/dl&gt;&lt;/div&gt;
&lt;div class="block-paragraph"&gt;&lt;p&gt;관심이 있으시다면 &lt;a href="https://github.com/googleforgames/quilkin/blob/release-0.1.0/docs/quickstart-agones-xonotic.md" target="_blank"&gt;둘러보기&lt;/a&gt;를 살펴보세요. 둘러보기에서는 이 시나리오를 설명한 후 프로그램 변경 없이 UDP 패킷을 게임 클라이언트에서 서버로 압축하는 과정을 다룹니다.&lt;/p&gt;&lt;p&gt;다만 여기서 다루는 내용은 일부에 불과합니다. Quilkin에는 &lt;a href="https://www.envoyproxy.io/docs/envoy/latest/api-docs/xds_protocol" target="_blank"&gt;xDS&lt;/a&gt; 준수 Admin API, UDP 패킷을 조작하고 라우팅하는 여러 &lt;a href="https://github.com/googleforgames/quilkin/blob/release-0.1.0/docs/extensions/filters/filters.md#built-in-filters-" target="_blank"&gt;기존 필터&lt;/a&gt; 등도 포함되어 있습니다.&lt;/p&gt;&lt;h3&gt;Quilkin의 미래&lt;/h3&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;Quilkin은 아직 초기 단계로서 0.1.0 알파 버전이 출시되었을 뿐이지만 토대를 마련했다는 점에서 의의가 있습니다.&lt;/p&gt;&lt;p&gt;로드맵에 향상된 측정항목 및 원격 분석, 새로운 필터 및 필터 유형 등 다양한 기능이 계획되어 있습니다.&lt;/p&gt;&lt;p&gt;이 출시 버전을 사용해보고 싶다면 &lt;a href="https://github.com/googleforgames/quilkin/releases" target="_blank"&gt;출시 페이지&lt;/a&gt;에서 바이너리 또는 컨테이너 이미지를 얻을 수 있습니다. &lt;a href="https://github.com/googleforgames/quilkin/blob/release-0.1.0/docs/quickstart-netcat.md" target="_blank"&gt;빠른 시작&lt;/a&gt;을 단계별로 수행하고 전용 게임 서버의 여러 &lt;a href="https://github.com/googleforgames/quilkin/blob/release-0.1.0/docs/integrations.md" target="_blank"&gt;통합 옵션&lt;/a&gt;을 검토해 보세요.&lt;/p&gt;&lt;p&gt;프로젝트에 참여하려면 다음 안내를 따르세요.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="https://github.com/googleforgames/quilkin" target="_blank"&gt;GitHub 저장소&lt;/a&gt; 확인&lt;/li&gt;&lt;li&gt;&lt;a href="https://discord.gg/mfBNZjBDnc" target="_blank"&gt;Discord 커뮤니티&lt;/a&gt; 참여&lt;/li&gt;&lt;li&gt;&lt;a href="https://groups.google.com/forum/#!forum/quilkin-discuss" target="_blank"&gt;quilkin-discuss&lt;/a&gt; 메일링 리스트 등록&lt;/li&gt;&lt;li&gt;&lt;a href="https://twitter.com/quilkindev" target="_blank"&gt;Twitter&lt;/a&gt;에서 팔로우&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;Embark Studios에서도 &lt;a href="https://medium.com/embarkstudios/say-hi-to-quilkin-an-open-source-udp-proxy-88577c795204" target="_blank"&gt;공지 블로그 게시물&lt;/a&gt;을 통해 자체 프로덕션 게임 백엔드 인프라에 대한 계획과 Quilkin 사용이 적합한 사례를 자세히 다루고 있습니다.&lt;/p&gt;&lt;p&gt;Google Cloud와 Embark Studios에서 이 프로젝트에 참여해 주신 모든 분들께 감사 드립니다. Quilkin의 미래가 매우 기대됩니다.&lt;/p&gt;&lt;/div&gt;</description><pubDate>Wed, 29 Sep 2021 00:00:00 +0000</pubDate><guid>https://cloud.google.com/blog/ko/topics/gaming/introducing-quilkin/</guid><category>Media &amp; Entertainment</category><category>Google Cloud</category><category>Gaming</category><og xmlns:og="http://ogp.me/ns#"><type>article</type><title>Quilkin 소개: 게임 서버 통신을 위해 빌드된 오픈소스 UDP 프록시</title><description></description><site_name>Google</site_name><url>https://cloud.google.com/blog/ko/topics/gaming/introducing-quilkin/</url></og><author xmlns:author="http://www.w3.org/2005/Atom"><name>Mark Mandel</name><title>Developer Advocate</title><department></department><company></company></author></item><item><title>Open Saves 소개: 게임용 오픈소스 클라우드 기반 스토리지</title><link>https://cloud.google.com/blog/ko/products/storage-data-transfer/introducing-open-saves/</link><description>&lt;div class="block-paragraph"&gt;&lt;p&gt;  * 본 아티클의 원문은 2021년 4월 30일 Google Cloud 블로그(&lt;a href="https://cloud.google.com/blog/products/media-entertainment/introducing-open-saves"&gt;영문&lt;/a&gt;)에 게재되었습니다. &lt;br/&gt;&lt;/p&gt;&lt;p&gt;오늘날 게이머가 지속적인 스토리라인의 일부가 되는 방식으로 참여할 수 있는 풍부한 몰입형 환경을 제공하는 게임이 많습니다. 이러한 지속적인 경험을 선사하기 위해서는 게임 데이터가 게이머의 요구에 맞게 확장될 수 있도록 수많은 스토리지 기술이 필요합니다. 게임 개발자는 저장, 인벤토리, 패치, 다시보기와 같은 다양한 유형의 데이터를 저장해야 할 뿐만 아니라 스토리지 시스템의 고성능, 가용성, 확장성, 비용 효율성을 유지해야 합니다.&lt;/p&gt;&lt;p&gt;Google이 &lt;a href="https://www.2k.com/en-US/" target="_blank"&gt;2K&lt;/a&gt;와 협력하여 개발한 Google Cloud 기반의 Open Saves는 여러 스토리지 백엔드에서 사용할 수 있도록 특별히 제작된 새로운 단일 인터페이스입니다. 이제 개발팀은 &lt;a href="https://cloud.google.com/storage"&gt;Cloud Storage&lt;/a&gt;, &lt;a href="https://cloud.google.com/memorystore"&gt;Memorystore&lt;/a&gt; 또는 &lt;a href="https://cloud.google.com/firestore/"&gt;Firestore&lt;/a&gt; 등 사용할 스토리지 솔루션에 대한 기술적 결정을 내리지 않고도 게임 데이터를 저장할 수 있습니다. &lt;/p&gt;&lt;p&gt;“Open Saves는 심층적인 업계 지식과 Google의 규모가 모두 필요한 게임 솔루션 분야에서 최고의 개발자와 협업하려는 당사의 의지를 잘 보여주는 결과물입니다."라고 2K IT 및 보안 부문의 조 가르폴라 부사장은 말했으며 "Google Cloud와의 지속적인 협업을 기대합니다.”라고 덧붙였습니다. &lt;/p&gt;&lt;p&gt;게임 개발팀은 최적의 백엔드 스토리지 솔루션에 대한 걱정 없이 Open Saves에서 게임 데이터를 저장할 수 있으며 운영팀 역시 필요한 확장성과 스토리지 옵션에 집중할 수 있습니다. 실제 작동 방식은 다음과 같습니다.&lt;/p&gt;&lt;/div&gt;
&lt;div class="block-image_full_width"&gt;






  
    &lt;div class="article-module h-c-page"&gt;
      &lt;div class="h-c-grid"&gt;
  

    &lt;figure class="article-image--large
      
      
        h-c-grid__col
        h-c-grid__col--6 h-c-grid__col--offset-3
        
        
      "
      &gt;

      
      
        &lt;a href="https://storage.googleapis.com/gweb-cloudblog-publish/images/open_saves_on_gcp.max-2800x2800.jpg" rel="external" target="_blank"&gt;
      
        
        &lt;img
            src="https://storage.googleapis.com/gweb-cloudblog-publish/images/open_saves_on_gcp.max-1000x1000.jpg"
        
          alt="open saves on gcp.jpg"&gt;
        
        &lt;/a&gt;
      
    &lt;/figure&gt;

  
      &lt;/div&gt;
    &lt;/div&gt;
  




&lt;/div&gt;
&lt;div class="block-paragraph"&gt;&lt;p&gt;게임 개발자는 Open Saves를 사용하여 다음과 같은 특성의 클라우드 기반 게임 스토리지 시스템을 실행할 수 있습니다.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;단순성&lt;/b&gt;: Open Saves는 메타데이터, 구조화된 객체, 구조화되지 않은 객체의 모든 작업에 사용할 수 있는 적절하게 정의된 통합 gRPC 엔드포인트를 제공합니다.&lt;/li&gt;&lt;li&gt;&lt;b&gt;속도&lt;/b&gt;: Open Saves는 기본 제공되는 캐싱 시스템을 통해 데이터 배치를 빈도 및 데이터 크기에 따라 최적화하여 소형 바이너리 객체에 대해서는 지연 시간을 단축하고 대형 객체에 대해서는 높은 처리량을 달성합니다.&lt;/li&gt;&lt;li&gt;&lt;b&gt;확장성&lt;/b&gt;: Open Saves API 서버는 &lt;a href="https://cloud.google.com/kubernetes-engine"&gt;Google Kubernetes Engine&lt;/a&gt; 또는 &lt;a href="https://cloud.google.com/run"&gt;Cloud Run&lt;/a&gt;에서 실행할 수 있습니다. 두 플랫폼 모두 초당 수십만 개의 요청을 처리하도록 확장할 수 있습니다. 또한 Open Saves는 &lt;a href="https://cloud.google.com/firestore"&gt;Firestore&lt;/a&gt; 및 &lt;a href="https://cloud.google.com/storage"&gt;Cloud Storage&lt;/a&gt;에 데이터를 저장하며 수백 기가바이트의 데이터와 초당 최대 수백만 개의 요청을 처리할 수 있습니다.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;Open Saves는 확장성을 염두에 두고 설계되었으며 온프레미스부터 클라우드 또는 하이브리드에 이르는 모든 인프라에서 실행되어 모바일, 콘솔, 멀티플레이어, 싱글플레이어 등 어떤 게임과도 통합될 수 있습니다. 이 서버는 Go로 작성되었지만 API를 gRPC로 정의하기 때문에 다양한 프로그래밍 언어를 사용해 클라이언트나 서버에서 연결할 수 있습니다.&lt;/p&gt;&lt;p&gt;다음 코드에서 볼 수 있듯이 Open Saves에 쓰기 및 읽기가 매우 간단합니다.&lt;/p&gt;&lt;/div&gt;
&lt;div class="block-code"&gt;&lt;dl&gt;
    &lt;dt&gt;code_block&lt;/dt&gt;
    &lt;dd&gt;&amp;lt;ListValue: [StructValue([(&amp;#x27;code&amp;#x27;, &amp;#x27;// To write\r\n              record := &amp;amp;pb.Record{\r\n                            Key:      uuid.New().String(),\r\n                            Tags:     []string{&amp;quot;tag1&amp;quot;, &amp;quot;tag2&amp;quot;},\r\n                            OwnerId:  &amp;quot;owner&amp;quot;,\r\n              }\r\n              createReq := &amp;amp;pb.CreateRecordRequest{\r\n                            StoreKey: storeKey,\r\n                            Record:   record,\r\n              }\r\n              _, err := client.CreateRecord(ctx, createReq)\r\n              if err != nil {\r\n                            t.Fatalf(&amp;quot;CreateRecord failed: %v&amp;quot;, err)\r\n              }\r\n \r\n              // To read\r\n              getReq := &amp;amp;pb.GetRecordRequest{StoreKey: storeKey, Key: recordKey}\r\n              response, err := client.GetRecord(ctx, getReq)\r\n              if err != nil {\r\n                            t.Errorf(&amp;quot;GetRecord failed: %v&amp;quot;, err)\r\n              }&amp;#x27;), (&amp;#x27;language&amp;#x27;, &amp;#x27;&amp;#x27;), (&amp;#x27;caption&amp;#x27;, &amp;lt;wagtail.rich_text.RichText object at 0x7f82bd705b50&amp;gt;)])]&amp;gt;&lt;/dd&gt;
&lt;/dl&gt;&lt;/div&gt;
&lt;div class="block-paragraph"&gt;&lt;p&gt;Google은 2K Games와 협업하여 Open Saves를 활발하게 개발 중이며 &lt;a href="https://github.com/googleforgames/open-saves/" target="_blank"&gt;GitHub&lt;/a&gt;에서 여러분의 참여를 기다리고 있습니다. 참여하는 방법에는 몇 가지가 있습니다.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Open Saves 서비스 &lt;a href="https://github.com/googleforgames/open-saves/blob/main/docs/deploying.md" target="_blank"&gt;설치 및 배포&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="https://github.com/googleforgames/open-saves/blob/main/docs/reference.md" target="_blank"&gt;API 참조&lt;/a&gt; 확인&lt;/li&gt;&lt;li&gt;&lt;a href="https://github.com/googleforgames/open-saves/blob/main/docs/development.md" target="_blank"&gt;개발 가이드&lt;/a&gt;를 읽고 &lt;a href="https://github.com/googleforgames/open-saves/blob/main/docs/contributing.md" target="_blank"&gt;참여&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="https://groups.google.com/g/open-saves-discuss" target="_blank"&gt;open-saves-discuss&lt;/a&gt; 메일링 리스트 가입&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;&lt;/div&gt;</description><pubDate>Mon, 02 Aug 2021 02:52:00 +0000</pubDate><guid>https://cloud.google.com/blog/ko/products/storage-data-transfer/introducing-open-saves/</guid><category>Media &amp; Entertainment</category><category>Google Cloud</category><category>Gaming</category><category>Open Source</category><category>Storage &amp; Data Transfer</category><og xmlns:og="http://ogp.me/ns#"><type>article</type><title>Open Saves 소개: 게임용 오픈소스 클라우드 기반 스토리지</title><description></description><site_name>Google</site_name><url>https://cloud.google.com/blog/ko/products/storage-data-transfer/introducing-open-saves/</url></og><author xmlns:author="http://www.w3.org/2005/Atom"><name>Rob Martin</name><title>Chief Architect, Google Cloud for Games</title><department></department><company></company></author><author xmlns:author="http://www.w3.org/2005/Atom"><name>Emma Haruka Iwao</name><title>Developer Advocate</title><department></department><company></company></author></item></channel></rss>