Dissertação

{en_GB=Game Simulation Engine Optimization} {} EVALUATED

{pt=Este documento descreve o processo de optimização feito sobre simulações de batalhas de um jogo de estratégia multijogador online passado na idade média, com o objectivo de melhorar significativamente o desempenho dessas simulações. O processo começou por criar um conjunto de testes de forma a analisar o desempenho actual do motor de jogo em que as simulações correm. Com esta análise, fomos capazes de identificar problemas e guiar o resto do processo de optimização. Foram definidas duas abordagens para atingir o objectivo principal: optimizar a versão actual do motor de maneira a não alterar o algoritmo que define a batalha; e implementar por completo o jogo com um design concorrente de modo a tirar partido das características de concorrência da linguagem de programação usada no motor de jogo. Estas duas abordagens originaram duas implementações diferentes do motor de jogo: a versão Optimizada e a versão Concorrente. Com as duas versões implementadas, foi feita uma análise de desempenho das duas versões e da versão original do motor, usando cenários de batalha do jogo. Nos cenários mais pequenos, o desempenho das três versões foi muito parecida, por outro lado, nos cenários maiores, a versão Optimizada foi 3 a 4 vezes mais rápida que a versão original e a versão Concorrente 4 a 5 vezes., en=This document describes the optimization process done on battle simulations of an online multiplayer strategy game set in medieval times, with the main goal of improving significantly the performance of those simulations. The process started by creating a set of tests in order analyze the current performance of the engine in which the simulations run on. With this analysis, we are able to identify bottlenecks and guide the rest of the optimization process. Two different approaches were defined to achieve the main goal: optimize the current version of the engine while not changing the algorithm that defines the battle; and fully implement the game with a new concurrent design to take better advantage of the engine's programming language concurrency features. These two approaches originated two different implementations of the game's engine: the Optimized and the Concurrent versions. With both versions implemented, a performance analysis was made comparing both versions and the original version of the engine using battle scenarios from the game. In the smaller scenarios the performance of the two implementation and the original as very similar, in the larger scenarios, on the other hand, the Optimized version of the algorithm was 3 to 4 times faster than the original one and the Concurrent version 4 to 5 times.}
{pt=Optimização, Desempenho, Simulação, Batalha, Concorrência, Go., en=Optimization, Performance, Simulation, Battle, Concurrency, Go.}

Junho 5, 2017, 10:30

Publicação

Obra sujeita a Direitos de Autor

Orientação

ORIENTADOR

António Manuel Ferreira Rito da Silva

Departamento de Engenharia Informática (DEI)

Professor Associado

ORIENTADOR

Pedro Alexandre Simões dos Santos

Departamento de Matemática (DM)

Professor Auxiliar