인디 게임 개발 #4 ( Indie Game Dev #4 ): 전장의 안개 효과 구현 ( Making Fog of War system )

in #kr7 years ago

warning. Google Translator. English may be strange

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

오늘로서 스팀잇에 가입한 지 7일이 된 것 같아요. 그 동안에 여러가지 일이 있었어요. 그 중에 하나는 처음에 가입인사 글에 대해서 보상을 받은 것이랍니다. 아직은 어떻게 해야할 지 몰라서 망설이고 있는데… 이렇게 스팀잇을 통해서 수입이 있을 수 있다는 것을 증명해서 주변 친구들에게 알려줄 생각이랍니다. 그것에 대한 포스팅은 나중에 해보도록 할게요!

오늘은 게임 개발 일지 4회 차입니다. 1회차 ~ 3회차까지는 어떻게 이 게임이 만들어졌고, 저의 상황과 같은 것에 대해서만 주로 글을 썼는데요. 앞으로는 좀 더 제 개발 과정에 충실하게 쓰고 싶어요. 물론 스팀잇에 계신 분들께
서 편하게 이해하도록 제가 만들고 있는 것과 실제 게임 중에서 어떻게 구현이 되었는지도 올려놓고 싶습니다.

오늘 개발한 것은 ' 전장의 안개 ' 라고 불리는 시스템이에요. 이렇게 말씀하시면 무엇인지 모르실 수 있어서 아주 유명한 게임인 스타크래프트에서 어떻게 그것이 구현되었는가 보여드릴게요!

Good morning? It's a thief kobold.

I think it has been seven days since I signed up for SteemIt. There have been a lot of things in the meantime. One of them was rewarded for signing greeting at first. I'm hesitant because I do not know what to do yet ... I am going to prove to my friends that I can have income through SteemIt. I'll try to post about it later!

Today is game development journal four times. From the first to the third, I created this game and wrote mainly about things like my situation. I would like to write more faithfully in my development process in the future. Of course,
I want to make sure that I understand what I am creating and how it was implemented in real games to make it easier for me to understand.


