728x90

모바일 던파 TD분이 오셔서 섹션을 진행, 모바일 던파가 어떤 식으로 제작 되었는지 설명

모바일 던파 개발 배경
PC 던파의 기본 클래스
PC 던파의 기본 클래스들을 그대로 이식

PC 던파의 클래스 구조를 그대로 이식했지만 프레임 저하 등 최적화 문제 발생

코드 구조를 연산과 표현 계층으로 나누었다고 한다.
과정에서 유니티의 기술 활용
PC 던파의 네트워크 - 클라이언트 구조

기존 PC 던파는 P2P 연결을 통하여 던전 플레이를 구현

모바일 던파의 네트워크 - 클라이언트 구조

모바일 환경에서는 다양한 문제 때문에 락스탭 서버를 통하여 던전 플레이를 구현

던파 모바일에서 프레임 동기화 방식 사용
프레임 동기화방식에서 문제되는 것을 해결
전투중 반응 속도 문제

모바일 던파에서 전투 플레이 중 반응 속도 문제를 해결하기 위해 미리 연산 처리된 B와 인풋으로 입력된 A를 보간하여 C를 보여줌

락스탭 서버를 통해서 얻는 이점1
락스탭 서버를 통해서 얻는 이점2
락스탭 서버를 통해서 얻는 이점3
락스탭 서버를 통해서 얻는 이점4

락스탭 서버를 사용하면 기록이 쉬워져 해당 이점들을 얻어서 적용하였다 함

핫픽스 솔루션은 텐센트의 injectFix 사용

핫픽스 솔루션인 injectFix의 사용 과정을 보여줌

 

정리하자면

1. PC던파의 리소스, 코드를 모바일 던파로 이식하는 툴을 개발해 이식

2. 과정에서 유니티의 기술도 사용하면서 모바일 환경에서 개선해야할 문제를 개선

3. 네트워크 방식은 다른 방식을 사용함

4. Logic과 View 계층을 분리함

728x90
728x90

PlayMaker 패키지를 이용해 구성한 FSM 로직이 실제 빌드 런타임에서 실행되지 않는 문제가 발생했습니다.

원인은 Linker Wizard라는 브릿지와 같은 내용이 빌드 단계에서 포함되지 않아 발생하는 문제였습니다.

 

해결 방법

  1. 우선 PlayMaker Ecosystem 페이지에서 EcosystemBrowser 패키지를 다운받은 뒤, 프로젝트에 추가합니다.
    Ecosystem 패키지 업데이트가 2021년도에 되어서 API 업데이트가 발생할 수 있습니다. 가능하면 변경사항들을 미리 백업 해두세요.
  2. Ecosystem 패키지 추가 후, 프로젝트 툴바의 PlayMaker > Addons > Ecosystem > Ecosystem Browser를 통해 Ecosystem 브라우저를 엽니다. 처음 브라우저를 열었을 때에는 disclaimer 페이지가 표시되니, 브라우저의 우측 상단 disclaimer 버튼 또는, 페이지 내용 중 Back to Browser 버튼을 클릭해 검색 페이지로 이동할 수 있습니다.
  3. 브라우저 검색 창에서 Linker Wizard를 검색하고, 해당 이름의 패키지를 찾아 프로젝트에 추가합니다. 해당 단계에서 Linker Wizard 패키지가 추가되고, API 업데이트가 한번 더 발생할 수 있습니다. 마찬가지로 진행 전, 변경사항들을 백업해두세요.
  4. Linker Wizard 패키지 설치 후, 에셋 폴더 내에 Linker Wizard 에셋이 추가된것을 확인할 수 있습니다.
    해당 에셋 선택하면 다음과 같은 인스펙터를 확인할 수 있습니다.
  5. Install Actions > Include Conditional Expression action > Update Linker content를 차례로 클릭합니다.
    이 과정 이후에는 에셋 폴더 아래에 link.xml이라는 파일이 생성된것을 확인할 수 있습니다.

 

PlayMaker FSM에서 Conditional Express Action을 이용하거나, C# Reflection을 이용하는 것으로 보이는 액션을 사용/수정한다면, 빌드 전에 항상 Linker Wizard를 통해 링크 데이터를 업데이트 해주세요.
릴리즈 런타임에서 PlayMaker FSM이 정상적으로 작동하지 않을 수 있습니다.

728x90
728x90

타워 디펜스 게임은 어떻게 만드는지 알기 위해 제작

어떠한 예제도 없이 구현

구현한 기능들

1. 유닛 등급 일반/희귀/영웅/신화 구분

2. 유닛 소환, 도박, 합성, 신화 유닛 조합, 판매

3. 몬스터는 웨이브, 보스로 나눔

4. 같이 플레이하는 AI 로직 (골드가 충족되면 유닛 소환, 합성 및 조합이 가능하면 수행함)

5. 유닛 배치때 같은 종류의 유닛은 한 칸에 3마리 우선 배치

6. 모든 데이터 정보를 밖으로 노출하여 관리하기 편하게 하려고함

5일 동안 진행하였고 어떤 느낌으로 만드는지 알게 됨

장르 - 타워 디펜스

이름 - LuckyDefense

개발 엔진 및 도구 - Unity

소스 코드 관리 - Git

스케줄 관리 - Todo mate(개인 기록)

제작 기간 - 5일

깃 주소 - https://github.com/Lee-SeungBin/LuckyDefense

 

GitHub - Lee-SeungBin/LuckyDefense: 운빨존많겜 게임 화면 클로닝

운빨존많겜 게임 화면 클로닝. Contribute to Lee-SeungBin/LuckyDefense development by creating an account on GitHub.

