전체 글 90

한 달 인턴/ 1 주차 회고

- 한 달 인턴이란? 팀스파르타 내일배움캠프에서 주관하는 수료생 취업 지원 프로그램의 일종. 수료생이 희망하는 기술군의 인턴 사원을 필요로 하는 회사와 매칭시켜주고, 수료생에게 인턴 경험을 제공한다. - 매칭 회사 소개 회사 핵심 기술 : 교육 어플리케이션 및 게임 개발 - 금주의 인턴 활동 연산 교육 프로그램의 UI 제작 및 배치 - 금주 활동을 통해 배운 것 회사 주관 프로젝트의 진행 방식에 대한 기초적인 이해 유니티를 통한 UI 제작 실습 및 이해도 증가 - 기타 감상 첫 주차라서 크게 진행한 업무는 없다. 게임 기획자 역할군으로 인턴직에 선발 되었으나, 이번 주에는 게임 기획과 관련된 업무는 경험하지 못했다. 파주에서 수원까지 짧게는 2시간 30분, 길게는 3시간씩, 하루 6시간 정도를 출퇴근에 ..

WIL 2024.08.23

2024/5/1 TIL

'오늘의 일에서 나는 어떤 것을 배웠는지' - 학습 Q39. 월드 스페이스(World Space)와 로컬 스페이스(Local Space)의 차이에 대해 설명해주세요. A39. 월드 스페이스(World Space)와 로컬 스페이스(Local Space)는 객체나 씬의 좌표 시스템을 기준으로하는 두 가지의 공간 개념이다. 1. 월드 스페이스(World Space) 월드 스페이스는 전역적인 좌표 시스템을 나타낸다. 씬(Scene) 전체를 기준으로한 좌표 시스템으로, 모든 객체들의 위치와 방향은 이 월드 스페이스를 기준으로 표현된다. 즉, 월드 스페이스에서의 좌표는 전체 씬의 원점(0, 0, 0)을 기준으로 한 좌표를 의미한다. 월드 스페이스는 모든 객체가 공유하는 공통적인 좌표 시스템이므로, 모든 객체에 대한..

TIL 2024.05.01

2024/4/30 TIL

'오늘의 일에서 나는 어떤 것을 배웠는지' - 학습 Q38.객체를 이동할 때 벡터를 정규화(Nomarlized) 하는 이유에 대해 설명해주세요. A38. 1. 일관된 이동 정규화된 벡터를 사용하면 객체가 일정한 속도로 이동할 수 있다.  벡터의 길이를 1로 만들어서 이동 거리가 단위 벡터의 크기에 비례하도록 함으로써, 각 이동 단계에서 일정한 거리만큼 이동할 수 있다. 2. 이동 속도 제어  정규화된 벡터를 사용하면 이동 속도를 쉽게 조절할 수 있다. 벡터의 길이를 조절하여 이동 속도를 빠르게 하거나 느리게 할 수 있다. 예를 들어, 정규화된 벡터의 길이를 0.5로 조절하면 이동 속도가 절반으로 줄어들게 된다. 3. 벡터 연산의 편의성 정규화된 벡터를 사용하면 벡터 연산이 단순화된다. 단위 벡터로 이동하..

TIL 2024.04.30

2024/4/29 TIL

'오늘의 일에서 나는 어떤 것을 배웠는지' - 학습 Q37. Object pool을 사용하는 이유는 무엇인가요? A37. 1. 성능 향상 게임에서 오브젝트를 생성하고 삭제하는 과정은 비용이 많이 드는 작업 중 하나다. 특히 객체가 반복적으로 생성되고 삭제되는 경우에는 더욱 그렇다.  오브젝트 풀을 사용하면 필요할 때마다 객체를 생성하는 대신, 미리 생성해 둔 객체를 재사용하여 성능을 향상시킬 수 있다. 2. 메모리 관리 오브젝트를 재사용함으로써 메모리 할당과 해제의 오버헤드를 줄일 수 있다. 오브젝트를 반복해서 생성하고 삭제할 때 발생하는 메모리 단편화를 방지하여 메모리 사용을 최적화할 수 있다. 3. 부드러운 게임 플레이 오브젝트 풀을 사용하면 객체를 미리 생성해두고 필요할 때마다 바로 사용할 수 있으..

TIL 2024.04.30

2024/4/26 TIL

'오늘의 일에서 나는 어떤 것을 배웠는지' - 학습 Q36. 오브젝트 풀링(Object Pooling)이 무엇이며, 어떻게 구현하는지 설명해주세요. A36. 오브젝트 풀링(Object Pooling)은 프로그래밍에서 자주 사용되는 디자인 패턴 중 하나다.  오브젝트 풀링은 오브젝트(객체)를 미리 생성하고 필요할 때마다 가져와 재사용함으로써  객체 생성 및 소멸에 따른 오버헤드를 줄이는 데 목적이 있다. 오브젝트가 생성되고 파괴되는 자체로 부하가 발생할 수 있기 때문에, 이 방식은 메모리 효율 뿐만 아니라 CPU 효율에도 긍정적인 영향을 줄 수 있다. 간단한 예로, 게임에서 총알을 오브젝트 풀링을 사용하여 관리할 수 있다. 게임 시작 시에 총알 오브젝트를 일정량 미리 생성해두고, 총알이 필요할 때마다 풀에..

