디시인사이드 갤러리

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

갤러리 본문 영역

스압) 광고가 꼴받아 직접 만든 게임 일지 -1~10-

ㅇㅇ(222.106) 2024.02.21 07:40:01
조회 7136 추천 26 댓글 36

a76a08ad230e69e87eb1d19528d527034eb46e06adb110

문제의 그 광고, 실제 게임과 연관도 없고, 심지어 멀티플레이 게임도 아님

하지만 평소 온라인 게임 개발에 관심을 갖던 본인이 직접 만들어 보기로 결심함


68988163bd867dff3cfaf3e453897178f942573ca1c8f3bd8e2384ad483d0c32e800611b1396a87d1269a1f5559f84819f8bd19a23ab990be94c92f5afb3ff83250491a9132e2f97e0d973a25b8afc08db80002f6b4c350ba88c4daefe503fa7c8f90668bbea5df3ea61d59e559274b8eb49bb51149dce61f5099468275aa4a16ad319c4443141818e608f5a973edb3a341c779560ab6ab921c6a0d4de0a58fd8ff29160746f33b4597da482


TCP 소켓 서버와 유니티로 프로토타입1 제작, 컨텐츠 부분에서 부족한거 같다.

멀티 게임을 혼자하는 것도 크겠지만 (다른 한명은 봇) 재미를 찾기가 어렵다.

여타 다른 뱀서라이크 장르 게임들 처럼 다른 무기, 스킬들을 마구잡이 식으로 넣어 보았다.


68988163bd867dff3cfaf3e453897178f942573ca1c8f3bd8e2384ad483d0c32e800611b1396a87d1269a1f5559f84819f8bd19a23ab990be94c92f5afb3ff83250491a9132e2f97e0d973a25b8afc08db80002f6b4c350ba88c4daefe503fa7c8f90668bbea5df3e861d59e559274b8871a3754cd01a79b2be384c7ac2e61baf3e1a1f38d054ae49000b86e78218fbd68d4c36fe3ee7d05d2850dc95fb9f8d17e181cb888946c4639aae32b0d7f85c190a160eeef9b07ba


리소스들은 무료 에셋과 세일할때 건진 에셋들을 활용하였다.

UI는 확실히 개선이 필요한데 아직 고민중이다.


[게임 진행방식]

- 처음엔 회전하는 검하나로 시작하여, 몬스터 및 다른 플레이어를 잡아 경험치를 획득하고 레벨업 할때마다 장비를 선택해 강해지는 방식

- 사망시 다시 1레벨 부터 시작

- 몬스터 및 플레이어에게 충돌이 가능하여 포위될 시 대쉬를 통해 빠져나와야 함


[장비 목록]

- 검 (Sword) : 기본적으로 플레이어 주위를 회전하며 주변 적에게 데미지를 주는 무기, 업그레이드시 데미지 및 갯수 증가

- 단검 (Dagger) : 바라보는 방향으로 투사체를 던짐, 업그레이드시 데미지, 갯수 및 사거리 증가 (프로그래밍 단계에선 단검으로 했으나 사용중인 에셋은 화살이라 이름 변경 예정)

- 불(Fire) : 일정 주기로 플레이어를 중심으로 폭발하여 넉백 및 데미지를 줌, 업그레이드시 폭발 범위, 데미지 증가 및 폭발 주기 감소

- 얼음(Ice) : 일정 주기로 플레이어 주변 랜덤 구역에 얼음 지대를 만듬, 업그레이드시 데미지, 지속시간 갯수 증가 및 주기 감소

- 땅(Earth) : 랜덤 방향으로 투사체를 던짐, 업그레이드시 데미지 및 갯수 증가

- 번개(Lightning) : 플레이어 주위를 회전하며 일정 주기마다 데미지를 준다, 업그레이드시 데미지 및 갯수 증가

- 공기(Air) : 플레이어가 주위 4방향으로 토네이도를 날림, 업그레이드시 데미지 증가

- 빛(Light) : 주위 랜덤 적에게 데미지를 줌, 업그레이드시 데미지 및 갯수 증가

- 어둠(Dark) : 일정 주기마다 플레이어 주위를 빠르게 도는 구체 생성, 업그레이드시 데미지 및 갯수 증가

- 독(Poison) : 플레이어가 지나가는 길마다 독 지대를 생성, 업그레이드시 지속시간 및 데미지 증가

- 버섯(Mushroom) : 플레이어 공격력 증가

- 방패(Shield) : 플레이어 방어력 증가

- 하트(Heart) : 플레이어 최대체력 증가

- 목걸이(Necklace) : 경험치 획득량 증가

- 신발(Shoes) : 대쉬 쿨타임 감소

- 자석(Magnet) : 아이템, 경험치 획득 범위 증가

- 클로버(Clover) : 행운 증가, 행운에 따라 장비 선택 가지수 증가, 추후 크리티컬을 추가할지 고려중

- 책(Book) : 장비의 공격 주기 감소

- 장갑(Glove) : 장비의 공격 속도 증가, 현재는 미구현

- 반지(Ring) : 장비의 갯수


아직 갈길이 멀고 테스트 해볼것도 많지만 슬슬 정리가 필요할거 같아 일지를 작성해 봅니다.

부족한 실력이지만 언젠가 완성시켜 보겠습니다. 감사합니다.

