Como determino meus requisitos mínimos de hardware / software para meus jogos?

72

Com o desenvolvimento sozinho, tenho apenas recursos limitados à minha disposição, ou seja, um PC com o qual desenvolvo e testo o jogo. então eu só sei ao certo que meu jogo funciona com essa configuração.

Que opções tenho para testar o jogo nas diversas combinações diferentes de hardware / sistema operacional? É um jogo de desktop do Windows.

Crippeoblade
fonte
3
Isso sempre foi muito vago para mim, então achei que um pouco mais de discussão sobre isso poderia ser bom.
precisa saber é o seguinte
Incrível pergunta! Eu estou querendo saber isso mesmo
Dream Lane

Respostas:

29

De cabeça para baixo, sugiro tentar rodar o jogo em alguns outros PCs de amigos ou parentes. Depois disso, você pode considerar uma forma de teste beta, ou seja, publicar uma demonstração ou algo assim para obter feedback da comunidade.

Raoul
fonte
11
Exatamente. Basta testar em uma ampla variedade de máquinas de gama baixa.
21410 David McGraw
11
Ok ... você está certo, mas é isso que pode pensar em todos. Realmente não entendo por que essa resposta específica tem muitos pontos positivos. Sem ofensa, está completamente certo.
Notabene
24

Uma das minhas maneiras favoritas de encontrar essas informações é usar máquinas virtuais.

Como você pode configurar o hardware e a memória aos quais a VM é permitida, você pode testar uma ampla variedade de configurações no seu próprio PC. Isso também permite que você teste em vários sistemas operacionais.

G. Davids
fonte
7
A desvantagem do teste de VM é que você basicamente está sempre executando a mesma velocidade de clock e o suporte 3D ainda é bastante abismal. Eles ajudarão a cobrir suas bases para garantir que seu jogo funcione em 32/64 bits e na gama de opções do Windows.
Erro 454
Concordo que, embora as VMs cubram muitas bases, elas têm limitações. A julgar pela infinidade de respostas, no entanto, acho que o solicitante vai ficar bem ^ _ ^
G. Davids
11
@ Erro 454 Não com o ESXi, como descrito na minha resposta. Na verdade, você pode controlar a quantidade de CPU e recursos de memória que deseja que o sistema operacional possua.
Ray Dey
@ Ray Dey desculpe, não é verdade, o ESXi oferece um SVGA virtual , não há acesso direto à sua placa de vídeo: kb.vmware.com/kb/1011942
Erro 454
@Error 454 Eu não tinha certeza sobre os recursos de vídeo, então não comentei. Eu deveria ter deixado mais claro. Mas obrigado por esclarecer isso para mim :)
Ray Dey
16

Você deve ter uma idéia aproximada do minspec apenas desenvolvendo seu jogo - por exemplo, se você fez uma escolha explícita para usar o D3D10 +, obviamente está selecionando máquinas XP. Então esse é um lugar para começar.

Encontre uma maneira de testar o maior número possível de máquinas, idealmente após implementar alguma maneira de reunir métricas de desempenho automaticamente (pois os usuários podem não ser confiáveis), além de informações não identificáveis ​​sobre a máquina em que o jogo está sendo executado (processador (es), contagem de núcleos, tipo de GPU, RAM, SO, etc. - veja o tipo de dados que a Pesquisa de hardware e software do Steam coleta ). Uma das melhores maneiras de fazer isso é dar o seu jogo a amigos e familiares, como já foi sugerido várias vezes. Outra maneira pode ser abordar uma comunidade de desenvolvedores de jogos de hobby e verificar se eles estão interessados ​​em testar seu jogo. Não tenho certeza se isso seria uma pergunta apropriada aqui no GDSE, mas você provavelmente encontrará algumas pessoas na área de 'bate-papo' e também poderá procurar / postar em sites como:

Todos esses sites têm fóruns ou sub-fóruns dedicados de alguma maneira a exibir jogos e, portanto, você pode obter uma resposta razoavelmente boa deles. Certifico-me de divulgar antecipadamente as estatísticas que seu jogo coleta e / ou envia, e por que você as coleta. As pessoas podem ficar irritadas com isso se descobrirem depois do fato.

Observe que a pesquisa Steam também é uma ferramenta útil para medir o que um minspec deve ser - pode ajudá-lo a ver qual a relação custo / benefício de oferecer suporte a um recurso ou classe de hardware específico.

Josh
fonte
13

Verifique:
- Quanta RAM ele usa
- Quanta textura + memória GPGPU ele usa
- Taxa mínima de quadros / taxa de quadros atual * Velocidade da CPU * SpeedUpFactorOf (número mínimo de núcleos que você pode usar)
- Equação semelhante para unidades de cálculo de GPU
- qual nível de opengl / directx / cuda que seu mecanismo de jogo requer do adaptador gráfico
- quanto espaço em disco a instalação + informações do usuário levam ...

