Proteção de demonstração (e jogo real)

9

Em alguns meses, pretendo começar a mostrar o jogo (espero comercial) em que estou trabalhando para o público (internet). O problema é que, além de capturas de tela e um trailer (por exemplo, funcionalidade de recurso), como alguém faz adequadamente uma demonstração que pode ser protegida?

Deixe-me explicar um pouco. O jogo é um tipo de RPG multiplataforma. No momento, a maneira como codifico o jogo é que ele lê dados de mapa, personagem, etc, dos arquivos e decide tudo o que me permite expandir o mundo / história apenas por arquivos de configuração e adicionando ativos.

Ou seja, minha preocupação é se eu criar uma versão demo do jogo, ou seja, o jogo real, mas todos os ativos / arquivos de configuração / etc forem removidos para que seja apenas uma demonstração com o primeiro mapa / nível. Existe uma maneira de se proteger contra alguém lançando o pacote de dados do jogo real (quando lançado) e agora, de repente, qualquer pessoa com o EXE de demonstração pode jogar o jogo real?

A proteção da demo é meio que a minha primeira prioridade, já que quero a demo por um tempo antes de o jogo real ser lançado. Sempre posso decidir sobre quais métodos de proteção escolhi no jogo real mais tarde (antes do lançamento, mas ainda mais tarde ..)

Eu acho que tudo se resume a existe alguma maneira real de proteger o jogo (não quero restringir os usuários a fazer verificações on-line, porque este jogo será multiplataforma e não precisará de internet para jogá-lo). A última coisa que quero fazer é mexer com usuários legítimos. E eu gostaria de deixar os ativos abertos, se possível, já que isso significa facilmente remendar pastas e permitir que os modders mexam um pouco.

Quero dizer, mesmo se eu configurar um sistema básico de licença de chave, o que realmente impede uma pessoa de carregar sua chave e uma cópia do jogo em algum lugar? Eu já vi pessoas falarem sobre atualizações freqüentes, para que o binário mude e eles tenham que refazer o jogo. Mas quem precisa decifrar o jogo quando você pode obter 1 cópia legítima e depois distribuí-la?

Não tenho certeza se talvez esteja faltando alguma coisa, só estou tentando ter certeza de que não estou. Realmente se resume a:

  1. Coloque uma proteção básica de licença de chave nela.
  2. Remova os arquivos de ativo / configuração da demonstração
  3. Espere o melhor

Todo e qualquer conselho é apreciado! Sou muito novo nisso tudo; -;)

Desculpe se esta é uma duplicata! Não foi possível encontrar muito sobre o conceito de demonstração.

Zyaga
fonte
Libere-o como um executável que só lerá o arquivo de primeiro nível e nenhum dos outros? É uma demonstração, não o produto final. Talvez você possa explicar por que o executável de demonstração terá recursos completos de repente, adicionando um "pacote de dados", seja lá o que for. Parece honestamente que essa preocupação é tão legítima quanto "e se alguém lançar o jogo completo para outra pessoa", o que resultaria nessa pergunta sobre pirataria em geral e não apenas protegendo sua demo de ser ilegitimamente atualizada.
SpartanDonut
Código realmente é o jogo completo, a menos que eu queira fazer uma ramificação ou algo assim. Quero dizer, tenho muitas das funcionalidades concluídas e a demonstração que crio, quero ser algo que, mesmo após o lançamento, os usuários possam baixar e jogar antes mesmo de comprar. Então eu acho que é o mesmo que o jogo completo em um sentido. Ainda estou me perguntando se estou no caminho certo com esses três últimos pontos de bala, ou seja, não há muito que você possa fazer. Basta fazer isso e esperar o melhor. x:
Zyaga 25/09

Respostas:

12

Você já pensou em codificar algo como um limite de tempo na versão demo do mecanismo?

O problema é que, não importa o quanto você proteja sua demo, o jogo será pirateado de alguma forma quando for lançado. Seja usando a demo ou apenas usando o jogo principal, acontecerá se o jogo for popular o suficiente.

As pessoas que não querem pagar pelo seu jogo não pagam pelo seu jogo.

As pessoas que querem pagar pelo seu jogo pagarão pelo seu jogo.

