GMBR
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.
Entrar

Esqueci-me da senha

Últimos assuntos
» Problema ao entrar por uma porta e voltar por ela
por aminaro Hoje à(s) 10:08

» Alguém aqui já ganha dinheiro com seus games?
por theguitarmester Ter 30 Abr 2024, 11:43

» Colisões não funcionando
por theguitarmester Ter 30 Abr 2024, 10:16

» Como ajustar velocidade de cada frame da animação no game maker
por pequetux Sex 26 Abr 2024, 16:45

» Preciso de ajuda
por AftonDuGrau Dom 21 Abr 2024, 20:18

» Como faz o evento drawn GUI, não se repetir?
por aminaro Sex 19 Abr 2024, 20:30

» PROBLEMAS COM FÍSICAS DE ÁGUA
por aminaro Ter 16 Abr 2024, 10:07

» Retorno da GMBR!!!
por Ralphed Sex 12 Abr 2024, 22:45

» JOGADOR PARANDO NO AR QUANDO ATACA
por aminaro Qua 10 Abr 2024, 13:51

» Problemas com texto interativo
por Kaaru72 Dom 07 Abr 2024, 11:31

» Erro escondido e indecifrável
por dev_gabize.azv Qui 04 Abr 2024, 10:11

» Mudar cor de apenas uma palavra
por Ralphed Sáb 30 Mar 2024, 00:39

» Procuro Programador de game maker
por Wou Sex 15 Mar 2024, 10:27

» Mod APK
por gamerainha Qua 13 Mar 2024, 06:30

» Aceito pedidos de sprites (Com exemplos meus)
por Sevilha Qua 28 Fev 2024, 12:17

» Inventário simples
por Isquilo_Roedor Qui 22 Fev 2024, 15:18

» Problemas na programaçnao de inimigo [jogo DOOM LIKE]
por Black Mirror Dom 11 Fev 2024, 13:34

» ANDROID MULTI TOUCH
por DiegoBr Dom 04 Fev 2024, 12:13

» Servidor de Discord do fórum?
por Lighter Sáb 27 Jan 2024, 17:18

» Save e Load Json
por Klinton Rodrigues Qui 25 Jan 2024, 11:12

» Colisão com mais de um objeto
por aminaro Seg 22 Jan 2024, 15:02

» Oi sou novo aqui
por Thiago Silveira Alexandre Sáb 20 Jan 2024, 20:55

» Como acessar conteudo comprado no marketplace
por macmilam Sex 19 Jan 2024, 07:42

» Devlogs em vídeos do Block Room
por Joton Seg 15 Jan 2024, 16:56

» ACERVO GMBR MAGAZINE
por Joton Qui 11 Jan 2024, 19:21


Criação de caminho em sala isoladas

3 participantes

Ir para baixo

Criação de caminho em sala isoladas Empty Criação de caminho em sala isoladas

Mensagem por PaladinoMaluko Seg 18 Out 2021, 14:56

