인디 게임 개발 #5 ( Indie Game Dev #5 ) 세포자동자를 이용한 랜덤 맵 생성 ( Random Map Generation using cellular automata)

in #kr7 years ago


[ 저의 아이디는 중학생 때 했던 데브캣 스튜디오의 마비노기에서 따왔습니다 ]
[ My ID is from Mabinogi in Devkat studio in junior high school]

안녕하세요? 도적코볼트에요!

벌써 다섯 번째 게임 개발 일지입니다. 오늘 개발 일지는 저번 글에서 마지막 부분에 적어놨던 세포자동자( Cellular Automata )를 이용한 랜덤 맵 생성입니다.

오토마타라는 것은 상태를 가지고 있는 기계라고 보시면 됩니다. 어떤 시간에 하나의 상태만 가지고 있는 것들을 오토마타라고 합니다. 이런 오토마타 중에서 저는 랜덤 맵을 만들기 위해서 ' 세포자동자' 라고 하는 셀룰러 오토마타를 이용했어요!

Good morning? It's a thief kobold!

It is already the fifth game development journal. Today's development journal is a random map generation using Cellular Automata that I wrote in the last part of the article.

Automata are machines that have state.

Those that have only one state at any time are called automata. Among these automata, I used cellular automata to create a random map!


[ 세포자동자를 이용해서 만든 예시 1 ]
[Example made using cellular automata 1]


[ 세포자동자를 이용해서 만든 예시 2]
[Example 2 made using cellular automata 2]

아마도 이쪽 계통에 계시지 않은 분들께서는 조금은 이상하게 보이실 거에요. ( 사실 저도 이상하게 보여요. )

간단하게 설명드리면 바둑판처럼 생긴 각 네모 칸들이 주변의 상태에 영향을 받아서 다른 모습으로 변하는 거에요!

Maybe it's a little strange for those who are not on this line. (Actually, I look strange.)

Simply put, each square that looks like a checkerboard is affected by the state of the surroundings and changes to another shape!


[ 변화하고 있는 셀룰러 오토마타 ]
[ Changing Cellular Automata]

이런 ' 세포 자동자 ' 를 이용해서 게임 쪽에서 랜덤한 맵을 만드는데 사용할 수 있습니다!
You can use this cellular automata to make a random map on the game side!

전체 맵.gif
[ 만들어진 랜덤 맵 ]
[Random map created]

위에 있는 gif의 경우 제가 세포 자동자를 이용해서 만든 랜덤맵입니다. 맵을 만들 때마다 다른 맵이 나오게 되는 것을 확인하실 수 있습니다.

약간 동굴같은 모양이죠? 여러가지 랜덤 맵을 만드는 방식이 존재하는데 동굴 형태의 랜덤 맵을 만들 때 그 분위기나 모습을 적절한 이미지와 함께 만든다면 동굴 느낌이나는 컨셉을 충분히 살릴 수 있습니다.

이렇게 만들어진 랜덤 맵 위에 플레이어를 위치시키고 이동시킨다면..

In the case of the gif above, I am a random map made by using cellular automata. You can see that each time you create a map, another map will come out.

It looks like a little cave, right? There is a way to create various random maps. When you create a cave-like random map, if you create the mood or shape with the proper image, you can fully utilize the cave feeling or concept.

If you place the player on the random map and move it ...

이동.gif

이렇게 저번에 포스팅했던 전장의 안개효과와 함께 섞이게 된다면 마치 랜덤으로 만들어진 곳을 모험할 수 있습니다.