Isso se aplica a qualquer coisa, desde o menor jogo indie até o maior título triplo-A - a única maneira de contornar isso é tornar a conexão com os servidores não apenas obrigatória, mas relacionada à jogabilidade, ou seja, um MMO, em vez do tolo Assassin's Creed sempre on-line DRM. Como você já disse que não é uma opção, sugiro que você a aceite.

Como desenvolvedor independente, a melhor maneira de conseguir mais vendas é dar mais atenção ao seu jogo. Pessoas que não estão inclinadas à pirataria jogam sua demo e compram o jogo ou não. As pessoas inclinadas à pirataria podem jogar sua demo, encontrar os ativos como você descreveu e assim por diante, e ainda assim podem ou não comprar o jogo.

Homem de Lata
fonte
Isso é praticamente o que eu esperava. É um pouco desanimador, ou melhor, é apenas uma porcaria, mas é assim que acontece! Eu acho que o que posso fazer é ramificar o código apenas um pouco para que você possa executar o salvamento padrão (nenhum menu de carregamento disponível) e depois o código rígido que, se o jogo não reconhecer o mapa principal (que possui todos os recursos básicos / principais disponíveis) nele), então ele sairá. Alguém poderia decifrá-lo e fazê-lo reproduzir os dados reais, mas nesse momento eles simplesmente lançam o jogo real em série e pronto. : P
Zyaga 25/09
2
Mesmo se eles não comprarem o jogo, eles podem ter amigos que o assistem, como ele e depois o compram. Você não será capaz de impedir a pirataria (nem mesmo as soluções anti-pirataria de grande orçamento realmente foram capazes de detê-la), por isso sugiro que você não se preocupe muito com isso. Para evitar que seja muito fácil, você pode codificar algo no exe demo para que ele leia apenas o primeiro mapa, não importa o quanto exista, ou um limite de tempo como o @ Amadeus9 disse, mas você só pode esperar o melhor.
Christian
Obrigado @Christian! Mais feedback que esse é o caminho correto a seguir! ^ _ ^
Zyaga
@ WeakDev, todos os bons pontos aqui. Aqueles que seguiram a rota "excessivamente restritiva" apenas prejudicaram sua base de clientes. Os piratas são os que têm mais facilidade, já que todo DRM é contornado em 24 horas. Concentrado na qualidade do jogo e seu público-alvo, e você não pode dar errado :)
Moo-Juice
Eu não me incomodaria muito, Dev fraco. Primeiro de tudo, acho que você está dando um grande passo em direção ao alívio da pirataria, oferecendo uma demonstração. Eu acho que um grande motivo para a pirataria de jogos indie é a falta de oportunidade de experimentá-la antes de mergulhar na compra. Eu acho que é bastante comum que jogos não demo sejam pirateados como uma espécie de teste. Comprar não está fora de questão se a pessoa tiver uma experiência positiva.
Sean O'Hollaren
5

Não tenho certeza do que você quis dizer com "ramificação" em seu comentário, mas é possível criar dois executáveis ​​diferentes (demo e versão completa) da mesma árvore de código-fonte usando compilação condicional . Você pode fazer uma opção em tempo de compilação para incluir apenas a capacidade de reproduzir o primeiro episódio. (Por exemplo, em C ++, você pode usar #ifdefcomandos em torno do código destinado apenas à versão completa.) Você pode fazer com que a versão demo produza pelo menos os seguintes efeitos de jogo:

  • Os ativos do primeiro episódio são armazenados em um arquivo zip, e a versão demo verifica se há uma assinatura digital nesse arquivo zip antes de iniciar. Para usar mods, os jogadores teriam que pagar pela versão completa.
  • Reorganize a codificação de opcodes em seu bytecode de script ao compilar a demonstração.
  • Remova completamente os manipuladores de um ou mais códigos de script usados ​​apenas em episódios posteriores. Isso fará com que as faltas nos episódios posteriores falhem, mesmo que a verificação da modificação do arquivo e a codificação do opcode estejam corrigidas.
Damian Yerrick
fonte
11
Mais um truque seria codificar os hashes MD5 / SHA de cada arquivo de nível de demonstração individual na versão demo. Isso tem a vantagem de que, embora apenas alterar uma única chave de hash / assinatura seja bastante fácil com um editor hexadecimal, aumentar o número de hashes (para aumentar o número de níveis reproduzíveis) é um pouco mais complicado, pelo menos se houver muitos outros dados a seguir eles.
Ilmari Karonen