AO 테스트넷은 6개월 동안 운영되어 왔으며 기존 EVM 생태계의 많은 개발자를 끌어들였습니다. 개발 과정에서 많은 개발자가 여전히 이더넷 프로그래밍 사고를 사용하지만 AO 프로세스는 더 저렴한 스토리지와 병렬 실행으로 컴퓨터 프로세스와 비슷하며, 플레이어 캐릭터와 게임 장비가 독립된 프로세스로 계속 존재할 수 있어 플레이어가 오프라인 상태가 되거나 게임이 종료되어도 캐릭터와 장비가 모든 기록을 유지하고 계속 실행되는 등 AO 프로그래밍 패러다임은 게임 개발에서 독특한 이점을 보여주었습니다. 플레이어가 오프라인 상태가 되거나 게임 실행이 중지되더라도 캐릭터와 장비는 모든 기록을 유지하며 계속 실행됩니다. 또한 AO 시스템의 독립적인 프로세스 상태와 병렬 컴퓨팅은 상태 폭증과 트랜잭션 정체를 없애고, 탄력적으로 확장 가능한 스토리지 및 컴퓨팅 리소스를 통해 게임 개발자는 서버 운영 및 유지 관리 문제에 대해 걱정할 필요가 없습니다. AO 생태계가 더욱 풍부해지고 더 많은 개발자가 참여해야 그 잠재력을 실현할 수 있습니다.
AO 테스트 네트워크는 반년 동안 운영되어 왔으며, 점점 더 많은 애플리케이션과 활발한 생태계가 형성되고 있습니다. 저를 포함한 많은 개발자들이 원래 EVM 에코시스템에 속해 있던 개발자들이 AO를 사용해 제품을 속속 출시하고 있습니다. 개발 과정에서 많은 개발자들이 여전히 이더리움의 프로그래밍 사고와 습관에 익숙해져 있고, 프로세스를 스마트 컨트랙트로 직접 사용하고 있습니다. 물론 토큰 청사진, 원자 자산과 같은 이러한 접근 방식에는 잘못된 것이 없으며 이러한 구현은 기본적으로 ERC-20 및 ERC-721에 직접 대응합니다. AO의 대부분의 프로세스 코드는 스마트 계약과 매우 유사하다고 할 수 있습니다.
AO 백서에서 AO의 정의는 액터 오리엔티드 머신으로 액터, 즉 프로세스가 시스템의 기본 단위입니다. 프로세스는 스마트 컨트랙트라기보다는 컴퓨터 프로세스와 비슷하며, 저장 공간이 저렴하고 병렬 실행이 가능합니다. 프로세스를 시작하는 데 드는 비용이 높지 않으며, 즉시 사용하고 폐기할 수도 있습니다. 저렴한 비용과 병렬성은 AO 프로그래밍 패러다임(액터 지향 프로그래밍)을 스마트 컨트랙트와는 상당히 다르게 만듭니다. 여기서는 게임 시나리오를 확장하여 AO 프로그래밍 패러다임이 어떻게 적용되는지 살펴보고자 합니다.
AO 게임을 플레이하는 새로운 방법
우리가 월드 오브 워크래프트 같은 멀티플레이어 온라인 RPG에 있다고 상상해 봅시다(AO World라고 부르죠). 플레이어가 조작하는 각 캐릭터는 하나의 프로세스이며, 플레이어는 게임 세계에서 이 프로세스를 조작하여 몬스터와 싸우고, 장비를 업그레이드하고, 장비를 사고팔고, 서로 경쟁할 수 있습니다. 플레이어가 오프라인 상태가 되면 월드 오브 워크래프트는 캐릭터의 현재 위치와 상태를 저장하고 캐릭터가 사용 중인 자원을 서버의 메모리에서 해제합니다. 다른 플레이어의 눈에는 캐릭터가 투명해지고 시스템이 친구에게 오프라인 상태가 되라는 메시지를 표시하는 것으로 보입니다. 하지만 AO 세계에서는 플레이어가 오프라인 상태가 되어도 프로세스는 여전히 존재하며 해제되지 않습니다. 물론 코드에 로직을 추가하여 프로세스가 수신 메시지 처리를 거부하여 '의사 오프라인'으로 만들 수도 있습니다. 하지만 더 나은 접근 방식은 프로세스에 "자동 조종" 모드를 추가하여 캐릭터가 플레이어가 AFK 상태인 동안에도 몬스터와 싸우고, 업그레이드하고, 돈을 벌고, 장비를 사고 팔 수 있도록 하여 플레이어에서 NPC로 전환하는 것입니다. 이 '자동 조종' 코드는 플레이어가 직접 작성할 수 있으며, 심지어 AI로 구동하여 실제 플레이어와 유사한 복잡한 동작을 구현할 수도 있습니다. 이러한 설계 덕분에 플레이어의 이탈로 인한 유령 도시 현상이 발생하지 않으며, AO 월드가 항상 활기차게 유지됩니다. 더욱 재미있는 점은 플레이어가 월드 오브 워크래프트에서처럼 사용자 이름과 비밀번호를 서로에게 공개할 염려 없이 캐릭터를 대여할 수 있다는 것입니다.
다음으로 장비가 있는데, 실제 물리적 세계와 마찬가지로 AO 세계에서도 별도의 과정을 거칠 수 있습니다. 캐릭터 A의 손에 든 철검과 캐릭터 B의 손에 든 철검은 처음 시전했을 때는 동일했지만(시전 시점을 제외하면), 시간이 지나면서 철검의 손이 바뀌고 처치 기록이 쌓이면서 점점 다른 과정을 거치게 됩니다. 철검 A가 닭 3마리를 죽이고 철검 B가 용 한 마리를 죽였다면 철검 B는 '인간적 가치'가 있는 것입니다. 물론 실제로 용의 피가 들어간 검의 속성을 증가시킬 수도 있습니다. AO 프로그래밍 패러다임은 기존 게임이나 연쇄 게임에서는 불가능했던 각 장비의 이력을 완벽하게 문서화할 수 있습니다. 월드 오브 워크래프트에서는 플레이어 커뮤니티가 1레벨 다크 엘프가 다르나서스(엘프의 출생지)에서 스톰윈드(인간의 출생지)까지 달리는 도전 과제를 고안하는 것이 일반적이며, 부정 행위가 발생하지 않도록 전체 과정이 글로벌 비디오 피드를 통해 실시간으로 스트리밍됩니다. AO 세계에서는 전체 히스토리를 속일 수 없기 때문에 동일한 도전을 직접 수행할 수 있으며, 이를 수행하는 것 자체가 검증이 됩니다. 물론 재미를 위해 모든 과정을 동영상으로 촬영하는 것이 좋습니다.
AO는 어떻게 작동하나요?
체인 플레이의 개발자들은 이쯤에서 궁금해할 것입니다. 수많은 플레이어와 장비가 각기 다른 프로세스에 참여하면 AO 세계의 상태가 폭발적으로 증가할까요? 동시 온라인 플레이어가 늘어나면 AO 월드가 트랜잭션으로 혼잡해지지 않을까요?
제 대답은 '아니오'이며, AO 월드는 여전히 원활하게 운영될 것입니다. 먼저 상태 폭발 문제를 살펴보겠습니다. EVM의 글로벌 상태와 달리 각 프로세스의 상태는 독립적이며 글로벌 상태가 없으므로 모든 AO의 데이터를 저장하기 위해 물리적 머신이 필요하지 않으며, AO의 컴퓨팅 자원은 수평적으로 탄력적이고 확장 가능한 CU에 의해 동적으로 할당될 수 있습니다. 개발자는 게임 로직에만 집중하면 되고 지루한 서버 운영 및 유지 관리 문제에 신경 쓸 필요가 없습니다.
트랜잭션 혼잡 문제와 관련하여, EVM은 직렬 컴퓨팅이기 때문에 어떤 레이어 2 기술을 사용하여 가속화하더라도 처리 속도에 항상 한계가 있습니다. 철검 A가 닭을 자르고 철검 B가 용을 자르면 두 이벤트가 차례로 발생해야 하는데, 이 두 이벤트가 동시에 발생해야 합니다. 반면에 AO는 철검 A, 치킨, 철검 B, 이블 드래곤,이 네 가지 프로세스는 공유 메모리가없고 세계 시계가 필요하지 않으며 철검 A의 해킹 이벤트와 철검 B의 해킹 이벤트는 완전히 병렬로 계산할 수 있습니다. 따라서 AO는 아키텍처에서 트랜잭션 정체의 문제가 없습니다.
네버 스톱 + 자유로운 조합
기존 게임에서는 게임이 수익을 내지 못하거나 저작권이 만료되면 게임 운영사가 서비스를 중단합니다. 서비스 중단을 극적으로 표현하기 위해 무적의 보스가 모든 플레이어를 죽이는 전멸 이벤트를 만들기도 합니다. AO에서는 게임 캐릭터와 장비가 한 번 개발되면 불멸(적어도 AO가 존재하는 한)이며 항상 온라인 상태입니다. 개발자가 지속적으로 유지하지 않기로 결정하더라도 다른 개발자가 원활하게 인수할 수 있습니다. 개발자가 지속적으로 유지하지 않기로 결정하더라도 다른 개발자가 원활하게 이어받을 수 있습니다. 개발자가 처음부터 DLC까지 게임을 공개하더라도 플레이어는 자신만의 캐릭터와 무기를 만들고 협업하여 전체 게임을 함께 만들 수 있습니다.
AO의 모든 프로세스가 서로 통신한다는 것은 무엇을 의미하나요? 모든 게임을 포함하여 AO의 모든 앱은 본질적으로 상호 운용이 가능하다는 뜻입니다. 플레이어 A가 모노폴리 게임에서 철광석 공장을 구입하고, 생산한 철광석을 가지고 AO 세계에서 철검을 주조한 다음, 마리오 세계로 달려가 철검으로 버섯 몬스터를 찌른다고 가정해 봅시다. 영화 '플레이어 원'에서 건담과 울트라맨이 동시에 등장했던 것처럼 얼마든지 이상한 조합을 만들어낼 수 있습니다. 기존 게임 개발자는 스톡 영상 라이브러리를 샅샅이 뒤져 스킨을 교체하는 경우가 많습니다. 아트 리소스 오버헤드가 전체 게임의 절반을 넘는 경우가 많습니다. AO 게임 세계에서는 시간이 지날수록 잘 만들어진 머티리얼과 아이템이 점점 더 많아지고, 후속 개발자가 점점 더 쉽게 시작할 수 있어 결국에는 레고 조립처럼 쉬워지고 누구나 게임을 시작할 수 있게 됩니다.
요약
요약하자면, AO는 게임에서 캐릭터와 소품을 절대 제거할 수 없고 파괴할 수도 없으며 그 이력이 유지된다는 점에서 독특한 장점을 가지고 있습니다. 모든 게임 리소스는 완전히 순환되고 재사용 가능성이 높을수록 개발이 더 쉬워집니다.AO의 스토리지 및 컴퓨팅 리소스는 탄력적으로 확장 할 수 있으며 서버 구성 및 관리에 대해 걱정할 필요가 없습니다.프로세스 병렬 처리, 혼잡 없음. 이러한 기능 덕분에 AO는 게임 개발자에게 행복한 공간입니다. 하지만 이 목표를 달성하기 위해서는 생태계를 계속 풍부하게 만들어야 하며, 게임 개발자들이 계속 참여하여 함께 만들어가야 합니다."