github.com

게임 플레이 영상 - https://youtu.be/yAL8FX9E9JA

 

 

728x90
728x90

방치형 게임은 어떻게 만드는지 알기 위해 뒤끝 기반 방치형 제작

뒤끝에 있던 예제를 기반으로 제작, 빠진 기능들 구현

구현한 기능들
1. 광고 리워드 지급
2. 능력치 성장 (공격력, 체력, 체력 회복량)
3. 스테이지 정보 (번호, 이름)
4. 메인 퀘스트 (적 처치, 능력치 향상, 스테이지 클리어) + 보상
5. 적 여러명 구현 (기존 예제는 1명)
6. 적 오브젝트 풀링 구현 (기존 예제는 풀링 사용 X)
7. 랜덤 뽑기 (중복 보상 지급)
8. 전투 추가 (기존 예제는 적이 공격안함)

일주일동안만 진행해서 코드가 많이 정리되어 있지 않음, 애드몹 SDK를 붙히는 과정에서 인지 모르겠지만 안드로이드 빌드 오류 발생

대충 어떤느낌으로 만드는지 알게됨, 나중에 에셋을 붙혀 퀄리티를 높히고 채팅 추가, 빌드 오류 해결해야 겠다 다짐

장르 - 방치형

이름 - BackendHero

개발 엔진 및 도구 - Unity 2021.3.18f1

소스 코드 및 에셋 관리 - Git

스케줄 관리 - Todo mate (개인 기록)

제작 기간 - 일주일

깃 주소 - https://github.com/Lee-SeungBin/BackendHero

 

GitHub - Lee-SeungBin/BackendHero: 유니티 방치형 1인 개발 프로젝트

유니티 방치형 1인 개발 프로젝트. Contribute to Lee-SeungBin/BackendHero development by creating an account on GitHub.

github.com

게임 플레이 영상 - https://youtu.be/gYaQ6VjFdE4

 

728x90
728x90
728x90
728x90

블루스택에서 빌드된 앱이 실행되지 않아 로그캣으로 확인해본 결과 이렇게 뜬다. 해결법은 간단한데

Project Settings > Resolution and Presentation 에서 Optimized Frame Pacing을 비활성화 해주면 된다.

728x90
728x90

LFS 대역폭이 초과되었다. Jenkins를 통해서 빌드 자동화에 성공했지만 해당 문제로 빌드가 실패했었다.

아마 Jenkins에서 빌드를위해 다운로드해서 대역폭이 초과된거 같은데 한달은 기다려야 할 것 같다.

lfs파일에 등록된 것은 firebase 플러그인이니 한달 후에 다시 업로드하거나 제거해야겠다.

현재는 제거한 상태로 빌드 자동화가 되고있다.

728x90
728x90

소스 트리(Git)푸쉬 에러 화면

Git에 커밋을 하고 Push를 할 때 용량이 100MB 이상이면 푸쉬가 되지 않는다.

이럴때는 LFS를 사용해서 따로 관리해 주어야한다.

우선 GitHub를 로그인에 프로필을 누르고 Setting > Billing and plans > Plans and usage를 클릭해 밑 부분에 Git LFS Data의 용량을 확인해야 한다.

무료 기준 1GB가 최대 (최대 용량을 늘리고 싶으면 결제 필요)

그 다음 git LFS 홈페이지에 들어가서 LFS를 다운 받는다.
주소 : https://git-lfs.com/

 

Git Large File Storage

Git Large File Storage (LFS) replaces large files such as audio samples, videos, datasets, and graphics with text pointers inside Git, while storing the file contents on a remote server like GitHub.com or GitHub Enterprise.

git-lfs.com

 

다운을 받았으면 해당 프로젝트 폴더에 우클릭 > Git Bash Here

해당 창이 나오면

1. // git-lfs 설치
git lfs install

2. // lfs로 관리할 파일(용량이 100MB이상) 등록
git lfs track (file path)

3. // gitattributes 파일 생성
git lfs .gitattributes

4. // 원격 저장소에 푸쉬
git add (file name)
git commit -m (commit_message)
git push origin main

를 입력한다. 본인은 
git lfs install
git lfs track D:/Project Solo/Assets/Firebase/Plugins/x86_64/FirebaseCppApp-11_6_0.so
git lfs track D:/Project Solo/Assets/Firebase/Plugins/x86_64/FirebaseCppApp-11_6_0.bundle
git lfs .gitattributes
git add --all
git commit -m "init commit"
git push origin main
순으로 진행하였다.

번외로 소스 트리로도 LFS 관리가 가능하다.
저장소 > Git LFS > 파일 추적 / 중지하기 클릭

쉽게 관리 가능

이렇게 등록해 놓으면 git lfs track (filename)과 같은 작업을 하고 .gitattributes 파일도 자동으로 갱신해준다.

 

추가로 Git LFS 용량이 초과 되었을 때 무료로 해결하는 방법이 있다. (돈 아까우니깐)

DVC를 이용하는 것인데 초과 되었을때 사용해보도록 하겠다.
DVC 참고 블로그 : https://sbjjsurfing.tistory.com/110

 

Git LFS 무료 데이터 초과 문제 공짜로 해결하기 - DVC (Data Version Control)

이거 먼저 알고가자. GitHub Repository 는 코드만 저장하는 곳이지 대용량 데이터를 저장하는 곳이 아니다 데이터 사이언스 프로젝트를 진행하다 보면, 대용량 데이터를 다루는 경우가 많다. 초보들

sbjjsurfing.tistory.com

 

728x90

+ Recent posts