Teste também em várias configurações de hardware.

Danny Varod
fonte
2
Para a maioria dos softwares, essa relação entre número de núcleos e taxa de quadros não é linear.
Ponkadoodle
2
Esse relacionamento também implica que o jogo é limitado pela CPU, o que não é verdade com frequência.
Kromster 21/01
Eu quis dizer isso como uma direção geral - cada programador deve verificar de quais tecnologias ele / ela usou e de quais recursos eles dependem. Eu alterei ligeiramente minha resposta.
Danny Varod
8

Basicamente, você deseja testar em tantas outras máquinas quanto possível - do equipamento de jogos de núcleo duro do seu amigo à máquina apenas para e-mail e internet da sua gran. Especialmente a máquina somente para e-mail e internet da sua avó, porque provavelmente está carregada com cruftware e outras coisas que interferem e tornam o jogo lento.

O teste de compatibilidade com PC é uma grande e desagradável lata de worms, e há uma razão pela qual o teste profissional é caro. Então, você deseja testar o maior número possível de cenários ímpares.

Acho que o teste beta é o caminho a seguir, tanto com amigos e familiares quanto com um círculo mais amplo na sua comunidade de fãs. O principal: não confie em relatórios anedóticos. Seus amigos podem confiar, na verdade, para responder, mas a comunidade em geral não, a menos que você facilite para eles.

Crie o logon no seu aplicativo para fornecer informações concretas sobre o FPS, o tempo de inicialização, etc. Dê ao usuário um questionário fácil, idealmente incorporado ao jogo, onde ele poderá informar se achou ou não bom. E tenha essas estatísticas e o registro facilmente por e-mail / transmissíveis para você, para que você possa estudar mais tarde. Quanto mais estatísticas você recuperar, melhor será a sensação de que seu título é a) funcionando em outros sistemas eb) funcionando bem em outros sistemas.

MrCranky
fonte
6

Teste no maior número possível de PCs (isso também ajudará a detectar todos os erros específicos). Como desenvolvedor, você deve conhecer seus principais gargalos - concentre-se em enfatizá-los. Você pode perguntar a seus amigos, colegas de trabalho, namorada, pais, muitas pessoas nos fóruns.

PS Apenas para referência:

  • Requisito de CPU = executar o jogo em resolução mínima ou sem renderização de GPU (espero que o código de renderização utilize o mínimo de CPU)
  • Requisito de GPU = execute o jogo em uma CPU poderosa com resolução padrão e veja qual GPU é suficiente para executar a tarefa, mencione também a versão mínima do Direct3D / OpenGL
  • Requisito de RAM = quanta RAM o jogo leva (por exemplo, através do TaskManager, com a coluna Tamanho da VM, para ver toda a RAM alocada, não apenas ativa)
  • Som = quase tudo se encaixa, basta mencionar suporte a 2 / 5.1 canais
  • Tela = especifique a resolução mínima reproduzível onde os controles do jogo se encaixam
  • Rede = alguns testes de carga massivos e veja qual largura de banda permite (modem de 56k, DSL, T1, LAN)
  • Teclado / Mouse / Tablet / Joystick, etc.
Kromster
fonte
2
Depois de obter esses números, você certamente aumentaria um pouco, caso o jogo estivesse rodando com pouco uso de memória.
The Duck Comunista
2

Para requisitos, eu assumiria o mínimo necessário para executar o seu jogo. Vai depender de quais tecnologias você usa para desenvolver seus jogos.

Por exemplo, se você usar APIs específicas, como D3D9 ou OpenGL 3.0, será necessário especificar isso, porque determinadas APIs não são compatíveis com versões anteriores.

Se você criar com o Windows com estrutura .net, também precisará especificar isso também.

Para requisitos de desempenho, experimentar máquinas diferentes é praticamente o melhor caminho a seguir, embora você possa medir o desempenho relacionado por cálculo.

por exemplo, se sua placa de vídeo atual for executada a 60 qps e outro computador com a configuração semelhante, exceto que a placa de vídeo tenha metade da sua velocidade, deverá executar aproximadamente a metade da velocidade da sua máquina. Novamente, isso é apenas uma estimativa, muitas outras propriedades terão um desempenho diferente, mas você pode usar essas informações básicas para testar seu jogo em dispositivos segmentados.

Espero que ajude, e qualquer um pode me corrigir por qualquer motivo.

Leo
fonte
1