( 인디 게임 개발 #4 ( Indie Game Dev #4 ): 전장의 안개 효과 구현 ( Making Fog of War system )
( https://steemit.com/kr/@krdoko/4-indie-game-dev-4-making-fog-of-war-system )

마지막에는 전장의 안개효과를 끈 상태에서 개발할 때 사용하는 뷰를 이용해서 전체 맵을 확인해 봤습니다.

하지만 아쉽게도 아직 랜덤 맵이 게임에서 기능적으로 사용되기 위해서는 많이 부족한 상태입니다. 조금 더 다듬어서 " 방 " 의 개념을 만들어야 하거든요. 어떠한 아이템을 파는 상점 " 방 " , 보스 몬스터가 있는 보스 " 방 " 과 같은 것을 만들기 위해서는 조금 더 처리를 해야합니다.

그래서 다음 포스팅은 현재 만들어진 랜덤 한 맵을 다듬어서 " 방 "을 만들겠습니다. 그리고 현재 전체 맵을 보신다면

If you mix it with the fog effects of the battlefield you posted last time, you can venture out of random places.

At last, I checked the entire map using the view I used when I developed the fog effect on the battlefield.

Unfortunately, there is still a shortage of random maps to make them functional in games. I have to make a little more refinement to make the concept of "room". Shop "room" to sell any item, boss with boss monster To make things like "room", you have to do a little more processing.

So the next posting is to create a "room" by trimming the random map that is currently created. And if you look at the entire map now

캡처.PNG
[ 빨간 색 네모, 파란색 네모 동 떨어진 맵 ]
[Red square, blue square seperated map ]

빨간색으로 친 네모와 파란색으로 친 네모가 동떨어져 있습니다. 이러면 다른 지형으로 이동을 하지 못하게 되겠죠. 이렇게 떨어져 있는 것들을 이어주도록 하겠습니다.

The red square and the blue square are separated. This will prevent you from moving to other terrain. I will keep these things apart.


[ 행복하냐? ]
[Are you happy? ]

항상 포스팅하는 시간대가 새벽대라 그런가.. 많은 분들이 보지는 못하시는 것 같아요. 굉장히 아쉬운 것 같습니다. 낮에는 보통 게임 개발하는 것을 트위치(Twitch)에서 방송하면서 개발하고 있기 때문에 글 쓰기가 참 애매하거든요. 그러다보니 낮에는 작업을 하고 밤에 글을 쓰다보니까... 언제나 새벽인 것 같습니다. 좀 더 많은 분들께서 보잘 것 없는 게임이지만.. 봐주셨으면 하는 마음으로 포스팅을 하고 있거든요.

그렇지만 이렇게 읽어주시는 분들이 한 분, 두 분 계시기 때문에 저도 즐겁게 개발일지를 남길 수 있는 것 같습니다. 트위치에서 하는 방송도 고정적으로 와주시는 8~10명 분들과 함께 떠들면서 개발하기 때문에 요즘에는 즐겁게 개발을 할 수 있는 것 같아요.

읽어주신 분들께 다시 한 번 감사의 말씀을 올리며, 혹시 제 글이 재미있거나 앞으로 기대가 되신다면 친구추천과 리스팀을 부탁드릴게요!

그러면 다음 번에는 위에서 적은 대로 나눠진 곳을 이어붙여서 다시 오겠습니다!
이 글을 쓰는 시간이 많이 늦었네요! 그래서 지금 시간으로 인사드리겠습니다.

다들 좋은 꿈 꾸고 계시죠?

I always post the time zone is dawn or something .. I guess many people do not see it. I feel very sorry. I usually develop games during the day by broadcasting on Twitch (Twitch), so writing is very vague. So I work in the daytime and write at night ... It seems to be always dawn. It's a little game for a lot of people, but I'm posting it with a heartfelt wish.

However, since it is one person who reads like this, and two people, I seem to be able to leave development journal pleasantly. I think that I can develop it happily these days because it develops by talking with 8 ~ 10 people who come to the broadcasting station in a fixed position steadily.

I would like to thank all of you who have read it again, and if you have any interest in my writing or you are looking forward to it, I would like to invite you to a friend recommendation and lease team!

Then, next time, I will come back again by connecting the divided place as I did above!
It is too late to write this article! So, I will say hello to you now.

Are you having a good dream?

---출처---
---source---

세포 자동자를 이용해서 만든 예시 1
Example 1 made using cellular automata

-> http://www.mced-ecology.org/?page_id=590

변화하고 있는 셀룰러 오토마타
Changing cellular automata

-> https://jeremykun.com/2012/07/29/the-cellular-automaton-method-for-cave-generation/

Sort:  

낮에는 개발 새벽에는 스팀잇~ 열심히 살고 계십니다ㅎㅎ 재미있는 게임이 나올 것 같네요

답글 달아주셔셔서 감사드립니다. 어제 늦게 자고 이제야 일어났네요.. 벌써 점심 시간이에요!
점심 식사 맛있게 하세요!! 기대해 주시기 때문에 동기부여가 되어서 더 열심히 할 수 있는 것 같아요.

와.. 세포 자동자로 맵을 만든다니.. 신기하네요! :D

오메가 쓰리님 학업 중에 바쁘신데 개발하는거 보면 너무너무 대단하다고 생각합니다. 저는 학생 때 그러지 못했거든요. 이렇게 어린 나이이신데도 열심히 하시는 것을 보면 나중에 분명 크게 될 수 있을거라 생각합니다.

ㅎㅎ;; 감사합니다!!

맵을 만들었으니 방을 만들고 이제 적 캐릭터를 넣어주고 으아 할께 많군요.

그쵸? 생각보다 게임을 만드는 작업을 알면 참 많은 과정이 필요해요. 저 같은 경우 혼자서 모든 파트를 하고 있기 때문에 더 걸릴 것 같아요. 그래도 노력해보겠습니다!

세포 자동자라니... 태어나서 처음 듣는 개념이네요. 게임 개발의 세계는 참 신기한 것 같습니다 :) 혹시 시간대 때문에 노출이 안된다고 생각 드시면 미리 써놓고 오후에 올려보시는 것도 좋을 것 같네요! 저도 최근에 krdoko님 글들을 제대로 못 본 것 같기도 ㅠㅠ 아무튼 언제나 화이팅입니다 :)

