일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 언리얼 5
- URP
- 구글 컨퍼런스
- 작계훈련
- 스즈메의 문단속
- 이득우의 언리얼 프로그래밍 1
- 448일선
- 2023 게이밍
- 산토리 하이볼
- 리팩터링 4장
- unity
- shader
- 전주비빔 라이스 버거
- 언리얼5
- 112일선
- 리팩터링
- GenAI
- 공부
- 상계9동
- 이득우의 언리얼 프로그래밍1
- 224일선
- 2023 게이밍 인 구글 클라우드
- 1일차
- 리팩터링 3장
- 스포일러 주의
- 2023 Gaming
- JavaScript
- 2023 구글 클라우드
- 주식
- 주식단테
- Today
- Total
목록전체 글 (78)
개발 이야기 안하는 개발자
1. C++ 기초 import ; int main() { std::cout
월드 - 게임 컨텐츠를 담기 위해 제공되는 가상의 공간 - 공간(Transform), 진행(Tick), 시간(Time), 환경 설정(WorldSetting), 구성요소(Actor) 등을 담고있음. 게임 모드 - 게임 규칙을 지정하고 게임을 판정하는 최고 관리자 액터 - 멀티게임에선 판정을 처리하고, 게임 데이터를 검증하기도 한다. (로그인) - 하나의 게임모드만 존재한다. (각 Maps마다) 기믹 - 게임 진행을 위해 이벤트를 발생시키는 사물 액터이다. - 트리거나, 스폰을 활용하여 상호작용과 컨텐츠를 전개한다. 플레이어 - 게임 캐릭터와는 별개의 개념이다. 게임에 입장한 사용자 엑터이다. - 게임에 입장한 사용자와의 1대1 대응이 가능하고, 사용자의 상태 및 데이터를 관리한다. - 사용자의 입력을 1차..
직렬화 오브젝트나 연결된 오브젝트의 묶음을 바이트 스트림으로 변환하는 과정 복잡한 데이터를 일렬로 세우기 때문. 데이터 압축 , 암호화를 통해 데이터를 효율적이고 안전하게 보관할 수 있다. 파일경로 알아오기 (Saved 파일까지) const FString SaveDir = FPaths::Combine(FPlatformMisc::ProjectDir(), TEXT("Saved")); FArchive라고 하는 파일 경로 끝에 데이터를 담을 수 있다. struct FStudentData { FStudentData() {} FStudentData(int32 InOrder, const FString& InName) : Order(InOrder), Name(InName) {} friend FArchive& opera..
Unreal Container Library (UCL) 언리얼 엔진이 자체 제작해 제종하는 자료구조 라이브러 C++ STL은 표준이라 범용성이 넓고 호환성이 높다. 하지만 기능이 많아 컴파일 시간이 오래걸린다. UCL은 언리얼 전용이라 가볍고 게임 제작에 최적화 되어있다. TArray https://docs.unrealengine.com/5.1/ko/array-containers-in-unreal-engine/ vector와 비슷하며, 오브젝트를 순서대로 담아 효율적으로 관리하는 용도로 사용. 데이터가 순차적으로 모여있기 때문에 메모리를 효과적으로 사용할 수 있고 캐시 효율이 높다. 데이터의 접근이 빠르고, 고속으로 요소를 순회하는 것이 가능하다. 하지만, 중간요소에 추가나 삭제를 하게 되는 작업은 무겁..
UInterface 언리얼 Interface는 기존 C++와 다르게 설계되어 있다. 기본 클래스에 가까운 형태를 띄고 있다. Uinterface를 제작하면 2개의 클래스가 생성이 되는데, 이때 UINTERFACE라는 매크로를 받는 클래스는 타입정보를 관리하기 위해 언리얼 에디터가 제작한 클래스이다. 해당 클래스는 수정할 게 없다. 그 하단에 있는 클래스(접두사 I가 붙어있는 클래스_인터페이스)를 수정하면 된다. 언리얼이 사용하는 인터페이스는 정의가 가능하다. (기본 틀이 클래스이기 때문) virtual void DoLesson() { UE_LOG(LogTemp, Log, TEXT("수업에 입장을 합니다")); } 이를 상속받는 자식 클래스에서는 override한다. UCLASS() class UNREAL..
셋팅 언리얼 매크로할때 도움이 되는 툴 : https://vlasovstudio.com/visual-commander/ 언리얼 탭 자동줄맞춤 : https://github.com/hackalyze/ue4-vs-extensions 언리얼 작업을 진행하며 알아 둘 점 - 비주얼 스튜디오에서 수동으로 클래스 추가하지 말 것 - 헤더가 변경되면 에디터를 끄고 컴파일할것. (Ctrl + Shift + B) - 소스파일이 변경되면 라이브 코딩으로 컴파일할 것.(Ctrl + Alt + F11) - 에디터 없이 컴파일이 안된다면 Ctrl + F5로 빌드해서 에러나는지 확인해 볼 것. (언리얼 쪽에서 꼬인내용일 수 있음) 구글 코딩 스타일 : https://google.github.io/styleguide/cppguid..
안녕하세요! 반갑습니다~ 제가 2023년 6월 27일 화요일! 게이밍 온 구글 클라우드에 다녀왔습니다 다녀온 후기를 공유하려고 글 씁니다! 제가 열심히 적어봤거든요! 사진이랑 녹화는 안되기때문에 제가 뭐 이미지는 못올리지만 제가 보고 들은거 그리고 느낀거 기록용입니다~ 문제되면 삭제하겠습니다! 구글 일정~ https://cloudonair.withgoogle.com/events/korea-gaming-2023?mkt_tok=ODA4LUdKVy0zMTQAAAGMlDAe5wG_lLsFa36X6bX2hij7rklQqeyoKGprRWCDvm9NDLhe9_j1_pDRupucsfqa4Wb6-VYkmE-GmTuEVrDStzpktOjs0CgSrmOzsRGqCRy_20G6Pbw 2023 Gaming on Google C..
오케이 현생이 바빠서 못했지만 (귀찮고 힘들어서 지쳐서 늦었지만) 지금이라도 차근차근 해보자 가보자 일단 이 2일차는 말이죠 1일차에서 2일차로 넘어가는 새벽부터 시작해야합니다 (밤 12시 이후) 제가 1일차에 해외여행 체크카드를 들고갔는데 결제가 안되더라구요..? 그래서 그냥 길거리를 해매다가 여자친구가 한국에서 제 카드 문제를 해결해주었습니다! 문제는 뭐 카드 등록이 안되어 있다 그래서 (사실 이 카드가 제가 25살때 만들었던 카드고 한번도 안씀 ㅋ) 여자친구가 도와주었습니다! (스킵!) 그 기쁨으로 편의점 가서 음료수랑 라면 이랑 푸딩 이랑 엄청 샀습니다! 하하하 이제 일본 여행 재미있어질 예정! 이제 본격적으로 돈버는 직장인의 여행이 시작됩니다...후후 이름 모르구요 맛은 해산물 느낌..? 가쓰오..
리팩터링 12번째 장 - 상속 다루기 상속은 굉장히 유용하면서 동시에 오용하기 쉽다 보통 상속을 사용하는 경우는 여러개의 비슷한 기능을 하는 클래스들을 묶는 것에 사용하는데 그렇기 때문에 해당 리팩터링은 하나이상의 클래스들을 정리하는데에 사용된다. 1. 메서드 올리기 왼쪽은 원래 기본 코드 코드를 보면 같은 부모이고 AFunc() 같은 내용의 메소드를 쓰고있다. 이를 오른쪽 처럼 부모에 메서드를 올리면 된다. 1) 똑같은 기능의 메서드인가? -> 실질적 일이 같은데 코드가 다르면 코드가 똑같아질때 까지 리팩터링 해야한다. 2) 참조하는 다른 필드들은 부모클래스로 올릴수 있는지 확인해본다. 3) 메서드이름이 다르면 이름부터 바꾸고 부모클래스로 올린다. 2. 필드 올리기 메서드 올리는 방식과 비슷하다. 1)..
오케이 오늘도 가보자 책에서 계속 말하는 리팩터링은 반드시 테스트가 동반되어야 한다고 이야기 한다. 리팩터링은 코드를 읽기 쉽게 하는 기법으로 코드의 버그를 해결하는 시간이 아니다. 즉, 리팩터링 하기 전에 생겼던 문제들은 리팩터링 하고 난 뒤에도 생겨야 한다. 이번 장에서 말하는 테스트 구축하기는 이런 내용들을 모두 포함해서 리팩터링하고 난 다음에도 같은 테스트 결과가 나오도록 확인해야 한다라는 결론을 포함한다. (어쨌든 코드가 수정된거니까 이걸로 버그가 생길수도?!) 두등탁 책에선 모카라는 프레임워크를 사용했는데 Unity는 그런거 없으니까..? 4장까지 공부하면서 리팩터링에서 가장 중요한 건 함수 추출하기 인것같다. 어쨌든 리팩터링은 잘 알아보기 쉽도록 만드는 과정이고, 가장 쉬운건 기능단위로 쪼개..
리팩터링할 시점은 냄새날때 이다. 냄새란? 그냥 딱 봐도 이게 뭐야...? 하는 그 순간이 바로 냄새인가 보다. 근데 여기서 말하는 냄새라는게 그냥 경험이 좀 필요해 보인다. 쓰일 리팩터링이 필요할 때는 서술하지 않을 예정이고, 냄새가 난다라는 표현도 모호한게 요즘에선 리팩터링이 필요하다라는 생각은 경험이 좀 필요해 보인다. 오케이 들어가보자 1. 기이한 이름 알아보기 어려운 이름? 딱 봤을때 무슨 기능인지 모르겠는 이름? -1. 함수 선언 바꾸기 -2. 변수 이름 바꾸기 -3. 필드 이름 바꾸기 2. 중복 코드 겹치는 코드들은 하나의 함수로 만들어서 여러군대에서 호출하거나 상속받으면 부모에게 줘버리자. -1. 함수 추출하기 -2. 문장 슬라이드하기 -3. 메서드 올리기 3. 긴 함수 함수 자체가 너무 ..
일본여행 다녀왔습니다! 오사카 5박6일 이구요 정보 교환할껀 딱히 없고 그냥 기록용입니다! 자랑용입니다! 간사이 공항 내려서 2층 올라가서 공항 나가면 앞에서 기차역 있습니다! 거기서 파랑 JR 뭐라하지 그냥 뭐 안내데스크 같은 곳에 들어가면 오사카역 가는 티켓 싸게 준데요! 몰라서 그냥 저기 기계에서 대충 뽑아서 비싸게 샀습니다! 숙소까지 생각보다 멀어서 길좀 헤맸습니다 ㅎㅎ 이즈모 루쿠아 라는 곳을 갔습니다 장어 덮밥집이구요 덮밥인가..? 뭐 점보인가 밥 엄청 많습니다 제가 저거 좌측상단 장어 계란 들어간거 먹었는데 밥을 하프 아니면 풀 고르라고 하는데 전 하프 골랐거든요? 진짜 엄청 많습니다. 왠만큼 많이 드시는 분 아니시면 하프 드세요 진짜. 다음 맛집 못갑니다 ㅋㅋ (본인 현재 키 181에 95..