개발 JOB소리

개발 JOB소리

  • 분류 전체보기
    • 포트폴리오
    • 게임개발
    • 백준
    • C++공부하기
    • 개발잡소리
    • 수학
    • 개발 기록
    • 팀 프로젝트 후기
    • Shader_HLSL
    • Shader_유니티 쉐이더 그래프
  • 홈
  • 태그
  • 방명록
RSS 피드
로그인
로그아웃 글쓰기 관리

개발 JOB소리

컨텐츠 검색

태그

게임클라이언트 쉐이더 개발일지 c# STAC 자료구조 수학 개발 Vector stack 객체지향 dod Unity 클라이언트보안 EDGE 쉐이더그래프 vertex solid 유니티 string

최근글

댓글

공지사항

아카이브

Unity(6)

  • [ 게임 개발 ] Unity - 명명백백한 최적화의 왕 Burst Compiler

    버스트 컴파일러가 무엇일까?버스트 컴파일러는 Unity 엔진에서 사용하는 고도로 최적화된 네이트브 코드를 생성하는 컴파일러이다.주로 Unity의 C# Job System과 함께 사용되어, CPU, 집약적인 코드의 성능을 크게 향상하는데 목적이 있다.예를 들어서 Data Oriented Design 활용 중에 ECS 패턴으로 대규모 시뮬레이터를 을 구현한다고 했을 때.물리 로직은 굉장히 간소화되고 가볍게 돌아가야 한다. 이러한 성능이 중요한 작업을 메인스레드에서 분리하고멀티 코어 CPU를 효율적으로 활용하여 랙 없이 부드러운 게임 경험을 제공할 수 있다. (멘트 좀 광고 같구먼) 어떻게 이것이 가능하냐.버스트 컴파일러는 Unity의 C#코드(정확히는 고성능 C#(HPC#)이라고 불리는 C#의 특정 부분집합..

    2025.12.09
  • [ 게임 개발 ] Unity 런타임 리소스 로드(Resources, AssetBundle, Addressables)

    부제 : Resources를 쓰면 안 되는 이유# 서론런타임 리소스 로드(Runtime Resource Load)가 뭘까?뭐 말 그대로 프로그램 실행 중에(Runtime)에 리소스를 로드하겠다는 뜻이다. 그런데 런타임에서 에셋을 로드할 필요가 있을까?유니티 같으면"컴포넌트에서 직렬화해서 딸깍 끼워 넣으면 굳이 동적으로 에셋을 로드할 필요 없는 거 아님??"이런 궁금증을 해결하는 게 최종 목표라고 볼 수 있다. 유니티에는 이를 자체적으로 지원해 주는 기능 세 가지가 있다.Resources, AssetBundle, Addressables이 이에 해당한다.이들에 대해 설명하면서 런타임 리소스 로드에 대해 알아보자.Resources란?▶ 참고자료 : [Unity공식 문서 : 런타임 리소스 로드]# 정의Resou..

    2025.09.17
  • [ 게임 개발 ] 유니티 쉐이더 그래프 5 - PIXELIZE

    픽셀라이즈고해상도 이미지나 렌더링 된 화면을 의도적으로 뭉개서 픽셀화를 시키는 작업을 의미한다.일반적으로 도트 픽셀 그래픽을 주로 사용하는 2D게임이나 복셀 그래픽 스타일 게임에서 자주 사용된다.최근에 진행 중인 프로젝트 중에 2D, 3D 복셀프로젝트가 좀 있었어서 생각나서 글을 써보려 한다.뭐 암튼 그럼 예 # 이론# 모자이크 어떻게 하는 거임???픽셀을 뭉개버리는 방법에는 여러 가지가 있다. 블러나 모자이크가 대표적인 픽셀을 부숴서(?) 원래의 형태나 온전한 색을 알아보기 힘들게 하는 방식이긴 한데.둘은 차이가 좀 있다. 블러는 일반적으로 주변 픽셀의 색상값을 평균내거나 가중치를 부여하여 혼합하는 방식이다.하지만 모자이크(Pixelize)는 특정 구역 내의 픽셀을 전부 같은 색상으로 강제통일 시키는..

    2025.09.10
  • [ 게임 개발 ] Stack구조 기반 TimeScale관리

    # 문제 상황게임을 개발할 때. Time.timeScale을 수정할 일이 생긴다. 예를 들자면 일시정지 Pause UI가 켜졌을 때, TimeScale을 0으로 만들어, 게임의 진행 상황을 정지시킨다.또한 액션게임에서 시간을 정지 혹은 감속, 배속시키는 경우도 있을 것이다. 하지만, 각각의 경우가 중첩된다면 어떻게 할까? DIO가 "더 월드! 시간은 멈춘다!"를 사용할 때 TimeScale은 8초간 0f 일 것이다.하지만 그 사이에 죠타로가 잠시 게임 일시정지를 사용하고 일시정지를 해제하면?PausePanel의 코드 내에서 패널이 단순히 켜질 때 정지, 꺼질 때 재개로 만들어두었다면.디오의 스킬이 끝나지 않았음에도 TimeScale이 1f로 돌아오는 참사가 발생할 수 있다. 시간이 느리게 흐르는 연출이 ..

    2025.05.18
  • [ 게임 개발 ] FAKE(가짜) NULL이 존재한다고????

    졸작 개발을 하다가 기괴한 버그를 발견했다. Scene을 비동기로 넘길 때 다음과 같은 문제가 발생되었다.유니티의 주장에 따르면 저 Overlap부분에서 MissingReference 오류가 발생한다고 한다.하지만 저기서 유일하게 참조객체인 놈은 transform 뿐....왜 이러는가?근데 transform이 null이면 아예 Grab()을 호출한 쪽에서 missingReference가 떠야 하는 거 아닌가?그럼 transform은 파괴되었는데 컴포넌트 객체는 파괴가 안되어서 이런 일이 발생하는 것인가? 일정 부분 맞는 말이다.하지만 transform과 컴포넌트는 동일한 생명주기를 가지고 있기 때문에, 독립적으로 먼저 파괴될 수는 없다.씬이 변경될 때에 모든 GameObject들을 파괴하는데. 이때 파괴..

    2025.05.08
  • [ STAC 개발일지 ] 스택 개발일지 3 - Status System

    일지라면서 매일 쓰는 게 아닌 이상한 모양새지만 어쨌든 일지이다. 오늘은 플레이어와 적들이 모두 가지는 Agent에게 필요한 Status를 구현할 것이다. 게임에서 스테이터스는 중요하다.플레이어의 성장에 깊게 관여하고 이를 유저가 직접 느끼도록 만들어주는 가장 대표적이고 확실한 수단이다.그래서 이 기능에 대한 개발에서는 더욱 신중하게 코드를 짜야한다. 우선 Stat이라는 클래스를 하나 만들 것이다.[Serializable]public class Stat{ // 무언가 코드}이 Stat이라는 놈을 묶어서 Status를 구성할 것이다. 이러한 수치들을 SO로 관리할 것이기 때문에Agent에서 관리하기 편하게 AgentStat이라는 SO클래스도 하나 만들어서위에 만들었던 Stat들을 몇 개 추가해 준다...

    2024.07.14
이전
1
다음
vcsHB GitHub vcsHB Portfolio
© 2018 TISTORY. All rights reserved.

티스토리툴바