TIL 2024.04.26

2024/4/25 TIL

'오늘의 일에서 나는 어떤 것을 배웠는지' - 학습 Q35.코루틴(Coroutine)이 무엇이며, 어떤 상황에서 유용하게 사용될 수 있나요? A35.  코루틴(Coroutine)은 비동기적으로 실행되는 코드 조각이다.  일반적으로 프로그램의 메인 실행 흐름과 별도로 실행되며, 일시 중단되고 나중에 다시 시작될 수 있다.  코루틴은 일반적으로 게임 프로그래밍에서 많이 사용되지만, 다른 유형의 애플리케이션에서도 유용하게 사용될 수 있다. 코루틴이 유용하게 사용되는 상황은 다음과 같다 1. 시간 지연 및 대기 코루틴은 대기 시간을 포함하는 작업을 수행할 때 유용하다.  예를 들어, 적의 공격 후 몇 초 동안 플레이어를 무적 상태로 만들거나,  적이 특정 패턴을 실행하기 전에 대기할 때 코루틴을 사용할 수 있다..

TIL 2024.04.26

2024/4/24 TIL

'오늘의 일에서 나는 어떤 것을 배웠는지' - 학습 ㅇ'오늘의 나는 무엇을 잘했는지' - 성취 대분류 : 최종 팀 프로젝트 - 클라이언트 구현 소분류 : 아이템 이미지 생성 / 스킬 로직 구현 / 버그 수정          이번 프로젝트에서 사용될 아이템 이미지를 전부 생성했다....수많은 알수없는 형상의 조합 속에서 프롬프트를 입력하고 또 돌리고 다시 돌리고만족스러운 이미지가 나올 때 까지 돌리고 선별하는 작업의 연속이었다.하다보니 숙련도가 늘어서 좀 더 퀄리티 있는 이미지를 뽑을 수 있었던 것 같다. 그리고 스킬 로직 작업은 실제 인게임으로 테스트해보고 있는데주로 입력값 부분에서 버그가 속출해서 다 고치려면 좀 시간이 걸릴 것 같다. '오늘의 나는 어떤 ..

TIL 2024.04.24

2024/4/23 TIL

'오늘의 일에서 나는 어떤 것을 배웠는지' - 학습 Q33.유니티 렌더링 파이프라인에 대해 설명해보세요. 1. 랜더링 파이프라인에는 어떤 종류가 있나요? 유니티의 렌더링 파이프라인은 게임에서 그래픽을 생성하고 표시하는 프로세스를 관리하는 시스템이다. 다양한 종류의 렌더링 파이프라인이 있으며, 주로 사용되는 렌더링 파이프라인의 종류는 다음과 같다. 1. Built-in Rendering Pipeline (레거시 렌더링 파이프라인): Built-in 렌더링 파이프라인은 Unity의 이전 버전에서 사용되던 렌더링 시스템이다. 고정 기능(Fixed Function) 렌더링 파이프라인이며, 유연성이 낮고 최신 그래픽스 기능을 활용하기 어렵다. 현재는 사용이 권장되지 않으며, 대신에 URP 또는 HDRP을 고려하는..

TIL 2024.04.23

2024/4/22 TIL

'오늘의 일에서 나는 어떤 것을 배웠는지' - 학습 Q32. Time.deltaTime이란 무엇이며, 사용하는 이유에 대해 설명해주세요. A32. Time.deltaTime은 Unity 게임 엔진에서 프레임 간의 시간 간격을 나타내는 값이다. 이 값은 마지막 프레임부터 현재 프레임까지 걸린 시간을 나타내며, 일반적으로 초 단위로 표현된다. Time.deltaTime을 사용하는 이유는 다음과 같다. 1. 게임의 시간에 따른 움직임 및 애니메이션 조절 게임 오브젝트의 이동, 회전, 애니메이션 재생 등을 처리할 때, 각 프레임 간의 시간 간격을 고려하여 처리해야 한다. Time.deltaTime을 사용하면 프레임 간의 시간 간격을 고려하여 이러한 움직임 및 애니메이션을 조절할 수 있다. 2. 프레임 레이트와 ..

TIL 2024.04.22

2024/4/19 TIL

'오늘의 일에서 나는 어떤 것을 배웠는지' - 학습 Q31.유니티로 타이머를 구현하는 알고리즘을 설명해주세요. A31. Time.deltaTime 사용 시 타이머 변수 선언: 타이머 값과 타이머가 종료될 시간을 저장할 변수를 선언. 타이머 초기화: 타이머 값을 초기화하고, 타이머가 종료될 시간을 계산. 타이머 업데이트: 매 프레임마다 Time.deltaTime 값을 사용하여 경과된 시간을 누적하고, 타이머가 종료될 시간까지의 남은 시간 계산. 타이머 종료 여부 확인: 남은 시간이 0 이하인지 확인하여 타이머가 종료되었는지 여부를 판단. 타이머 종료 시 동작 수행: 타이머가 종료되었을 때 원하는 동작을 수행. 인보크(Invoke) 작동 알고리즘 Invoke 또는 InvokeRepeating 메서드를 사용하..

TIL 2024.04.19