전체 글 23

게임 개발 회사 크래프톤 신입 채용공고에 나타난 AI 분야 모집

크래프톤의 2025 채용공고가 떴다.https://recruit.krafton.com/ 2025 KRAFTON 신입채용크래프톤에서 여러분의 가능성을 향한 여정을 시작하세요recruit.krafton.com  채용하는 분야가 크게 두 갈래로 나뉘어져 있었는데,바로 게임 제작/지원 분야와 AI 분야이다. 보자마자 이전에 크래프톤 산하 회사에서 낸 게임 '마법소녀 어쩌구...'가 생각이 났다.이 게임은 대부분이 AI에 의해 만들어졌다는 것을 뉴스로 보았다.실제로 이 게임을 개발한 렐루게임즈는 딥러닝/AI 전문 스튜디오이다.이제는 경쟁력이 있으려면 AI 공부는 필수라는 생각이 들었다...  채용 AI 분야 정리AI 응용연구와 게임 AI 응용(강화학습/언어모델)의 경우 완전 AI 전문직을 대상으로 한 직무라 게임..

생각 정리 2025.03.05

[유니티] Behaviour Tree 개념 정리

상태Running : 노드 검사 진행중Success : 조건을 만족하여 노드 실행 성공Failure : 조건을 만족하지 못하여 노드 실행 실패 노드Composite Node : 합성 노드. 하나 이상의 자식을 가지는 부모 노드. 자식의 상태 결과에 따라 실행 성공과 실패 여부가 결정된다. 자식 노드는 순차적으로 실행되며 한 노드의 검사가 끝나기 전까지 다른 노드는 실행되지 않는다. - Sequence node: 말그대로 자식 노드의 연속적인 실행이 목적인 노드. 자식 모두 성공 시 성공 처리.- Selector node: 자식 중 선택된 하나의 노드 성공이 목적인 노드. 자식 중 하나가 성공 시 다음 노드로 이어가지 않고 바로 성공 처리 Decorator Node: 자식 노드의 반환 값을 바꾸거나 동작을..

유니티 2024.12.13

[Photon 정리] Pun 기능 개요 및 인스턴스 생성. 보스 동기화, 내가 가한 데미지만 표시하는 방법

기능 개요 PhotonNetwork 파일 안에는 필요한 모든 함수와 변수들 있음. Photon 연결PhotonNetwork.ConnectUsingSettings("v1.0") 게임 생성 및 참가PhotonNetwork.JoinRoom(roomName); // 방 참가PhotonNetwork.CreatRoom(roomName); // 방 생성PhotonNetwork.JoinRandomRoom(); // 방 무작위 생성  Photon.PunBehaviour 상속을 통한 콜백 오버라이드public override void OnJoinedRoom() // 콜백 오버라이드{ Debug.Log("OnJoinedRoom() called by PUN: " + PhotonNetwork.room.na..

유니티/포톤 2024.11.26

모바일 이동 UI 문제(조이스틱 적용 안됨 + 부캠 대회 결과 후기)

부캠의 디펜스 포폴로 제출한 프로젝트를 모바일에서 구동이 가능하게 하기 위해 조이스틱을 만드려고 했다. 대회가 끝난터라 빠르게 프로젝트를 마무리 하기 위해서 유니티 에셋을 활용하여 만들었는데...  안된다.... 움직이지를 않는다.회전은 되는데 걷는 모션도 적용이 되지 않는다. 디버그 로그를 해봤더니 한 번 조이스틱을 사용한 후로는 조이스틱을 쓰지 않을 때에도 Horizontal(moveDir.x) 과 Vertical(moveDir.z)이 0이 아닌 값이 나왔다. 그게 문제인가 싶어서 조건에 Horizontal과 Vertical을 쓰지 않고 드래그 여부를 확인하는 bool 변수를 넣어 코드를 짜봤다. 똑같이 움직이지 않는다... 키보드로 움직일 때 transform이동이 아닌 RigidBody.MoveP..

문제 해결 2024.09.11

터렛 업그레이드 시스템 구현

구상터렛 업그레이드 기능을 추가하려 한다. 일단 StatusManager에 이벤트를 만들어서 버튼을 눌렀을 때 이벤트가 발생하도록 해놓았다. 처음에는 적을 만들 때와 같이 터렛의 프리팹에 업글 UI를 추가하려했으나, 인게임에 송출되었을 때 두 가지 문제점이 발생하였다.   1. UI가 화질이 깨지고 희미하게 보인다. 2. 터렛이 화면 가운데에 있을 때는 터렛의 바로 위에 UI가 뜨지만, 사이드에 있을 때는 터렛의 바로 위보다 살짝 옆에 있는 것 처럼 보인다.   1과 2의 이유는 동일하다.프리팹 안에 캔버스가 있다는 것. 그래서 눙물을 머금고 (코드가 복잡해진다는 것을 알기에...) UI를 화면에 동적으로 띄우기로 했다. 하나의 슬라이더를 선택한 오브젝트의 위로 이동시킬지, 아니면 풀링으로 여러 개 만들..

유니티 2024.08.30

첫번째 현직자 특강 요약

