디시인사이드 갤러리

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

갤러리 본문 영역

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

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

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 주위 눈치 안 보고(어쩌면 눈치 없이) MZ식 '직설 화법' 날릴 것 같은 스타는? 운영자 24/04/29 - -
216711
썸네일
[싱갤] 싱글벙글 와우 근황
[277]
ㅇㅇ갤로그로 이동합니다. 03.20 31002 80
216708
썸네일
[국갤] 천안함 친북 막말 민주당' 별 문제 문제없다'
[288]
ㅇㅇ(58.121) 03.20 11358 298
216707
썸네일
[중갤] 박살박살 K-게임에 '투자'하다가 ㅈ망한 사례들
[152]
ㅇㅇ(121.135) 03.20 27575 113
216705
썸네일
[디갤] 그냥 1본,,,
[40]
키쿄갤로그로 이동합니다. 03.20 10116 26
216704
썸네일
[국갤] 이종섭 호주대사 총선전 조기귀국…尹, 황상무 사의수용
[291]
ㅇㅇ(183.91) 03.20 11354 179
216703
썸네일
[싱갤] 분노분노 스케이트 국가대표 논란
[218]
Whi-Rin갤로그로 이동합니다. 03.20 19085 213
216701
썸네일
[야갤] "경기중 폭탄, 오타니 해칠것"...테러 예고
[247]
ㅇㅇ(106.102) 03.20 16469 174
216700
썸네일
[주갤] 이와중에 울산대에서도 예비군 불이익 터짐
[513]
주갤러(106.101) 03.20 26229 838
216699
썸네일
[장갤] 장신의 검 전국진 스토리...
[58]
장갤러(212.143) 03.20 19808 213
216697
썸네일
[싱갤] 싱글벙글 서바이벌 프로그램 발언 수위 ㄷㄷ
[693]
ㅇㅇ(121.180) 03.20 32223 258
216696
썸네일
[기음] 맛은 있는데 속사정이 궁금한 순대국집.jpg
[222]
dd(182.213) 03.20 27363 108
216693
썸네일
[국갤] "이재명=예수"…이재명 '신격화 표현' 찬양까지 등장
[535]
신화급나무젓가락갤로그로 이동합니다. 03.20 15620 480
216692
썸네일
[미갤] 빌 애크먼이 알려주는 투자법..JPG
[181]
ㅇㅇ(58.124) 03.20 19246 127
216691
썸네일
[싱갤] 싱붕이들 나르시즘
[120]
형기아님갤로그로 이동합니다. 03.20 19499 61
216689
썸네일
[국갤] 블라)국제결혼은 ㅁㅁㅎ이 아니에요(블라여시 총출동_초스압)
[895]
무슬림남편갤로그로 이동합니다. 03.20 22792 188
216688
썸네일
[이갤] 순찰차가 무서워 도망친 20대 여성..
[270]
구름갤로그로 이동합니다. 03.20 27656 309
216687
썸네일
[주갤] 궁금궁금... 여성시대는 정말로 일본을 싫어할까?
[308]
주갤러(106.101) 03.20 20850 413
216685
썸네일
[기갤] 쌍둥이 출산 후 부부싸움이 잦아졌다는 남편
[310]
긷갤러(45.84) 03.20 23429 157
216684
썸네일
[자갤] 근데 술집에서 라면 국물 리필해달란게 진상임???
[564]
차갤러(211.36) 03.20 33254 72
216683
썸네일
[싱갤] 오늘 일본에서 29주년된 사건
[150]
ㅇㅇ갤로그로 이동합니다. 03.20 21523 94
216681
썸네일
[의갤] 못 뭉치는 의협에게 스토킹 당하는 로비 최강 약사회
[158]
의갤러(121.172) 03.20 16339 212
216679
썸네일
[한갤] 유명 수학강사 정승제 매니저가 출근해서 하는 일들
[193]
ㅇㅇ(146.70) 03.20 26866 237
216677
썸네일
[디갤] 홍콩에서 일년동안 간간히 찍은 사진
[30]
ㅍㅇㅎㅇ갤로그로 이동합니다. 03.20 7781 19
216676
썸네일
[해갤] 고우석 마이너행……JPG
[211]
해갤러(1.243) 03.20 22936 230
216675
썸네일
[싱갤] 일본일본 원종촌
[225]
장제스갤로그로 이동합니다. 03.20 21324 157
216673
썸네일
[이갤] 관제센터 직원의 눈썰미로 대형 음주사고 막았다
[77]
구름갤로그로 이동합니다. 03.20 15059 78
216672
썸네일
[야갤] 1점 리뷰 가게 1년 후 최신 근황.jpg
[265]
포키초키갤로그로 이동합니다. 03.20 40114 755
216671
썸네일
[기갤] "환경 지킨다며" 류준열, 논란 재점화…골프→식판 갑질 뭐길래
[312]
긷갤러(185.216) 03.20 22782 234
216669
썸네일
[전갤] "마약 사려고"...모텔 돌며 그래픽카드 훔친 20대 구속 송치
[189]
몽쉘통통갤로그로 이동합니다. 03.20 20829 79
216668
썸네일
[싱갤] 싱글벙글 훨씬 웅장하게 지어질 "뻔" 했던 서울역
[213]
ㅇㅇ.(14.138) 03.20 19057 166
216667
썸네일
[새갤] 주수호 "14만 의사 윤석열 퇴진 운동"
[376]
클라이엔갤로그로 이동합니다. 03.20 14646 87
216664
썸네일
[부갤] 전세사기 당한것 같은데 조언좀 부탁드립니다
[375]
ㅇㅇ(182.210) 03.20 20937 27
216663
썸네일
[삼갤] 엘도라도 부활 오피셜 gisa
[106]
ㅇㅇ(61.98) 03.20 26079 294
216661
썸네일
[이갤] 우리나라 대부분이 겪고 있다는 인정 중독
[488]
당돌갤로그로 이동합니다. 03.20 34844 266
216660
썸네일
[싱갤] 안산 고소 자영업자 빤스런
[443]
ㅇㅇ갤로그로 이동합니다. 03.20 43097 298
216659
썸네일
[알갤] 알리 뉴스떳다
[656]
ㅇㅇ(106.101) 03.20 27221 174
216657
썸네일
[싱갤] 싱글벙글 기독교 이야기
[299]
앨리스피즈페이타르베른갤로그로 이동합니다. 03.20 24889 143
216656
썸네일
[주갤] 오타니 와이프 가방가격
[804]
ㅇㅇ(1.226) 03.20 41042 1129
216655
썸네일
[야갤] 수원 버스에서 묻지마 응우옌 폭행..news
[336]
배그린갤로그로 이동합니다. 03.20 24215 293
216653
썸네일
[새갤] 허경영, 女신도 성추행 반박 "영적 에너지를 주는 것"
[109]
ㅇㅇ갤로그로 이동합니다. 03.20 13573 67
216652
썸네일
[필갤] [.webp] 2023, 청주, 보이그랜더 베사
[18]
아사히펜탁스갤로그로 이동합니다. 03.20 4024 11
216649
썸네일
[싱갤] 싱글벙글 그것을알려드림 유투버 진용진 근황 ㅋㅋ
[220]
ㅇㅇ(110.10) 03.20 51837 480
216647
썸네일
[싱갤] 야릇야릇 촬영 컨셉이 난감했던 일본 누나
[213]
당돌갤로그로 이동합니다. 03.20 44066 263
216645
썸네일
[국갤] 어제 이재명 위증교사 재판 요약
[285]
찢죄명(114.207) 03.20 18969 393
216644
썸네일
[롯데] 자티비 원태인 분량 ㅅㅂ ㅋㅋㅋ
[12/1]
ㅇㅇ(125.134) 03.20 10291 54
216642
썸네일
[야갤] 안산 사건.....갓양녀 반응......jpg
[421]
극단하괴리갤로그로 이동합니다. 03.20 37034 642
216641
썸네일
[싱갤] 군 연구용역 "예비군 훈련 30일로 확대" 제안
[1144]
초속갤로그로 이동합니다. 03.20 28758 486
216639
썸네일
[이갤] 이강인 귀국...팬들 환대에 미소 지으며 공항 벗어나
[142]
당돌갤로그로 이동합니다. 03.20 10131 50
216638
썸네일
[판갤] 일본에서 무증상 치사율30%질병 확산중.jpg
[411]
ㅎㄹ.갤로그로 이동합니다. 03.20 26025 127
216636
썸네일
[주갤] (진지) 한국이 개ㅈ될수밖에 없는 인구구조학적 이유 (저출산 아님)
[1121]
주갤러(116.89) 03.20 33275 789
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2