Suporte ao desenvolvimento de jogos!


    [Duvida/Ajuda] Como deve ser um launcher?

    Compartilhe
    avatar
    KamuiRyu
    Novato
    Novato

    Mensagens : 26
    Créditos : 1

    [Duvida/Ajuda] Como deve ser um launcher?

    Mensagem por KamuiRyu em Qua Jul 26, 2017 2:18 am

    Eae galera da aldeia, então, estava fazendo o launcher para meu game e então bateu uma duvida crucial.
    Em um launcher, como vocês acham que ele deve ser atualizado? Verificando arquivo por arquivo, ou por um arquivo zip, ou os dois mesmo. Eu fiz o primeiro, mas eu quero deixar esse launcher praticamente perfeito, então pergunto a vocês, como deve ser feito essa atualização.

    Fico no aguardo de uma opinião.
    Muito obrigado pela atenção
    avatar
    DragonicK
    Experiente
    Experiente

    Mensagens : 431
    Créditos : 59

    Re: [Duvida/Ajuda] Como deve ser um launcher?

    Mensagem por DragonicK em Qua Jul 26, 2017 5:44 am

    tanto faz, depende de como vc vai fazer o negocio
    avatar
    GallighanMaker
    Desenvolvedor
    Desenvolvedor

    Medalhas :
    Mensagens : 809
    Créditos : 82

    Ficha do personagem
    Nível: 1
    Vida:
    30/30  (30/30)
    Energia:
    0/0  (0/0)

    Re: [Duvida/Ajuda] Como deve ser um launcher?

    Mensagem por GallighanMaker em Qua Jul 26, 2017 10:16 am

    Eu particularmente utilizo um arquivo ZIP para atualização, mais fácil tratar e menos problemas. Se for fazer file a file você irá precisar verificar cada um e sua integridade, aconselho a usar um hash nesses files tanto no servidor quanto client, se o file do client for diferente do server ele baixa dnv pois ainda não completou ou deu algum problema, visando isso você terá um launcher que funciona de forma adequada. 


    _________________
    @IndieDB @Steam Concept
    --
    avatar
    KamuiRyu
    Novato
    Novato

    Mensagens : 26
    Créditos : 1

    Re: [Duvida/Ajuda] Como deve ser um launcher?

    Mensagem por KamuiRyu em Qua Jul 26, 2017 10:37 am

    @DragonicK escreveu:tanto faz, depende de como vc vai fazer o negocio
    É que estou em dúvida, porque eu acho um sistema que baixé arquivo por arquivo bem interessante, mas o de baixar um arquivo compactado em .zip também é um ótimo sistema, aí vem minha dúvida.
    avatar
    KamuiRyu
    Novato
    Novato

    Mensagens : 26
    Créditos : 1

    Re: [Duvida/Ajuda] Como deve ser um launcher?

    Mensagem por KamuiRyu em Qua Jul 26, 2017 10:45 am

    @GallighanMaker escreveu:Eu particularmente utilizo um arquivo ZIP para atualização, mais fácil tratar e menos problemas. Se for fazer file a file você irá precisar verificar cada um e sua integridade, aconselho a usar um hash nesses files tanto no servidor quanto client, se o file do client for diferente do server ele baixa dnv pois ainda não completou ou deu algum problema, visando isso você terá um launcher que funciona de forma adequada. 
    Eu estou verificando arquivo por arquivo verificando apenas o tamanho, estava verificando data de modificação também, mas deu uns problemas e acabei tirando. Você acha que preciso verificar mais alguma coisa, ah, já ia esquecendo, verifico se o arquivo existe também, tudo isso utilizando um arquivo .txt que é baixado, assim que ele baixa, eu salvo ele em um array e apago, aí saiu verificando arquivo por arquivo.
    Enfim, me explique um pouco sobre esse hash, só conheço hash para criptografia de varáveis, porque sou programador web, então não consegue muito isso.
    E vlw pela opinião, vai ajudar bastante. 
    avatar
    GallighanMaker
    Desenvolvedor
    Desenvolvedor

    Medalhas :
    Mensagens : 809
    Créditos : 82

    Ficha do personagem
    Nível: 1
    Vida:
    30/30  (30/30)
    Energia:
    0/0  (0/0)

    Re: [Duvida/Ajuda] Como deve ser um launcher?

    Mensagem por GallighanMaker em Qua Jul 26, 2017 12:45 pm

    Você pode usar algo parecido (utilizando uma hash MD5)

    Código:
     private string GetFileChecksum(string file, HashAlgorithm algorithm)
            {
                string result = string.Empty;

                using (FileStream fs = File.OpenRead(file))
                {
                    result = BitConverter.ToString(algorithm.ComputeHash(fs)).ToLower().Replace("-", "");
                }

                return result;
            }

    E após criar uma função para calcular o MD5, utlizar para ler algum arquivo remoto e comparar  com um local:


    Código:
    string RemoteMD5checksum;
    string LocalMD5checksum;

    string remoteFile = "http://seuserver.com/seuarquivo.txt"
    string localFile =  "C:/suapasta/seuarquivo.txt"

    RemoteMD5checksum = GetFileChecksum(remoteFile, new MD5CryptoServiceProvider());
    LocalMD5checksum = GetFileChecksum(localFile, new MD5CryptoServiceProvider());

    if(RemoteMD5checksum.Equals(LocalMD5checksum ))
    //hash's iguais
    else
         //hash's diferentes


    Se quiser dar uma olhada na documentação da referencia: System.Security.Cryptography;

    Update:
    Na verdade você terá que baixar esse arquivo remoto temporariamente, não sei se da pra verificar dessa forma passando o path completo. 


    Dica:
    Você pode usar um foreach pra calcular todos arquivos remotos e pra verificar com cada um local.

    Espero ter ajudado.


    _________________
    @IndieDB @Steam Concept
    --
    avatar
    KamuiRyu
    Novato
    Novato

    Mensagens : 26
    Créditos : 1

    Re: [Duvida/Ajuda] Como deve ser um launcher?

    Mensagem por KamuiRyu em Qua Jul 26, 2017 1:10 pm

    @GallighanMaker escreveu:Você pode usar algo parecido (utilizando uma hash MD5)

    Código:
     private string GetFileChecksum(string file, HashAlgorithm algorithm)
            {
                string result = string.Empty;

                using (FileStream fs = File.OpenRead(file))
                {
                    result = BitConverter.ToString(algorithm.ComputeHash(fs)).ToLower().Replace("-", "");
                }

                return result;
            }

    E após criar uma função para calcular o MD5, utlizar para ler algum arquivo remoto e comparar  com um local:


    Código:
    string RemoteMD5checksum;
    string LocalMD5checksum;

    string remoteFile = "http://seuserver.com/seuarquivo.txt"
    string localFile =  "C:/suapasta/seuarquivo.txt"

    RemoteMD5checksum = GetFileChecksum(remoteFile, new MD5CryptoServiceProvider());
    LocalMD5checksum = GetFileChecksum(localFile, new MD5CryptoServiceProvider());

    if(RemoteMD5checksum.Equals(LocalMD5checksum ))
    //hash's iguais
    else
         //hash's diferentes


    Se quiser dar uma olhada na documentação da referencia: System.Security.Cryptography;

    Update:
    Na verdade você terá que baixar esse arquivo remoto temporariamente, não sei se da pra verificar dessa forma passando o path completo. 


    Dica:
    Você pode usar um foreach pra calcular todos arquivos remotos e pra verificar com cada um local.

    Espero ter ajudado.
    Eu vi isso em um forum da microsoft, e acho que tenho um jeito de fazer com que seja mais rápido e fazer requisições ao servidor apenas para fazer o necessário, no caso, o download.
    Bom, vou explicar aqui, vai saber se alguém tem o mesma duvida que eu. Da pra criar um arquivo txt, com o hash original dos seus arquivos, como eu disse antes, eu to baixando o arquivo, salvando em um array, e depois eu excluo esse arquivo, é instantâneo, a partir dai, já da para comparar o hash com o arquivo original. Acho que isso pode funcionar, quase certeza que vai funcionar.


    Muito obrigado, você me ajudou bastante, não teria nem pensado em usar o hash em um arquivo, muito obrigado mesmo.
    avatar
    Darkio
    Iniciante
    Iniciante

    Mensagens : 50
    Créditos : 1

    Re: [Duvida/Ajuda] Como deve ser um launcher?

    Mensagem por Darkio em Qua Jul 26, 2017 1:25 pm

    @gallighanmaker Falando em Launcher o seu já foi publicado amigo? Eu creio que não o encontrei aqui na Aldeia, se ja tiver publicado pesso desculpas pelo incômodo. Até pra gente saber mesmo qual lógica você usa, ele virá open source? Seria bacana se ele viesse com o codigo fonte em .rar e o launcher final junto.
    avatar
    KamuiRyu
    Novato
    Novato

    Mensagens : 26
    Créditos : 1

    Re: [Duvida/Ajuda] Como deve ser um launcher?

    Mensagem por KamuiRyu em Qua Jul 26, 2017 1:34 pm

    @Darkio escreveu:@gallighanmaker Falando em Launcher o seu já foi publicado amigo? Eu creio que não o encontrei aqui na Aldeia, se ja tiver publicado pesso desculpas pelo incômodo. Até pra gente saber mesmo qual lógica você usa, ele virá open source? Seria bacana se ele viesse com o codigo fonte em .rar e o launcher final junto.
    O meu não vai virar open-source, eu até pensei em disponibilizar, mas quero algo preciso e potente para meu jogo, algo que concorrência hammmm(Forces games) não tenha. Posso até tá fazendo um launcher para deixar open-source, mas se eu for fazer, vou deixar ele mais simples e tals.
    avatar
    GallighanMaker
    Desenvolvedor
    Desenvolvedor

    Medalhas :
    Mensagens : 809
    Créditos : 82

    Ficha do personagem
    Nível: 1
    Vida:
    30/30  (30/30)
    Energia:
    0/0  (0/0)

    Re: [Duvida/Ajuda] Como deve ser um launcher?

    Mensagem por GallighanMaker em Qua Jul 26, 2017 2:27 pm

    @Darkio


    Não será open source o meu para os netplays, pelo menos não no começo até todo mundo testar e dar os feedbacks, depois disso irei criar uma documentação e disponibilizar um modelo open source.


    No caso desse tópico é apenas uma sugestão ao do amigo acima, que se eu não estiver engando é para um projeto utilizando eclipse.


    Após publicar eu mando o link pra você. 


    _________________
    @IndieDB @Steam Concept
    --

    Conteúdo patrocinado

    Re: [Duvida/Ajuda] Como deve ser um launcher?

    Mensagem por Conteúdo patrocinado


      Data/hora atual: Seg Jun 25, 2018 10:59 am