소개
(현) 캐나다 AAA 게임 스튜디오 U사 프로그래머
- PC/콘솔 AAA 게임 프로젝트 참여
(전) 국내 게임사 N사 서버 프로그래머
- 언리얼 MMORPG 게임 프로젝트 참여
(전) 국내 게임사 N사 클라이언트 프로그래머
- 언리얼 MMORPG 게임 프로젝트 참여
(전) 국내 게임사 N사 클라이언트 프로그래머
- 유니티 캐주얼/미드코어 게임 프로젝트 참여
(전) 국내 대기업 S그룹 소프트웨어 엔지니어
- S그룹 계열사 전산 시스템 프로젝트 참여
안녕하세요. 게임 개발자 BurningCarrot 입니다.
게임을 개발하는 사람이 되고 싶다는 마음으로
대기업을 퇴사한 후 국내 게임 회사를 거쳐
현재는 해외 게임 스튜디오에서 일하고 있습니다.
현재 업계에 몸담고 있는 만큼, 현업에서 사용하는
실전 노하우와 기법을 최대한 공유 드리고자 합니다.
여러분과 같이 게임을 좋아하고 만드는 한 사람으로서,
제 강의를 수강 하시는 모든 분들이 각자의 목표에
한걸음 더 다가갈 수 있는 유익한 시간이 되었으면 좋겠습니다.
강의
전체1수강평
게시글
질문&답변
2024.10.05
유저 인벤토리 Pt.2
안녕하세요! BurningCarrot입니다. 문의해 주신 내용에 답변 드립니다. 1. JSON을 쓰는 이유는 PlayerPrefs에서 int, float, string만 저장할 수 있기 때문에로 이해했는데 맞나요? 네 맞습니다. 단순하게 int, float, string 값으로 저장할 수 없는 복잡한 형태의 데이터를 JSON 형태의 string값으로 변환하여 저장하는 것입니다. 2. 그리고 굳이 JSON 이여 할 이유가 있나요? JSON이 아닌 binary를 사용하여 저장하는 방법도 있습니다. Binary 방식을 사용하면 메모리와 최적화에서의 장점이 있지만 디버깅이 어렵다는 단점이 있습니다. JSON과 binary 둘 중에 어떤 방법을 사용하셔도 상관 없습니다. 3. PlayerPrefs에 유저가 접근이 가능하다고 하는데 그러면 악의적으로 변형이 가능하지 않나요? 이 경우는 어떻게 대비하나요? 악의적인 변형을 막기 위해 저장 시 암호화를 하는 방법이 있습니다. 암호화 저장을 위해서는 모든 저장 데이터를 string으로 변환 -> 암호화된 string으로 변환 -> 암호화된 string 값을 playerprefs에 저장 이라는 3가지 절차를 거쳐야 합니다. 이 외의 방법으로는 playerprefs가 아닌 원격 DB에 유저 데이터를 저장하는 방법이 있습니다. 이는 Pt.2에서 다룰 예정입니다. 질문에 주신 내용은 다른 수강생 분들에게도 도움이 될 것 같아 2,3번에 대한 내용은 보충 강의를 통해 실제 코드를 제공해 드리겠습니다. 다음 주에 보충 영상을 업로드하면 공지해 드리겠습니다. 추가로 궁금하신 점이 있으시다면 편하게 질문 부탁 드립니다. 🙂
- 1
- 2
- 36
질문&답변
2024.10.01
개발 도서 질문
안녕하세요! BurningCarrot입니다. 문의해 주신 내용에 답변 드립니다. 1. 업적/미션 Pt.2에서 누락했던 자료는 다시 업로드해 드렸습니다. 읽고자 하시는 개발 관련 책에 대해 좀 더 구체적으로 설명해 주실 수 있으실까요? 가령 유니티에 관한 책을 원하시는 건지, 게임 프로그래밍(C++/C#, 게임 엔진, 게임 서버 등)에 관한 책을 원하시는 건지, 좀 더 넓은 의미에서 게임 개발(게임 기획 포함)에 대한 서적을 원하시는 건지 알려주시면 좋겠습니다.
- 0
- 2
- 48
질문&답변
2024.09.20
UI 창이 안떠요
안녕하세요! BurningCarrot입니다. 문의해 주신 내용에 답변 드립니다. UICanvas의 Canvas 컴포넌트와 UICamera의 Camera 컴포넌트 설정이 아래 스크린샷과 동일한지 확인 부탁 드립니다. Layer 설정도 동일한지 확인 부탁 드립니다(UICanvas: UI, UICamera: Default). (사진)(사진)
- 0
- 2
- 62
질문&답변
2024.09.20
BaseUI, ConfirmUI에서 질문있습니다.
안녕하세요! BurningCarrot입니다. 문의해 주신 내용에 답변 드립니다. Action 변수를 사용하고 null로 초기화하지 않으면 해당 변수에 람다 표현식으로 정의한 내용이 그대로 남아있게 됩니다. 이렇게 정의한 내용을 그대로 남겨두면 나중에 해당 Action을 실행할 때 남겨둔 내용이 실행될 수 있어 의도치 않은 결과가 발생하게 됩니다. 현재 코드는 그런 일이 발생하지 않도록 설계되어 있지만 코드가 복잡해질 수록 버그의 가능성이 높아지게 됩니다. 따라서 null 처리를 하지 않아야 할 명확한 이유가 없다면 null 처리를 해 주시는 것을 권장 드립니다. 추가로 궁금하신 점이 있으시면 편하게 질문 부탁 드립니다. 🙂
- 0
- 2
- 44
질문&답변
2024.09.17
스크롤에 아이템을 선택했을때 강조하는 효과는 어떻게 구현하면 될까요?
안녕하세요! BurningCarrot입니다. 문의해 주신 내용에 답변 드립니다. 일단 OnClickInventoryItemSlot 함수에서 선택 강조 효과를 활성화 해주면서 선택한 아이템의 SerialNumber값을 InventoryUI에 m_SelectedSerialNumber와 같은 변수에 저장해 줍니다. 당연히 InventoryUI에 m_SelectedSerialNumber 변수 선언이 필요합니다. 그리고 UpdateData(InfiniteScrollData scrollData) 함수에서 InventoryUI의 m_SelectedSerialNumber 값이 m_InventoryItemSlotData.SerialNumber와 같으면 선택 강조 효과 활성화 그렇지 않으면 비활성화 해주시면 될 것 같습니다. 이렇게 하면 InventoryItemSlot 오브젝트가 재활용될 때 선택 강조 효과 처리가 정상적으로 될 것입니다.
- 0
- 2
- 53