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
» player não consegue andar
por lovn7 Qui 21 Nov 2024, 13:33

» É possível fazer istó no game maker
por William Lima Qui 21 Nov 2024, 10:56

» Rio Rise - novo launcher do Gta San Andreas SAMP Brasil
por Lua Sáb 16 Nov 2024, 20:22

» (Resolvido) Cenario longo x Texture Pages
por josuedemoraes Sáb 16 Nov 2024, 15:31

» Kids' band
por Adilson Lucindo Santos Sex 15 Nov 2024, 12:23

» (RESOLVIDO) Engasgos-Troca de Sprites/animações
por josuedemoraes Ter 12 Nov 2024, 01:49

» Block Room - DEMO
por Joton Qua 06 Nov 2024, 22:58

» Game Infinito vertical (subindo)
por macmilam Sáb 26 Out 2024, 12:36

» Retorno da GMBR!!!
por Dancity Ter 22 Out 2024, 16:36

» Máquina de estados
por aminaro Qui 10 Out 2024, 13:33

» como faço pra um objeto colidir com o outro e diminuir a vida do player ?
por josuedemoraes Qui 03 Out 2024, 16:51

» RESOLVIDO: Colisão com objetos moveis
por josuedemoraes Qua 02 Out 2024, 20:28

» Crypt of the Blood Moon
por divin sphere Qua 11 Set 2024, 18:18

» como fazer um objeto seguir?
por divin sphere Dom 18 Ago 2024, 18:08

» Procuro de alguém para Modelar/Texturizar/Animar objetos 3D
por un00brn Dom 11 Ago 2024, 11:10

» Destruição de cenário (estilo DD Tank)
por CoronelZeg Sex 09 Ago 2024, 17:16

» RESOLVIDO-Como destruir uma instancia especifica de um objeto
por josuedemoraes Ter 23 Jul 2024, 00:40

» Automatizar a coleta de id
por GabrielXavier Seg 22 Jul 2024, 18:01

» Preciso de ajuda para concluir um pequeno projeto
por lmoura Qui 27 Jun 2024, 15:45

» ANGULO ACOMPANHAR O OBJETO
por Klinton Rodrigues Qui 27 Jun 2024, 08:34

» Musica reinicia quando sala reinicia
por GabrielXavier Ter 18 Jun 2024, 07:28

» como fazer uma copia de gd
por generico_cube Sex 14 Jun 2024, 15:48

» Square Adventure
por guilherme551 Ter 11 Jun 2024, 09:54

» como posso definir limite de uma variavel
por GabrielXavier Sex 07 Jun 2024, 14:14

» [Resolvido] Dúvida, colisão única de objeto
por vdm842 Sex 24 maio 2024, 09:50


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