디시인사이드 갤러리

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

갤러리 본문 영역

[📜일지] 2주차 개발일지

ㅇㅇ갤로그로 이동합니다. 2024.01.28 21:26:54
조회 785 추천 5 댓글 8
														

새 프로젝트를 시작했다.

원래 일지는 쓸 생각이 없어서 커밋할 정도의 작업내용만 대충 적어놨다.

개발을 시작하면 본의아니게 인겜갤을 기웃거리게 된다.

갤을 보다보니 일지가 쓰고싶어졌다.

그래서 오늘은 코딩도 안하는김에 정리나 했음.

사실 그냥 내용정리수준이라 중구난방임 양해 혹은 뒤로가기 발암




첫날부터 개발환경 구축이나 쓸 에셋같은거 정하지 않고 그냥 깃허브 연동만 하고 바로 시작했다.

이것저것 따지다보면 시작도하기전에 팍 식어버릴수도있고, 일단 뭐든 해놔야 거기에 맞는 에셋을 구하는거지 란 마인드.

사실은 그냥 쓸줄을 모른다. 패키지 설치나 필수에셋 그런거 하나도 없고 몰라서 스킵함.

이전에 썼던 프로젝트에서 매니저스크립트만 몇개 옮겨왔는데 목록은 다음과 같다.


매니저류 -

Managers - 매니저들을 묶어서 싱글톤으로 관리함

PoolManager - 오브젝트풀링 해줌

ResourceManager - instantiate와 Destroy를 모두 리소스 매니저를 통해서만 함. 풀링할 오브젝트도 리소스 매니저를 거친 뒤 풀매니저로 감

SoundManager - 사운드 관리. 사실 사운드작업은 거의 마지막에 하는 느낌이라 안쓸수도있는데 어차피 필요하니까

UIManager - UI관리 해줌. UI종류는 PopUp이랑 Scene 두종류로 크게 구분함

UI매니저의 도우미로 받은 액션 저장해놓는 이벤트핸들러랑 모든 UI가 상속받을 UI_Base라는 스크립트도 있음


유틸류 -

Define - 정의가 필요한 것들을 모아놓는곳. 첨엔 이런게 필요가 있을까? 했는데 생각보다 아니 진짜 매우 많이 유용하게 쓰게되서 필수로 추가함. 대충 지금 쓰고있는 느낌은


7cf3da36e2f206a26d81f6e44685726a

이런 UI 이벤트 타입을 정의하거나


7ff3da36e2f206a26d81f6e643867564

보통 UI 이벤트로 일어날 패널이나 이미지의 배경을 변경하는 색 변수를 저장하거나




7ef3da36e2f206a26d81f6e740857d68

이번 프로젝트에서 가장 유용하게 쓴건 이 n * n 의 공간을 정의하는 좌표를 저장하는곳으로도 씀.

예를 들어 3 * 3 이라면 중앙을 0,0으로 잡고 위로 한칸 아래 한칸 왼쪽 한칸 오른쪽 한칸

그 모든 좌표들을 저장해놓고 실제 사용할 땐 저 바운더리만 불러와서 배열체크하는 식.

빡대가리라 틀릴까봐 그림판만들어서 좌표 일일히 작성함..


0fb2c528e1d32abf20afd8b236ef203e86d6270cb0e9cc




Util - Define이 대부분 상수타입의 값들을 저장하는 용도라면 Util은 여러곳에서 쓸만한 함수들을 저장해놓는 용도. C#에는 없는 리스트를 셔플하는 기능이나 자식오브젝트를 찾아주는거나 기타 필요한 기능들을 만들어놓으면 사용하기가 편함.



Extension - 확장기능. 보통 Util에서 만든 함수를 확장시켜서 사용함. 사실 내부구조는 잘 모름. 제대로 쓰고있는지도 모르겠고. 그래도 몇개 만들어놓으면 편하긴 함. GameObject에서 바로 .찍고 만들어놓은 함수를 쓸 수 있다는건 작업을 매우 편하게 만들어주는듯.





그냥 이것들만 옮겨놓고 바로 시작함.

1주차에는 코딩하느라 정신없기도 하고 비주얼적으로 뭔가가 있는게 아니라 짤을 찍을 생각도 못했음. 그래서 글만.




1주차 -

1일차 - 몬스터 스크립트를 만듦. 실제 객체도 없고 애니메이션은 커녕 이미지조차 없는 상태로 일단 만듦. 만들어서 LV HP같은 기본적인 데이터만 넣어놓고 생성과 값변화 등을 확인함. 결과물은 몬스터 소환과 훈련