피드백, 훈수, 아이디어, 질문 언제나 환영


광고가 꼴받아 직접 만든 게임 일지 -2-



68988163bd867dff3cfaf3e453897178f942573ca1c8f3bd8e2384ad483d0c32e800611b1396a87d1269a1f5559f84819f8bd19a23ab990be94c92f5afb3ff83250491a9132e2f97e0d973a25b8afc08db80002f6b4c350ba88c4daefe503fa7c8f90668bbea5df3e861d59e559274b8871a3754cd01a79b2be384c7ac2e61baf3e1a1f38d054ae49000b86e78218fbd68d4c36fe3ee7d05d2850dc95fb9f8d17e181cb88bc12b471092c716375ce9b2c1d98ea62c

지난번까지 한 것

- 기본 TCP 소켓 서버 및 게임 기능 구현

- 뱀서 라이크 장르를 위한 여러 장비 및 스킬 구현


이번엔 마구잡이로 넣은 코드들이 서버에 얼마나 무리를 주는지 확인해 봤다.


19b8c332b48268b261ee86e546f06e73f46ce6140c9d17ddb7d5de4b23d3016b

19b8c332b48268b261ee86e546fd2b3a182a7b03bbc0393a7d1948acf65399ae464b7b(서버로그도 개선을 해야할 필요가 있다..)


100명의 플레이어 약 1000마리의 몬스터 기준으로 서버렉이 심하게 걸리고있다

원인은 볼 것도 없이 몬스터의 길찾기 AI에 사용된 A*알고리즘일 것이 분명하다.


0cf7e535e09c28a8699fe8b115ef046cd0aaf5320e


플레이어 업데이트문이 CPU사용량이 0.09% 검이 0.47%인데 비해 A*를 이용한 FindPath함수가 사용량이 8.21%나 된다.

A*알고리즘은 폐기하고, 다른 간단한 방법을 이용하기로 했다.

오른손으로 한쪽벽을 잡고 미로를 탐사한다면 언젠가는 출구에 도달한다는 오른손 법칙을 이용하기로 했다.(정식명칭이 이게 아닐수도있다...)

구현은 간단했다 플레이어한테 가는 방향이 막혀있다면 오른쪽으로 회전하고 다시 전진하는 방식이다.


19b8c332b48268b261ee86e546e32d3a4633ed89b6f12782d10184c893a56caf9172d4


서버렉은 확실히 줄어들었다. (슬라임이 플레이어 주위를 빙빙 도는게 거슬리긴하다...)

그래도 반응속도가 약간 느린게 패킷이 조금 밀리고 있는거 같다.

원인은 방금 A*의 부하를 확인하면서 찾아버렸다.



7eee9e36ebd518986abce8954389766539


CPU 전체 사용량의 33%가 네트워크 태스크, 다른 33%가 룸 태스크(플레이어, 몬스터, 무기 등 게임 로직 관련), 남은 33% 메인함수인데


00bcd928abc236a14e81d2b628f17c6a70c2


메인함수는 초기에 데이터 불러들이고, 서버 리스닝하고, 저 위에 코드로 태스크 만드는게 끝이다.

아무것도 없는 while문이 33%를 잡아먹고있는 것이다...

처음에 나중에 추가될 다른 태스크를 위해 비워둔 것으로 기억하는데 아마 데이터베이스 태스크를 위한 자리일 것이다.

멍청하게 까먹고 있었고, 매일 코딩하면서 보는 메인함수인데 이상함을 전혀 못느끼고 있었던거다.

저 while문에 네트워크 태스크를 넣어두고 다시 서버를 가동했다.


78ed9e36ebd518986abce895438075654c


메인과 룸이 50%씩 나눠 돌아가기 시작했고 서버의 잔렉들이 없어졌다.


19b8c332b48268b261ee86e546f72d339f220acc7959fd990c8d200333c2615fe78e4bd2


(검이 추가로 더 생길시 시야 전체에 데미지가 들어가는 버그가 있다...)

단판전인 뱀서라이크 특성상 DB는 필요 없을 것이다.

혹시나 해서 이상태로 A*알고리즘을 살려봐서 한번더 사용량을 확인했다


7ced9e36ebd518986abce8954584726d39


몬스터 업데이트문 안에있는 A*알고리즘 사용량 10.92%


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


A*가 없어진 몬스터 업데이트문 전체가 0.92%

너어는 없어져야하는게 맞다.

서버도 어느정도 안정화 했으니

음엔 UI, 인벤토리, 스킬쿨타임 같은 시스템 위주를 구현할 예정이다.


피드백, 훈수, 아이디어, 질문 언제나 환영


광고가 꼴받아 직접 만든 게임 일지 -3-



19b8c332b48268b261ee86e546f72d339f220acc7959fd990c8d200333c2615fe78e4bd2

지난번에 한 것

- CPU부하를 심하게 잡아먹던 A*알고리즘 삭제 및 단순한 AI로 교체

- 서버 부하량 감소 작업 / 서버렉 최소화


이번엔 서버가 아닌 클라를 만져봤다.


a15714ab041eb360be3335625683746f0753442bd6a6ec890b9df62d0ca1c3295a6853c1f113a3863a1ed4526fb4d88de91a881a55d5


