728x90
728x90
데이터 저장 로컬 저장 : 내 pc(하드디스크) -> File로 저장 원격 저장 : Server를 통해서 DB(database)에 저장 데이터베이스는 IDC(데이터 센터)의 저장소에 저장 IDC에 저장은 유지보수 관점에서 한계가 있다( 예를 들어 동접 수가 갑자기 늘면 능동적으로 대응하기 힘듦) 이를 보완하기 위해 클라우드를 사용해서 원격으로 데이터를 저장한다. 데이터를 저장할 때 DB에 바로 Push할 수 없고 Server를 통해 요청한다. Server : FrontEnd / BackEnd로 나뉜다. 로컬 저장 : File로 저장하겠다는 뜻(txt. excel, json, xml 등 어떤 양식이든 상관 없음) 유니티에서 제공하는 대표적인 데이터 저장 방법은 PlayerPrefs가 있다. 기본적으로 컴퓨..
Call by Value & Call by Reference 비교 자료형 타입 비교 유니티와 C# 프로그래밍에서 사용되는 Value 타입과 Reference 타입은 다음과 같다. 기본 자료형(Value type) : int, float, string, long, short, byte, array, Vector, Struct, enum 등 참조 자료형(Reference type) = GameObject, Class, Instance 등 Call by Value (값에 의한 호출) 함수가 호출될 때 메모리 공간 안에는 임시 공간이 생성된다. 마찬가지로 함수가 종료되면 임시 공간은 사라진다. 함수 호출 시 전달되는 변수 값을 복사해서 함수의 인자로 전달한다. 복사된 인자는 함수 안에서 사용하는 지역변수이다. ..
유니티 동적 파일 Load에 필요한 Resources 폴더 예를 들어 유저가 게임을 다운받았을 때 필요 없는 애셋들(테스트용 또는 에셋 번들 등)까지 받을 필요는 없다. 보통 게임 사에서는 게임 제작 시 필요한 prefab들을 한데 묶어서 빌드하므로서 최적화 작업을 수행한다. 하지만 최종 완성 전 개발 단계에서 수시로 프로젝트를 테스트해야 하는 과정에서는 애셋을 확정지을수도 없을 뿐더러 필요 에셋을 수시로 주고받아야 하는 상황이 발생할 수 있다. 예를 들어, 개발 프로젝트를 합칠 때 리소스에 대한 통제가 원활하지 않으면 프리팹이 누락되거나 필드에 연결되지 않아 테스트 동작하는 데 문제가 발생할 수 있다. 이렇게 리소스에 대한 유연한 사용이 필요할 때 우리는 Resources 파일을 사용해주면 된다. 유저..
2D 배경 제작 시 Plane과 Quad 차이 2D 배경을 제작할 때 3D Object에서 Plane과 Quad를 생성해서 제작한다. 둘 다 똑같이 사각형 모양이기 때문에 두 개 중 어떤 것을 사용해도 상관은 없지만 자세히 보면 다른 점을 발견할 수 있다. 먼저 Plane은 wireFrame 모드로 보면 다음과 같이 나누어지는 것을 볼 수 있다. 기본 plane 한 개의 wireFrame은 총 vertex 600개로 구성되어 있다. 이는 연산량도 많고 무겁기 때문에 여기에 img를 입히면 퀄리티가 상대적으로 떨어지게 된다. 반면 qaud는 verterx가 6개 이루어져 매우 단순한 형태임을 확인할 수 있다. 이는 처리할 때 매우 가볍기 때문에 img를 입혀도 훨씬 성능을 높일 수 있다. 따라서 같은 기능..
게임 최적화란? 게임 프로그래밍 디자인 패턴을 이해하려면 먼저 좋은 소프트웨어 구조에 대해 알아야 한다. 좋은 소프트웨어 구조는 코드를 거의 건드리지 않고도, 적당한 함수 몇 개만 호출하면 원하는 작업을 할 수 있도록 '범용성' 있게 설계한 구조를 말한다. 해당 코드를 얼마나 쉽게 변경할 수 있는지, 얼마나 다양한 방식으로 활용할 수 있는지 여부가 '좋은' 코드 설계를 평가하는 척도가 된다. 비용 발생 생산성이 높은 소프트웨어 구조를 설계하는 과정에서 일반적으로 '추상화'와 '모듈화' 다음 2가지 방법을 채택한다. 하지만 기능을 추가하거나, 코드를 조금씩 변경할 때 마다 나머지 코드들과 통합되어야 하는데, 그 과정에서 잦은 디버깅으로 인해 유지 비용이 발생한다. 가령, 확장성을 위해 기존 코드에 인터페이..