2일차 - 몬스터가 실제로 존재할 공간인 던전을 만듦. UI가 필요해서 바로 UI작업도 시작함. 몬스터를 넣는 김에 다른 시설들도 넣을 수 있게 던전 자체를 타일맵 처럼 만듦.

유니티에 있는 실제 타일맵과 그리드 등은 쓸줄 몰라서 안씀. 그냥 스크립트를 만들어서 몽땅 해결함.

Floor스크립트가 던전 사이즈를 측정하고, 측정한 크기에 맞춰 2차원 배열을 만듦. 각각에는 Tile스크립트가 들어감. Tile은 실제 그 타일에 들어갈 데이터를 가지고 있음.



3일차 - 몬스터를 던전에 배치하고 해제하는 작업. 거기에 필요한 UI까지 같이 작업. 

이미지는 대충 예전에 썼던거 가져옴. 그리고 프리에셋 뭐 한두개받음 배경으로 써야되서. 사실 이때 gpt4.0 결제한김에 gpts중에 픽셀이미지 만들어주는게 있어서 써봤는데 아직까진 영 별로더라. 그래도 처음 컨셉잡을 땐 꽤 유용하게 씀.



4일차 - 몬스터 배치랑 비슷하지만 다른 시설 배치. 그리고 이제 알아서 행동해야하는 NPC를 만들고 해당 NPC가 몬스터와 시설들을 찾아서 알아서 움직이는 패스파인딩까지



5일차 - 패스파인딩에서 찾은 경로를 바탕으로 실제 타일 위에서 움직이기 / 움직여서 해당 몬스터나 시설에 접촉하면 상호작용 이벤트 발생하기 / 이벤트 끝나면 다음 타겟 찾아가서 반복



6일차 - 시설과 몬스터의 배치위치를 지정할 수 있게 바꿈. 기존엔 해당던전에 빈공간있으면 랜덤으로 불러오는 방식이였음. 이젠 원하는곳에 지을 수 있게 고침. 그러려면 실시간으로 타일체크를 해야할 필요가 생김. 그것도 UI와 연동해서. 이게 의외로 잘 되서 기분좋아서 이때 처음 스샷을 찍었다. 사실 구현하고 나서 혼자 물개박수침.

05b2de23fcd139ab2eed86e7429c746c1b40c6befaf484b7f2e34965dab86f9cd92ecfcd6a9f8233864c4a81


던전 배치를 클릭하면 던전을 클릭할 수 있는 UI 패널이 뜸. 패널을 누르면 시설배치인지 몬스터 배치인지를 정할 수 있는 팝업창이 뜸. 그리고 선택하면 실제 타일위에 UI로 그려지고, 건설할 수 있는 지역이면 초록색으로 체크되게.



1주차는 이렇게 마무리



2주차



8일차 - 1주차 마지막에 만들었던 시설 배치 부분을 바탕으로 UI를 추가해서 시설에 따라 다른 범위를 가진 것들을 설치함. 추가로 층마다 하나만 존재할 수 있는 입구와 출구를 추가함.

추가로 던전의 맨 윗칸은 벽이라 밟으면 비주얼적으로 이상해서 Y축을 한칸 줄임.


7caad523eeedb44d923332719d01f4b15f0061ef227f4c4a2a17062d0adc87b48414

시설배치


7caad523eeedb4588b3503799a07d8b74d3e24a941b99e592aa836890df8ccc1999b

입구출구 설치. 새 위치에 지정하면 기존위치에 있는건 삭제하고 새위치에 설치됨.





9일차 - 디버그로 찍던것들중에 실제 플레이어에게도 보였으면 하는 정보들을 표시할 EventBox UI를 추가함. 여기엔 RichText기능을 잘써먹음. 추가로 이 마크업포맷의 <color=red> 같은 부분을 하나의 string값으로 저장해놓고 npc나 몬스터의 이름을 불러올 때 앞뒤에 붙여서 부르는 방식으로 구현했더니 잘 적용됨. 이건 앞으로도 유용하게 쓸듯.


7faad523eeed0d8f20b8dfb336ef203eda224358278aba03


7faad523eeed0d8f3cf1d1bc10f11a390b8b5446605a27411d





10일차 - 슬슬 버그가 많이 발생함.

주로 발생하는 버그는 대부분 NPC의 이동에 관한 부분이였음. 이부분은 정말 설명하려면 워드 10페이지는 쓸 수 있을만큼의 시행착오와 디버깅과 테스트와 코드노려보기가 있는데 힘들지만 해결했을 때 기분이 좋아서 결론은 잘됐다.

일단 NPC들이 겹쳐지는 부분 - NPC들이 경로를 검색할 때 NPC를 가진 타일들을 스킵하도록 변경