먼저 인벤토리를 간단하게 구현했다.

Grid Layout Group을 이용해 1~5번 슬롯은 무기,스킬 6~10번 슬롯은 스텟 상승 패시브 장비를 할당해 줄 것이다.

해당 위치에 할당된 장비와 레벨에 맞는 이미지를 띄워 보여주는 간단간단한 인벤토리다. (정렬 및 순서가 필요없다!)

Dictionary에 장비를 Key로 레벨을 Value로 저장하고, 순회하면서 맞는 이미지(지금은 이미지가 없어서 텍스트로 대체됐다)를 찾아오는 방식으로 구현했다.


a15714ab041eb360be3335625683746f0753442bd6a6ec890b9df62d0ca1c3295a6e57c1f511a3863a1ed4526fb4d88d76f2dec931db


처음엔 비워져있고 장비를 획득할때마다 오른쪽부터 채워지며, 공격형은 윗줄 스텟형은 아래줄에 채워진다.

위치 조정은 아이콘을 그린후에 조정해야 할 것이다.



a15714ab041eb360be3335625683746f0753442bd6a6ec890b9df62d0ca1c326745615d954b5d6664e4ea5d8e5d80474e231f0447e23


다음은 플레이어 랭킹을 나타내는 UI다. 1~3등 플레이어와 본인의 랭킹을 보여줄 예정이다.


a15714ab041eb360be3335625683746f0753442bd6a6ec890b9df62d0ca1c326745313d951b6d6664e4ea5d8e5d8047471953454031f


플레이어가 3명이하일 때


68988163bd867dff3cfaf3e453897178f942573ca1c8f3bd8e2384ad483d0c32e800611b1396a87d1269a1f5559f84819f8bd19a23ab990be94c92f5afb3ff83250491a9132e2f97e0d973a25b8afc08db80002f6b4c350ba88c4daefe503fa7c8f90668bbea5ef3eb66d59e559274b8083bf87514fe3611ba00925f1ba2756717d951e5ec7a60b067e26fced9fb90b1ecfce2b91182af55502dc0a21075bc456fd416821c8ccb765e29a5ac3cb45b901376b5baea


실시간으로 업데이트 되는 랭킹, 현재 플레이어 이름을 정해주지 않아 서버에서 식별하기 위해 만든 아이디로 대체하였다.

레벨도 같이 보이면 좋을 것 같긴하다...

디자인과 배치는 미래의 디자인을 담당할 내가 할테니 지금 프로그래밍 하는 내가 신경 쓸 건 아니다.



a15714ab041eb360be3335625683746f0753442bd6a6ec890b9df62d0ca1c3272dd0bb3d4ec58d49aadacfc0263aa9264ef79ce8292a26

다음은 맵이다.

기존엔 100*100 작은 Terrain 하나에서 플레이하고 테스트 했지만, 이번에 100*100 Terrain이 총 9개 즉 300*300의 맵을 제작했다.

나무와 물 같은 장애물도 배치 하였고, 이 맵 정보를 저장해서 서버로 가져가야한다.

장애물은 1 아닌것은 0으로 300행 300열의 txt 파일을 만들 생각이다.


a15714ab041eb360be3335625683746f0753442bd6a6ec890b9df62d0ca1c3272dd1bd3d4cc28d49aadacfc0263aa92641f578d9fa64


일단 foreach문으로 9개의 Terrain과 그 안에 있는 Tree들을 순회 하면서, 해당 Tree의 Local좌표를 WorldSpace좌표로 변화하여

int[300,300] 배열에 해당 좌표의 값을 1로 바꿔주는 방식이다.

나무는 해결했지만 문제는 물이다. 원래는 SampleHeight를 사용해 일정 수준보다 높이가 낮으면 1로 바꿔줄려 했다...

근데 SampleHeight로 뽑아오는 높이 값이 이상하다...분명 WorldSpace좌표를 인자로 해당 위치의 Terrain 높이를 return하는 것으로 이해했는데

잘못 이해한거같다. 하지만 관련 자료도 많이없고, 그냥 맵을 데이터화하는건데 너무 많은 수고를 들이긴 귀찮아서

단순하게 물이 지나는 구역에 안보이는 나무들을 배치해서 해결했다.


a15714ab041eb360be3335625683746f0753442bd6a6ec890b9df62d0ca1c3272dd2bd3d4ac18d49aadacfc0263aa926fc11dd877921

이렇게 0과 1로 이루어진 텍스트들을 쭉 보다보면 왠지 내가 프로그래밍 고수 같아 보인다.(착각)


다음엔 새로운 몬스터들과 레벨 디자인에 대해 고민을 해야한다.

간단하게 플레이어는 맵에 왼쪽 아래에 스폰이 되고, 스폰장소에서 멀어질수록 강력한 몬스터가 나오는 디자인을 구상중이고

가장 큰 문제는 플레이어 끼리의 밸런스다.

레벨이 높아 만렙 장비를 둘둘해버린 플레이어의 독주를 막을 어떤 무언가가 필요하다.


[확인된 버그]

- 검이 생성되는 순간 시야 전체에 데미지를 주는 버그

- 종종 대쉬가 사용되지 않는 버그

- 레벨업 선택지가 더이상 없을때 서버가 멈추는 버그


피드백, 훈수, 아이디어, 질문 언제나 환영







