디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

댕댕이 서바이벌 #8 - 성능 최적화 (움짤 주의)

태보미코갤로그로 이동합니다. 2023.03.24 08:50:01
조회 6243 추천 38 댓글 68

- 관련게시물 : 댕댕이 서바이벌 #6 - 즉사 공격, 가까운 적 탐색, 데미지 표기



- 관련게시물 : 댕댕이 서바이벌 #5 - 몬스터 스폰



- 관련게시물 : 댕댕이 서바이벌 #3 - 무기 종류 추가 및 업그레이드 구현



- 관련게시물 : 댕댕이 서바이벌 #2 - 무기 기틀 세우기



- 관련게시물 : 댕댕이 서바이벌 #1 - 플레이어 기본 조작




댕댕이 서바이벌 #7 - 플레이어 스텟



점점 더 복잡해져가는 시스템 !

어지러워서 쓰러져버릴 것 같아 !

뒤돌아보기 무서워 !

ㅈㅅ




지난 개발일지에서는 아래 짤처럼 즉사 공격, 가까운 적 탐색, 데미지 표기를 구현했어.

viewimage.php?id=2abcdd23dad63db0&no=24b0d769e1d32ca73cea82fa11d0283167b3609c5c7cf1dd93c16821866307a2e2843883d1eb1a512cdd2be82a75c11837b74c3004f40c4d000ad51c7332

데미지 표기는 되고 있으나 플레이어 스텟이 존재하지 않아 데미지는 없는 상황이지.

따라서 미뤄왔던 플레이어 스텟을 구현해주었어.


먼저 플레이어 스텟 기반이 될 클래스.

viewimage.php?id=2abcdd23dad63db0&no=24b0d769e1d32ca73cea82fa11d0283167b3609c5c7cf1dd93c16821866307a2e2843883d1eb1a516889788f2971c5113095b1db25d46409e0eb9bc0bbf05d8f66

사실 이번 게임도 큰 스토리, 세계관, 게임 시스템 틀 정도만 생각하고 시작했어.

그렇기에 세부적인 기획이 존재하지 않고, 이상한 부분이 존재할 수 있어.

플레이어 스텟은 뱀서라이크인 만큼 뱀서의 스텟을 기반으로 만들었고 이후에 바뀔 듯 해.


몇 가지 고민했던 부분에 대해 이야기해보자면,

1. 플레이어의 체력 float

플레이어의 체력을 float로 설정해주었는데 뱀서라이크 사진이나 짤 보면 데미지가 큰 경우에 지저분해보이더라고.

개인적으로 1234k 이런식으로 데미지 붙는것도 좀 유치해보이기도하고.

몬스터 수가 많은 만큼 데미지 표기도 화면에 많이 출력되는데 시야를 방해하지 않았으면 좋겠더라고.

그래서 데미지 또한 크지 않은 수가 될건데 12에서 10%면 1.2니 정수로는 1이 되어버려 소수점 단위를 버리는 것을 방지하고자 했고

초당 체력 회복 시에 소숫점 단위 계산을 용이하게 하기 위하여 float로 설정해보려고 생각했어.

이런 장르 게임은 처음이라 잘 모르겠는데 보통 이렇게 하나?

2. statsincreaseperlevel

이 클래스는 해당 캐릭터의 레벨당 스텟 증가량이야.

게임 시스템을 조금 고민해보았는데

아마도 탕탕특공대처럼 스테이지 외부 캐릭터 선택 창에서 캐릭터를 강화해줄 시스템이 있는게 재밌다고 느꼈어.

스테이지 내에서 무기를 선택하는 레벨이 아닌 캐릭터 레벨을 올려 강화하는 시스템을 넣어줄 것이고

레벨을 올리면 캐릭터 기초 스텟이 증가할 예정이야.

물론, 뱀서의 전체 스텟 강화해주는 시스템도 있을거고.



이렇게 되면 결국 레벨이 많이 증가하면 1번에서 방지하고자 했던 숫자가 커지게 될 텐데

적당 선에서 만렙을 설정하고자해.

뱀서처럼 캐릭터 별 고유 무기를 해당 캐릭터 일정레벨 달성 시 해금되어 아이템 풀에서 나오도록 해줄거야.


적고나니 항상 느끼지만 말만 길어지는 것 같네...

이해해주길 바라.


2ebcc224eadc78ee3df698a518d6040300ecda649bc7cd17efa2

