2008-08-21 5 views
24

Project Darkstar은 지난 달 밤 뉴욕에있는 Google 지사에서 만나는 JavaSIG 월간 주제의 주제였습니다. 잘 모르는 사람들 (아마 모든 사람)에게, Project Darkstar는 다량의 멀티 플레이어 온라인 게임을위한 프레임 워크로서 모든 "어려운 일"을 처리하려고 시도합니다. 기본 개념은 모든 작업을 작은 작업으로 나누는 방식으로 게임 서버 논리를 작성하는 것입니다. 이러한 작업을 Project Darkstar 프레임 워크에 전달합니다.이 프레임 워크는 클러스터의 특정 노드로의 배포, 동시성 문제 및 마지막으로 데이터 지속성을 처리합니다.Project Darkstar가 사실적입니까?

분명히 이런 종류의 일은 비디오 게임이 엔터프라이즈 애플리케이션보다 훨씬 다른 문제입니다. 이 강연을 한 Jim Waldo는 MMO 게임은 DB 읽기/쓰기 비율이 50/50 인 반면 기업용 앱은 90 % 읽기, 10 % 쓰기와 비슷하다고 주장합니다. 그는 또한 대부분의 기존 MMO가 모든 것을 메모리에 저장하고 6 시간마다 DB에만 덤프한다고 주장합니다. 즉, 서버가 다운되면 마지막 DB 덤프 이후 모든 작업이 손실됩니다.

이제 프로젝트 자체는 정말 멋지지만 업계에서는 받아 들일 것이라고 생각하지 않습니다. 먼저 서버 코드를 Java로 작성해야합니다. 클라이언트 코드는 무엇이든 작성할 수 있습니다 (Jim은 ActionScript 3가 가장 많이 사용되며 C++이 뒤 따르고 있음). 서버 항목은 Java 여야합니다. 나에게는 좋지만, 게임 업계의 모든 사람들이 Java를 싫어한다는 인상을받습니다.

둘째, 개발자가 기존 프레임 워크와 라이브러리를 선호하는 산업과 달리 게임 업계의 사람들은 모든 것을 직접 작성하는 것처럼 보입니다. 뿐만 아니라, 그들은 새로운 게임을 만들 때마다 모든 것을 다시 쓰고 싶어합니다. 개발자가 물리학을 위해 Havok을 사용하고, 플랫폼처럼 Unreal Engine 3을 사용하는 곳에서는 상황이 변하기 시작합니다. 그러나 모든 것이 여전히 독점적 인 것처럼 보입니다.

그래서 Project Darkstar의 사람들은 시간을 낭비하고 있습니까? 이와 같은 일반적인 프레임 워크가 필요한 성능을 갖춘 복잡한 게임에서 실제로 작동 할 수 있습니까? 그것이 작동하더라도, 게임 회사는 그것을 사용하고자합니까?

답변

24

편집 : 이것은 오라클이 Sun을 구매하기 전에 작성되었으며 하루 10 억 달러를 버는 모든 것을 죽이기 위해 열광했습니다. OSS 포크에 대한 주석을 참조하십시오.나는 (MMO 미들웨어) 같은 것들이 현실적이라는 사실을 여전히 견해로 삼고있다.

마켓은 몇 가지 대형 게임에 의해 지배 될 수 있지만 더 많은 틈새 게임을위한 여지는 많지 않다는 의미는 아닙니다. 얼굴을 보자 : 100.000 명이 넘는 플레이어에게 다가 가고 싶다면 적어도 중요한 핵심에 대해 자신 만의 기술 스택을 구축해야합니다. 그것이 CCP가 이브 온라인 (StacklessIO)에서했던 것입니다. 블리자드가 월드 오브 워크래프트 (많은 제 3 자 라이브러리를 사용하기는했지만)가 워해머 온라인에서했던 것입니다 (Gamebryo를 기반로 함).