광고가 꼴받아 직접 만든 게임 일지 -4-



지난번까지 한것

- 실시간 랭킹 UI (레벨 및 플레이어 이름 추가)

- 획득 장비 인벤토리

- 맵 확장 


영상을 찍다보니 여러 문제점들을 발견했다.

1. 시간이 경과 할수록 느려지는 서버 반응

2. 종종 씹히는 대쉬 스킬

3. 검이 추가되는 순간 시야내에 모든 범위를 공격


2번은 1번때문에 파생된 문제인거 같고, 시간이 지날 수록 서버 부하가 늘어난다는건

어떤 오브젝트가 사라질때 반환이 제대로 안되어 계속해서 업데이트문이 중복으로 실행중인거 같다. 

다시 CPU점유율을 체크 했고 범인은 금방 찾아냈다.


1bec9e36ebd518986abce895458572656f

10분 시간 경과후 VisionCube의 점유율

1bef9e36ebd518986abce8954582716837

초기 VisionCube 점유율


VisionCube는 플레이어 주위 일정 범위의 모든 오브젝트 정보를 갖고있어 해당 플레이어에게 오브젝트 정보가 담긴 패킷을 쏘아줄때 사용된다.

상시 필요한 녀석이기 때문에 플레이어가 죽어도 사라지지 않도록 냅뒀으나

플레이어가 부활할때마다 한번더 생성되어 똑같은 작업을 여러번 하고 있던 것이다.

1번이 해결되니 2번 현상이 거의 없어졌다.


3번은 공격 판정 알고리즘은 문제다.

현재 플레이어를 A, 검의 끝부분을 B, 다음 프레임에 위치할 검의 끝부분을 C, 상대방을 P라 했을때

삼각형 ABC에 P가 내부에 존재할 경우 공격 판정을 내렸다.

이 내부 존재 여부를 판별하는 알고리즘에 문제가 있었다.

원래는 벡터의 외적을 이용했다. 


a15714ab041eb360be3335625683746f0753442bd6a6e3890b9df62d0ca1c32f8a33579b0f0a6e09c57808db99c3ed4f4b90ce2f2b51


먼저 선분 ab를 기준으로 점 p,q가 같은 영역에 있는지 판별하는 코드다.

외적값이 음수면 시계방향에, 양수면 반시계방향에 존재한다는 성질을 이용해

두 외적값의 곱이 양수가 나오면 같은 위치에 존재한다고 판단하여 True를 반환한다.

그리고 겹치는 것도 공격으로 판정하기위해 0도 포함시켰다. (여기가 문제다)


a15714ab041eb360be3335625683746f0753442bd6a6e3890b9df62d0ca1c32f8a33579c0f0c6e09c57808db99c3ed4f42dad001bcf1


이를 이용하여 앞서 언급한 삼각형 abc와 점 p를 판별하는 코드다.

삼각형의 각 선분을 기준으로 점 p와 남은 삼각형 한 꼭짓점이 같은 영역에 있는지 판단하여 모두 true라면 공격판정을 했다.

킹론상 완벽 했지만, 검이 나타나는 순간 초기값...b와 c의 좌표가 (0,0) 으로 할당 되었을때가 문제다.(a는 플레이어의 위치라 상관없다)

0도 포함하여 판정했기때문에 b와 c가 0인 순간 p의 위치와 상관없이 모두 true를 반환해 모든 적에게 데미지를 주게되었다.

이는 b,c 좌표가 같을 경우 충돌 판정 안하도록 처리했다.


 


광고가 꼴받아 직접 만든 게임 일지 -5-


지난번에 한 것

- 서버 누수 문제 해결

- 검 초기 생성 버그 해결


이번엔 캐릭터 커마 기능을 구현하고자 한다.

a15714ab041eb360be3335625683746f0753442bd6a6e2890b9df62c37a1c32fe67ae724c3fedf8e0f2e870574c45ce0aa43b01be81bdf


세일해서 25달러 주고 산 에셋인데 기본 프리펩만 사용하긴 아깝지않은가

다행이 한 프리펩에 각 부위별 모델이 들어있긴해서 이것들의 SetActivate를 조정하는식으로 구현하고자 한다.

먼저 머리 16개, 몸 16개, 등 6개, 눈 16개, 입 16개로 나누어 총 5부위를 나누었다.

에셋내에 장신구 무기 등 더 많은게 있긴하지만 추후에 필요할시 추가하도록하고 일단 주요 부위만 구현하겠다.


68988163bd867dff3cfaf3e453897178f942573ca1c8f3bd8e2384ad483d0c32e800611b1396a87d1269a1f5559f84819f8bd19a23ab990be94c92f5afb3ff83250491a9132e2f97e0d973a25b8afc08db80002f6b4c350ba88c4daefe503fa7c8f90668bbea5ef3eb68d59e559274b8eae706dd1cd93128640c4a19c176307371f34acdf22c9c5b79c7219f57217776430e1366e22a1d11f4f98c10aabbff147da7d1def1d04f3cf036b7e1db

닉네임 입력까지 포함하여 만든 임시 UI (구리다)

이제 이 커스터마이징 정보를 서버에 보내고 다른 플레이어도 알 수 있게 데이터화 해야한다.

