Como protótipo de um jogo online? [fechadas]


8

Gostaria de saber se vocês conhecem alguma biblioteca, mecanismo ou mesmo simplesmente padrões de design que simplificam bastante a tarefa de compartilhar informações e enviar mensagens entre programas em rede, para que você possa se concentrar em aprimorar a jogabilidade em vez de reescrever o código da rede, enquanto prototipagem de jogos em rede. Como isso se destina a protótipos, a facilidade de uso e a flexibilidade são muito mais importantes do que velocidade e segurança.


11
Bem, ouvi dizer que o Unity é capaz de criar jogos no estilo MMO, no entanto, é um mecanismo focado em 3D, você pode fazer 2D, mas você só precisa ser um pouco criativo (como criar um avião que contenha o sprite 2D como uma textura e defina a câmera para olhar para baixo.) Sei que o buzz 3D fez um tutorial sobre a programação MMO do Unity, mas acho que não está disponível para o público. Eu sugiro que você use a Prototipagem de papel, que é onde você tenta criar um jogo usando recortes de papel e mover as coisas por conta própria, é uma boa maneira de obter feedback sem criar o jogo completo, basta lidar com eventos on-line.
Benjamin Danger Johnson

11
O ZMQ é incrível para reduzir o padrão da rede.
Anko

@BenjaminDangerJohnson Eu usei o Unity, mas seus componentes de rede são muito específicos para compartilhar posições de objetos. Você precisa escrever seu próprio mecanismo sobre ele se quiser usá-lo para outra coisa, e isso derrota todo o propósito da criação de protótipos.
Panda Pyjama

@Anko 0MQ parece interessante, e vou tentar. Estou preocupado que ele tente simplificar a camada de transporte , o que provavelmente significa que, eventualmente, você precisará escrever seu próprio protocolo de aplicativo, que é precisamente o que eu quero evitar na fase de prototipagem.
Panda Pyjama

2
Com base na reescrita, 0MQ (ou RabbitMQ) funcionará bem. Nenhum sistema de mensagens pode automatizar a replicação de dados do seu jogo; o conteúdo da mensagem sempre será com você para criar e interpretar. Caramba, em uma LAN, você pode simplesmente enviar spam às transmissões e quem estiver ouvindo pode escolher pacotes destinados a eles, os dados podem ser XML ou JSON ou um fluxo fácil de pares de texto com valor-chave, porque para a criação de protótipos localmente é garantido que você tem toneladas de largura de banda. Mas você ainda precisa fazer o trabalho do código.
Patrick Hughes

Respostas:


4

A maneira mais fácil de criar um protótipo de um jogo on-line, que permite alterar rapidamente quase tudo no jogo (mesmo fatores como tempo real versus baseado em turnos), é implementar o protótipo como um jogo físico. Reúna todos os designers em uma sala, monte um monte de cartas, dados ou componentes de jogos de tabuleiro ou o que for necessário para criar protótipos das interações gerais do jogo. Então jogue o jogo.

Você pode fazer isso sem precisar pagar programadores ou artistas. A tentativa de diferentes variações das regras do jogo leva apenas um minuto ou dois, em vez de exigir horas ou dias (ou semanas!) De trabalho de programação, e você pode saber se o seu jogo funciona ou não, jogando-o realmente, em vez de ter que projetar antes do jogo. implementação e faça suposições sobre o que vai ou não funcionar. Além disso, seus programadores continuarão gostando de você no final do processo. :)

  • Ao fazer isso, recomendo que pelo menos uma pessoa atue como observadora; não participar do jogo em si e outra pessoa cujo trabalho é fazer anotações sobre quem fez o que e quando. Esses dados sobre o que realmente aconteceu durante cada jogo podem se tornar extremamente úteis ao ajustar o conjunto de regras entre os jogos.

Caneta, papel, dados, cartões, placas, fichas. Isso é realmente tudo o que você precisa. E para prototipar um design de jogo, é melhor do que qualquer outra coisa.


6
Pelo contrário. Se seus colegas de trabalho se recusarem a fazer o que é comprovadamente a maneira mais rápida e econômica para a empresa interagir rapidamente em um protótipo de design de jogo, você não estará em um ambiente profissional.
Trevor Powell

