안녕


오픈월드 생존 FPS

개발일지를 쓰던 와따따야


거의 일주일 만에 온 것 같아

드디어 게임 이름을 정했어


[스캐빈저]


스캐빈저라고 불리는 용병들이

돈과 명예를 얻기 위해 신대륙을 탐험하는 이야기야


스토리와 정보는 차차 풀기로 할게




[개발일지] #1 오픈월드 생존 FPS (이름 미정)

https://gall.dcinside.com/mgallery/board/view/?id=game_dev&no=78751&search_head=10&page=1



예전 일지에서 본 것처럼

심리스를 구현했었는데


좌표계에 문제가 생겨서

거의 3일 내내 헤맸어


모바일 게임 같은 작은 맵에서

맵 데이터를 통합 관리하던 게 너무 그립더라



1e89ef1fe2d53eb46facdfb91a91697d526220d7fd349635e1332c9ce9014476793b9fcfc3c071898d76bc8f5764c06fc97d7ccd3ee0a116740d39059e83faf427831df4cd6a28f70a1f92c07482af234b



어쨌든 동서남북을 기준으로

인접 청크와 셀의 인덱스를 저장해서


이웃 데이터를 불러오는 방식으로 해결했어

포인터 배열을 못 쓰니까 구조체로 인덱스를 뽑아왔지


직접 계산해서 공식을 세운 다음에

이웃 정보를 뽑아왔는데


if문은 축약 안 하고 그냥 냅뒀어

축약하니까 더 알아보기 힘들더라고


이렇게 대강 좌표를 해결하고

바이옴 생성, 즉 생물군계로 넘어갔지


이 자료가 많이 도움 됐어

http://www-cs-students.stanford.edu/~amitp/game-programming/polygon-map-generation/




1e89ef1fe2d53eb46facdfb91a91697d4c6a2ed5fe22aa30f07d1fd5b7547559fc3fbfaf07ada4350b9526b8c1c6aad0c5ccf5ad9e7f2e0dc514c63168136861af8af6bfb967d474e819e4353c5a6e1251fb92ad2308c95ba1f8e0e1b509e3575fa5c98e12477146e84e80530e42ea15326ada49d873248fed15403e51170436d6aa2c22792db7b8



1e89ef1fe2d53eb46facdfb91a91697d4c6a2ed5fe22aa30f07d1fd5b7547559fc3fbfaf07ada4350b9526b8c1c6aad0c5ccf5ad9e7f2e0dc514c63168136861af8af6bfb967d474e819e4353c5a6e1251fb92ad2308c95ba1f8e0e1b509e3575fa5c98e12477145e84e80530f79ea150566fa997eb5b15e69dcf89f4d48b93ef0306d00d59d3205


이렇게 변했어

쉐이더 블렌딩까지 하면 더 멋질 것 같아



물의 순환 구조를 시뮬레이션 했는데


바다에서 수분이 증발하고

증발한 수분이 구름을 만들고


구름이 맵 전체로 퍼져

비를 뿌려 땅에 수분을 채우게 했어


고도에 따라 수분을 아래로 강하 시켜

조금씩 육지에 스며들게 했고


그리고 대륙에서도 조금씩

수분이 증발해서 구름을 만들었어


풍향을 시뮬레이션 해서

비 그림자를 설정했고

(인근 지역보다 강수량이 극도로 부족한 지역을 의미해)



온도도

한대 기후, 온대 기후, 열대 기후를 나눌 거고


수분으로

사막화, 아열대를 구현할 거고


강수량을 제어해서

툰드라의 습지 등을 구현할 거야




사막 열대 열대

사막 온대 온대

사막 냉대 냉대

사막 한대 한대


x축을 습도로 

y축을 온도로 


이렇게 행렬로 구현하면 돼


풀, 나무, 몬스터 등을 추가하는 건

행렬 데이터를 확장시키면 되니까 간단해


어쨌든 온도까지 구현하고

행렬로 생물군계를 구현해봤어



1e89ef1fe2d53eb46facdfb91a91697d4c6a2ed5fe22aa30f07d1fd5b7547559fc3fbfaf07ada4350b9526b8c1c6aad0c5ccf5ad9e7f2e0dc514c63168136861af8af6bfb967d474e819e4353c5a6e1251fb92ad2308c95ba1f8e0e1b509e3575fa5c98e12477146e84e80530e42ea15306ade40d872258fed15403e51170436c01e91ba73e45d2a


1e89ef1fe2d53eb46facdfb91a91697d4c6a2ed5fe22aa30f07d1fd5b7547559fc3fbfaf07ada4350b9526b8c1c6aad0c5ccf5ad9e7f2e0dc514c63168136861af8af6bfb967d474e819e4353c5a6e1251fb92ad2308c95ba1f8e0e1b509e3575fa5c98e12477146e84e80530e42ea15306ade42d8722e8fed15403e51170436c2f68756724d8cbb


버그 났어


ㅠㅠ