Jump to content
Sign in to follow this  
lordfokas

Biblioteca - MD5 / SHA-512

Recommended Posts

lordfokas

Boas, eu ando de volta de um jogo (tipo MMORPG, mas tenciono faze-lo em 1ª pessoa - há que ser inovador) em C++.

Para o efeito estou a usar o DevCpp v4.9.9.2 e o motor gráfico Irrlicht Engine.

De forma a acelerar o o acesso aos ficheiros, criei um sistema de ficheiros virtual (o Irrlicht já tem um, mas eu queria uma coisa feita á minha maneira, e sempre foi educativo), o qual é capaz de importar e exportar ficheiros sob a forma de arquivos.

E como em qualquer jogo Cliente-Servidor, tenho de me certificar que os arquivos não foram alterados, recorrendo a um auto-patcher para 2 efeitos: a) certificar-me que os arquivos não foram corrompidos, sobretudo por jogadores maliciosos, mas também por qualquer anomalia do sistema; :P fazer com que os jogadores tenham sempre a versão mais actual de forma rápida e indolor.

Para isso, preciso de uma biblioteca que me permita fazer checksums, de preferencia em SHA-512 (ou num algoritmo com uma chave maior).

A ideia aqui não é propriamente a segurança, mas sim minimizar o numero de blocos de dados que ao passar no algoritmo geram chaves iguais.

Atenciosamente,

LordFokas.

Share this post


Link to post
Share on other sites
Triton

Eu gosto muito do MurmurHash.

Simples e eficaz. Estou a usar essa função de hash para algo parecido ao que tu queres. Uso num sistema de recursos num motor 3D também.


<3 life

Share this post


Link to post
Share on other sites
lordfokas

Obrigado, já estou a sacar, em breve testo isso.

Um pequeno aparte, estás a usar que motor gráfico?

Eu uso o Irrlicht Engine, e quero gerar eventos atraves de entidades no mapa, mas ainda não faço grande ideia como meter as entidades no mapa e muito menos como gerar um evento (quando por exemplo alguem colide com elas).

Desde já obrigado.

Share this post


Link to post
Share on other sites
Triton

Estou a desenvolver o meu próprio game engine e editor (http://vapor3d.org/).

Em relação aos eventos, é uma área onde tens várias soluções a diferentes níveis.

No meu caso um sistema de entidades de jogos, que contêm componentes. Esses componentes normalmente geram eventos, e diferentes entidades e/ou componentes podem subscrever a esses eventos.

Existem várias formas de como representar os eventos em si. Podes usar inteiros para os identificar, podes usar strings, etc. Normalmente também acabas sempre por querer associar algum estado (data) ao evento, por exemplo num evento de colisão, queres passar as entidades que estão a colidir.

Outro pormenor que podes pensar é como ligar os eventos a uma linguagem de scripting de alto nível (Lua).

Deixo-te uns artigos que descobri na semana passada que gostei bastante:

http://bitsquid.blogspot.com/2009/12/events.html

http://bitsquid.blogspot.com/2011/01/managing-coupling.html

http://bitsquid.blogspot.com/2011/02/managing-decoupling-part-2-polling.html

E quanto às entidades do mapa, no meu sistema simplesmente guardo um conjunto de entidades que constituem uma "scene" ou "level".

Bem, isto já é algo off-topic, se precisares de ajuda ou quiseres discutir estas cosias contacta-me pessoalmente.


<3 life

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.