· Portfolio
https://youtu.be/2MPlEhzdaec 제작 기간 12주 개발 환경 언리얼4 장르 액션 RPG email yeonjindo98@gmail.com
· DirectX
지금까지는 공간의 x, y좌표만 활용하여 2D공간처럼 만든 뒤 다양한 도형들을 띄워보는 작업을 했다 이제는 그 도형을 아주 많이 만들어서 Grid를 만들고, z좌표까지 활용하여 기본이 되는 바닥을 Grid 모양으로 짜고 카메라를 만들어 움직여보자 Gird - Wireframe 먼저 이전에도 했던 Wireframe Mode로 한 칸을 만들어보자 Vertex 4개를 잡아주고, Index는 6개를 잡아준 뒤 삼각형 두개를 그리기 순서에 맞춰 그려주면 된다 indices[0] = 0; indices[1] = 1; indices[2] = 2; indices[3] = 2; indices[4] = 1; indices[5] = 3; 그럼 다음으로 이 한 칸을 3 * 3으로 만들어보자 총 9개의 작은 사각형, 18개의 ..
· Unreal4 C++
공격하는 Enemy AI의 수를 제한해보자 Enemy AI 를 만들었는데 Enemy가 10명이면 거리조건이 충족되는 모든 Enemy들이 나에게 달려들어서 공격을 하기 시작한다 근데 한 번에 10명이 달라붙어서 공격하면 나는 그냥 도망가거나 당하고 있는 수밖에 없다 ㅠㅠ 그래서 나를 공격하는 적의 수를 제한해보았다 Instance Synced란 언리얼 엔진 문서에 따르면 값을 동기화시키는 것을 말하는데 이 기능을 사용해보았다 Instance Synced는 같은 블랙보드를 사용하는 AI끼리 값을 공유하는 것을 말한다 언제 주로 사용하냐면 FPS게임에서 적 하나가 나를 발견했다고 가정한다 그리고 해당하는 적이 포함된 팀에게 나의 위치를 알려주고 곳곳에 퍼져있던 적 팀들이 나를 공격하게 만들고 싶을 때 이 In..
· > CS
Vector접근성이 좋다임의 접근이 가능하다중간 삽입/삭제는 리소스의 낭비가 발생한다 임의 접근이 가능하다는 뜻은 vector v; 가 있을 때  v[3]으로 접근이 가능하다는 뜻이다   List주소값으로 연결되어있다중간 삽입/삭제가 용이하다순차 접근만 가능하다 (임의 접근 불가능)   -> Sort()로 정렬 불가능  Map레드 블랙 트리로 되어있고, 시간복잡도는 logN자료들이 자동으로 정렬되어 저장된다검색이 용이하다Key-Value로 이루어져있다빈번한 삽입/삭제는 부적합하다중복키 사용 불가능하다  Unordered_map / Hash map 자동으로 정렬되지 않는다Map보다 검색 속도가 빠르다Key값이 길고 복잡하거나 유사한 값이 많은 경우 해시 충돌이 발생할 수 있다  SetKey만 저장한다중복키..
2022 KAKAO BLIND RECRUITMENT   문제가 길다간단히 하면fees라는 배열에 기본시간, 기본요금, 단위시간, 단위요금이 int로 주어지고records라는 배열에 입력된 시간, 차량 번호, 입차/출차 가 string으로 주어진다 이를 통해서 차량의 총 누적 시간에 따른 주차요금을 계산하여 배열로 반환하면 되는 문제 #include #include #include #include #include using namespace std;int Calculate(int bT, int bF, int pT, int pTF, int tT){ int fee = 0; //요금계산 if (tT bT) //기본시간 초과 { fee += bF; tT -= bT; fee += tT / pT * pTF; ..
플러그인을 사용해서 메시를 저장하고 불러오는 것을 구현해보자 먼저 Static Mesh를 클릭했을 때 등장하는 디테일창에Mesh에 관련된 버튼을 만들어본다       월드에 카메라가 있다C++클래스로 Actor 하나를 생성해주고 블루프린트를 생성하여 카메라 메시를 입혀주었다   액터를 클릭하면 디테일창이 뜬다이 디테일창에 나만의 카테고리를 추가하고필요한 기능들을 프로퍼티에 추가해보는 작업을 할 예정이다            먼저 플러그인 모듈 쪽에 Property Editor를 등록해준다 IDetailCustomization을 상속받는 클래스 FStaticMesh_Detail에IDetailCategoryBuilder& mesh = DetailBuilder.EditCategory("Mesh");  Mesh라..
· Unreal4 C++
공격하는 Enemy AI의 수를 제한해보자 Enemy AI 를 만들었는데 Enemy가 10명이면 거리조건이 충족되는 모든 Enemy들이 나에게 달려들어서 공격을 하기 시작한다 근데 한 번에 10명이 달라붙어서 공격하면 나는 그냥 도망가거나 당하고 있는 수밖에 없다 ㅠㅠ 그래서 나를 공격하는 적의 수를 제한해보았다 Instance Synced란 언리얼 엔진 문서에 따르면 값을 동기화시키는 것을 말하는데 이 기능을 사용해보았다 Instance Synced는 같은 블랙보드를 사용하는 AI끼리 값을 공유하는 것을 말한다 언제 주로 사용하냐면 FPS게임에서 적 하나가 나를 발견했다고 가정한다 그리고 해당하는 적이 포함된 팀에게 나의 위치를 알려주고 곳곳에 퍼져있던 적 팀들이 나를 공격하게 만들고 싶을 때 이 In..
· Unreal4 C++
베지에 곡선을 사용해보았다 보통 화살의 궤적을 그릴 때 자연스러움을 위해서 많이 사용하는 것 같았다 나는 보스의 스킬을 만드는데 베지에 곡선을 사용했다 보스 스킬 중에 광범위 공격으로 해당 범위 내의 무작위 지점에 불덩이를 날리는 것이다 그 불덩이의 궤적을 베지에 곡선을 사용해서 구현했다 먼저 베지에 곡선에 대해서 공부할 필요가 있다 베지에 곡선 (Bezier Curve) 일단 곡선을 그리는 공식인데 매개 변수에 따라 그려지는 곡선이다 주어지는 특정한 점에 따라서 곡선이 그려지는 것이다 그래서 게임 프로그래밍에서는 원하는 궤적을 따라 물체를 움직이고 싶을 때 많이 사용된다 시작점과 끝점을 제외하고 주어지는 점의 개수에 따라서 n+1차 베지에 곡선이 된다 공식 몇 가지 나올건데 이 공식에서 t 는 시간 (..
· > CS
캐시메모리(Cache Memory) 캐시 CPU와 주기억장치의 속도차이에 따른 성능 저하를 줄이기 위해 임시로 지역성을 만들어서 저장해두는것테이블 형태로 캐시 라인에 적재   블럭(Block) 캐시와 메모리 간의 데이터 교환 단위 Block이 클수록 지역성이 늘어난다    Mapping Function 어떤 주기억장치 블록들이 어느 캐시 라인을 공유할 것인지 결정하는 법 ( 어느 정보를 캐시에 넣을지 선택하는 것 ) 직접 사상캐시 라인의 위에서부터 차곡차곡 넣는 것 완전-연관 사상임의의 캐시 라인에 적재하는 것 세트(집합)-연관 사상직접 사상도 가능, 완전-연관 사상도 가능   Replace Algorithm 캐시가 꽉 찼을때 어떤 블록을 지울 것인지 RandomFIFO ( First In First O..
· > CS
IPC (Inter Process Communication)프로세스들끼리 통신하는 기술  병렬 처리 병행성 (Concurrency)하나의 코어로 여러 프로세스를 처리 (1 코어 n 스레드)한 순간에 한 개의 프로그램만 처리문제점 : 프로세스 동기화해결방안 : 세마포어, 모니터(세마포어를 관찰하기 위한 알고리즘)  병렬성 (Parallelism)복수 프로세서로 여러 개 또는 한 프로그램의 분할된 부분을 동시에 처리한 순간에 두 개 이상의 프로그램 처리 여러 코어로 하나의 프로그램을 처리 (n 코어 n 스레드)멀티 스레드문제점 : 프로세서 동기화해결 방안 : 버스락, 스핀락, 베리어         메모리 공유 방식 - Flynn의 분류  SISD (Single Instruction Single Data)하나..
· > CS
컴퓨터 시스템 구성 요소 하드웨어컴퓨터 정보들의 전송 통로(BUS)를 제공하고, 그 정보에 대한 처리가 실제 일어나게 해주는 물리적인 실체 소프트웨어정보들이 이동하는 방향과 정보 처리의 종류를 지정해주고, 그러한 동작들을 순서대로 배치하는 명령(command)들의 집합    컴퓨터 하드웨어 CPU (Central Processing Unit)중앙 처리 장치기억장치 - 주기억장치 (Ram, Rom), 보조기억장치(디스크)입출력장치 Ram (Radom Access Memory)어느 주소든 직접접근 가능, Ram의 크기는 CPU에 의존 코드 영역, 데이터 공용 영역, 상위 메모리(heap), 하위메모리(stack)   Rom (Read Only Memory)  CPU - Register, Decorder, A..
연Gennie
Do 겜프