현재 라이엇게임즈에서 PM으로 일하고 계신 전0훈님에게 특강을 들었다. 걸어온 길카카오 사업 PM- 하나에 대해 깊게 파지 못함. 전반적인 것에 발만 담굼. - 이 프로덕트가 발전하는 과정이 즐거웠음. => 기획쪽을 파고 싶다 생각함.  하이퍼커넥트 Product Manager - 내가 생각한대로 기획이 되어서 답답함이 줄어들었지만, 내가 이 프로덕트에 관여하는 부분이 많이 줄어들어 답답했음 - 겸업 허용 회사=> 파트타임을 뛰어보자 생각함. 스타트업(반지하 게임즈) Product Manager 겸업- 큰 기업과 달리 스타트업은 개인의 영향력이 셈  부업에 대하여-  부업을 하면서 본업에 혜택을 가져옴. 본업에서 프로덕트에서 관여할 수 있는 부분이 많이 없을뿐더러 의사결정 프로세스도 길기 때문. 의사결정..

부트캠프 2024.08.26

유니티 충돌체끼리 밀리지 않는 현상 (밀림 방지 X, 안 밀림 문제 O)

부캠에서 딱히 배운 거 없이 하루종일 포폴만 하다보니 정말 오랜만에 오게 되었다. 타워 디펜스 포폴을 만들던 중에 문제가 생겼다. 플레이어가 적과 충돌했을 경우 적이 밀려야 하는데 밀리지가 않는다.  보다시피 적의 x, z축 로테이션을 막아놔서 y축으로만 빙글 도는 모습을 볼 수 있다.그렇다면 분명 서로 충돌은 하고 있다는건데. 구글링을 해보아도 밀림 방지만 나와있고 안 밀림 방지는 보이지 않는다.밀림 방지 방법인 is Kinematic은 해제되어 있다.Physics Material을 안 만들어서 그런가 싶어서 만들어 연결해봤는데 아무 변화도 없었다.   생각해보니 두 충돌체 모두 이동 중이니까 이동 구현을 transform으로 해서 그런 걸 수도 있다는 생각이 들었다.이전 적 이동 코드transform..

문제 해결 2024.08.09

발사체 캐릭터 에셋 적용 시 물리 적용 안됨 문제 해결

분명 발사체를 Sphere 오브젝트로 했을 때는 정상적으로 작동하였다.근데...  내가 하루를 통째로 갈아서 만든 새총 물리 구현이 죽었다....  일단 보이는 문제는 이러하다궤적의 높이가 너무 낮게 생성된다.발사체가 던져진 후, 위로 등속도 이동을 한다.이외에도 고무가 위아래로 움직이는 것과 당길 때 받침대가 뒷 쪽을 본다는 문제점이 있지만, 이는 새총 자체의 문제이므로 나중에 해결하기로 했다.   궤적 높이 문제 의외로 간단하게 해결되었다.마우스를 조금만 움직여도 캐릭터 위치가 휙휙 바뀌어서 조작감을 위해 마우스 위치 차이의 값에 50.0f 를 나누었었다.그런데 그러면 궤적도 너무 낮게 나오고, 던지는 힘도 많이 약해져서 그 부분의 변수에 10.0f 정도를 곱했었는데 너무 적었나보다.30.0f 값을 ..

문제 해결 2024.06.26

[멋쟁이사자처럼 유니티 TIL] 딕셔너리 인스펙터에 노출시키기, 커스텀 에디터로 데이터 이사하기 (+ TryGetValue, ISerializationCallbackReceiver, SerializedDictionary)

목차▶ 딕셔너리 직렬화하는 법    → 시간복잡도(Big-O)    → TryGetValue    → ISerializationCallbackReceiver    → SerializedDictionary ▶ 커스텀 에디터로 데이터 이사하는 법  오늘은 코드를 예쁘게 짜는 리팩토링 작업을 하였다.주로 NewChanController 스크립트의 기능들을 DamageField 스크립트로 옮기는 작업을 하였다. 이 과정에서 딕셔너리를 쓰게 되었다.   딕셔너리를 쓴 이유 바로 시간복잡도 때문이다. 자료 구조추가검색삭제인덱스 접근ListO(1)O(n)O(n)O(1)DictionaryO(1)O(1)O(1)- 여기서 O(n)는 Big-O 라는 아이인데,알고리즘이 얼마나 효율적인지를 나타내는 표기법이다. n : 연산의..

부트캠프 2024.06.20

[멋쟁이사자처럼 유니티 TIL] 접근 제한자 개념, 에디터 스크립팅

접근제한자 : 변수 선언 시 해당 변수에 대한 접근의 범위를 정하는 키워드이다.  ● 종류 및 특징 private - 클래스 내에서만 접근 가능하다.- 외부에서는 호출, 수정 모두 불가능하다.- 접근제한자를 입력하지 않고 선언 시, private으로 설정된다. protected- 상속 받은 클래스들만 접근 가능하다.- 호출은 가능하나, 수정은 불가능하다. public- 접근이 자유롭다.- 호출과 수정 모두 가능하다. SerializeField- private이지만, 유니티 에디터에서 접근과 제어가 가능하다. internal- 같은 어셈블리(프로젝트) 에서만 접근이 가능하다.      에디터 스크립팅 : 코드를 입력하여 에디터를 만드는 것이다.  에디터 스크립팅을 통해 나만의 커스텀 에디터 창과 컴포넌트를..

부트캠프 2024.06.15