Olá pessoal, estou precisando de ajuda para melhorar um código que fiz recentemente através de um site de um gringo(link do post: https://refreshertowel.games/2021/01/19/procedural-generation-in-gms-3-cellular-automata/). Ele ensina a fazer um mapa procedural, mas eu gostaria de melhorar ele, vou colocar uma imagem para melhor explicação:
Criação de caminho em sala isoladas Imagem12

como podem ver, esse mapa foi criado e existem algumas salas isoladas que não cotem saídas, e minha ideia era conectar essas salas com pequenos caminhos e corredores mas eu não sei como posso fazer isso ou por onde começar e por isso vim aqui pedir ajuda a como posso fazer isso, quero deixa claro que estou usando um sistema de matriz para posicionar os blocos no mapa

fico grato a qualquer ajuda ou ideia
PaladinoMaluko
PaladinoMaluko

Data de inscrição : 08/01/2021
Reputação : 0
Número de Mensagens : 15
Prêmios : Criação de caminho em sala isoladas Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

Criação de caminho em sala isoladas Empty Re: Criação de caminho em sala isoladas

Mensagem por theguitarmester Ter 19 Out 2021, 23:25

Opa, sobre geração procedural, tem um link bem útil que o @RodrigoSantiago um dia me passou:
https://medium.com/@Scriptie/3d-maze-generation-in-unity-ec36415b659a

E nesse tópico, eu achei referencia pra esse muito bacana que é cheio de algoritmos para labirinto:
https://www.jamisbuck.org/mazes/
theguitarmester
theguitarmester

Games Ranking : Nota C

Notas recebidas : B + C
Data de inscrição : 28/02/2012
Reputação : 139
Número de Mensagens : 2211
Prêmios : Criação de caminho em sala isoladas Empty

Medalhas x 0 Tutoriais x 4 Moedas x 0

Ouro x 2 Prata x 2 Bronze x 1

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 1
Plataformas :
  • Unity


http://guitarmester.no.comunidades.net/index.php?pagina=19362978

Ir para o topo Ir para baixo

Criação de caminho em sala isoladas Empty Use geração semi-procedural

Mensagem por tiaoferreira Seg 01 Nov 2021, 11:59

Cara, eu criei um sistema de geração semi-procedural de código super simples, no qual vc só precisa de uma ou duas variáveis randômicas para sortear as peças e alguns objetos e sprites, com alguns frames dentro.

Comecei os testes em 2009, no flash, e aperfeiçoei no GM, em 2016.

Eis um video demonstrativo da bagaça em ação, no flash:




Aqui eis como está hoje o método, no GM:


Explicando detalhes
https://gamejolt.com/games/navinha-little-ship/192960

Em miúdos, funciona assim:

No evento CREATE, vc seta uma variável que verificará a fase do game, aqui chamada de "x"; Crie também uma variável que definirá o tipo de mapa, aqui chamada de "e"; Uma terceira variável sorteará um frame específico dentro de um sprite específico, a ser exibido na tela. Essas três variávies serão responsáveis por sortear as imagens que formarão o mapa.

No evento STEP, o algoritmo fica então assim:

if(stage is number(x)){
environment_group=(e)
if(environment==(e)){
piece_of_map=(random(40);
}
}

Onde:
x = o número de fases, entre 1 a 40 (ou o número de estágios secretos) no caso esse aqui tem 40 fases, use o número de fases do seu projeto;

e = o número do grupo de ambiente. Organizei em alguns grupos, como segue:

1 = oceano com ilhas
2 = oceano sem ilhas
3 = oceano gelado com ilhas cobertas de neve
4 = Antártida
5 = deserto com dunas
6 = deserto com montanhas rochosas
7 = pântano
8 = lava
9 = selva
10 = lua/espaço

Cada grupo de ambiente é um sprite composto por 40 frames, daí a numeração de 40 no algoritmo (mas vc pode usar o nº que quiser, ok?).

No início do jogo, a variável (e) é pré-definida pelo autor, pois o estágio mostra suas propriedades ao jogador, quando o estágio é selecionado.

Se o mapa mostra a África e o jogador o seleciona, o programa atribui a (e) o valor 5, 6 ou 9, dependendo da região do mapa. No entanto, a variável para pedaço do mapa é escolhida aleatoriamente pela CPU e seu valor é obrigatório entre 1 e 40.

Se você tentar usar este sistema, você pode alterar o valor das peças, não é obrigatório você usar 40. Eu uso esse número porque é o suficiente para mim, 40 peças diferentes multiplicadas por 10 cenários diferentes multiplicados por 6 sprites no jogo geram também muitos cenários dinâmicos, é muito massa vê-lo funcionando! Smile

Deixei o game rodando por duas horas, e não repetiu NENHUM cenário exatamente como mostrado da primeira vez. O programa combina as partes já motandas aleatoriamente em outras novas, também aleatórias. Confiram:
Criação de caminho em sala isoladas 2124479-ll-avnpsju5-v4
tiaoferreira
tiaoferreira

Data de inscrição : 09/11/2013
Reputação : 0
Número de Mensagens : 3
Prêmios : Criação de caminho em sala isoladas Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

Criação de caminho em sala isoladas Empty Use geração semi-procedural (parte 2)

Mensagem por tiaoferreira Seg 01 Nov 2021, 12:05

Esse exemplo aí eu usei num jogo de nave com scroll vertical. Para fazer jogos de tela fixa é ainda melhor, é só eliminar as linhas do scroll e setar a "aleatoriedade" de montagem do mapa nos eixos X e Y (no exemplo atual muda só o X).

Resumindo:

Quando o jogo começa, o código sorteia o número de um frame, dentro de um sprite; Feito isso, sorteia a posição no eixo X em que esse sprite deverá aparecer. s sprites vão descendo a tela e quando chegam ao limite, são eliminados e ressurgem na linha de origem, sorteando-se então um novo sprite. No caso do exemplo em tela, que é de scroll vertical, todos os sprites que compõem o mapa surgem na mesma linha, fora da tela e vão descendo. para sua sala fixa, elimine o scroll e sorteie aleatoriamente os eixos X e Y.

O código é super simples, acho que não dá dez linhas, tanto no GM, quanto no flash, e os resultados são incríveis. Estou tentando adaptar pro Mega Drive e pro MSX.
tiaoferreira
tiaoferreira

Data de inscrição : 09/11/2013
Reputação : 0
Número de Mensagens : 3
Prêmios : Criação de caminho em sala isoladas Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

Criação de caminho em sala isoladas Empty Re: Criação de caminho em sala isoladas

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Ir para o topo Ir para baixo

Ir para o topo

- Tópicos semelhantes

 
Permissões neste sub-fórum
Não podes responder a tópicos