다음은 해당 캐릭터의 데이터를 담아둘 스크립터블 오브젝트.

별것 없어.


이제 플레이어 쪽에서는 현재 데이터에서 선택되어있는 캐릭터를 읽어서 위 데이터를 읽어올 예정이야.

지금은 없는 캐릭터 선택창에서 캐릭터를 선택하고 이 값을 플레이 데이터에 담아두고

스테이지 시작 시 해당 데이터를 참조해서 캐릭터 데이터를 가져오도록 할 거야.

이 방식 외에 다른 방식은 잘 모르겠더라고.

7ded9e36ebd518986abce8954585726f8c

요런 식으로 어드레서블을 이용해서 데이터를 가져오는데 문제가 생겼어.

플레이어 스텟의 데쉬 게이지 양을 이용하는 UI나

플레이어 스텟을 받아 데미지를 계산하는 무기 쪽에서

저 addressable로 플레이어 스텟을 로드하기 전에 스텟을 받아오는 문제야.

어떡할까 하다가 그냥 그런 경우에는 위에 IsReady함수가 참이 되기 전까지 대기시키거나 유니티이벤트를 이용했어.


7ded9e36ebd518986abce8954483746aa7

이런 식으로 플레이어 스크립트의 Start함수에서 로드가 완료되면 데쉬 게이지 최대치 갱신 이벤트를 invoke시키도록.



7ded9e36ebd518986abce8954585776d96

무기 스크립트에서는 요런식으로 무기의 데이터를 로드하고 플레이어 스텟이 로드되어있지 않으면 대기 후에 스텟을 계산해.

이것도 일단 생각한 방법이라 나중에 바뀔수 있어.



어쨌거나 요렇게 해서 간단하게 데이터 생성 완료 !

7ded9e36ebd518986abce89542827169d4

아직 전부 구현된 것은 아니라서 필요한 값만 입력해보았어.

댕댕이 이름은 하얀색이니깐 백구야.


7ded9e36ebd518986abce8954289746dde

투사체에서는 이런식으로 데미지와 크리티컬 등을 초기화 해주는데,

나는 화살 하나가 셋을 공격했을 때 각각에게 데미지와 크리티컬이 다른 것보다는

크리티컬 공격인 화살이라면 그 셋 모두에게 크리티컬 공격을 하는것이 좋아서

활성화 시에 스텟을 계산해주도록 했어.

이 때 항상 데미지가 동일한건 심심하니깐 랜덤값을 조금 주었고.



일단 현재 필요한 스텟 구현은 끝 !

일단 대충 구현해두느라 누덕누덕 붙어버려서 코드 리팩토링을 해야 할 때가 된 것 같아.

다음은 결과물 !




그 전에 지난 개발일지로부터 약간의 수정사항도 있어.

데미지 표기를 요런식으로 해주었는데 숫자가 위로 서서히 올라가는게

데미지가 여러번 뜰 경우 보기에는 낫겟지만

사실 뱀서류가 몬스터가 너무 많다보니 데미지도 위로 올라가면 화면이 난잡해보이는 느낌이더라고.

7ceb877fb1826cf23aea98a213d3341d39338e3a07ade5911e7a


따라서 조금 느낌을 바꿔줬어.

7def9e31e0d0288650bbd58b3689726b29c9

나쁘지 않은 느낌.

그리고 크리티컬일 시에는 조금 강조 효과를 주었는데

일반 숫자는 아래에서 위로 등장, 크리티컬은 위에서 아래로 등장해.

7dec9e31e0d0288650bbd58b3687766aed83

위 움짤에 보이듯이 방패를 든 고블린도 추가해주었어.


최종 결과물 !

7dee9e31e0d0288650bbd58b3680746979598516e0

지금 몬스터가 다 녹색이라 그런지 아니면 꾸며둔게 없어서인지

글씨체도 좀 두꺼운 느낌이고 약간은 마음에 안 들어.

다음에는 다른 종의 몬스터 하나를 더 추가해보도록 할게.

그리고 드디어 경험치를 구현할 예정이야 !

그럼 안녕.

안냥


+ 댓글 내용 추가

타겟프레임레이트 60으로 설정해두었고, 기본적인 풀링은 적용되어있음.

캔버스는 월드캔버스 하나.

초당 적 60마리 생성 중.

7de89e31e0d0288650bbd58b3687746ad2ebf4b5


7deb9e31e0d0288650bbd58b3687706eab2d67cc



7dec9e36ebd518986abce895448175655231