그러나 수십 개의 Free-to-Play/Itemshop MMO와 같이 작고 틈새가 많은 MMO를 목표로한다면 네트워크 작업을 올바르게 수행하는 것은 엄청나게 어렵습니다. 데이터 일관성은 더욱 어렵고 확장 성은 가장 큰 b * tch.

그러나 게임 기술 만이 유일한 문제는 아닙니다. 또한 결제를 처리해야합니다. 신용 카드? 독일에서 재미있는 판매를 한 다음, 사람들은 ELV를 원합니다. 따라서 신뢰할 수있는 결제 공급자가 필요하지만 결제가 실패 할 때 계정이 차단/재 활성화되었는지 확인하려면 계정과 함께 결제 애플리케이션을 연결해야합니다.

이미 "MMO Infratructure Services"(즉, Arvato's EEIS)를 제공하는 회사가 있지만 최종 줄은 다음과 같습니다. Darkworld Project 현실적이지만, 제 3 자에게 전적으로 수백억 MMO를 구축 할 수 있다고 가정하면 스택은 낙관적 인, 아마도 이상 주의적 일 수 있습니다.

그러나 다시 말해서 모든 기술을 완전히 발명하는 것은 더욱 바보입니다. 즉, 결제 (Billing), 글꼴 렌더링 (Font Rendering), 오디오 출력 (Audio Output ...)과 같은 제 3 자의 물건을 사용합니다. 그러나 write the stuff that really makes or breaks your business 등). (참고 : Jeff의 글은 a bit flawed 일 수 있지만 전체적인 방향은 올바른 IMHO입니다.)

부록 : 또한 게임 업계는 엔진을 많이 라이센스하고 재사용합니다. 가장 눈에 띄는 게임 엔진은 Unreal Engine, Source Engineid Tech으로 수십, 그렇지 않을지라도 수백 가지의 게임입니다. 그러나 덜 알려진 (업계 이외의) 엔진이 있습니다. Gamebryo, 문명 4 및 폴 아웃 3과 같은 게임 뒤에 미들웨어가 있으며, 현재는 EA-in-House 만있는 RenderWare이 있었지만 Battlefield 2 또는 The Sims 3과 같은 게임에서는 사용되었습니다. 오픈 소스 Ogre3d이 사용되었습니다 some 상업용 titles.사운드를 찾고있는 중이라면 FMOD과 같은 것이 있거나 글꼴 렌더링을 원한다면 FreeType을 돌려 주시겠습니까?

제 3의 엔진/미들웨어가 존재하며, 10 년 이상 성공적으로 사용되고 있습니다. (나는 ID의 Wolfenstein Engine이 다른 회사에 라이센스되어 있다는 것을 알고 있습니다. 1992 년이었습니다.), 수백만 달러 상당의 대기업들조차도 마찬가지다. 개발자가 게임 개발 시간을 엔진의 불필요한 디버깅에 소비해야하는 경우 문제가 발생해도 도움이되지 않는 우수한 엔진은 별 가치가 없거나 매우 비싸기 때문에 지원이 중요합니다.

Darkstar 사람들이 지원 측면과 2 또는 3 개의 더 높은 프로필 타이틀을 얻는다면, 더 작은 개발자와 인디즈가 MMO 시장을 개척 할 수 있다고 믿습니다.

+1

노력에 감사드립니다! –

+0

흥미 있고 유익한 정보 : – Andy

+4

정보 제공 : Project Darkstar는 오라클에 의해 폐쇄되었지만 http://www.reddwarfserver.org/에서 찾을 수있는 Red Dwarf Server라는 원래 개발 팀의 일부 구성원이 실행하는 포크가 있습니다. – Kynth

-1

나는 게임 업계에서 일하지 않지만, 퀘이크 및 하프 라이프 엔진처럼 비디오 게임에 대해 똑같은 일을하는 것처럼 나에게 들린다. 즉, 젊은 개발자가 업계에 관심을 갖도록 유도하고 인디 게임 개발을 촉진 할 것입니다.