여기서 다른 버그 - npc들이 서있는 타일의 데이터는 npc? 그럼 원래 가진 데이터는? 당연히 사라졌음.

하지만 입구와 출구가 npc한명이 쓴다고 사라져버리면 안되니까 결국 타일 데이터는 다수의 데이터를 가질 수 있어야함.

또 다른 버그 - 그렇다곤 해도 몬스터나 1회성 시설 오브젝트들은 사라지는게 맞는데?

맞음.. 그래서 사라져도 되는 타입과 그렇지 않은 타입을 구분함. 결국 타일은 데이터와 동시에 자기자신의 고유한 성질을 지녀야함.

이런식으로 하나를 해결하면 다른 버그가 발생하고 꼬리에 꼬리를 무는 버그와 씨름을 사실 며칠에 걸쳐서 했음.





11일차 - 시설물과 몬스터, 기타 오브젝트들을 삭제할 수 있는 기능을 추가함.


7faad523eeedb5458e332b699a33e9b101e8a4781d5ce0a7e7767603c0268964f6a463




12일차 - npc와 몬스터의 전투방식을 정함. 그냥 쯔꾸르처럼 던전 안에서 붕쯔붕쯔하게할까, 아니면 아예 별도의 씬을 만들어서 불러올까, 아님 팝업창처럼 화면 하나띄워서 거기서 진행할까.

또 한대씩 주고받을까 전투가 끝날떄까지 싸울까 같은 딜교환 방식도 많이 고민함.

결론적으로는 팝업창을 띄우고 시간을 멈춘 뒤 스탯에 따라 2~3번 공격을 주고받는 방식으로 정함.



7faad523eeedb4668a323e7958d62d3bec1e54638e9e06b807ca98ce


이런 방식임. 이동 후 상호작용 발생 - 상호작용에서 배틀필드를 불러오고 거기서 둘의 전투를 진행하는 방식. 현재 npc는 애니메이션이 없어서 때리진 못하는데 데미지는 들어가는중.





13일차 14일차 - 대충 버그들 수정하고 UI 조금씩 개선하고 기타 여러 작업들 함.

사실 매일 하나의 작업만 딱딱 할 수 있는건 아니라 버그가 터지면 어쩔 수 없이 바로 틀어막고 했기때문에 정확하지가 않음. 아무튼 2주차까지는 UI작업이 의외로 제일 재밌었다.

예전에 버튼이나 UI이벤트 처리할 때, 힘들게 하이라키창에서 하나하나 클릭하고 인스펙터창의 버튼 컴포넌트에 OnClick이벤트 추가해서 스크립트에서 만든 함수 연결해놓고 이런식으로 구현했을 때만 하더라도 UI가 진짜 치가 떨리고 재미없고 짜증나고 하기싫고 복잡하고 머리아픈 작업이였는데, 람다와 액션을 쓰고난 뒤 부턴 꽤나 재밌는 작업이 된 것 같음. 원하는 포인터 액션에 원하는 함수를 넣을 수 있다는게 참 기분이 좋은듯. 일단 직관적으로 보여지는것도 좀 크고.



7faad523eeed0d8f3df1d1bc10f11a3968c34acb89ee1d6bb9

시설 건설 UI 작업 - 전부 이미지와 텍스트 컴포넌트고, Enter에 하이라이트(흰색) Exit에 회색, 클릭시에 선택상태(연두색)로 버튼컴포넌트 안쓰고 만듦.




7faad523eeed0d8f3bf1d1bc10f11a39f66c766bfba3576138


하나의 시설에 여러 옵션을 넣음. 예를 들어 비우기 항목같은 경우는 타일을 제거하는 기능을 하는데, 오른쪽에 옵션들은 각각 11 33 5*5의 범위를 제공하는 옵션임.

비우기로 테스트를 하고 나서 아래 시설들까지 적용시켜서 이제 약초밭 (소)(중)(대) 분리할 필요 없이 옵션버튼으로 다 해결했다.

근데 저 옵션을 누를때마다 실제 적용하는 부분의 함수가 달라져야되는데 이부분 연결하는거에 꽤나 애먹은듯.





7faad523eeed0d8f38f1d1bc10f11a39b3606a7abb9b3f38e7

마지막으로 어제 작업한거

턴개념 추가하고 밤에는 던전작업 낮에는 실제 게임진행

UI자동화, 추가액션(던전 배치를 안누르고 그냥 우클릭하면 시설배치창이 뜬다든가)

UI애니메이션이나 밤낮 바뀌는거, 하루 종료되면 UI결과창 등등