적은 캡슐콜라이더로 되어있음.

1000마리정도 다같이 부대끼면 물리가 저정도 차지하는듯.


최적화는 밸런스맞추고 빌드까지 해보고 실제 플레이 후 나중에 알아보는걸로 !








-댕댕이 서바이벌 #8 - 성능 최적화 (움짤 주의)


7ceb877fb1826df23dec98a213d3341d3a1f2010f4b3f2d9bb73425d7b

지난 번 개발일지 마지막은 요렇게 데미지 표기, 플레이어 스텟 등의 작업이 완료되었었다.

댓글로 성능 관련 질문을 받게되었는데,

대략 텍스트가 많이 표시되면 렉 걸리지 않느냐, 대량의 몬스터도 괜찮은가 였다.

간단히 점검을 해 보았다.

프로파일러도 볼 줄 모르고 물리, 렌더링 관련 지식이 없으므로 양해바람.

7ceb877fb1826ffe3eef98a213d3341d074eccc9303d96431060a912

먼저 데미지가 한번에 대량으로 나오게되면, 순간적으로 프레임이 치솟는게 보인다.

하늘색으로 하이라이트된 부분이 데미지 관련하여 캔버스에 렌더링 되는데에 차지하는 소요시간이다.

데미지 텍스트는 월드 스페이스 캔버스에 tmp를 오브젝트 풀링을 이용해 생성해준다.

두트윈을 이용하였고, 크리티컬, 일반 데미지 각각 두개의 시퀀스를 가지고있다보니

데미지 표기가 많아질수록 두트윈 시퀀스도 500개이상으로 늘어나버린다.

시퀀스를 끝내면 풀에 다시 넣어주는 작업까지.

가비지도 많이 생성되고, 프레임도 불안정하고, 이런저런 문제가 있는 상태다.


아래와 같은 순서로 변경해주었다.

1. 두트윈 대신 애니메이터 이용 => 풀링에 넣어주는 것은 애니메이션 이벤트 이용

애니메이션 이벤트는 ide 상에서 어디서 참조되고 호출되는지 체크하기가 힘들어서 사용을 지양했는데,

가비지도 발생되지 않고 성능도 지금보다 좋아보여서 변경했다.

애니메이터 behaviour는 좀 별로인 것 같았다.

2. TMP Text UI에서 TMP Text로 변경 => 캔버스 사용이 의미가 없는 듯 하고 풀링 시 오브젝트를 껏다 켜는 것이 아닌

mesh renderer enabled 를 제어

3. 데미지 텍스트의 양 제한 => 동시에 일정 개수만 존재 가능, 이후 필요 시 가장 먼저 사용했던 오브젝트를 사용

결과 아래와 같다.

7ded8068f2d73ab64e81d2b628f17c647c2379941b

텍스트 개수를 제한한 것이 효과가 가장 크긴 하겠지만

위 1번 2번 변경을 하며 가비지 생성이 줄어들었으니 다 긍정적인 거 아닐까?

기존과 비교하여 프레임 드롭이 사라졌다 !




참고로 빌드 시에는 성능이 훨씬 좋으므로

나같은 뉴비는 일단 개발하고 성능걱정해도 괜찮을 것 같다.

컴퓨터 사양에 따라 다르겠지만 화면을 가득 채운상태로 대략 1000개 이상의 dynamic 콜라이더가 비벼도 멀쩡해보인다.

프레임 제한을 해제해두었다.

7ded8168f2d73ab64e81d2b628f17c6e9381a3e5f7


7ded8268f2d73ab64e81d2b628f17c6aa7b53d5a26

데미지 표기 개수를 제한해도 크게 거슬리지 않는 느낌?


개수를 제한하는 오브젝트 풀은 요런 식으로 구현해주었다.

2ebcc224eadc76b660b8f68b12d21a1d557c54887c32


실제 게임 플레이 시에는 최대 600마리정도 존재할 것이므로

성능에 대한 걱정보단 역시 구현이나 빨리 해야겠다는 경험이었다.


뉴비인지라 잘못된 부분이 있을 수 있으니 양해바라며, 쓴 말 좋은거에요.

안냥




출처: 인디 게임 개발 갤러리 [원본 보기]

추천 비추천

38

고정닉 11

11

댓글 영역

