분류 전체보기 91

Scriptable Object

Scriptable Object : 클래스 인스턴스와는 별도로 대량의 데이터를 저장하는 데 사용할 수 있는 데이터 컨테이너 유니티 오브젝트를 상속받은 클래스로 Unity Serialize 시스템을 가지고 있음 serialize: 클래스나 오브젝트를 스트링이나 일차원 배열 형태로 변환하는 것 실제 파일을 열어 보면 저장된 텍스트 내용 확인 가능 데이터 컨테이너로 데이터 공유에 사용할 수 있고, 이를 통해 메모리 사용량 줄일 수 있음 Scriptable Object는 데이터를 참조 형태로 오브젝트에서 가져올 수 있게 함으로써 메모리 할당을 최소화하고 고유한 값을 가질 수 있게 함 주요 사용 사례) 사본이 생성되는 것을 방지하여 프로젝트의 메모리 사용을 줄임 연결된 MonoBehaviour 스크립트에 변경되지..

Metaverse/Unity 2023.07.24

디자인 패턴 요약

상속: A is B 장점) 부모 클래스로부터 물려받은 부분은 다시 쓸 필요가 없으므로 재사용 면에 있어서 효율적임 단점) 부모, 조상 클래스가 될 공통된 최소 필수 집합을 개발자가 미리 예상하기 어려움 컴포넌트들끼리 커플링이 심함 컴포넌트: A has B 각자의 기능을 가지고 있는 스스로 동작하는 독립적인 부품 컴포넌트를 뗀다고 해서 오브젝트의 다른 컴포넌트에 영향이 가는 것은 없음 코드의 의존성을 줄이고 재활용성을 높임 인벤토리 기능은 컴포넌트로 구현하는 것이 좋음 컴포넌트란 : 로직을 기능별로 컴포넌트화하는 것, 기능들을 나누어 각각 독립적인 클래스로 분리 한 개체가 여러 분야를 서로 커플링 없이 다룰 수 있게 해줌 인터페이스 & 다형성과 연관 : 여러 알고리즘을 하나의 추상적인 접근점(인터페이스)를..

Metaverse/Unity 2023.07.24

게임 서버와 클라이언트

패키지 게임: 소규모의 플레이어가 같이 모여서 하는 온라인 게임 (Offline이 가능한 경우도 많음), MOG라고도 함 (Multiple Online Game) 서버 플레이어 세 명 이상이 게임을 하려면 그들의 게임 플레이 상태를 저장하는 곳이 필요하고, 이를 위해 플레이어 중 한 명의 컴퓨터가 모든 플레이어의 게임 플레이 상태를 취합하여 유지하는 역할을 해야 함 패키지 게임에서 게임 서버가 하 역할은 지금 플레이어가 두세 명 혹은 많아야 십여 명 참여하여 게임 플레이를 하는 상태, 즉 세션 처리를 담당하는 것 데디케이티드 서버: 클라이언트 프로그램과 같은 엔진을 사용하지만 렌더링과 사용자 입력 처리를 받지 않고, 순전히 클라이언트 연결을 받는 세션을 처리만 하는 프로그램이 따로 운용하는 경우 MUD(..

Metaverse/Network 2023.07.24

Socket Programming

블로킹 : 디바이스에 처리 요청을 걸어 놓고 응답을 대기하는 함수를 호출할 때 스레드에서 발생하는 대기 현상 소켓뿐만 아니라 파일 핸들에 대한 함수를 호출했을 때도 이러한 대기 현상이 발생하는 것을 모두 블로킹이라고 함 송신 버퍼와 수신 버퍼 송신 버퍼: 일련의 바이트 배열이라고 보면 됨 송신 버퍼의 크기는 고정 되어 있으나, 마음대로 크기를 변경할 수 있음 수신 버퍼가 가득 차면 발생하는 현상 수신 함수가 수신 버퍼에서 데이터를 꺼내는 속도가 운영 체제가 수신 버퍼의 데이터를 채우는 속도보다 느리면 TCP 송신 함수로 송신 버퍼에 데이터를 쌓는 속도보다 수신 함수로 수신 버퍼에서 데이터를 꺼내는 속도가 느리다고 해서 TCP 연결은 끊어지지 않음 (실제 송신 속도가 느린 쪽에 맞추어 작동할 뿐) UDP ..

Metaverse/Network 2023.07.24

컴퓨터 네트워크

클라이언트: 사람이 만지는 컴퓨터 서버: 많은 사람들이 만지는 단말기에 서비스를 제공하는 무인 컴퓨터 -> 클라이언트에서 오는 데이터를 받아서 처리한 후 그 결과를 클라이언트에 회신 OSI 모델: 컴퓨터 네트워크 통신에 대한 국제 표준 -> 이 표준만 잘 지키면 어떤 기기든, 어떤 형태의 통신 선로를 사용하든 컴퓨터 간 통신을 할 수 있음 계층 1: 물리계층 계층 2: 데이터 링크 계층 계층 3: 네트워크 계층 계층 4: 전송 계층 계층 5: 세션 계층 계층 6: 표현 계층 계층 7: 응용 계층 OSI 모델의 계층 2 각 단말기는 고유한 주소를 가짐 단말기는 데이터를 프레임이라는 단위로 주고 받음 보다 많은 컴퓨터를 연결할 때의 문제점 스위치 하나가 연결할 수 있는 단말기 수가 제한되어 있음 단말기들 각..

Metaverse/Network 2023.07.24

Multi Threading

"프로그램을 실행하면 프로세스가 생성됨. 프로세스 안에는 유일한 쓰레드가 있고 그 안에 프로그램 실행" 멀티쓰레드 프로그래밍 활용 용도) 기기에 있는 CPU(Core)를 모두 활용해야 할 때 Single Core의 사용량이 100%가 되지 않으면 멀티쓰레드 프로그래밍을 절대 하면 안됨 오래 걸리는 일 1개와 빨리 끝나는 일 여러 개 같이 해야 할 때 어떤 긴 처리를 진행하는 동안 다른 짧은 일 처리해야 할 때 -> 비동기 IO를 사용하여 프로세스가 I/O의 완료를 기다리지 않게 함 기기에 있는 CPU 모두 활용해야 할 때 (싱글 코어에서 처리 불가하고 CPU의 클럭을 몇 배 높여야 해결될 작업인 경우) ex) FPS 쓰레드의 정체 : "두 가지 일을 동시에 하라"라고 시켰을 때 운영체제는 두 개의 작업을..