Dependendo do seu mercado-alvo (presumo que não seja 3D de ponta, ou seja, são necessárias placas gráficas caras), gostaria de escolher uma seleção de placas gráficas antigas de algum lugar como o EBay, para que você possa testar tanto na NVidia quanto na ATi cartões.

PhillC
fonte
1

É sempre perfeito obter feedback da comunidade, conforme mencionado. Mas onde conseguir comunidade e pessoas que tentarão testá-lo? A publicação em alguns fóruns de jogos independentes ajudará, mas o problema será obter feedback real.

Apenas uma pequena porcentagem das pessoas que testarão um jogo escreverá a você sua configuração exata e os problemas que ocorreram. As pessoas simplesmente não fazem isso. Uma maneira muito melhor é habilitar algum tipo de referência na leitura da configuração do sistema dos usuários. Peça ao usuário para executar algum benchmark de um botão. Ofereça alguns números e horários (sim, as pessoas gostam :-)) e deixe-o comparar com outros usuários (com o envio de dados) ... Isso ajudará.

E então você tem um banco de dados cheio de configurações, resolução de tela, tempos de renderização e recursos com falha ...

Se você estiver no Windows, ligar para o DXdiag o ajudará a ler a configuração dos usuários. Mas existem alguns programas que você pode usar em outros sistemas.

Notabene
fonte
1

Como mencionado por outros, a melhor maneira é disponibilizar a versão beta e coletar feedback da comunidade para obter resultados confiáveis.

Eu também gostaria de sugerir o uso do ESXi. É uma solução de máquina virtual da VMWare. Não desanime porque é uma solução de VM. ESX é muito mais baixo nível.

Isso provavelmente seria ideal para você, pois você tem uma máquina. Você pode testar diferentes sistemas operacionais, configurações de hardware (exceto o hardware gráfico, o ESXi usaria o que você instalou em sua máquina).

É basicamente o seu próprio sistema operacional muito reduzido que você pode instalar outros sistemas operacionais. Nós o usamos no trabalho para compatibilidade entre muitos SOs. É muito rápido e confiável, quase tão sensível quanto uma máquina de baunilha.

Eu sei que os requisitos de hardware é o que você está procurando e o ESXi possui um recurso muito bom, onde você pode limitar a quantidade de RAM, CPU ou espaço em disco usado pelo sistema operacional e potencialmente simular como o seu jogo funcionaria com algo baixo. CPU final ou pouca memória, CPU de ponta ou uso de memória (limitado pelo seu hardware real).

Portanto, se você tivesse um PC com especificações muito altas, poderia instalar o ESXi nele, instalar os sistemas operacionais que você quisesse e brincar com o uso da CPU e da memória (acredito que você pode até modificar o número de núcleos que o sistema operacional também usa!)

Aqui está um link para ele: http://www.vmware.com/products/vsphere-hypervisor/index.html

Melhor coisa sobre isso? É 100% grátis!

Ray Dey
fonte
0

A execução de algum tipo de ferramenta de criação de perfil seria uma maneira. Para programas Java, você pode usar o VisualVM ( https://visualvm.github.io/ ). A Wikipedia lista alguns outros. Veja: https://en.wikipedia.org/wiki/List_of_performance_analysis_tools . O mesmo vale para a memória de depuração. Veja: https://en.wikipedia.org/wiki/Memory_debugger

Basicamente, isso significa verificar a memória e o uso da CPU em algum intervalo regular durante a execução do programa / jogo. Então você calcula um intervalo médio e é disso que precisa na maioria das vezes. Idealmente, isso seria automatizado (por consistência e precisão) e você desejaria excluir as quantidades desses recursos consumidos, compartilhados ou usados ​​por outros processos. Não pode haver algumas questões prioritárias escondendo o fato de que seu programa pode usar mais memória se ele estava disponível. Ou seja, se o sistema operacional estava super ocupado, seu programa pode fundar um pouco por não ter memória suficiente.

Por fim, você precisa testar / fazer benchmark / perfil e depois analisar esses testes. É bom ter uma métrica de desempenho predefinida para comparar. Por exemplo, em um FPS, você pode querer mais de 30 FPS para jogos jogáveis ​​/ agradáveis. Com base nisso, você definiria a barra mínima em / acima das especificações de hardware necessárias para atender a mais de 30 FPS em alguma porcentagem do tempo (sempre é possível que o usuário execute muito de uma vez e cause travamentos e travamentos).

Como já foi dito, você realmente precisa de outras pessoas para testá-lo em uma variedade de hardwares diferentes. Em um mundo ideal, você teria vários grupos com hardware semelhante dentro de um grupo e conduziria algum tipo de controle versus testes experimentais para ver se mais / menos memória, CPU, GPU importava quando os outros fatores eram mantidos constantes.

Jeremy Harton
fonte