게임 제작을 위한 수학 적용과 컴퓨터 그래픽
XR 산업의 이해, 게임 개발자 직군의 이해와 프로그래밍 개요
프로그래밍이란? 주석과 Escape Sequence, 변수, 상수형, 자료형
연산자, 문자열 보간과 Parse, TryParse
if 문과 switch 문
For 문과 While 문, break 와 continue
오류와 디버깅, 비주얼 스튜디오 기능 정리
함수의 정의와 4가지 함수, 매개변수와 반환형
1. ReadKey 지금까지 콘솔을 실행했을 때 무언가를 입력하고 엔터를 치면 다음 단계로 넘어가는 방식이었지만, 실제로 게임 같은 걸 해 보면 방향키나 WASD를 누르면 바로 반영이 되었을 것이다. C# 콘솔을 공부하고 있는 지금 단계에도 그런 입력과 동시에 실행시킬 수 있는 기능이 있다. 이 ReadKey 기능을 이용하여 간단하게 플레이어의 움직임을 ...
프로그래밍은 어떻게 해야 하는가
재귀함수와 꼬리재귀함수, 팩토리얼 계산과 피보나치 수열 계산.
배열, 배열의 특성과 다차원 배열, string
열거형과 구조체
콘솔 프로젝트 진행
콘솔 프로젝트 2 - 고난이도 미로 게임
Git, GitHub의 시작, 기능, Merge Conflict
오답노트
마크다운 사용법 정리
최빈값 구하기 문제 해설
객체 지향 프로그래밍, 장단점, Solid 원칙, 특징 등
메모리, 값형식과 참조형식, 클래스와 구조체의 차이
static, 상속, 다형성, 추상화
Object. Generic, 인터페이스, 확장메서드
Delegate, Event, 무명메서드와 람다식
기타 C# 언어
자료 구조, 리스트, 링크드리스트(연결리스트), 스택, 큐
C# 컴파일 과정과 가비지 컬렉터
구조체와 클래스의 차이, 값 타입과 참조 타입
해시테이블, 딕셔너리, 트리, 그래프
객체지향을 바탕으로 한 콘솔 프로젝트
알고리즘, 재귀, 정렬 알고리즘(선택 정렬, 삽입 정렬, 버블 정렬, 병합 정렬, 퀵 정렬, 힙 정렬)
탐색 알고리즘, BPS, DPS, 다익스트라 알고리즘
디자인 패턴, 팩토리 패턴, 빌드 패턴
String의 불변성, 그리고 StringBuilder에 관하여
Record 형식에 관하여
콘솔 프로젝트 0일차 - 백로그 작성과 간단한 기능구현
콘솔 프로젝트 1일차 - 초안 구체화, 플레이어 이동 및 맵 구현, 인벤토리와 아이템 추가, NPC 추가 등 기능 구현
2일차 - 스토리 라인 완성, 인벤토리 열기 및 아이템 사용 구현, Queue를 이용한 대화 출력, 아이템의 추가구현과 엔딩 구현
3일차 - 멀티 엔딩 구현, 오류 수정
총정리
Deque
stack과 queue의 구현
유니티 엔진 입문, 씬 뷰, 게임 뷰, 인스펙터, 라이프 사이클과 유니티 메시지 함수
게임 오브젝트, 프리펩, 메모리 단편화 오브젝트 풀 패턴
Transform, Frame과 DeltaTime, GetKey/GetAxis/GetAxisRaw, 플레이어 움직임 구현
Rigidbody, Collision, Trigger, Layer, 충돌체 종류 Raycast, Gizmos
코루틴과 이벤트
심화과제 수행 2건 정리
유니티 오류 모음 5가지 - 컴파일 오류, UnassignedReferenceException, Can't add script component, The referenced script is missing, MissingReferenceException
어댑터 패턴, 싱글톤 패턴, 옵저버 패턴
UI, 씬, 유니티 디버거
3D 닷지 만들기 1일차
깃으로 유니티 관리하기 및 협업하기 에셋 관리. 커밋 메시지 규칙, Git-Flow, Merge, Conflict, Meta File, Pull Request
깃허브-유니티 협업 방법-룰셋, 이슈, 프로젝트, UML의 작성법
UI구현 - HP UI와 커서를 갖다대면 뜨는 UI 구현
양쪽으로 열리는 문 구현하기
유니티 프로젝트 귀신런 1일차 - 아이템 표시 UI 구현, 양방향으로 열리는 문 구현, 스위치로 열리는 철창 구현, 커서 아이콘의 구현
ItemInfoUIController 오류 수정 및 기능 개편, SwitchController 기능 개편, invalid texture used for cursor 오류 수정, 유니티 협업 첫 충돌 발생
Gwishin Project 3일차 - 프리팹 입히기, UI 다듬기, 책상 기능 구현하기, 두 번째 충돌
기능 합치기
SwitchController 수정, CrossHair, Physics Debugger, OnTriggerEnter 유의점
ItemInfoUI 매커니즘의 변경, 아웃라인 셰이더의 제작과 아이템의 아웃라인 설정, 잠겨 있으며 열쇠로 열 수 있는 문 구현
맵 작업
스테이터스 UI 구현, Imports로 파일 이동, 문이 잠겼다는 텍스트 출력
이제 프로젝트 제출까지 1일 남았다. 휴일 작업의 막바지로 버그 수정과 테스터 막바지에 들어서기 시작했다. 1. 서랍에 물건 넣기 지금까지의 서랍은 이렇게 Mesh Collider만 생성하고, 물건을 넣지는 않았었다. 하지만 이렇게 메쉬 충돌체로만 되어 있는 서랍에 물건을 배치할 수가 없다. 내부가 빈 것이 아닌 꽉 차 있는 형태로 충돌체가 생성되기 때...
5일차 마지막 날, 후기
게임콘 진행과 프로젝트 진행 후기
그래픽 요소 이론과 모델링, 레이어 마스크, 랜더링 텍스쳐
시네머신, Virtual Camera, Blend List, Clear Shot, Dolly Cam, Free Look, Target Group, Impulse
유니티 Essential 상편 - 유니티 에디터, 유니티 3D Essential, 사운드 Essential
UI, UI의 연동과 MVC, MVP, MVVM 디자인 패턴
유니티 애니메이션 기초, FSM, Root 애니메이션, Blend Tree
SimpleTPS 기초/시네머신
GameManager, AudioManager, Object Pool 패턴, SFXController, 애니메이션
ArrowHead, WorldSpace HPUI 구현, 몬스터와 네비메쉬
몬스터의 애니메이션 구현, 몬스터의 트리거 영역 내 감지 및 추격 구현, 몬스터의 데미지 구현 및 사망 구현. 버그 발생 - 플레이어의 에임 문제
Player의 에임 버그 수정, 플레이어 죽음 구현, 몬스터 공격 구현
GetComponent 우회, InputSystem, Particle System
CSV, Json, Binary, Scriptable Object
유니티2D, Collider, Vector2, Effecter, 2D Cinemachine, Animator
몬스터 움직임 구현, 타일맵, 카메라워킹
상태패턴의 정의와 구현
개인프로젝트 준비 - 기획 개요와 캐릭터 움직임 테스트
개인프로젝트 테스트 - 점프, 근접공격, 원거리공격. 게임 시스템 설계 개요
A* 알고리즘의 정의와 원리, 구현
타임라인, URP, 빛
개인 프로젝트 1일차 - 싱글톤, 옵저버 패턴, 플레이어 상태 패턴과 애니메이션 구현, 스펠 발사 구현
오브젝트 풀 패턴 구현, 스크립터블 오브젝트 몬스터 구현, 몬스터 상태패턴 구현 및 행동 구현, 1스테이지 튜토리얼 맵 제작, 카메라 워크 세팅
게임 매니저 구현, 플레이어의 공격과 몬스터의 공격 구현, 플레이어와 몬스터의 죽음 구현, HPUI의 구현, SFXController 구현
두 번째 몬스터 생성, 몬스터의 오디오 설정, 오디오 매니저 생성, 버그 수정
스펠 데미지 버그 2차 수정, 몬스터의 추격과 관련된 버그 수정, 스테이지 80% 완성, 씬 체인저, 포탈트리거, 몬스터 스턴 및 죽음, 체력과 마나 포션 추가 및 몬스터 처치 시 획득 기능, 인게임 UI 작업 마무리, 스펠 차지 데미지 추가 시스템 구현
몬스터 추격 버그 픽스, 리펙터링, 게임 일시정지, 게임오버/게임클리어 구현, 씬 전환 포탈 구현, 인게임 점수 UI 구현, 부술 수 있는 박스를 구현, 박쥐 몬스터 추가
보스 몬스터 구현, 맵 최종 수정, 테스트 진행 및 피드백 반영
버그 수정, 타임라인 추가 및 리팩토링. 최종 프로젝트 완성 및 후기
AR 기초
현업에서 사용하는 UI 관련 팁 및 UIManager, 편법
Unity Learn - Essential 2(완)
Unity Learn - Junior Programmer Mission 1, 2
오클루전 컬링, 이미지 트래킹, 페이스 트래킹, 디바이스 센서
VR 개요와 개발환경 설정, 컨트롤러 조작
Interactor, Interactables, 핸드 트래킹
1일차 - 총 프리팹, 과녁 프리팹, 총알 프리팹, 총의 양손 집기 구현, 총알의 발사 및 과녁 테스트
2일차 - 오브젝트 풀, 싱글톤, 총알에 에셋 적용 및 오브젝트 풀 반영, 게임매니저, 과녁 충돌 구현, UI 구현
과녁 점수 획득 로직 수정, 시작UI 디테일 수정, 맵 디테일 수정, 총기에 발사 쿨타임 반영, 크로스헤어(중심점) 기능 테스트 진행 -> 결론적으로 크로스헤어 기능을 제외하기로 결정
게임 시작과 종료, 게임 종료(Quit), 게임의 제한시간 설정 및 UI 표시, 과녁 랜덤 활성화 및 일정 시간 후 활성화된 과녁 변경 메소드, 총 사격 효과음, 양 손으로 들었을 시에만 사격 가능 기능 추가, 전체적인 코드 주석 추가 및 리펙토링
맵 에셋 반영, 총기 재질 반영, 튜토리얼 내용 및 UI 추가, 컨트롤러 디자인 변경, 과녁 점수 차등지급 시스템 구현, 빌드 테스트 및 세부 디테일 수정
과녁 중심부 맞출 시 효과음, 튜토리얼 과녁, 버그 테스트, 후기
게임콘 후기
합반 프로젝트, 코드 컨벤션, 깃 컨벤션
게임 컨셉 - 서바이벌, 업무분장 - 인벤토리 담당, 코드 정리
프로젝트 구상, 인벤토리 구성법
유니티 오류가 쫓아온다 살려줘
인벤토리 내의 아이템 추가 기능 구현
인벤토리 UI의 구현, 인벤토리 내의 아이템 이동 구현, 아이템 쪼개기 및 바꾸기, 아이템 버리기 일부 구현
팝업형 인벤토리 생성 및 기능 구현, 아이템 버리기 구현, 아이템 생성 기능 구현
아이템 생성기 프로토타입, 레시피 생성기 프로토타입, 크래프팅 UI 작업, 크래프팅, 분해 시스템 관련 베이스 작업
버그와의 싸움...ㅠㅠ
인벤토리 전반적 기능 구현, 크래프팅 초입 진행
크래프팅 시스템 구현
분해 시스템 구현
상자 시스템, 상자 아이템 확률 등장 시스템, 퀵슬롯 시스템 개편
병합 작업
수리 UI 연동, 에너지 시스템 적용
에너지 시스템 구현 및 UI 연결, 수리 시스템 프로토타입 완성, 아이템 확률 생성 시스템 구성, 데이터 테이블을 연동한 스크립터블 오브젝트 생성
사전 합반 프로젝트 중간회고
크래프팅 중 마우스 입력 제한
버그 수정, 상자 아이템 확률 생성기 테스트
프로젝트 마무리, 버그 수정, 후기
프로젝트 회고
네트워크의 정의, 구조, 네트워크 작동방식, 게임 서버 모델
Photon
사전합반 프로젝트 정리
다이얼로그 출력해보기
커스텀 프로퍼티, 동기화, 지연보상
네트워크를 반영한 간단한 TPS 만들기
데이터베이스 - 파이어베이스 설정하기, Authentication, 계정 생성, 로그인, 로그아웃
로그인 이메일 인증, 이메일 정보 수정, 비밀번호 재발급, 계정 탈퇴, 다양한 인증 방법 등
파이어베이스 데이터베이스, 데이터 쓰기, 데이터 읽기
파이어베이스 이메일 중복 여부 체크하기
컴퓨터의 데이터 표현과 컴퓨터의 구성
RunTransaction, 파이어베이스 이벤트, 정렬, 필터링, 규칙과 플레이그라운드
테스트 맵 제작, 로프 플랫폼 구현
로프 플랫폼 구현 및 테스트, 원형톱 장애물 오브젝트 구현, 3D 오브젝트를 통한 2D 게임 화면 구성, 상호작용을 통해서만 무너지는 오브젝트의 구현
맵 2, 3, 4 구현, 로프 R&D 재진행 및 로프 기믹 구현
셰이더 그래프, 맵 랜덤 생성 매커니즘, 카메라워크
카메라워킹, 오브젝트 물리 네트워크 동기화
오브젝트 물리 동기화, 셰이더 그래프 만들기, ProBuilder를 사용한 플랫폼 오브젝트 Merge, 배경 및 플랫폼 셰이더 적용 및 테스트 진행, 캐릭터 셰이더 추가
포스트 프로세싱, 카메라 레이어 설정 및 버그 수정, 셰이더 공부
인게임 UI 구성
5번째 씬 추가, 플랫품 충돌체 수정 및 기능 반영 , 맵 이동 효과를 닷트윈으로 구현 및 UI 연동
리팩토링, 새로운 업무 분배
카드 선택 애니메이션 연출
맵 생성 로직 수정 및 UI 수정, 충돌 핫픽스 진행
맵 동기화 작업
맵 동기화 작업
맵 랜덤 뽑기 버그 수정, 정보 표시 UI 네트워크 동기화, 백그라운드 박스 설정, 맵 사이즈 조정, 맵 생성 및 카드 정보 아이콘 생성에 풀 적용
인게임 씬 연결 작업
버그 수정, 빌드본 제출
3D 메테리얼 적용 버그 수정, 리매치 화면에서 리매치 거부 시 로비로 돌아가지 않는 버그 수정
UI 텍스트 오버플로우 수정, 팀장님 PPT 백업 업무
기술문서 - 1
기술문서 정리2
기업협약 프로젝트 킥오프
캐릭터 편성 시스템, 동적 계획법을 이용한 캐릭터 자동 편성 시스템
캐릭터 편성 프리셋 구현
리더 시스템 UI적으로만 구현
로비 씬 작업
로비 씬 작업, 코스트가 가득 찼을 때 빈칸에 X 표시, 프리셋 확장 기능 구현
유니티 안드로이드 UI R&D
추가 씬 작업 진행, 플레이어 데이터 연동
캐릭터 데이터 연동 작업 완료, 씬 연결 완료
요약
안드로이드 게임 출시 R&D
로비 씬 폴리싱
Dotween을 이용한 UI 팝업 이펙트, 로비 씬 폴리싱, 편성 씬의 시너지 연동 작업, 가챠 시스템 구현
가챠 시스템 구현, 시너지 활성화 UI 작업
UI폴리싱, 프리팹 수정, 일일 뽑기/광고 뽑기 R&D
무료 일일 가챠, 광고 가챠
일일 무료 가챠, 광고 가챠의 쿨타임 UI 반영
기업 협약 프로젝트 1차 회고
각종 버그 수정, 마법석 가챠 UI 추가
캐릭터 업그레이드 시스템 구현, 디버깅
빌드본 제출
캐릭터 강화 데이터 구성 및 강화 시스템 구현, 캐릭터 최초 획득 및 조각 획득 시스템 UI적으로만 우선 구현, 캐릭터 데이터 저장방식에 대한 리서치
가챠로 캐릭터 및 조긱 확득 - 캐릭터 강화까지의 플로우 완성, 상점 일일 초기화 UI 반영, 시스템 기능 리팩토링 및 주석 추가
리팩토링 계획
작업해야 할 내용 정리
캐릭터 데이터 & 업그레이드 데이터 연동, UI 작업, R&D
캐릭터 데이터 - DB와 연동, 맵 선택 UI 연출 구성
맵 선택 UI 구현, UI 폴리싱 및 로비 씬 작업
UI 폴리싱, 캐릭터 편성 연출 변경
시너지 활성화 UI 추가, UI 폴리싱
지금까지 한 업무 정리
2차 회고
DataManager 통합 작업, 선택된 캐릭터를 확인하는 UI 디테일 추가, 버그 픽스 등
UI 디자인 관련 리서치, 캐릭터 기본 데이터 DB 연동
캐릭터 데이터의 선택적 데이터 DB 연동, 캐릭터 편성 UI에서 캐릭터의 위치 변경하기
캐릭터 데이터 DB 연동
코드분석, 캐릭터 증강 시스템
증강 시스템 개요
증강 시스템 구현1
회복 증강 기능의 구현 및 시작 시 반영 적용, 캐릭터 스테이터스 증강 유닛 반영 구현, 성장 스텟 데이터 테이블만 우선 구현
스테이터스 증강 5종, 회복 증강 1종, 재화 증강 1종 추가, 캐릭터 강화 레벨별 강화 스테이터스 누적 합산 기능 구현
증강의 중첩 기능 구현, 업그레이드 씬의 전체적인 UI 디자인 변경 및 리팩토링,업그레이드 캐릭터 정보 주입 기능 구현, 캐릭터 강화 상세정보에 스킬 정보 연동, 캐릭터 획득여부에 따른 버튼 변화 적용, 마법석 UI 틀만 작업
캐릭터 강화 시스템 전반적 수정, 가챠 시스템 전반적 수정 및 db 반영
증강 효과 적용 시 동일 증강 여부 체크 후 등급이 더 높으면 기존 증강 해제 후 적용, 아니면 증강 적용 불가 판정
구글 플레이스토어 게임 출시 가이드
신화석 시스템 구현
신화석 사용 조건 상세화
마법석 가챠 시스템 구현
마법석 강화 시스템 구현 (약 60% 정도 완료)
게임 리젝 대응, 마법석 강화 시스템 마무리