Como posso modificar como minha cena é desenhada para parecer que está ocorrendo em diferentes momentos do dia?

8

Meu jogo tem uma associação diurna com a cena, que a luz da manhã será diferente da tarde e da noite. Mas não sei como fazer essa diferença.

Aqui está um exemplo no jogo Pokemon:

insira a descrição da imagem aqui

Eu tenho uma idéia que coloque uma camada no topo do jogo com a transparência entre 10 e 20% e mude de cor depende do tempo, mas não sei qual cor é boa.

Existem outros mecanismos para fazer algum tipo de ciclo dia / noite em um jogo desse estilo?

Luke Vo
fonte
Qual é a pergunta exatamente?
Doppelgreener 30/10/11
@JonathanHobbs Gostaria de saber a melhor maneira de fazer a diferença na luz do dia.
Luke Vo
Novos sprites que atendem a uma condição de raio que não tem nada para fazer brilhar essas janelas e o teto.
doppelgreener

Respostas:

10

Existem duas maneiras de fazer isso. O caminho mais fácil e o jeito que realmente parecerá escuro.

O caminho mais fácil é exatamente o que você disse: jogue um quad em tela cheia que escurece a cena. Mas:

Eu tenho uma idéia que coloque uma camada no topo do jogo com a transparência entre 10 e 20% e mude de cor depende do tempo, mas não sei qual cor é boa.

Isso porque não há "bom". Existem apenas níveis variáveis ​​de maus. Sempre parecerá o que é claramente: uma cena brilhante que foi escurecida. A noite real não é simplesmente uma cena brilhante que foi escurecida. Áreas diferentes são mais escuras de maneiras diferentes.

O melhor que você pode fazer é executar vários testes e encontrar a cor menos ofensiva. Ninguém pode lhe dar uma "boa cor", porque tal coisa não existe. Existe apenas "o que você pessoalmente pode tolerar para sua cena em particular".

A maneira certa de fazer isso é fazer com que seus artistas redesenhem todos os sprites para uma cena mais sombria. Obviamente, isso exige muito trabalho, e é por isso que a maioria dos jogos baseados em sprites não possui ciclos diurnos e noturnos.

De fato, os jogos de sprites que realizavam cenas noturnas também tinham a vantagem de usar sprites paletizados. Nesses casos, eles simplesmente criaram uma paleta especial "noite" para os sprites. Isso lhes deu a oportunidade de ajustar as cores para obter o melhor efeito visual.

Você pode tentar algo semelhante a isso, mas exigiria o uso de sprites paletizados.

Nicol Bolas
fonte
Muito obrigado! É ruim que não tenhamos muito tempo para nossos artistas. Então, talvez tenhamos que aceitar a cor menos ofensiva!
Lucas Vo
2

Eu tenho uma idéia que coloque uma camada no topo do jogo com a transparência entre 10 e 20% e mude de cor depende do tempo, mas não sei qual cor é boa.

Tentativa e erro é uma grande coisa. Você tem a ideia - uma sobreposição de algum tipo seria a mais fácil. A sugestão de usar laranja ao anoitecer e preto à noite também é boa. Mas ninguém aqui pode lhe dizer quais cores usar para fazer com que seu jogo pareça bom - isso depende inteiramente de você e do seu senso de design.

Uma maneira muito mais complicada de alterar a hora do dia é gerar um conjunto totalmente novo de sprites para cada período do dia. A maioria desses sprites seria simplesmente sombreada de maneira diferente, como se você estivesse usando a sobreposição acima, mas isso permitiria outros efeitos, como luzes da rua e outras coisas.

dlras2
fonte
Hmm, tentei algumas cores, mas o resultado não é muito bom. Eu sou muito ruim em design gráfico. Você pode me dar uma boa cor (RGB e alfa)? Obrigado por responder.
Luke Vo
@WN - "[N] ninguém aqui pode lhe dizer quais cores usar para fazer com que seu jogo pareça bom." Isso inclui a mim mesmo. Veja a resposta de Nicol Bolas para saber por que isso não é possível.
dlras2
(Qualquer explicação para uma downvote?)
dlras2
1

Da minha experiência muito limitada de fazer esse tipo de coisa em alguns jogos que eu fiz, para torná-la "mais escura", ou seja, durante a noite, eu faria como você disse e adicionaria uma camada preta ao jogo. mais perto de transparente do que opaco.

No período da noite, eu faria a mesma coisa, mas com uma cor laranja para dar uma sensação de "anoitecer".

Se você quiser torná-la mais escura (ou mais alaranjada) gradualmente, aumente gradualmente a opacidade da cor ao longo do tempo.

É o que eu faria de qualquer maneira. Tenho certeza de que pode haver uma maneira melhor lá fora.

Nicholas
fonte
Você pode me dar o código de cores que você experimentou?
Luke Vo
@WN Não tenho nenhum código disponível no momento. O que eu tentaria é criar uma imagem em preto do tamanho da tela. Carregue-o no seu jogo na frente de todo o resto. Agora, se você aumentar a transparência da imagem em preto, ela deverá tornar visível tudo o que está por trás dela, além de adicionar uma sombra escura a tudo. Se você não pode alterar os valores alfa da imagem na estrutura / idioma em que está trabalhando, diminua a opacidade antes de salvar a imagem no seu software de edição de imagens e salve a imagem como png também.
Nicholas