Pra quem nao sabe, Lightbringer (Rhye's Quest) e o meu novo jogo em desenvolvimento em C/C++. Portanto antes de prosseguir com a leitura deste artigo, recomendo que visite o blog oficial do jogo e saiba do que se trata: www.rhyesquest.blogspot.com.Atualizacao: Agora o jogo e open-source e voce pode analisar por si mesmo a arquitetura dele. Confira em: http://fernando-aires.blogspot.com/2015/01/lightbringer-rhyes-quest-agora-e-open.htmlConteudo do artigo:Introducao1. SDL e XTiles: A base dos graficos2. Classe Object, a "pedra fundamental" da engine3. Classe Map, um mapa do jogo4. Classe World, o mundo inteiro esta aqui5. O editor6. Classe Player7. Classe Enemy8. Introducao sobre a engine9. Movimentacao e deteccao de colisoes10. Inimigos11. Sistema de batalhaConclusaoIntroducaoResumindo em poucas palavras, Rhye's Quest e um jogo no estilo "roguelike", um RPG baseado em turnos e com graficos primitivos. Esta sendo desenvolvido por mim mesmo ha 2 anos (desde 2011, incluindo prototipos e algumas versoes rudimentares que foram abandonadas ao longo desse tempo). Neste artigo eu analiso a engine do jogo para os que tem curiosidade em saber como ele foi desenvolvido. Quero ressaltar que este artigo e de um teor tecnico, nao e voltado aos iniciantes em programacao mas sim ao pessoal que ja tem alguma experiencia em desenvolvimento de software em geral (especialmente em C/C++) e tem curiosidade sobre como funciona a programacao de jogos.Desenvolver um jogo esta muito longe de ser uma tarefa trivial. Isto pois o processo envolve conhecimento especifico de diversas disciplinas da Ciencia da Computacao. Preciso dizer tambem que o jogo esta em desenvolvimento, ou seja, a engine esta incompleta. Neste artigo pretendo dar uma visao detalhada na medida do possivel sobre as estruturas que compoem a engine do jogo e seu funcionamento interno, pelo menos dos aspectos que ja foram implementados. Nao sera apresentado codigo-fonte original do jogo pois ele nao e open-source e nao me permito divulgar no momento, principalmente pelo fato de ser um trabalho em andamento.Vale lembrar que o projeto de Rhye's Quest e dividido em dois grandes pedacos: o editor e a engine. O editor e usado para desenhar os objetos e os mapas. A engine e o jogo propriamente dito, que utiliza as informacoes dos mapas criados no editor. Tanto o editor quanto a engine foram desenvolvidos "do zero", primeiro o editor, depois a engine.Vamos agora discutir os principais aspectos e as principais classes do projeto.1. SDL e XTiles: A base dos graficosA unica "coisa pronta" inclusa no projeto de Rhye's Quest e a biblioteca SDL, que contem funcionalidade baixo-nivel para permitir a utilizacao de conteudo multimidia, especialmente graficos. Tirando isso, todo o resto do sistema foi desenvolvido do zero, incluindo elementos de interface grafica. A vantagem principal de ter usado a biblioteca SDL esta no fato de que, devido a isso, o projeto e multiplataforma. Isto significa que e possivel compilar Rhye's Quest para o Windows, para Linux, ou qualquer outro sistema operacional que possua alguma implementacao da SDL. Em versoes anteriores havia sido utilizada a biblioteca Allegro, semelhante a SDL porem mais alto-nivel e nao tao portavel.Alem de ter usado SDL, foi aproveitada a totalidade do codigo de um projeto paralelo