단순하게 각 부위별 번호를 패킷 각각에 담아 보낼 수도 있지만

부위별로 16개 정도 되는데 int32에 각각 담아 보내는건 비효율적이다.

그리고 그에 맞는 패킷 포맷을 또 짜기가 번거롭다. (귀찮다...이게 중요하다...)


기존에 단순히 스텟만 다르고 역할은 똑같은 몬스터, 무기 등의 프리팹을 구분하기 위해 오브젝트 정보에 int32를 하나 만들었다.

플레이어는 다 같은 프리팹을 써서 딱히 안 썼는데 이걸 이용할 생각이다.


a15714ab041eb360be3335625683746f0753442bd6a6e2890b9df62c37a1c32fe67ae525c3f9d28e0f2e870574c45ce066d0e1a1e8da


32비트의 int에 4비트씩 각 번호를 넣어주도록 했다. (부위별 커마 개수를 16개로 맞춘것이 그 이유다)


a15714ab041eb360be3335625683746f0753442bd6a6e2890b9df62c37a1c32fe67ae42fc3ffdd8e0f2e870574c45ce0e437e3a9bd51c6


해독할때는 반대로 시프트 연산 후에 1111과 and 연산해줬다.

잘 되는지 테스트 해보자


68988163bd867dff3cfaf3e453897178f942573ca1c8f3bd8e2384ad483d0c32e800611b1396a87d1269a1f5559f84819f8bd19a23ab990be94c92f5afb3ff83250491a9132e2f97e0d973a25b8afc08db80002f6b4c350ba88c4daefe503fa7c8f90668bbea5ef3eb68d59e559274b8eae706dd1cd93128640c4a19c176307371f34acdf22c9c5b79c7219f57217776430e1366e22a1d13fbf98f11a9eeb8158a01a8feef1560327747428abb47a2


잘 되는거 같다. 이제 게임에 접속할때 여기서 입력한 닉네임과 커마 코드를 서버에 전송하면 된다.


a15714ab041eb360be3335625683746f0753442bd6a6e2890b9df62c37a1c32fe67ae32cc3f9dc8e0f2e870574c45ce0388acdc7c8cf


정확한 테스트를 위해 기존 봇들에게도 커마 코드를 랜덤으로 생성해줬다.


68988163bd867dff3cfaf3e453897178f942573ca1c8f3bd8e2384ad483d0c32e800611b1396a87d1269a1f5559f84819f8bd19a23ab990be94c92f5afb3ff83250491a9132e2f97e0d973a25b8afc08db80002f6b4c350ba88c4daefe503fa7c8f90668bbea5ef3eb68d59e559274b8eae706dd1cd93128640c4a19c176307371f34acdf22c9c5b79c7219f57217776430e1366e22a1d14f9f98a1caabbff14876a1951e15d9824a9255613ac97


지난번과 달리 이제 다양한 룩의 봇들을 만날 수가 있다.

본인의 커마도 잘 적용되었다.


피드백, 훈수, 아이디어, 질문 언제나 환영






광고가 꼴받아 직접 만든 게임 일지 -6-


지난번에 한 것

- 캐릭터 커스터마이징


서버와 어느정도 기능 구현을 끝마쳐서 이제는 한번 빌드해서 초기 테스트를 진행하고자 한다.

빌드는 IOS, android, window 모두 준비해볼 예정이고, 서버는 포트포워딩해서 직접 연다.

테스트하기전 사전 준비를 해야한다.


a15714ab041eb360be3335625683746f0753442bd6a7ef890b9df62d0ca1c3272ad6978c41b4e9a426cf00e628d04583f121be9ac7d0


먼저 UI를 개선을 했다. 모바일 환경에 사용가능한 게임 패드도 구현하고 기존 (구) InputSystem을 갈아 엎었다.


68988163bd867dff3cfaf3e453897178f942573ca1c8f3bd8e2384ad483d0c32e800611b1396a87d1269a1f5559f84819f8bd19a23ab990be94c92f5afb3ff83250491a9132e2f97e0d973a25b8afc08db80002f6b4c350ba88c4daefe503fa7c8f90668bbea5ef3ea65d59e559274b847362699301f0275265d16b7b47af68e64f3176535e24de905aa4598d932dfd66bca9a0e6cd53f540f3fa99b4b46ee9702b0ba82773202a68e181fba952f697cb61af60673ee


좌측 상단에 캐릭터 정면이 보이도록 구현했고, 몇개 임시 아이콘을 구해 인벤토리 시스템에 넣었다.

체력바가 감소할때 연한 색으로 서서히 감소하는 서브 체력바도 구현했다.(이것의 정확한 명칭을 모르겠다.)

이번주 지인들에게 배포해 테스트를 진행하고있다. 

모든 플랫폼에서 문제없이 동작이 확인된다면

밸런스, 컨텐츠 기획, 아트, 사운드 등 코딩이 아닌 다른 부가적인 것에 신경을 쓸때가 된다.




 


광고가 꼴받아 직접 만든 게임 일지 -7-


지난번에 한 것
- InputSystem 재구성 (모바일 대비)- 모바일 환경 UI 재구성- 알파 테스트 준비
테스트 실시 날짜가 다가왔다.window, IOS, Android, MacOs 플랫폼으로 빌드를 성공했고미리 섭외한 지인들에게 배포했고, 주말 동안 테스트를 해볼 예정이다.
https://youtu.be/fMYD8q-ClhE

 