2
Não vamos transformar isso em uma discussão no local de trabalho. Certamente a prototipagem física é muito boa, mas nem sempre é possível, e nem todos os jogos são trivialmente fisicamente jogáveis. Geralmente, posso invadir idéias de jogos 2D para um jogador em algumas horas e modificá-las para ver se são interessantes. Eu só quero poder fazer o mesmo em jogos multiplayer.
Panda Pyjama

5
Você é quem criou os ambientes de trabalho, não eu. Se você não quiser falar sobre eles, tudo bem. Mas não espere que eu fique em silêncio enquanto você afirma que a prototipagem física de alguma forma não pode funcionar em ambientes de trabalho "profissionais". Porque isso simplesmente não é verdade.
precisa saber é o seguinte

2
Além disso, nem todos os jogos são fisicamente prototipáveis. Os jogos de quebra-cabeça e estratégia são fáceis de fazer com a sua proposta, mas os jogos de ação, musical, corrida, esportes e simulação podem não ser assim.
Panda Pyjama

11
Nenhum método magicamente tornará a prototipagem 'trivial' para qualquer tipo de jogo (muito menos para todo tipo de jogo). Duplamente quando redes estão envolvidas. Que é 'não trivial' não é um motivo para descartar qualquer método de prototipagem, porque você nunca vai encontrar um método que é trivial.
Trevor Powell

2

relatively simple rule changes such as "let's try this in real time instead of turn-based"Parece uma mudança bastante fundamental para mim, não uma simples mudança de regra. Eu acho que escolhas de design fundamentais como essas devem ser feitas antes mesmo de você escrever qualquer código de rede, seja com protótipos offline ou mesmo em papel.

Ou seja, protótipo da jogabilidade sem fazer qualquer rede. Isso significaria escrever um jogo com vários jogadores localmente (ou seja, os dois jogadores estão no mesmo computador) para testar as idéias de jogo.

Quero dizer, no meu trabalho, uma vez pegamos um jogo que já estava na metade desenvolvido com base em turnos e o convertemos em tempo real, e sim, que envolveu uma reescrita maciça do código de rede. Em retrospecto, essa era uma maneira realmente ineficiente de abordar as coisas, e praticamente decidimos "nunca mais".


Na verdade, se não estiver em rede, mudar um jogo baseado em turnos para tempo real não é muito difícil. O problema de tentar no mesmo computador é que você está limitado a dois ou talvez até quatro usuários ao mesmo tempo. De qualquer forma, isso foi um exemplo, mas existem muitas outras coisas que eu quero teste que pode definitivamente ser feitas mais fácil para testar se eles estão realmente em rede ...
Panda Pajama

Não entendo o objetivo da sua primeira frase. É exatamente nisso que estou entendendo que é fácil fazer essa mudança no jogo se o jogo não estiver em rede. E se houver outras coisas que só podem ser testadas quando a rede estiver realmente instalada (por exemplo, sincronizando pela Internet), tome o máximo de decisões possível antes de começar a se preocupar com isso.
jhocking

0

Não consigo imaginar a necessidade dessa ferramenta, porque acredito que a lógica da rede é melhor feita através de uma análise sólida de quais informações precisam ir aonde.

Mas, se eu fosse forçado a criar algo para alguém que quisesse, eu usaria:

  • a linguagem de programação Python
  • 0MQ para mensagens (via pyzmq )
  • o módulo pickle para enviar dados arbitrários (como fornecido em um exemplo aqui )

Isso abrange todos os problemas de transporte confiável, delimitação de mensagens e serialização / desserialização. (Pickle não é seguro para outra coisa senão o uso da intranet.)

Você ainda precisará configurar a lógica para decidir o que fazer com os dados, tomar e implementar a decisão de quais computadores se conectam a outros computadores e assim por diante. E ele não suporta mensagens não confiáveis, chamadas de procedimento remoto ou replicação automática de estado, etc. É por isso que geralmente é melhor planejar o que você deseja e escrever dessa maneira.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.