[ 블리자드 사의 스타크래프트 ]
[ Blizzard's StarCraft]

전장의 안개는 보통은 RTS 형식의 게임에서 사용됩니다. RTS는 스타크래프트, 워크래프트와 같은 게임을 말해요.
The fog of war is usually used in games of the RTS type. RTS tells games like StarCraft, Warcraft.


[ 블리자드 사의 워크래프트 3 ]
[Blizzard's Warcraft 3]

전략적인 게임에서 시야는 정말 중요하죠. 상대방이 어디로 이동하고 있는지 알아야 전쟁에서 유리하기 때문이죠.
In strategic games, vision is really important. We have to know where the other person is moving.


[ 스타크래프트 2, 한번 보여진 곳은 회색으로 보이며 자세하게 어떤 행동을 하는지 모른다. ]
[StarCraft 2, once seen, appears gray and does not know what to do in detail. ]

한 번 보게 된 곳은 보고 있던 당시의 정보까지만 표현됩니다. 대략적으로 무엇인지 알 수 있죠. 그러나 한 번도 아직 보지 못한 곳은 깜깜하게 표현됩니다.
The place you saw once is only displayed at that time. You can see what it is about. However, the place that we have not seen yet is darkened.


[ 스타크래프트 1, 저글링은 언덕 너머 시야를 얻지 못했다. 그래서 어떤 것이 있는지 볼 수 없다]
[StarCraft 1, Juggling has not got a view beyond the hill. So I can not see what it is]

현재 저글링을 움직이는 유저는 저글링이 가지고 있는 시야를 통해서 해당 위치의 정보를 볼 수 있지만, 시야가 없는 벽 너머는 알지 못해요. 바로 이게 전장의 안개 효과입니다.
The user who is currently moving the juggling can see the information of the location through the view that the juggling has, but I do not know beyond the wall without the sight. This is the fog effect of the battlefield.


[ 저두요! 저두 ]
[ Me too! ]

t.gif

네, 이번에는 gif를 만드는 방법을 배워왔습니다. (헤헤.. )

이전에 써놨던 글에서 로딩, 로비, 플레이, 전투에 대해서 어떻게 할 것이었고 어떻게 바뀔 것인지에 대해서 포스팅을 했는데요. 영상이나 그런게 없었기 때문에 전쟁의 안개 효과를 찍으면서 같이 찍었습니다.

빨간색 육각형이 플레이어 캐릭터인데, 움직일 때 한번도 보지 못했던 곳을 의미하는 까만 색이 밝혀집니다.
그리고 한번 지나간 곳은 회색 빛으로 바뀌게 되는 것이죠.

파란색 육각형은 몬스터로서, 제 시야 밖에 있다면 몬스터가 표현되지 않고 있어요. 그래서 제 시야 안으로 몬스터가 들어오면 갑작스럽게 파란색 육각형( 몬스터 ) 가 나타나게 됩니다.

주황색 번개표시는 일종의 아이템인데요. 이것은 테스트의 편의와 유저에게 아이템의 위치를 보여줘야할 것 같아서 제 시야 밖에 있더라도 표시를 해주고 있는 상황이에요.

Yes, this time I have learned how to make a gif. (Hehe.. )

wrote a post about what I was going to do about loading, lobbying, play, and battle in the previous article and how it would change. Because we did not have image and such, we took the effect of fog of war together and took together.

The red hexagon is a player character, and when you move it reveals a black color that means you have never seen it before.
And once it passes, it turns gray.

The blue hexagon is a monster, and if it is outside my sight, the monster is not represented. So when a monster comes in my view, a blue hexagon (monster) suddenly appears.

Orange lightning sign is a kind of item. This is the convenience of the test and the user is supposed to show the position of the item, so even if it is outside of my view, I'm showing the situation.


[ 시야 안에 있으면 보인다 ]
[It looks if it is in sight]

시야 안에 몬스터가 있기 때문에 보이고 있는 상황입니다. 몬스터가 시야 밖으로 넘어가면 더 이상 볼 수 없죠. 그러나 아이템은 시야 밖에 있더라도, 그 위치를 한번 알고 있으면 언제든 확인할 수 있습니다.

It is a situation that is seen because there is a monster in sight. If the monster goes out of sight, you can not see it anymore. However, even if the item is out of sight, you can always see the location once you know it.


[ 개발자 화면에서 본 사진 ]
[Photos viewed from developer's screen]

개발자 화면에서 보시면 몬스터가 플레이어 밖에 있기 때문에 사라진 것을 확인할 수 있습니다.

이렇게 전장의 안개를 구현하게 됐습니다. 아직은 좀 더 다듬어야 하겠지만 기본적인 기능을 하는 시스템을 만들었다는 게 중요한 거죠! 디테일은 시간을 들여서 작업해야하니까요!

다음 목표는 랜덤 맵을 만드는 것입니다. 이번에 제가 이용할 것은 셀룰러 오토마타라는 것을 이용한 랜덤 맵 생성인데요. 그것은 뭐냐면...

On the developer screen, you can see that the monster is gone because it is outside the player.

This led to the implementation of the fog of the battlefield. It's still important to have a more refined system but to create a basic functional system! The details need to be worked through time!

The next goal is to create a random map. This is my random map generation using cellular automata. It's ...

random.gif
[ 셀룰러 오토마타를 이용한 랜덤 동굴 만드는 것 ]
[Making a random cave using cellular automata]

이렇게 이용되는데, 이것을 이용해서 랜덤 맵을 생성하는 작업을 하겠습니다.

읽어주셔서 모두들 감사합니다. 오늘 일요일인데 좋은 하루 보내시길 바라겠습니다!

  • 추가로 gif 찍다가 버그 같은 것을 발견해서 확인해 봐야겠네요 ㅜㅜ

We will use this to create a random map.
Thank you everyone for reading. I hope you have a good day!

  • I have to add gif to find a bug and check it out.

셀룰러 오토마타를 이용한 gif는 아래의 유튜브에서 일부 편집해서 사용했습니다.
The gif using the cellular automata was edited and used in some of the following YouTube.

https://www.유튜브.com/watch?v=v7yyZZjF1z4

Sort:  

Oh, Starcraft, Warcraft! So many hours spent with these games!

Same as me, I love story about warcraft3 , and WoW Is the reason why i become game programmer.

thank you for your reply. thank you!

My english is not good so, pls understand

딴지는 아니고 궁금해서.. 스타1에서 지상유닛은 언덕위에 시야도 확보가 안되는데 저 사진은 스캔 뿌린건가요?..

설명을 위해서 가져오다보니까.. 그렇네요. 원래 지상유닛은 언덕 시야를 못보는데 말이죠 스타1에서는 말씀하신게 맞는 것 같아요.

Thank you for this insightful post! It's very interesting to see how things work in strategy games that involve vision. 감사합니다!

your welcome, i really thank you for replying to me!

i just want people who is not related to game to understand, so i just add example.

article is translated but replying is not, so maybe my english is not good but i hope you understand my sentence!

thanks you again!

우와... 게임을 해보기만 했지 이렇게 만드는 과정을 보니까, 하나의 새로운 세계를 창조해 내는 것 같아요*- *

댓글 달아주셔서 너무 감사해요. 개발한지 얼마 안된 덕분에... 이미지 리소스가 좋지는 않아서요.. 헤헤 여튼간 꾸준히 개발하고 일지를 올려보도록 하겠습니다. 일지는 전문적인 내용보다는 좀 더 친숙하게 이해하실 수 있는 예시를 첨부해서 쓸 생각이에요. 잘 모르셔도 보실 수 있도록..

전장의 안개는 ShadowCaster 인가 하는게 유명한데
그게 유니티 에셋패키지로 나와있어요
깃헙에서 받아서 쓰는 형식이었던 것 같은데
직접 구현해서 머리아픈 것보다 그거 쓰는게 시간도 절약되고 질도
좋은거 같았습니다.
ㅎㅎ
개발을 착착 하시는 거 보니까 금방 만드시겠어요

프로그래머로서 자존심이라고 해야하나요 -_-;; 충분히 구현가능한 정도면 스스로 구현하고 싶더라구요. (생산성이 차암..)

라멛님 어떻게 잘 되고 계씬지 모르겠어요. 보니까 집 불난 날은 24시카페에서 지내셨다고 댓글을 봤는데...

플머로써 욕심이 나기는 하죠. ㅋㅋㅋ, 저는 손이 느려서 그런가 지난번에 했을때 일주일이 넘게 걸리더라구요. 그래서 ㅋㅋㅋ 알려드려요 ㅋㅋㅋ.

로그라이크는 할게 엄청 많잖아요 ㅋㅋㅋㅋ.

사실상 RPG는 기본으로 되야하죠.

하여튼 응원합니다.

라멛님의 경우는

우선은 낮이 되서 같이 게임개발하던 친구집으로 가서 있는다고 했던거 같아요. 현재 위치까지는 모르겠네요.

도적코볼트 님도 리스팀 해주시고,
다른분들도 많이 도와주셔서 송금해주신 분도 있고 보트 해주신 분도 있고, 프로모션도 어제 제가 글쓴 것처럼 160$를 넘어서 프로모트 탭 최상위에 노출되네요. 감사합니다.

많은 분들이 도와주셨네요.

https://steemit.com/help/@ludorum/need-your-help-my-house-burnt-out
혹시 댓글 보시는 분은 리스팀 한번 부탁드리려고 다시 올려봅니다.

오래 안 사실은 아니지만 그래도 인디겜겔에서 같이 대화도 나누고 그랬는데 톡방서도 그렇고.. 이렇게 되서 참 안됐네요. 힘내시길 바랍니다!

ㅋㅋㅋ 톡방도 그렇고 제가 난리를 좀 피웠죠

난리라고 생각 안해요. 충분히 그럴 수 있었던 거라고 생각하구요. 다만 조금 예민하게 반응하시는 것 같았어요. 그런데 홍님이 또 위치가 매니저다보니.. 상황과 위치가 만들어낸 거라서.. 저는 크게 신경쓰지 않습니다.

Loading...

오오.. 뭔가 하나씩 붙어나갈 때마다 옆에서 크는 조카를 보는거 같네요ㅎㅎ
조카라 생각하고 용돈은 얼마 안되지만 보팅으로 :)

ㅋㅋ 감사합니다! 이렇게 댓글 써주시는 것도 큰 동기부여가 됩니다!!

으어 이거 하나 구현하는것도 장난 아니네요

아마도 제가 @twinbraid 님이 생각하시는 어떤 것을 봐도 똑같이 생각할 거 같아요! 모르기 때문에 아마 그러시는 겁니다 ㅎㅎ.. 저는 특히 가상화폐가 너무 어려워요. 그런데 스팀잇에는 가상화폐에 관련된 글이 많아서...

개발 일지를 쓸 때, 그래도 프로그래밍이나 게임을 잘 모르시는 분들도 이해하실 수 있도록 예시를 잘 들려고 노력 중이에요.

댓글 달아주셔서 너무 감사합니다!

전 사실 가상화폐 잘 몰라요..ㅠㅠ; 여튼 님의 댓글은 많이봤는데
큐레이터를 하며 돌아보니 못본글이 많네요. 이글도 그렇습니다
앞으론 자주 뵙게 될거 같네요 ^^

@twinbraid님 너무 감사드려요. 개발자로서 제 작품에 관심을 가져주신다는게 얼마나 큰 고마움인지 모르실꺼에요. 비록 부족한 작품이지만 관심을 가져주신다는 게 정말로 고맙습니다.

보통 낮에 개발하고.. 밤에 적다보니까 새벽에 글을 쓰거든요. 어제도 새벽3시에 글을 썼어요.. 그래서 그런 것 같아요. 오늘은 그래서 한번 11시 전에 써볼 생각입니다. 많은 작업이 되진 않았지만.. 그래도 나름 재미있는 파트까진 만들었거든요 ㅎㅎ;

Coin Marketplace

STEEM 0.16
TRX 0.13
JST 0.027
BTC 59588.19
ETH 2572.25
USDT 1.00
SBD 2.50