IOS : 아이폰14pro / Android S22 Ultra

둘다 구동에 문제없다. 연결도 문제없다.

그러나 안드로이드쪽의 핑이 종종 70이 넘어간다. 기기 문제인지 최적화로 해결 가능한지 알아봐야한다.





광고가 꼴받아 직접 만든 게임 일지 -8-


지난번에 한 것

- 초기 알파 테스트 : IOS, Android, MacOs, Window 빌드 확인 / 기기별 멀티 접속 및 핑 확인

ㄴ 기기별로 핑이 심하게 튀는 경우가 많았다. 

ㄴ 주로 오래된 모델일 수록 핑이 많이 튀는 경향이 있는걸로 봐선, 최적화가 더 필요해 보인다.


또다시 오랜만에 적어내는 일지다.

이번엔 클라와 웹, DB 통신을 구현하기위해 Firebase를 구축했다.

클라이언트가 firebase의 DB에 추가한 데이터를 TCP서버가 Rest API로 읽는 방식으로 구현했다. 


먼저 실시간 DB를 이용해 무기들의 커스터마이징을 구현했다.

방식은 간단하다. 각 무기(현재는 sword)에 보석을 박아 스텟을 강화하는 형태다.

보석 별로 올라가는 스텟과 내려가는 스텟을 구현했다.


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

아무것도 넣지 않은 순수 sword


68988163bd867dff3cfaf3e453897178f942573ca1c8f3bd8e2384ad483d0c32e800611b1396a87d1269a1f5559f84819f8bd19a23ab990be94c92f5afb3ff83250491a9132e2f97e0d973a25b8afc08db80002f6b4c350ba88c4daefe503fa7c8f90668bbea5ef3e963d59e559274b810f12a87cffea0ac488122ca2a41974e3b65078b105d56f7dbd535da49801ddee6c9644d0a1d6ee1ff402860c6baeba5df88f8045a3aa772671ec5e266372de3d1b16d9688

속도를 낮추고 사거리를 늘린 sword


68988163bd867dff3cfaf3e453897178f942573ca1c8f3bd8e2384ad483d0c32e800611b1396a87d1269a1f5559f84819f8bd19a23ab990be94c92f5afb3ff83250491a9132e2f97e0d973a25b8afc08db80002f6b4c350ba88c4daefe503fa7c8f90668bbea5ef3e963d59e559274b810f12a87cffea0ac488122ca2a41974e3b65078b105d56f7dbd535da49801ddee6c9644d0a1d6ee1ff402860c6baeba5de88fa035a3aa772671ec5e2663725e5e2c4e41bb1d4

사거리를 낮추고 속도를 늘린 sword


장착 방식은 드래그 앤 드롭 방식으로 흔한 인벤토리 시스템이다.

보석 이미지는 현재 텍스트(아이템 코드)로 대체되어있다. 

지금 변경이 가능한 무기스텟은 공격력, 속도, 사거리, 쿨타임, 지속시간이다.

물론 무기마다 변경가능한 스텟은 조금씩 차이가 있고

추후엔 특수 기능을 추가할 수 있는 보석을 개발할 예정이다. (상태이상을 일으킨다거나, 타겟을 추적 한다거나)






광고가 꼴받아 직접 만든 게임 일지 -9-


지난번에 한 것

- Firebase 실시간 데이터베이스 연결

- 무기별 스텟 강화 기능 구현


이번엔 인게임 UI 디자인을 변경하였다.


7fed8275abc236a14e81d2b628f1776abad7e4ed0a


디자인 초안은 이러하다.

대충 이런 느낌으로 이미지들을 만들어 유니티 내에 적용할 것이다.


3eb8dc23e6c66ceb3df1d1bc10f11a39106d6eb974236a316afd

- 변경된 대쉬 쿨타임



3eb8dc23e6c66aeb3cf1d1bc10f11a39530ffc40a9d93e5ac98f

- 변경된 2개 선택지의 애니메이션 및 디자인


3eb8dc23e6c66beb3cf1d1bc10f11a392de49d77fb7b66845635

- 변경된 3개 선택지의 애니메이션 및 디자인


3eb8dc23e6c66ceb3cf1d1bc10f11a39494696eef1d1e430bd37

- 변경된 4개 선택지의 애니메이션 및 디자인


3eb8dc23e6c66deb3cf1d1bc10f11a3987eedd17d41c5c44da7e

- 변경된 5개 선택지의 애니메이션 및 디자인


0abcdd23abd531a04e81d2b628f17d659abbac7aed

- 전체 인게임 플레이


추가적으로 자잘하게 구현하고 변경한것이 있다.

- 데미지 숫자 표기 추가

-  라이트닝 이펙트 조정 및 색상 변경 / 구체는 계속 남아있도록 변경

- 어둠 구체 크기 감소 및 생성 거리 증가

- 무기 및 악세사리 획득시 UI에 새로 생성됨 / 기존엔 10칸이 미리 나타나있고 이미지를 교체 했던 방식 



광고가 꼴받아 직접 만든 게임 일지 -10-


이번엔 메인 화면의 UI/UX를 수정하였다.