Metaverse/Network 2023.07.24

RPG Project - 자료조사

1. 절차적 애니메이션 개요) - 대부분의 게임에서 캐릭터 애니메이션은 정적인데, 한 오브젝트가 다른 오브젝트와 상호작용을 해야 할 때 절차적 애니메이션 사용 - 상호작용은 단순히 애니메이션을 재생하는 것이 아니라 주변 오브젝트에 따라 캐릭터의 움직임이 영향을 받는 것을 말함 정의) 다양한 동작을 위해 실시간으로 애니메이션을 자동 생성하는 것 유니티에서는 애니메이션 리깅이라는 기능을 도입해 보다 쉽게 구현하도록 함 애니메이션 리깅) 캐릭터의 뼈대 - 릭(Rig) 릭은 캐릭터의 개별 뼈를 구성하는 오브젝트의 계층구조를 가짐 기본적인 애니메이션 작동 과정) 캐릭터는 애니메이터에 의해 결정된 애니메이션을 재생 해당 애니메이션에 의해 뼈대가 이동 캐릭터의 메시는 스킨 메시 렌더러를 통해 뼈대를 따라 이동 2. ..

스마일게이트 - 직무체험형 인턴 면접

서류통과 후에 인적성 시험을 보고 면접 날짜가 정해졌다. 네트워크 프로그래밍 기말고사와 시간이 겹쳐서 고민하다가.. 너무 잡고 싶은 기회이고, 간절한 마음에 교수님께 메일을 드렸더니, 학교와의 협의 후 추가 시험을 보기로 정해졌다. 5월부터 스터디, 텀프, 시험 준비, 팀플 등등으로 잠을 잘 못잤다.. 면접 전 날엔 최대한 컨디션을 잘 관리하고 가려고 했으나, 그래도 시험 준비는 해야하고 면접 준비도 해야하고 걱정이 너무 많아서 일찍 잠에 들진 못했다. 드디어 면접 당일! 설레고 떨리는 마음으로 기상하여 꽤 먼 길을 떠났다. 판교역에 일찍 도착해서 시험공부를 하다가 면접 예상 질문 뽑아둔걸 회사 근처 벤치에 앉아서 보다가 들어갔다. 면접을 볼 땐, 긴장하지 마시라고 중간에 물 한잔 드세요 너무 긴장하지 ..

기타/대외활동 2023.06.15

메타버스 게임 디자인 - 최종

어제 메겜디 최종 평가를 진행했다. 서로 바꿔서 플레이 해봤는데, 디자인과 분들은 역시 다들 예쁜 맵을 만드셨다. 그래도 옆에 앉은 분이 내 게임 플레이해보면서 이거 진짜 재밌다고 말씀해주셔서 행복했다.... 그리고 진짜 재밌어 하시는 것 같아서 뿌듯했다. 내가 다른 분들꺼 플레이할 땐 나무 곡괭이 만들 줄 몰라서 손으로 돌 부수다가 놀림 받았다.. 진짜 웃으시던데,, 저 바보는 아니에요ㅠ 용암에 빠지거나 세계 밖으로 떨어지거나 뒤로 가거나 다음 맵으로 통과 4가지 버튼이 랜덤으로 배정되어 있는데, 이 부분 재밌어 하셨다ㅎㅎ

체감형 AR 디자인 - 최종

GitHub 링크 onenewkong/ARFPSGame: 3-1 체감형AR디자인 과제물 (github.com) GitHub - onenewkong/ARFPSGame: 3-1 체감형AR디자인 과제물 3-1 체감형AR디자인 과제물. Contribute to onenewkong/ARFPSGame development by creating an account on GitHub. github.com 마감 날짜가 다가왔다..!! 많이 아쉽고 부족하지만, 좋은 경험이었다. AR은 처음이었고, 처음 시작할 땐 걱정이 더 많았지만 해보니 재밌다. 가장 신경 썼던건 오브젝트 풀링과 충돌 처리였고, 막판에 UI와 애니메이터, destroy 시 몬스터 죽은 위치에 blood Prefab 두는거 등등 추가하면서 평소에 잘 안건..