Eu encontrei recentemente essas duas jóias:
http://dan-ball.jp/en/javagame/dust/
Minha pergunta é: como a física com tantos elementos é tratada com eficiência? Estou subestimando severamente o poder da computação moderna ou é possível "apenas" ter uma matriz bidimensional, cada célula da qual descreve o que é colocado na posição correspondente e simular cada célula em cada etapa. Ou há coisas mais complexas sendo feitas, como resumir grandes áreas do mesmo tipo em um único conjunto de dados e separar esse conjunto, conforme necessário?
Existem jogos de código aberto como esse que eu poderia olhar?
physics
efficiency
Marc Müller
fonte
fonte
Respostas:
Certamente há alguns; Eu costumava modificá-los. Observe que os links são para tópicos do fórum e downloads de fontes. As duas que tenho as melhores lembranças são:
EngimaSand por xavierenigma ( C ++ | Java ) O Java é mais recente.
BurningSand por sieben ( C ++ ) Este é muito rápido em termos de física.
Infelizmente, o site está quase morto, mas há vários tópicos aqui sobre física.
Edição: Para qualquer pessoa interessada, eu mediafire'd a fonte Java para EnigmaSand aqui .
fonte
A física desses jogos é simulada pelo uso de um sistema baseado em um autômato celular complexo . É significativamente mais complicado do que o usado no Game of Life, por exemplo, e incorpora recursos que significam que provavelmente não é uma autoridade de certificação adequada, mas ainda é relativamente simples de calcular e já faz anos. Para não entrar em muitos detalhes, mas a complexidade do algoritmo será muito pequena, talvez até O (área).
Parece que também há inteligência de enxame, o que também é surpreendentemente eficiente para os efeitos interessantes que pode criar.
fonte
Muitos anos atrás, Jos Stam começou a publicar seu código-fonte para solucionadores de fluidos. Há um pequeno pedaço de código que configura uma grade e resolve as equações de Navier-Stokes muito rapidamente. A fonte completa também está disponível em sua página.
fonte