a15714ab041eb360be3335625683746f0053452bd6a7ef890b9df62c37a1c32d4bdeceb3c780b80e50fba30cd72abdd506efc151fb92

먼저 메인화면이다.

플레이어 닉네임, 보유 골드를 보여주며

상점, 무기, 아바타, 설정, 게임시작, 닉네임 수정으로 구성을 나눴다.



a15714ab041eb360be3335625683746f0053452bd6a4eb890b9df62d0ca1c32f77af6775e7d9cfc834002849590a127eeaa621deea06ab

상점 화면이다. 인게임 결제 시스템은 구현하지 않았으며, 아직은 조촐한 모습이다.


7ced9e73b59c68fe20b8dfb336ef203e88a9f593c62d074e

임시 상자 애니메이션, 현재 더 나은 애니메이션으로 교체하기위한 작업중이다.



a15714ab041eb360be3335625683746f0053452bd6a4eb890b9df62d0ca1c32f77af6679e7ddcbc834002849590a127eb0faf0a42df8ce

무기 화면이다. 젬으로 일정 수치를 조정 가능하다.


0cabd132e4c076a167b9f68b12d21a1d7830d0e4134756

아바타 화면이다.

부위별로 보유하고있는 아바타로 변경 가능하다.

변경창이 나오는 애니메이션은 바꿔야할지 고민중이다.


이외에도

설정, 인게임 설정, 인게임 데스화면, 로그인, 회원가입, 애플 로그인, 구글 로그인 등이 구현 됐으며,

플레이스토어는 통과 됐지만, 앱스토어는 거부 당해서 검토중에 있다.









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

추천 비추천

26

고정닉 10

10

