Nostradamus 6 Postado Julho 26, 2009 Share Postado Julho 26, 2009 (editado) "OTPatcher" : Estudo de caso Observe que um estudo de caso apenas propõe uma solução a um problema, e não quer dizer realmente que esta será implementada/desenvolvida pelo autor. Problema Servidores OpenTibia com sprites customizados possuem dificuldades em dar certo devido a falta de atenção dada a essa área. Além disso, existem muitos limites encontrados em criar-se itens personalizados devido a um pseudo-limite existente. Introdução Em muitos jogos quando há atualizações, existe um cliente patcher que é responsável por fazer um controle de versão, com isso é possível fazer com que o jogador baixe apenas quantidade pequenas de dados, não cabendo a este ter que baixar novamente dados que já existem e que na grande maioria dos casos, é a maior parte. Em OpenTibia algo como isso traz um grande avanço pois a área de desenvolvimento de novos gráficos (spriting) e modificações no arquivo DAT as vezes é visada por muitos, porém nem sempre é levada adiante por causa de limitações como baixar arquivos realmente muito grandes. O que torna ainda mais difícil uma atualização constante destes. Como funciona um controle de versão básico O processo é bem simples: é feita uma comparação entre o arquivo-alvo e o arquivo-base e disso são descartados os bytes semelhantes, gerando assim as diferenças. Em controles de versão avançados como CVS ou SVN é possível usar esse recurso para ver linhas de código diferentes. É muito útil em projetos conjuntos e servem como um log de ações. Solução Armazenar informações de mudanças por versão e um identificador por versão ajuda muito. O processo passa a ser um pouco menos dinâmico, porém mais eficiênte. Primeiro, é feita a busca em um registro pela versão do usuário e a análise da versão do servidor, e por comparações lógicas é feita uma atualização de cada revisão graduada da versão do usuário até versão do servidor de forma que estas no final do processo sejam idênticas. Segundo, para um melhor desempenho o programa deve identificar antes do processo cada parte modificada da versão original para que somente estes sejam alterados e os demais permaneçam intactos (não faz sentido modificar algo para a mesma coisa). Infelizmente esse processo pode ser demorado, já que depende de vários aspectos tais como a velocidade de processamento dessas informações e o tamanho de cada arquivo a ser analizado. Por último, é feito o download desses dados que nada mais são que as diferenças entre os dados do servidor e os dados do usuário. Esses dados são temporários e após tudo terminado devem ser inseridos no arquivo base do usuário. A inserção deve levar em conta a posição do arquivo em que cada dado deve ser inserido. Esse passo é bastante delicado e qualquer problema poderá corromper os dados, por isso, é recomendado checagens de hash MD5 para ver se a integridade após fim de processo é igual com a do servidor. O arquivo então é salvo e a atualização termina. Editado Julho 26, 2009 por Nostradamus Link para o comentário https://xtibia.com/forum/topic/117089-arquivadootpatcher/ Compartilhar em outros sites More sharing options...
noobinhu 38 Postado Julho 26, 2009 Share Postado Julho 26, 2009 Ou é cara, não parou com OT? rsrs Isso já existe no TFS... porém em relação ao banco de dados somente, estar fazendo isso não seria invasão de privacidade? aiuhaiu, fazer o download forçado de sprites Link para o comentário https://xtibia.com/forum/topic/117089-arquivadootpatcher/#findComment-768114 Compartilhar em outros sites More sharing options...
Nostradamus 6 Postado Julho 26, 2009 Autor Share Postado Julho 26, 2009 Ou é cara, não parou com OT? rsrs Isso já existe no TFS... porém em relação ao banco de dados somente, estar fazendo isso não seria invasão de privacidade? aiuhaiu, fazer o download forçado de sprites Cara, sinceramente você não entendeu o que eu propus. Primeiro, não se trata de algo server-side related, ou seja, não é uma feature de alguma distro de servidor, e sim um cliente executável chave para um servidor em específico. Segundo, eu não entendi o nexo de invasão de privacidade, essa diferença entre arquivos é feita entre jogador e servidor host, esses sprites devem ser baixados para que o jogador desfrute de tais para jogar no servidor, essa é intensão do servidor acima de tudo. Com relação se eu parei com OT: sim, porém isso é algo que achei interessante para o projeto OpenTibia e não quer dizer que não posso visitar aqui e contribuir de vez em quando Irei propor uma forma mais técnica de se fazer isso em breve, estou discutindo agora mesmo com o VaL. Saliento porém, que não estou me candidatando para isso. Link para o comentário https://xtibia.com/forum/topic/117089-arquivadootpatcher/#findComment-768125 Compartilhar em outros sites More sharing options...
noobinhu 38 Postado Julho 26, 2009 Share Postado Julho 26, 2009 Sim, sim eu entendi. Só comentei porque existe do lado do servidor este patch já conectado com outro servidor p/ atualizações automáticas no TFS. Eu digo do lado cliente uma invasão de privacidade, porque em nenhum lugar você cita a opção do jogador escolher entre "Baixar" ou "Não baixar" as atualizações e se estas forem feitas sem permissão, é sim uma invasão. Link para o comentário https://xtibia.com/forum/topic/117089-arquivadootpatcher/#findComment-768130 Compartilhar em outros sites More sharing options...
Nostradamus 6 Postado Julho 26, 2009 Autor Share Postado Julho 26, 2009 Sim, sim eu entendi.Só comentei porque existe do lado do servidor este patch já conectado com outro servidor p/ atualizações automáticas no TFS. Eu digo do lado cliente uma invasão de privacidade, porque em nenhum lugar você cita a opção do jogador escolher entre "Baixar" ou "Não baixar" as atualizações e se estas forem feitas sem permissão, é sim uma invasão. Cara...não são atualizações de servidor para com um servidor raiz, e sim atualizações de arquivos do cliente Tibia modificados por um servidor, trata-se do Tibia.DAT e Tibia.SPR.... E não tem essa de "sem permissão", acho que você realmente não entendeu. O servidor que tiver sprites customizados ou seja lá o que for do tipo, iria disponibilizar um patcher onde o jogador baixaria e através deste, baixaria as atualizações feitas NOS GRÁFICOS e atribuitos do Tibia.DAT. Logo, se o objetivo deste servidor é possuir itens customizados de tal forma que torne o gameplay sem estes gráficos difícil, o jogador terá de baixar ou caso contrário irá sofrer dificuldades em entender algumas coisas do servidor talvez. Link para o comentário https://xtibia.com/forum/topic/117089-arquivadootpatcher/#findComment-768136 Compartilhar em outros sites More sharing options...
noobinhu 38 Postado Julho 26, 2009 Share Postado Julho 26, 2009 É o conceito de baixar os sprites eu entendi, só talvez não tenha entendido como será feito isso, algo automático ou manual, anyway... boa sorte hehe Link para o comentário https://xtibia.com/forum/topic/117089-arquivadootpatcher/#findComment-768148 Compartilhar em outros sites More sharing options...
Nostradamus 6 Postado Julho 26, 2009 Autor Share Postado Julho 26, 2009 (editado) @noobinhu Mais uma vez: eu não disse que eu ia fazer, isso é apenas um case study. Como disse, não estou envolvido com OpenTibia mais, a esse nível. Editado Julho 26, 2009 por Nostradamus Link para o comentário https://xtibia.com/forum/topic/117089-arquivadootpatcher/#findComment-768151 Compartilhar em outros sites More sharing options...
noobinhu 38 Postado Julho 26, 2009 Share Postado Julho 26, 2009 (editado) Ok, retiro o boa sorte então rsrs, até mais novamente... Editado Julho 26, 2009 por noobinhu Link para o comentário https://xtibia.com/forum/topic/117089-arquivadootpatcher/#findComment-768155 Compartilhar em outros sites More sharing options...
Kydrai 146 Postado Julho 26, 2009 Share Postado Julho 26, 2009 Eu achei a idéia interessante. Eu tava estudando algumas coisas novas em c++ sobre manipulação de memória pra saber como funcianavam os ips changers ai pensei nisso tbm. Mas não sei como funcionaria isso, tenho que pesquisar, ainda so iniciante em programação. Link para o comentário https://xtibia.com/forum/topic/117089-arquivadootpatcher/#findComment-768197 Compartilhar em outros sites More sharing options...
Diogo 29 Postado Julho 26, 2009 Share Postado Julho 26, 2009 Essa é uma grande idéia! Pensem só galera, nos novos horizontes que se abririam caso existisse um programa desses! Pensem na customização à qual os OTServs poderiam chegar sem maiores problemas! Sprites novas baixadas em precisar baixar um arquivo .dat inteiro! Até mesmo notícias rapidinhas do OTServ no próprio Patcher/Loader (como em Ragnarok)! Os spriters seriam os mais requisitados para os OTServs, já que seriam eles que garantiriam a sensação máxima de exclusividade ao jogar aquele OTServ! Atualmente isso só não acontece pelo fato de que ficar baixando .dat é bem chato... Ótima idéia Yuji! Link para o comentário https://xtibia.com/forum/topic/117089-arquivadootpatcher/#findComment-768259 Compartilhar em outros sites More sharing options...
Nostradamus 6 Postado Julho 27, 2009 Autor Share Postado Julho 27, 2009 Essa idéia se bem explorada pode por fim ou mesmo tirar a grande importância de IPChangers e websites. Para que a transferência de arquivos ocorra, seria necessário que o host rodasse um servidor de download, e para aproveitar isso, este poderia conter outras informações. Veja um exemplo de um "OTPatcher" que opera também como um website básico e IPChanger: Link para o comentário https://xtibia.com/forum/topic/117089-arquivadootpatcher/#findComment-768549 Compartilhar em outros sites More sharing options...
noobinhu 38 Postado Julho 27, 2009 Share Postado Julho 27, 2009 Além do distro e do servidor de download, ainda teria que ter um outro servidor em uma porta XXXX p/ receber requisições para criação de contas, por exemplo, correto? Link para o comentário https://xtibia.com/forum/topic/117089-arquivadootpatcher/#findComment-768552 Compartilhar em outros sites More sharing options...
Nostradamus 6 Postado Julho 27, 2009 Autor Share Postado Julho 27, 2009 @noobinhu Errado, esse download server pode ser integrado ao game server. Além disso, a requisição de criação de contas por exemplo é só um a mais, não é relevante, mas já que perguntou, ela no caso seria junto ao game server (preferencialmente). Link para o comentário https://xtibia.com/forum/topic/117089-arquivadootpatcher/#findComment-768588 Compartilhar em outros sites More sharing options...
noobinhu 38 Postado Julho 27, 2009 Share Postado Julho 27, 2009 Hmm entendi, então se alguém fosse desenvolver este sistema, teria que comunicar a TFS Team ou outro distro, para desenvolverem juntos? Link para o comentário https://xtibia.com/forum/topic/117089-arquivadootpatcher/#findComment-768593 Compartilhar em outros sites More sharing options...
lucasjockey 1 Postado Julho 27, 2009 Share Postado Julho 27, 2009 O problema é que você vai atualiza somente o executavel, e não os arquivos xml como o items.xml. Além disso, comparação binária pode trazer vários erros como caso um programador já tenha modificado o seu TFS com modificação binária antes do atualizador existir, assim o patcher vai reescrever as partes que foram gravadas nele por outro programador e poderá corromper o software. No tibia existe o patch porque ele não tem código fonte aberto e os únicos que modificam ele em modo binário são os bot's (pessoas que usam softwares para facilitar a jogabilidade) ou crackers. Link para o comentário https://xtibia.com/forum/topic/117089-arquivadootpatcher/#findComment-768599 Compartilhar em outros sites More sharing options...
Posts Recomendados