내가 알 수있는 것부터 비디오 게임 회사는 코드를 대부분 재사용하지 않습니다. 왜냐하면 그들이하는 일은 새로운 게임이 이전 게임을 재연 한 것이라는 의미이기 때문입니다. 누구나 멋진 새로운 물리 엔진, 더 나은 그래픽, 새로운 방식의 게임을 원합니다. 대부분의 비디오 게임 엔진과 프레임 워크는 특정 시나리오를 위해 만들어 지므로 다른 상황에서는 구부리기 쉽지 않습니다.

어쩌면 다크 스타 (Darkstar)가 제대로 이해할 수는 있지만, 일반화는 너무 많은 것 때문에 작동하기 때문에 의심 스럽습니다.

+1

하지만 Darkstar는 클라이언트 측 코드가 아닌 백엔드 코드입니다. 일반적으로 플레이어는 더 크고 더 나은 것을 원할 때 백엔드 기술을 신경 쓰지 않습니다. –

2

비디오 게임 회사는 자신의 코드가 대부분의 코드를 재사용하지 않는다는 것을 알 수 있습니다. 왜냐하면 그들이 말하는 것은 새로운 게임이 이전 게임을 재연 한 것이라는 의미이기 때문입니다.

음 ... 비디오 게임 회사의 긴 꼬리를 언급하고 있다면 어쩌면. 일련의 성공적인 게임을 보유한 회사에서 일반적으로 약간의 재사용이 있습니다. 주요 하드웨어 변경으로 많은 업무가 중단 될 수 있지만 실제로 회사에 따라 다릅니다.

3

나는 쓸모없는 기술을 좋아합니다. MMO 세계는 이미 자체 기술을 보유하고있는 몇 개의 큰 게임 회사에 의해 통제됩니다. 인디 게임 개발자들은 MMO를 만들려고 노력하고 때로는 그렇게하기를 좋아하지만, 그 게임은 거의 끌리지 않습니다.MMO 세계에 침입 한 대기업은 "검증 된"기술을 라이선스하거나 자체 기술을 확장 할 수 있습니다.

게임 회사는 게임에서 게임으로 방대한 양의 코드를 재사용합니다. 대부분/많은 게임 회사는 자체 기술을 내부적으로 개발하여 제작하는 모든 게임에 사용합니다. 때로는 물리 코드를 제 3 자 물리 엔진으로 대체하는 등의 작업을 수행합니다. 내부 코드 기반 (게임 엔진, 디자인 도구, 내부 파이프 라인)이 지나치게 많이 사용되거나 다루기 힘들어지면 Unreal과 같은 큰 게임 엔진으로 전환 될 수 있습니다. 그럼에도 불구하고 코드의 주요 덩어리는 계속 게임에서 게임으로 재사용 될 것입니다.

1

디자인과 코드는 재미 있지만 궁극적으로는 useless abstractions (Joel을 훔치기 위해)이라고 생각합니다.

1

"게임 엔진"을 타사의 게임을 포함하여 재사용하는 것은 매우 일반적입니다. 이 방향의 또 다른 단계처럼 들립니다.

1

나는 위대한 일이라고 생각합니다. 개발자는 darkstar 프로젝트가 처리하는 모든 것에 대해 걱정할 필요가 없으며 사용하기가 매우 쉽습니다. 하지만 인터넷 통신에 관한 모든 것을 배우지 않아도 작동한다는 점만은 아닙니다. 성능에 관한 것입니다. 프로젝트 암흑기는 2 년 이상 개발 중이며 더 좋고, 빠르며 견고합니다.

특정 게임을 목표로 할 때 이러한 기술을 쓸 시간이별로 없을 것이라고 생각합니다. 이와 같은 기술을 대신 사용할 수 있습니다. 또한 런타임 중에 애플리케이션에서 느려지거나 교착 상태가 발생하는 위치를 알려줌으로써 개선 할 수있는 좋은 정보를 얻을 수 있습니다.