댓글 영역

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

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 어떤 상황이 닥쳐도 지갑 절대 안 열 것 같은 스타는? 운영자 24/05/20 - -
224477
썸네일
[비갤] 아직 코인불장은 시작도 안했다던 사람들 상황.jpg
[255]
비갤러(211.229) 04.18 46351 261
224475
썸네일
[이갤] 문 극딜하는 이재명
[521]
ㅇㅇ(118.235) 04.18 48284 452
224473
썸네일
[치갤] 고객에게 양을 많이 준다는 이유로 영업정지 받은 음식점
[524]
ㅇㅇ(45.84) 04.18 50188 712
224471
썸네일
[싱갤] 위꼴위꼴 세계 각국의 대표요리들을 알아보자
[217]
ㅇㅇ(218.39) 04.18 26669 88
224469
썸네일
[새갤] 속보) 성인페스티벌 또 취소 ㅋㅋㅋㅋㅋ
[921]
우리의비밀신념갤로그로 이동합니다. 04.18 39560 521
224467
썸네일
[알갤] 짱깨 판매자: 알콜로 닦으면 중고가 신품이 된다!!!
[471]
검사결과아이큐89갤로그로 이동합니다. 04.18 34938 224
224465
썸네일
[싱갤] 국뽕국뽕 다음달부터 시행되는 K-제도...jpg
[645]
ㅇㅇ(219.241) 04.18 57759 460
224463
썸네일
[코갤] 급발진 주장하는 사고는 거의 나이대가 높네
[235]
ㅇㅇ갤로그로 이동합니다. 04.18 26108 165
224461
썸네일
[도갤] 강남 테헤란로 이거진짜 문제라고 직찍했는데 뉴스났네
[372]
ㅇㅇ(211.59) 04.18 40660 248
224457
썸네일
[싱갤] 싱글벙글 게임계에 다시 나타난 그 손가락
[594]
나무미끄럼틀갤로그로 이동합니다. 04.18 45383 699
224456
썸네일
[이갤] 윤항문 장모 '가석방' 또 심의한다
[316]
진짜대통령1이재명갤로그로 이동합니다. 04.18 16619 235
224454
썸네일
[메갤] 세계 4대 문명 그거 아니라는데?
[632]
ㅇㅇ갤로그로 이동합니다. 04.18 35954 545
224451
썸네일
[싱갤] 싱글벙글 요즘 그림쟁이들의 여론전..jpg
[292]
ㅇㅇ(211.226) 04.18 42678 519
224449
썸네일
[싱갤] 싱글벙글 의외로 뜯는법 모르는 음식
[329]
일리아스갤로그로 이동합니다. 04.18 46747 111
224447
썸네일
[카연] 쿵푸밥 1
[41]
沙狗갤로그로 이동합니다. 04.18 13017 93
224445
썸네일
[유갤] 인천에 있는 13000원 수박 냉면.jpg
[392]
ㅇㅇ(146.70) 04.18 43099 128
224443
썸네일
[무갤] '회복 불능' 위기의 강원랜드
[385]
ㅇㅇ(118.235) 04.18 42200 136
224439
썸네일
[힙갤] 필로폰 빨고 자수한 래퍼 정보 정리
[158]
ㅇㅇ(223.39) 04.18 38120 41
224435
썸네일
[싱갤] 훌쩍훌쩍 박종철 열사 어머니 별세
[335]
ㅇㅇ(175.115) 04.18 23915 78
224433
썸네일
[부갤] 임대주택 개정안 보니까 MZ 세대는 애 낳지 말라는거랑 똑같음
[496]
부갤러(45.92) 04.18 34149 121
224431
썸네일
[U갤] 미식축구 출신 복서 VS 맥스 할로웨이 MMA룰
[157]
ㅇㅇ(49.166) 04.18 21329 218
224429
썸네일
[싱갤] 싱글벙글 세계 각 군대별 슬로건
[268]
여하갤로그로 이동합니다. 04.18 22540 101
224427
썸네일
[베갤] [베르세르크] 가츠 단죄 pvc 리페인트
[59]
곰나으리(110.11) 04.18 10809 48
224426
썸네일
[야갤] 가정집 천장 뚫은 원통…우주서 떨어진 쓰레기!.jpg
[136]
ㅇㅇ갤로그로 이동합니다. 04.18 23561 103
224424
썸네일
[자갤] 고속도로에서 갑자기 떨어진 표지판 맞고 사고난 차량
[209]
ㅇㅇ(185.114) 04.18 19534 176
224423
썸네일
[싱갤] 싱글벙글 말 안듣는 후궁 조교시키기.manhwa
[253]
ㅇㅇ(211.172) 04.18 40575 319
224421
썸네일
[멍갤] 강아지 유튜버가 3일꼬박새며 만든 책 내용
[220]
멍갤러(115.23) 04.18 29676 272
224420
썸네일
[무갤] 간단해서 즐겨 먹었는데 '이럴 수가'...도시락의 배신
[219]
ㅇㅇ(118.43) 04.18 34793 137
224417
썸네일
[중갤] 홍준표 페북 "한동훈은 주군에게 대들다 쫓겨난 폐세자"
[374]
ㅇㅇ갤로그로 이동합니다. 04.18 18983 249
224415
썸네일
[싱갤] 싱글벙글 조폭들이 빌라에 침입해서 무단점거
[338]
ㅇㅇ갤로그로 이동합니다. 04.18 29161 302
224414
썸네일
[이갤] [단독] ‘성인페스티벌’, 압구정서 개최 확정…강남구 “영업정지 검토 중
[773]
ㅇㅇ갤로그로 이동합니다. 04.18 25278 276
224412
썸네일
[부갤] 부자와 특권층은 법을 더 잘지킬까??
[428]
테클란갤로그로 이동합니다. 04.18 20184 163
224411
썸네일
[이갤] 이화영 측 '술판 회유 의혹' 검찰에 재반박
[211]
진짜대통령1이재명갤로그로 이동합니다. 04.18 11063 86
224409
썸네일
[싱갤] 우주 개발과 패러다임의 역사_31.
[20]
대한민국인디언갤로그로 이동합니다. 04.18 8720 27
224408
썸네일
[여갤] 유튜버 JM "이혼 속사정 모르면서 아는척하지마라"
[834/1]
여유사랑해(211.234) 04.18 61856 389
224406
썸네일
[부갤] 1. 금감원 짜증 폭발 (부동산 PF의 진짜 규모)
[383]
ㅇㅇ(14.84) 04.18 36338 488
224405
썸네일
[주갤] 택배 절도한 40대 한녀
[758]
ㅇㅇ(210.245) 04.18 35720 516
224403
썸네일
[무갤] 기름 넣으려다 '우울'...국제유가 전망은 '암울'
[195]
ㅇㅇ(118.235) 04.18 16633 42
224400
썸네일
[싱갤] 싱글벙글 일본이 평생 안고가야할 실수.jpg
[640]
Secretpie갤로그로 이동합니다. 04.18 46859 330
224399
썸네일
[프갤] 엘든링 첫왕 고드프리 피규어 출력도색해옴
[84]
도색하는망령갤로그로 이동합니다. 04.18 9488 189
224397
썸네일
[디갤] 릴레이 [조각빛] 우승자 발표
[19]
새가슴갤로그로 이동합니다. 04.18 7685 24
224396
썸네일
[싱갤] 싱글벙글 오타쿠들에게 깊게 들어오는 유재석...jpg
[400]
빠요엔갤로그로 이동합니다. 04.18 37683 254
224394
썸네일
[자갤] 충격)신형 그랜저 또 리콜 발표 23콜저 입갤
[141]
ㅇㅇ(118.235) 04.18 14592 66
224393
썸네일
[야갤] 수백만 년 된 바위 훼손…남성 2명 공개수배.jpg
[193]
ㅇㅇ갤로그로 이동합니다. 04.18 27217 112
224391
썸네일
[싱갤] 웨이퍼가 어떻게 만들어질까?
[180]
lduna갤로그로 이동합니다. 04.18 19576 100
224390
썸네일
[무갤] 전세보증 사고 작년대비 80% 증가 ㅋㅋㅋ
[283]
SCHD80년분할매수투자자갤로그로 이동합니다. 04.18 19365 169
224389
썸네일
[케갤] 단독] 이미주, 축구선수 송범근과 열애 중
[315]
ㅇㅇ(221.146) 04.18 29531 80
224388
썸네일
[싱갤] 싱글벙글 양현종 선크림
[201]
배달이갤로그로 이동합니다. 04.18 30262 221
224387
썸네일
[이갤] 맥시코 스탠딩 코미디 공연 찢어버린 한국인
[306]
슈붕이(45.84) 04.18 23188 465
224384
썸네일
[무갤] 지옥의 90년대생들
[1242]
ㅇㅇ(121.169) 04.18 47320 956
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2