Hemera

De Arkaik - Wikipédia
Revisão de 19h07min de 4 de março de 2022 por Zell (discussão | contribs) (Criou página com 'Este artigo foi criado por Zell, é um relato pessoal e não possui relação direta com o servidor, a leitura é interessante para aqueles que gostam de conhecer sobre o desenvolvimento de jogos, você não precisa ler isto para jogar nosso projeto. Hemera é o nome da versão em produção do hook e seu conjunto de tecnologias utilizados que fazem o "overlay" em ROZero. O nome Hemera vem da Deusa da Luz (mitologia grega) que também tem a alcunha de Deusa da Mentira....')
(dif) ← Edição anterior | Revisão atual (dif) | Versão posterior → (dif)
Ir para navegação Ir para pesquisar

Este artigo foi criado por Zell, é um relato pessoal e não possui relação direta com o servidor, a leitura é interessante para aqueles que gostam de conhecer sobre o desenvolvimento de jogos, você não precisa ler isto para jogar nosso projeto.


Hemera é o nome da versão em produção do hook e seu conjunto de tecnologias utilizados que fazem o "overlay" em ROZero. O nome Hemera vem da Deusa da Luz (mitologia grega) que também tem a alcunha de Deusa da Mentira. Escolhi este nome pois o "overlay" não é um overlay nativo ao jogo, ele apenas tenta mascarar e enganar os jogadores para que achem que a interface e telas fazem parte do jogo.

Em suma, nossa aplicação fica por cima do cliente do jogo fingindo fazer parte do jogo, ao mover a tela do jogo, Hemera vai movimentar junto o hook e se o jogo perder o foco ela também oculta as telas do jogo, dando a impressão que Hemera faz parte do jogo.

História de Origem

A ideia do hook surgiu por volta de 2018 ao perceber uma necessidade que segurava a minha imaginação. Atualmente era possível criar script's, mapas, monstros, habilidades e classes customizadas graças a diversas ferramentas criadas pela comunidade de servidores ao decorrer de anos.

Entretanto ainda faltava algo... a possibilidade de criar novas telas, possibilitando criar mecânicas novas ao jogo utilizando novas interfaces. E foi com isto em mente que tracei qual seria o objetivo da nossa prova de conceito:

Criar uma tela nova que faça com que os jogadores não percebam que ela não está de fato "dentro" do jogo.

Arquitetura

Nós sabíamos o que queríamos fazer, mas como? Como criar uma tela customizada que conversa com o nosso servidor?

Bom, há algumas formas de fazer isto e elas são várias, listamos todas elas e depois fomos por eliminação baseado no tempo e minha experiência como desenvolvedor.

Utilizar um código fonte de existente de um cliente feito do zero

Alguns de vocês devem conhecer o roBrowser, um cliente web feito pelo membro do rAthena: KeyWord. O projeto foi abandonado pelo mesmo, mas bastante coisa foi feita, era possível jogar sem maiores problemas, o que mais fazia falta era a leitura de efeitos hardcoded no cliente ou algumas telas que ainda não haviam sido implementadas, mas isto eu poderia fazer.

Versões

Satella

A primeira versão da prova de conceito se chamava Satella e foi aplicada em um servidor Full PvP. O motivo de ser um full pvp? Bem, precisávamos de um servidor cobaia que pudesse ser montado rápido e que pudéssemos colocar a prova de conceito em um ambiente de produção.