디시인사이드 갤러리

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

갤러리 본문 영역

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

ㅇㅇ(222.106) 2024.02.21 07:40:01
조회 7090 추천 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
등록순정렬 기준선택
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 SNS로 싸우면 절대 안 질 것 같은 고집 있는 스타는? 운영자 24/05/06 - -
216453
썸네일
[싱갤] 싱글벙글 발리우드에 나온 한국...jpg
[151]
ㅇㅇ갤로그로 이동합니다. 03.19 41406 158
216450
썸네일
[토갤] 아시안컵때 국대 홈 유니폼, AFC 직원들 선물
[38]
ㅇㅇ갤로그로 이동합니다. 03.19 11493 67
216449
썸네일
[싱갤] 망해가는 디즈니 근황
[437]
부엉이바위로가자갤로그로 이동합니다. 03.19 56088 822
216447
썸네일
[장갤] 장사의 신 밀키트 해명
[227]
ㅇㅇ(37.140) 03.19 38150 643
216444
썸네일
[야갤] “남자 성기달고 女수영서 1등한 기록 다 지워달라”…여성 선수들 소송
[698]
야갤러(211.234) 03.19 39798 369
216443
썸네일
[싱갤] 피ㅈ피ㅈ 피파온라인 하면 개열받는 이유... (데이터주의)
[152]
ㅇㅇ(182.224) 03.19 19146 109
216441
썸네일
[주갤] 99년생과 국제결혼한 85년생 블라남 ...ㅗㅜㅑ
[810]
주갤러(77.111) 03.19 47897 674
216440
썸네일
[기갤] "배달 된장찌개서 뚝배기 조각 나와"… 자녀 먹였다가 '화들짝'
[295]
긷갤러(45.84) 03.19 18934 77
216438
썸네일
[카연] 당겨라,방아쇠! <上>
[23]
smileboyman갤로그로 이동합니다. 03.19 6304 48
216437
썸네일
[싱갤] 싱글벙글 늙어가는 화물기사들
[533]
레이퀀스뱅큐어갤로그로 이동합니다. 03.19 30671 280
216435
썸네일
[중갤] 일본은행, 17년 만에 금리 인상…마이너스 금리 종료
[217]
STARBUCKS.갤로그로 이동합니다. 03.19 17112 73
216434
썸네일
[바갤] 이세돌 "인공 이전 기보는 놓아볼 가치 없어"
[480]
ㅇㅇ갤로그로 이동합니다. 03.19 31355 516
216433
썸네일
[군갤] 국군 분대 화기가 병신이 된 이유 중 하나
[331]
밀리터리맨갤로그로 이동합니다. 03.19 28519 231
216431
썸네일
[싱갤] 싱글벙글 도축되는 소
[570]
ㅇㅇ맨갤로그로 이동합니다. 03.19 29319 511
216429
썸네일
[기갤] 시각장애인이 혼자 카페 갔더니 직원 반응
[306]
긷갤러(45.67) 03.19 31626 263
216427
썸네일
[유갤] 흥궈신 김흥국 최근..근황......jpg
[278]
ㅇㅇ(175.119) 03.19 30063 670
216426
썸네일
[의갤] 의대증원보다 큰 거 온다ㄷㄷㄷㄷㄷㄷㄷㄷㄷㄷㄷㄷㄷㄷ
[1031]
ㅇㅇ(14.56) 03.19 47672 991
216425
썸네일
[싱갤] 싱글벙글 군의관 레전드
[438]
경룡이갤로그로 이동합니다. 03.19 52918 626
216423
썸네일
[주갤] [레딧반응] 소추 표현에 민감한 한남들을 조롱하는 외국인들
[632]
ㅇㅇ갤로그로 이동합니다. 03.19 25989 143
216422
썸네일
[블갤] [블갤공작시간] 죽여주마 리쿠하치마 아루...
[63]
팔백미리갤로그로 이동합니다. 03.19 9961 90
216421
썸네일
[싱갤] 한국에 와서 사기당하고 망한 미국 국제결혼 부부 ㄷㄷㄷ
[426]
ㅇㅇ(110.10) 03.19 35450 360
216420
썸네일
[부갤] 윤석열 대통령 "현재 대파 가격 합리적" ㄷㄷㄷ.jpg
[532]
ㅇㅇ(118.46) 03.19 22403 340
216419
썸네일
[치갤] 치킨 창업 도전해보는 방송국 pd
[189]
롤로노아김동현갤로그로 이동합니다. 03.19 28518 56
216418
썸네일
[특갤] 클로드3랑 GPT4랑 서로 대화시켜봤음 ㅋㅋ
[160]
ㅇㅇ­갤로그로 이동합니다. 03.19 22085 241
216417
썸네일
[해갤] 축구 대표팀 새 유니폼 공개
[257]
해축러(149.34) 03.19 15151 22
216414
썸네일
[퓨갤] [직관후기] 2024.03.18. 서울시리즈 팀 코라아 vs LA 다저스
[22]
Leessang갤로그로 이동합니다. 03.19 5674 43
216413
썸네일
[기갤] "내 여친 가슴 왜 만져" 항의하자 친구 살해한 17세
[561]
긷갤러(45.84) 03.19 45684 218
216411
썸네일
[대갤] 중국여행 중 중국이 최고라는 중국인.jpg
[345]
대갤러(146.70) 03.19 25943 493
216410
썸네일
[싱갤] 싱글벙글 다들 외면하는 워터파크의 진실
[482]
나는야퉁퉁이갤로그로 이동합니다. 03.19 40995 434
216409
썸네일
[야갤] 17년만에 밝혀진 무한도전 최면 주작설 논란의 진실
[298]
야갤러(211.234) 03.19 31759 282
216407
썸네일
[주갤] 안산 사태로 보는 3년전과 현재의 차이점
[553]
ㅇㅇ(59.27) 03.19 37692 1958
216406
썸네일
[해갤] “판결문에 저는 없네요”…‘황의조 영상’ 유포 피해자의 편지
[260]
ㅇㅇ(14.46) 03.19 19657 54
216405
썸네일
[이갤] 인류 역사상 가장 비범한 인물 TOP 10..JPG
[644]
이시라갤로그로 이동합니다. 03.19 26557 41
216403
썸네일
[싱갤] 아내가 사신이 되어 나타난 만화..manhwa
[162]
경룡이갤로그로 이동합니다. 03.19 24838 186
216402
썸네일
[바갤] 오토바이 절반이 무보험인 이유
[429]
바갤러(139.28) 03.19 26414 160
216399
썸네일
[해갤] 이천수가 말하는 스페인애들 성격....jpg
[247]
해축러(211.234) 03.19 37626 749
216398
썸네일
[싱갤] 세계의 가장 큰 수영장들 top 5
[86]
대한민국인디언갤로그로 이동합니다. 03.19 22688 88
216397
썸네일
[주갤] 아이 먹이게 우유 조금만 주세요 라는 고객
[374]
주갤러(185.114) 03.19 29707 254
216395
썸네일
[싱갤] 싱글벙글 안정환 비어캔치킨 대참사
[236]
ㅇㅇ(211.58) 03.19 25783 201
216394
썸네일
[디갤] 일본 갔다왔다! 사진 봐줘! (21pic)
[39]
후지랄3단갤로그로 이동합니다. 03.19 5696 27
216393
썸네일
[국갤] 허경영 근황.goso
[114]
qwpeuhpqvpq갤로그로 이동합니다. 03.19 23876 126
216391
썸네일
[군갤] 트럼프 "6천억 벌금 마련 힘들어"…재산 압류 당하나
[274]
외신번역군갤러갤로그로 이동합니다. 03.19 20561 132
216390
썸네일
[싱갤] 싱글벙글 훈수로부터 도망칠 수 없는 게임
[356]
ㅇㅇ갤로그로 이동합니다. 03.19 30917 391
216389
썸네일
[중갤] 철권 져서 개빡친 철붕이ㅋㅋ
[629]
WATAROO갤로그로 이동합니다. 03.19 41423 430
216387
썸네일
[A갤] 해피일본뉴스 98
[118]
더Informer갤로그로 이동합니다. 03.19 8982 92
216386
썸네일
[프갤] 언더테이커와 스팅의 드림매치에 대해 자세히 알아보자 (번외편)
[34]
프갤러(182.222) 03.19 6771 34
216385
썸네일
[싱갤] 싱글벙글 서울 도심 하천에 나타난 멸종위기종 수달
[220]
니지카엘갤로그로 이동합니다. 03.19 21074 69
216382
썸네일
[주갤] (유튜브같이보자) 일본인들이 고기굽는 한국남편에 감탄함
[436]
주갤러(172.225) 03.19 30896 445
216381
썸네일
[나갤] 세계화의 재구성: 세계화가 저물가 기조를 만들지는 않았다?
[58]
낭만자산운용갤로그로 이동합니다. 03.19 10969 46
216379
썸네일
[싱갤] 와들와들 어제자 일본 이대남·녀들의 만행
[314]
ㅇㅇ갤로그로 이동합니다. 03.19 29984 323
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2