전체 댓글 0
등록순정렬 기준선택
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 주위 눈치 안 보고(어쩌면 눈치 없이) MZ식 '직설 화법' 날릴 것 같은 스타는? 운영자 24/04/29 - -
공지 실시간베스트 갤러리 이용 안내 [1552/2] 운영자 21.11.18 4894251 419
227797
썸네일
[유갤] <범죄도시>이전 마동석 악역...모음.....jpg
[1]
ㅇㅇ(175.119) 07:00 90 5
227795
썸네일
[싱갤] 싱글벙글 틀딱들만 아는 부산대 조토전
[166]
ㅇㅇ갤로그로 이동합니다. 01:50 14536 106
227791
썸네일
[모갤] 무궁화 특실 후기
[85]
「목동」갤로그로 이동합니다. 01:30 15013 75
227789
썸네일
[싱갤] 싱글벙글 네이버 웹툰 고딩 vs 김성모 만화 중딩
[233]
허공갤로그로 이동합니다. 01:20 32015 354
227787
썸네일
[대갤] 근로자의날 기념) 대만과 중국의 비참한 현실 임금을 알아보자
[120]
난징대파티갤로그로 이동합니다. 01:10 12430 85
227785
썸네일
[상갤] 인생 최초이자 힐링계 최고의 뮤지컬 영화
[70]
IlllllI갤로그로 이동합니다. 01:00 14025 59
227783
썸네일
[싱갤] 싱글벙글 역학갤에서 말하는 귀신과 사후세계
[306]
ㅇㅇ갤로그로 이동합니다. 00:50 16525 28
227781
썸네일
[국갤] <충격> S&P, 국가신용등급 완전 총정리
[244]
ㅇㅇ갤로그로 이동합니다. 00:40 16886 367
227779
썸네일
[역갤] 의외로 남자들도 키큰 여자 좋아하는 이유.jpg
[613]
역갤러(211.36) 00:30 30482 257
227777
썸네일
[싱갤] 고추 크기가 중요할까?
[480]
우민희갤로그로 이동합니다. 00:20 33588 171
227775
썸네일
[비갤] 워런 버핏이 말하는 비트코인..JPG
[710]
ㅇㅇ(58.124) 00:10 22941 230
227773
썸네일
[판갤] 미국 고딩들의 인생 영화 4선 jpg
[229]
Jooys갤로그로 이동합니다. 00:00 18695 72
227772
썸네일
[싱갤] 훌쩍훌쩍 군의관들은 믿으면 안되는 이유
[376]
ㅇㅇ갤로그로 이동합니다. 05.01 33164 488
227769
썸네일
[카연] (ㅇㅎ) 5월 FOMC 하루 전 TS해본.manhwa
[38]
새만화금고갤로그로 이동합니다. 05.01 11922 42
227767
썸네일
[미갤] 아침 일찍 미용실 오픈을 하는 이유.jpg
[239]
ㅇㅇ갤로그로 이동합니다. 05.01 25001 296
227766
썸네일
[싱갤] 싱글벙글 '바탕화면'이란 단어가 생기게 된 계기.jpg
[310]
ㅇㅇ갤로그로 이동합니다. 05.01 33523 446
227763
썸네일
[타갤] 게임회사들이 총기 라이센스를 기피하게된 이유
[197]
ㅇㅇ(121.139) 05.01 24754 101
227761
썸네일
[일갤] 내 바이크로 일본여행 - 1편 (오사카 - 나고야 - 미나미치타)
[22]
하짱갤로그로 이동합니다. 05.01 4521 20
227759
썸네일
[싱갤] 일본일본 생방촌
[103]
고이즈미_준이치로갤로그로 이동합니다. 05.01 20571 55
227757
썸네일
[야갤] SM 사내 변호사 브이로그 공개 ㄷㄷ
[326]
ㅇㅇ(149.102) 05.01 30099 48
227755
썸네일
[기음] 진짜 팔면 팔수록 적자라는 일본의 미친 밥집
[318]
ㅇㅇ(106.101) 05.01 29527 244
227753
썸네일
[싱갤] 싱글벙글 소년원 vs 소년교도소
[289]
ㅇㅇ(211.215)갤로그로 이동합니다. 05.01 39941 306
227749
썸네일
[미갤] 수산시장에서 걸러야 하는 생선.jpg
[212]
ㅇㅇ갤로그로 이동합니다. 05.01 31698 260
227747
썸네일
[주갤] 사랑을 하고싶은 럴커 업소녀 feat.김달
[613]
주갤러(122.47) 05.01 35406 533
227745
썸네일
[이갤] 뉴욕시 공식 인스타서 조회수 폭발한 영상 feat.김밥
[306]
ㅇㅇ(178.211) 05.01 27150 93
227743
썸네일
[싱갤] 싱글벙글 화법의 차이
[369]
ㅇㅇ갤로그로 이동합니다. 05.01 40376 566
227741
썸네일
[디갤] 4월이 끝나기전에 올리는 4월의 순간들
[21]
갬성몰빵갤로그로 이동합니다. 05.01 5988 17
227739
썸네일
[카연] 귀멸의칼날 보는 만화
[322]
기음갤석사갤로그로 이동합니다. 05.01 15764 128
227737
썸네일
[싱갤] 가난한 집에서 살면 가장 무서운건 돈이 아니다.jpg
[727]
ㅇㅇ갤로그로 이동합니다. 05.01 49409 489
227735
썸네일
[야갤] 현재 저출산의 가장 큰 요인이 커뮤니티라는 유튜버..jpg
[1196]
ㅇㅇ(45.92) 05.01 37425 754
227733
썸네일
[이갤] 착하고 조용한데 멘탈이 강한 사람 특징
[320]
당돌갤로그로 이동합니다. 05.01 37010 194
227729
썸네일
[안갤] 안철수 ”채상병 특검법 찬성 여전히 유효“
[409]
ㅇㅇ(118.220) 05.01 12512 306
227727
썸네일
[만갤] "부모님이 남친과의 결혼을 극구 반대해요..."...jpg
[625]
ㅇㅇ(121.171) 05.01 35195 237
227726
썸네일
[싱갤] 일본의 국가 운명이 달린 사건.jpg
[709]
ㅇㅇ(1.230) 05.01 49189 333
227723
썸네일
[야갤] 90년대 초반생 상당수는 망했다.jpg
[1366]
우로팔갤로그로 이동합니다. 05.01 51715 278
227721
썸네일
[싱갤] 20년전 선생 빠따질에 엉덩이살 다 뜯어진 일진.jpg
[606]
ㅇㅇ갤로그로 이동합니다. 05.01 48766 436
227719
썸네일
[V갤] [실험]VR 직사광 노출 실험
[99]
쭘쭘갤로그로 이동합니다. 05.01 18084 127
227717
썸네일
[이갤] 세금으로 다문화 통역까지 혈세낭비...jpg
[648]
설윤아기갤로그로 이동합니다. 05.01 21927 380
227715
썸네일
[싱갤] 싱글벙글 UFC보는게 취미라는 할머니
[237]
ㅇㅇ(211.244) 05.01 33316 516
227713
썸네일
[야갤] 물어보살 나왔던 알콜중독 남편 근황...JPG
[529]
포흐애액갤로그로 이동합니다. 05.01 47061 574
227710
썸네일
[새갤] [SBS] 중·일 골든위크, 일본과 한국에 몰리는 관광객들
[324]
정치마갤용계정갤로그로 이동합니다. 05.01 18991 74
227707
썸네일
[도갤] 충남 천안 각원사.webp
[61]
눈부신계절에갤로그로 이동합니다. 05.01 8838 42
227705
썸네일
[미갤] 요즘 미국 남자들이 여자를 도와주지 않게 된 사연.jpg
[863]
ㅇㅇ갤로그로 이동합니다. 05.01 46555 1457
227703
썸네일
[싱갤] 싱글벙글 부모가 대출받고 자식이 갚기 합헌
[863]
ㅇㅇ갤로그로 이동합니다. 05.01 38260 499
227702
썸네일
[주갤] 경찰청,경찰 관련 젠더갈등 게시물 조사
[771]
주갤러(118.240) 05.01 23464 625
227700
썸네일
[이갤] 길 가다 ‘날벼락’…3층에서 떨어진 킥보드에 2명 부상
[299]
ㅇㅇ갤로그로 이동합니다. 05.01 24520 142
227698
썸네일
[싱갤] 싱글벙글 경기북도 근황 ㅋㅋㅋㅋㅋㅋㅋ
[884]
싱부이갤로그로 이동합니다. 05.01 47261 838
227697
썸네일
[야갤] 용두용미로 끝난 K-드라마들 목록...JPG
[768]
포흐애액갤로그로 이동합니다. 05.01 49665 209
227695
썸네일
[디갤] 비욘세 딸래미 최신...근황.....jpg
[491]
ㅇㅇ(175.119) 05.01 45222 51
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2