스팀 잇에 글을 쓰는 그게 마크다운언어인가요? 뭔가 좀 익숙하질 않아서.. 불편하고 글을 어디에 복사-붙여넣기 해놓은 다음에 올리기에도 참 애매하더라구요. 그러다보니 그냥 올리는데... 그 시간대가 새벽 2~3시 이런 경우가 있는 것 같아요.

빔바님이 말씀해 주신 대로 나중에는 한번 시간대를 바꿔서 올리는게 필요할 것 같아요. 모든 사람이 그러하듯이 자기가 쓴 글이 관심을 받으며 받을 수록 기분이 좋잖아요.

저도 빔바님이 관심을 주셔서 너무 고맙습니다 .아침에 눈 뜨니까 이렇게 댓글이 달려 있고 좋은 글들이 있으면 기분이 참 좋은 것 같아요!

곧 있으면 점심시간인데 식사 맛있게 하세요!

잘 봤습니다! 랜덤 맵을 사용하는 게임을 하면서 어떻게 만드는 지 궁금했는데, 이런 방법이 있군요.

답글 달아주셔서 감사합니다! 이 외에도 더 많은 방법이 있긴한데.. 저 같은 경우는 개발 초기라서 일단은 그 중에 하나인 셀룰러 오토마타를 사용했습니다. 약간의 느낌이 다른 형식으로도 만들어질 수 있거든요. 그러다보니 기회가 된다면 좀 더 다양한 방식으로 만들어 보고 싶어요.

댓글 달아주셔서 다시 한 번 감사드리구요 11시 30분이 넘은 지금, 곧 있으면 점심을 드셔야할텐데 식사 맛있게 하세요!!

ㅋㅋㅋ 여기도 바로 달아주셨네요. 라면짤 너무 감사합니다 관심가져주셔서 ^^~ 점심시간인데 맛있는거 드세요!

Coin Marketplace

STEEM 0.16
TRX 0.13
JST 0.027
BTC 59601.30
ETH 2583.48
USDT 1.00
SBD 2.48