Pergunta

Projeto Estrela Negra foi o tema do mês JavaSIG reunião nos escritórios do Google em Nova York ontem à noite.Para aqueles que não sabem (provavelmente todo mundo), o Project Darkstar é uma estrutura para jogos on -line multiplayer massivamente que tentam cuidar de todas as "coisas difíceis". A idéia básica é que você escreva a lógica do seu servidor de jogo de tal maneira que todas as operações sejam divididas em pequenas tarefas.Você passa essas tarefas para a estrutura do Projeto Darkstar, que cuida da distribuição delas para um nó específico no cluster, de quaisquer problemas de simultaneidade e, finalmente, da persistência dos dados.

Aparentemente, fazer esse tipo de coisa é um problema muito diferente para videogames e para aplicativos corporativos.Jim Waldo, que deu a palestra, afirma que os jogos MMO têm uma proporção de leitura/gravação de banco de dados de 50/50, enquanto os aplicativos corporativos têm cerca de 90% de leitura e 10% de gravação.Ele também afirma que a maioria dos MMOs existentes mantém tudo exclusivamente na memória e só despeja em um banco de dados a cada 6 horas.Isso significa que se um servidor cair, você perderá todo o trabalho desde o último dump do banco de dados.

Agora, o projeto em si parece muito legal, mas não acho que a indústria irá aceitá-lo.Primeiro, você precisa escrever o código do servidor em Java.O código do cliente pode ser escrito em qualquer coisa (Jim afirma que o ActionScript 3 é o mais popular, seguido pelo C++), mas o material do servidor tem que ser Java.Parece bom para mim, mas realmente tenho a impressão de que todo mundo na indústria de jogos odeia Java.

Em segundo lugar, ao contrário de outras indústrias onde os desenvolvedores preferem usar estruturas e bibliotecas existentes, os caras da indústria de jogos parecem gostar de escrever tudo sozinhos.Além disso, eles gostam de reescrever tudo a cada novo jogo que produzem.As coisas estão começando a mudar onde os desenvolvedores estão usando Havok para física, Unreal Engine 3 como plataforma, etc., mas na maior parte parece que tudo ainda é proprietário.

Então, os caras do Projeto Darkstar estão apenas perdendo tempo?Uma estrutura geral como essa pode realmente funcionar para jogos complexos com o desempenho necessário?Mesmo que funcione, as empresas de jogos estão dispostas a usá-lo?

Foi útil?

Solução

Editar:Isso foi escrito antes da Oracle comprar a Sun e iniciar uma onda de destruição para matar tudo que não lhes rendesse um bilhão de dólares por dia.Veja os comentários para um OSS Fork. Ainda mantenho minha opinião de que coisas assim (MMO Middleware) são realistas, você só precisa de uma empresa que não seja péssima por trás disso.

O mercado pode ser dominado por poucos jogos grandes, mas isso não significa que não haja muito espaço para mais jogos de nicho.Vamos encarar:Se você quiser alcançar mais de 100.000 jogadores, acabará construindo sua própria pilha de tecnologia, pelo menos para o núcleo crítico.Foi isso que o CCP fez pelo EVE Online (StacklessIO), foi o que a Blizzard fez para o World of Warcraft (embora usem muitas bibliotecas de terceiros), foi o que o Mythic fez para o Warhammer Online (embora sejam baseados no Gamebryo).

No entanto, se você pretende ser um MMO pequeno e de nicho (como as dezenas de MMOs Free-to-Play/Itemshop), então acertar as coisas da rede é incrivelmente difícil, a consistência dos dados é ainda mais difícil e a escalabilidade é o maior problema. Tchau.

Mas a tecnologia dos jogos não é o seu único problema – você também precisa lidar com o faturamento.Somente cartão de crédito?Então divirta-se vendendo na Alemanha, as pessoas lá querem ELV.É aí que você precisa de um provedor de faturamento confiável, mas ainda precisa conectar o aplicativo de faturamento com suas contas para garantir que as contas sejam bloqueadas/reativadas quando o faturamento falhar.

Existem algumas empresas que já oferecem "Serviços de Infraestrutura MMO" (ou seja, EEIS de Arvato), mas o resultado final é:Coisas como o Projeto Darkstar são realistas, mas presumir que você pode construir um MMO multibilionário inteiramente em uma pilha de terceiros é otimista, possivelmente idealista.

Mas, novamente, inventar inteiramente toda a tecnologia é ainda mais estúpido - use o material de terceiros que você precisa (ou seja,Faturamento, renderização de fonte, saída de áudio...), mas escreva o que realmente faz ou quebra seu negócio (ou seja,Pilha de rede, interface do usuário, etc.) por conta própria.(Observação:A postagem de Jeff pode ser um pouco falho, mas a direção geral está correta IMHO.)

