Ok, então essa é uma pergunta de nível iniciante, mas eu preciso saber disso. A que se refere o termo "tick" no contexto do desenvolvimento de jogos? É a mesma coisa que FPS? Obrigado!
Ok, então essa é uma pergunta de nível iniciante, mas eu preciso saber disso. A que se refere o termo "tick" no contexto do desenvolvimento de jogos? É a mesma coisa que FPS? Obrigado!
Respostas:
Um tick é uma unidade de medida do tempo, especificamente se refere a uma única instância de uma ação repetida (geralmente uma ação ampla) em um jogo, ou o período de tempo que a ação consome.
Os carrapatos são repetidos e (principalmente) regulares; o termo vem de um dos sons que um relógio emite ("tick" e "tock").
Normalmente, um tick é uma iteração de algum loop, como o loop lógico do jogo principal. Pode-se dizer, por exemplo, que a lógica do jogo "marca" uma vez em um quadro, ou que "durante o tick, as posições dos personagens são atualizadas".
No entanto, também pode se referir a períodos mais granulares; pode-se dizer que "o tick da IA no jogo é limitado a 5ms do tempo de processamento".
O FPS é uma medida de quantos quadros (geralmente processam quadros) um jogo processa em um segundo. Carrapatos e FPS não estão necessariamente relacionados, no entanto, às vezes, as pessoas chamam uma única execução do loop lógico de jogo de "quadro lógico"; nesse caso, a taxa (lógica) de FPS seria o número de ticks processados por segundo. Isso é particularmente comum em jogos que aplicam taxas de quadros fixas para lógica ou física de jogos por qualquer motivo.
A maioria dos jogos é implementada em um loop. Algo como
def main
setup(a, bunch, of, stuff)
load(a, bunch, of, stuff)
while true do {
// <- A tick starts here
read(a, bunch, of, inputs)
call(a, bunch, of, stuff)
do(a, bunch, of, stuff)
update(a, bunch, of, stuff)
// <- A tick ends here
}
clean(a, bunch, of, stuff)
save(a, bunch, of, stuff)
end
É uma maneira bastante padrão de fazer as coisas e, embora os elementos de renderização e interface do usuário possam ser manipulados em um thread separado, a lógica do jogo real (pressione w para mover sua nave para a frente) acontece dentro desse tick.
Isso também é chamado de "quadro" e geralmente é chamado de taxa de quadros (não deve ser confundido com o material gráfico). Tick se tornou um sinônimo popular para ajudar a diferenciar os dois.
Como programador, seu objetivo é ter uma taxa de quadro (tick) constante e estável, não importa o quê. Isso mantém as respostas no seu jogo tranqüilas e racionais, ao mesmo tempo em que permite que um modelo (programação, não gráficos) processe as coisas de maneira amigável ao computador. Os tempos de ticks não são constantes entre os jogos e não há número mágico. Alguns jogos têm 100 quadros por segundo, outros 1 tick a cada 3 segundos.
Um "tick" pode se referir a duas coisas diferentes. Pode se referir a uma marca de quadro, como você disse, se todos os gráficos visíveis na tela forem atualizados. No entanto, o termo "tick" também pode se referir a um tick de loop de jogo. Esse tipo de tick é onde seu código é executado. Normalmente, seus ticks estão no contexto de um loop com os mesmos ticks repetidos que continuarão até o jogo parar.
Um tick geralmente se refere a uma iteração do loop do jogo na qual toda a lógica é computada, portanto os jogos geralmente têm vários ticks por segundo.
No entanto, muitos jogos executam os gráficos e o loop do jogo no mesmo encadeamento, porque os gráficos geralmente não demoram muito para serem exibidos, para que a lógica seja interrompida, ou vice-versa (embora os desenvolvedores ponham controle em situações como essa, como tomando a diferença de tempo entre o último e o atual quadro e ajustando a taxa de movimento de acordo).
FPS significa F rames P er S econd, assim por muitos jogos, sim, tecnicamente falando, cada quadro é um carrapato.
physics engine update frame
é muito longo para jogadores casuais se lembrarem / entenderem.