-
Notifications
You must be signed in to change notification settings - Fork 2
FellowshipOfTheGame/Strategos
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
======================= Descrição ======================= Strategos (General em grego e sigla para "STRATegy Evolutive Genetic Optimized Simulator"), é um "jogo de estratégia em tempo real que se utiliza de Algoritmos Genéticos e Paralelização". Nele, você toma a posição de um general antes de uma batalha: tendo a disposição suas tropas, deve posicioná-las no mapa e dar a elas Táticas. Definidas as formações iniciais e as Táticas de cada unidade, a batalha se inicia e não se pode mais controlar suas tropas, que agora seguem as regras traçadas por você anteriormente. A cada unidade são atribuidas 'Táticas', comportamentos que ela deve seguir sob determinadas condições. Exemplos de táticas são "atire em quem estiver atirando na unidade X", "atire colaborativamente com a unidade X", “defenda a unidade X” e outros. Cada tática possui dois Triggers, gatilhos usados para ativar a tática, esses triggers podem conferir a vida da unidade e outros atributos para decidir se uma tática deve ser ativada. Sendo dois triggers, estes ainda podem ser combinados com a lógica de AND ou OR, para aumentar a variedade. Durante o jogo, cada unidade simplesmente verifica suas regras e quando encontrar uma que pode ser ativada, ela é acionada. A cada passo da simulação as naves checam novamente suas táticas e escolhem a que se encaixa na situação. Como os únicos parâmetros introduzidos pelo jogador são os tipos das unidades, as posições iniciais, suas táticas e gatilhos, o computador gera estratégias através de algoritmos evolutivos. Com eles, o Computador inicialmente cria um conjunto de estrategias iniciais, aleatórias, e então testa essas estratégias umas contra as outras, em batalhas seguindo as regras convencionais do jogo. Feitas as batalhas, as estratégias derrotadas seriam "eliminadas", enquanto as que venceram sofreriam mutações de seus parâmetros ou seriam cruzadas, juntando partes de estrategias diferentes, e esses novos conjuntos seriam testados e selecionados, continuando o processo. Ao final de várias iterações, teriamos estratégias que são boas e diferentes, pois elas continuam sempre evoluindo. Realizar batalhas inteiras do computador contra ele mesmo, diversas vezes, pode levar muito mais tempo do que estamos dispostos a esperar antes de um jogo. Tanto a tomada de ação das unidades quanto as próprias batalhas são, porém, independentes umas das outras. Assim, não há problema em executá-las todas ao mesmo tempo, ou ao menos utilizando todos os recursos que eu computador dispor para realizá-las juntas, usando vários núcleos e outras estratégias. Assim, a otimização feita a partir da Paralelização do código, tanto durante a batalha quanto durante o 'treinamento' do computador, poderiam ocorrer em tempos bem mais razoáveis. ======================= Bibliotecas ======================= SDL2 SDL2_Mixer SDL2_Image SDL2_TTF ======================= Compilando ======================= Linux: Instale as bibliotecas necessárias e depois rode o makefile com: make Windows: Utilizando o projeto do Code::Blocks, configure os diretórios para as bibliotecas no seu ambiente: SDL_HOME - Diretorio base do SDL2 SDL_IMAGE_HOME - Diretório base do SDL2_Image SDL_MIXER_HOME - Diretório base do SDL2_Mixer SDL_TTF_HOME - Diretório base do SDL2_TTF Todos esses diretórios devem possuir dentro a seguinte configuração: pasta_sdl_exemplo /include /lib ======================= Créditos ======================= Ivan Caramello (desenvolvedor) Matheus Lin (desenvolvedor e arte) Bruno Toderi (desenvolvedor) Guilherme 'Kurama' (desenvolvedor) Helder S. L. Moraes (desenvolvedor) Mateus Malvessi Pereira (desenvolvedor) André Missaglia (desenvolvedor) Yvan Cezarino Fernandes (arte) Ana Luiza Figueiroa (arte) Stéfanie Fares Sabbag (arte) Juliana Crivelli (arte) Henrique 'OitoH' (som)
About
Strategos - Strategy game based on Genetic Algorithm
Resources
Stars
Watchers
Forks
Packages 0
No packages published