Termo aditivo:Além disso, a indústria de jogos licencia e reutiliza muitos motores.Os motores de jogo mais proeminentes são os Motor irreal, Mecanismo de origem e tecnologia de identificação, que alimenta dezenas, senão centenas de jogos.Mas existem alguns motores menos conhecidos (fora da indústria).Há Jogobryo, o Middleware por trás de jogos como Civilization 4 e Fallout 3, havia Renderware isso agora é apenas EA-in-House, mas usado em jogos como Battlefield 2 ou The Sims 3.Existe o código aberto Ogre3d, que foi usado em alguns comercial títulos.Se você está apenas procurando por Som, há coisas como FMOD ou se você quiser renderizar fontes, por que não dar Tipo Livre um giro?

O que estou dizendo é:Existem mecanismos/middlewares de terceiros e ESTÃO sendo usados ​​com sucesso há mais de uma década (tenho certeza de que o Wolfenstein Engine da id foi licenciado para outras empresas, e isso foi em 1992), até mesmo por grandes empresas em setores multimilionários. títulos em dólares.O importante é o suporte, pois um bom motor sem ajuda em caso de problema é praticamente inútil ou pelo menos muito caro se o desenvolvedor tiver que gastar seu tempo de desenvolvimento do jogo com depuração desnecessária do motor.

Se o pessoal da Darkstar conseguir acertar o lado do suporte e lançar 2 ou 3 títulos de maior perfil, acredito que poderia ter sucesso em abrir o mercado de MMO para muito mais desenvolvedores menores e independentes.

Outras dicas

Parece tecnologia inútil para mim.O mundo MMO é controlado por algumas grandes empresas de jogos que já possuem sua própria tecnologia instalada.Os desenvolvedores de jogos independentes adoram tentar construir MMOs e às vezes o fazem, mas esses jogos raramente ganham força.Empresas maiores que invadissem o mundo dos MMO provavelmente licenciariam tecnologia “comprovada” ou ampliariam a sua própria.

As empresas de jogos reutilizam grandes quantidades de código de jogo para jogo.A maioria/muitas empresas de jogos desenvolveram sua própria tecnologia internamente e a utilizam em todos os jogos que produzem.Ocasionalmente, eles farão algo como substituir seu código de física por um mecanismo de física de terceiros.Se sua base de código interna (mecanismo de jogo, ferramentas de design, pipeline interno) começar a envelhecer demais ou se tornar difícil de manejar, eles poderão mudar para um dos grandes mecanismos de jogo, como o Unreal.Mesmo assim, grandes pedaços de código continuarão a ser reutilizados de jogo para jogo.

Pelo que sei, as empresas de videogames não reutilizam a maior parte de seu código, porque se o fizerem, isso implica que seu novo jogo é apenas uma repetição de um antigo.

Hum...se você está se referindo à longa cauda das empresas de videogame, talvez.Dentro de uma empresa que teve uma série de jogos de sucesso, geralmente há um mínimo de reutilização.Grandes mudanças de hardware podem resultar na perda de muito trabalho, mas isso realmente depende da empresa.

Parece divertido projetar e codificar, mas acho que, em última análise, tudo se resume a abstrações inúteis (para roubar de Joel).

É muito comum que os jogos reutilizem “motores de jogo”, mesmo aqueles de terceiros.Isso soa como mais um passo nessa direção.

Eu acho que é uma ótima coisa a se fazer.Os desenvolvedores não precisam se preocupar com todas essas coisas que o projeto darkstar cuida e é muito fácil de usar.Mas não se trata apenas de fazê-lo funcionar e não ter que aprender tudo sobre comunicação pela Internet. Trata-se também de desempenho.O projeto darkstar está em desenvolvimento há mais de 2 anos e está cada vez melhor, mais rápido e mais robusto.

Acho que será difícil e provavelmente não valerá a pena escrever essas coisas quando se trata de um jogo específico, quando tecnologias como essa podem ser usadas.E você também obtém informações interessantes durante o tempo de execução, informando onde em um aplicativo há uma causa de lentidão ou impasses, para que você possa melhorar isso.

Eu não trabalho na indústria de jogos, mas me parece que isso fará com os videogames o mesmo que os motores Quake e Half-Life fizeram.Ou seja, eles promoverão o interesse de jovens desenvolvedores pela indústria e promoverão o desenvolvimento de jogos independentes.

Pelo que sei, as empresas de videogames não reutilizam a maior parte de seu código, porque se o fizerem, isso implica que seu novo jogo é apenas uma repetição de um antigo.Todo mundo quer um novo mecanismo de física legal, gráficos melhores e novas maneiras de jogar.A maioria dos mecanismos e estruturas de videogame são feitos para um cenário específico e, portanto, não são muito flexíveis para outras situações.

Talvez Darkstar acerte, mas eu meio que duvido, já que generalizar só funciona para algumas coisas.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top