담주 다담주까지 기능구현은 다 끝내고싶은 마음인데 그다음엔 제일 하기싫고 골아프고 손안가는 에셋고르고 아트죄다 바꾸고 하는것들이 남아있어서 그냥 개발만 계속 하고싶은 마음이다.

그래도 아직까진 기능구현할게 많이남아서 재밌게 할 수 있을듯.


사실 젤 하고싶은건 스토리넣는건데,,,,, 설정이나 엔딩, 분기점, 이벤트 등등 생각은 다해놨는데 이건 솔직히 스탠딩 일러 없이 글만 있으면 아무 의미가 없다는 느낌이라 모르겠다. 게임 리소스야 적당히 에셋사서 구하면되는데 일러스트는 음..


그래서 뭐 최종적으론 아트가 없으면 스토리는 과감히 스킵하는것도 생각중. 그래서 일부러 아직 대화창 구현도 안해놨다.

만들고싶은 이벤트는 많은데 사실 이것도 호불호 요소일 수 있으니 게임자체만에 재미를 추구하는게 먼저긴 하겠지 라는 자기위로를


그럼 다음주도 다들 화이팅

자동등록방지

추천 비추천

5

고정닉 2

0

댓글 영역

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

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 말머리 제목 글쓴이 작성일 조회 추천
2861 설문 어떤 상황이 닥쳐도 지갑 절대 안 열 것 같은 스타는? 운영자 24/05/20 - -
2862 AD 희귀 정령 획득 기회! <아스달 연대기> 출석 이벤트 운영자 24/05/23 - -
156855 📜일지 [유니티로 쯔꾸르 만들어보기] 개발일지 02 [1] 릴리충갤로그로 이동합니다. 04.04 175 5
156760 📜일지 [판타지 라이프] 오픈월드 판타지 개발일지 3 [2] 판타지갤로그로 이동합니다. 04.03 341 3
156750 📜일지 카투바의 밀렵꾼 24년 4월 일지 [21] 유영조유영조갤로그로 이동합니다. 04.02 862 31
156646 📜일지 [언리얼] 액션 로그라이크 [WhizzWhizz] 개발 일지 04 [7] 야돈까스갤로그로 이동합니다. 04.01 597 8
156640 📜일지 래토피아 개발일지 #25 - 화산 군계 [5] 카셀(221.143) 04.01 698 21
156584 📜일지 횡스크롤 슈팅 게임 개발일지 2주차 [2] 등록금내야해갤로그로 이동합니다. 03.31 255 5
156577 📜일지 [유니티로 쯔꾸르 만들어보기] 개발일지 01 [3] 릴리충갤로그로 이동합니다. 03.31 646 10
156569 📜일지 ㅈㄴ 게으른 개발일지 10편 [7] kimgilsu갤로그로 이동합니다. 03.31 795 11
156522 📜일지 <스쿼트>개발일지(19) _ 이야기 4개 추가 [7] 순수프로젝트갤로그로 이동합니다. 03.31 271 7
156482 📜일지 슬라이드 2 개발일지 [1] 닌거갤로그로 이동합니다. 03.30 158 1
156287 📜일지 [판타지 라이프] 오픈월드 판타지 개발일지 2 판타지갤로그로 이동합니다. 03.29 173 0
156098 📜일지 Factory-Company (2024-03-27) 개발일지 [4] gem12갤로그로 이동합니다. 03.27 575 14
156079 📜일지 [판타지 라이프] 오픈월드 판타지 개발일지 1 [5] 판타지갤로그로 이동합니다. 03.27 385 3
156002 💬 다들 마케팅 어떻게 하시나요 아트인데 마케팅해야헤서 [9] ㅇㅇ(120.142) 03.26 364 0
155983 📜일지 [요술사 키우기] 개발일지 - #2 개발, UI최적화 [12] 호롤롤로갤로그로 이동합니다. 03.26 716 10
155894 📜일지 오늘의 개발일지 - 보스들 배경 그림그림 [3] ㅇㅇ(61.109) 03.25 306 6
155865 📜일지 횡스크롤 슈팅 게임 개발일지 1주차 [6] 등록금내야해갤로그로 이동합니다. 03.24 863 14
155859 📜일지 <스쿼트>개발일지(18) _ 이야기 2개 추가 및 교실 [10] 순수프로젝트갤로그로 이동합니다. 03.24 379 9
155833 💬 인디게임팀으로 제작하고 있는데 마케팅을 개발일지 유튜브에 올리기 [4] ㅇㅇ(120.142) 03.24 294 0
155769 📜일지 움짤용량)Way Nd Choice 개발일지 - 치지직 연동 시스템 추가 [4] ㅇㅇ갤로그로 이동합니다. 03.23 422 8

게시물은 1만 개 단위로 검색됩니다.

갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2