오늘은 AWS에서 온 메일을 처리한다고 제대로 집중못했다..... AWS 사건 전말 2018년에 고등학교를 다니면서, 공부 목적으로 AWS에 회원가입한 적이 있었다. 이리저리 튜토리얼을 따라하다가 어려워서 포기했는데, 만들어 놓은 서비스를 제대로 종료 안 시키고 중단만 시켜놔서 비용이 청구되고 있었다. 이게 1년만 무료였고, 그 뒤로 1달에 1달러씩 나가고 있었다. 많이 당황했다. 총 16개월로 16달러가 나갔는데, 환불 문의를 넣어서 다행히 돌려준다고 답변 받았다. 휴. 문의 답변이 엄청 빠르고 친절해서 좋았다. 이게 1달러가 아니었으면 어쩔 뻔 했나........... 정말 곤란한 순간이었다. 많은 cpp, header 파일 정리 요즘 언리얼에서는 public과 private 폴더로 나눈다고 한다. ..
전체 글
게임 개발 관련 게시글을 올립니다. 학습한 내용을 정리하면서 공부하는 게 편해서 블로그에 글을 적고 있습니다.프로그래밍에 대한 배경지식?들도 많이 설명을 해주신다. C/C++/C#/JAVA 언어에 대해서 C#, JAVA도 어차피 C로 구현되어있다. 이해가 쉽게 만든 것인데, 그 대신 속도가 좀 느려진다. 기계랑 가까울 수록 속도가 빠르기 때문에, C가 제일 빠르다. JAVA에서 JVM이 하는 일은 특정 운영체제를 타깃으로 하는 게 아니라, 다양한 운영체제를 지원한다. JVM을 누군가가 작성해줬기 때문에, JAVA를 C보다 편하게 쓸 수 있는 것이다. C#은 MS에서 MS.net을 만들었는데, Mono가 Ms에 맞서기 위해 개발되었다. 이후에 MS가 오픈소스화를 하면서 Mono의 개발을 양도받게 되었다. 유니티가 이 Mono를 쓰기 때문에, C#으로 개발한다. 방법론 애자일 주기적으로 끊임없이 프로토타입을 만들며..
1일차에서 윈도우 창을 띄우고, 2일차에서는 1일차를 복습하고. 3일차인 오늘은 DirectX를 사용해본다. 엔진의 루프 기초는 보통 이런 구조이다. 요즘 엔진은 이 구조에서 살이 엄청 붙어있어서 숨만 쉬어도 무거울 수 있다고 하셨다. while (true) { processinput(); // 플레이어 입력 처리 update(); // 데이터 변경 render(); // 그리기 } Visual Studio 주석 단축키 Ctrl+ k + C 주석달기 (Comment) Ctrl+ k + U 주석없애기 (UnComment) DirectX를 연결해보자. Shader를 작성하면서 C언어 코드를 사용하게 되는데, 이 때 필요한 것이 d3dcompiler 이다. 이렇게 링커로 바로 연결이 가능한 이유는 Visual..
라이브러리는 기능 모음이다. 확장자 dll, lib의 차이 .dll(Dynamic Link Library) 필요할 때마다 불러서 참조. 동적. 실제로 프로그램이 실행될 때 링크. 필요할 때만 메모리 쓰고, 아니면 해제. .lib(Static Link Library) 프로젝트 내에서 참조. 정적 컴파일 할 때 링크. 프로그램이 실행되면 메모리 차지. 끝나면 해제. 코딩용 폰트 내가 아는 거는 요거랑 JetBrains Mono: A free and open source typeface for developers Try JetBrains Mono in your IDE. Its simple forms and attention to every detail make coding a nice experience fo..
지금 기준으로는 DirectX 12 버전까지 나와있다. Direct3D 11과 Direct3D 12는 제공해주는 건 같은데, 12가 더 자유도가 높다. 11 버전을 마스터했을 때, 세부적인 것들을 건드리고 싶다면 12 버전을 건드리자. 최신 버전 중에 입문하기는 11 버전이 제일 좋은 것 같다. 9 버전은 좀 오래됨. DirectX 12 버전과 짝이 맞는 OpenGL 버전은 VulKan이다. 'DirectX 11을 이용한 3D 게임 프로그래밍 입문' 책을 기반으로 공부함. 여기 정리가 잘 되어있음. 공부할 때 참고. http://soen.kr/ 지금은 일단 창부터 띄워야 한다. DirectX는 그래픽 라이브러리고, 윈도우에서 창을 띄우는 것은 WinApi를 사용해야 한다. WinApi를 사용해서 창을 띄..
미로를 만들면서, Seed 값에 따른 미로를 생성하게 만들었다. 이 때, 랜덤스트림을 사용했다. 2021/02/10 - [게임 엔진/[Unreal] Engine] - 블루프린트 입문 3주차 자세한 내용은 여기있지만, 역시 눈으로 보는 것보단 사용해봐야 다음에 쓸 때도 생각나고 편하다. 랜덤 스트림 Random Stream 이란 무엇인가, 블루프린트에서 어떻게 사용되는가에 대한 설명입니다. docs.unrealengine.com 우선 랜덤 스트림 변수를 잡는다. Set Random Stream Seed로 Seed를 설정한다. (입력받아도 되고, 랜덤으로 해도 되고) 나는 이렇게 설정했다. isAuto가 True면, 랜덤 값으로 Seed 설정. isAuto가 False면, 입력받은 값으로 Seed 설정. 랜..
언리얼은 되게 어려워보이고 그랬는데, 다뤄보니까 유니티랑 비슷하다. 게임엔진의 기본은 다 비슷한 것 같다. 무엇을 배웠나 1. DFS 알고리즘을 이용한 미로 생성 2. Seed 값에 따른 랜덤 데이터 생성 같은 Seed 값이면 같은 미로 맵이 나온다. isAuto를 체크하면, Seed 값을 입력받지 않고 랜덤으로 받는다. 작업물 Seed 값을 UI로 입력받고, 미로를 생성하는 예제를 만들어보았다.
이 게시글은 움짤이 있습니다. 데이터가 많이 나갈 수도 있습니다. 렌더링까지 하는 법은 알았으니, 이제 다른 것도 살펴보자. 시퀀스 레코더 시퀀스 레코더를 사용하면, 게임 내에서 조작 가능한 캐릭터의 움직임 같은 것을 녹화할 수 있다. 영화같은 곳에서도 사용된다고 한다. 3인칭 프로젝트 템플릿을 받고, 시퀀스 레코더를 생성했다. 시퀀스 레코더로 캐릭터를 끌어다놓으면 추가된다. 녹화를 하면, 딜레이만큼 있다가 녹화가 시작된다. 시퀀스 레코더 탭에서 딜레이를 설정할 수 있다. 마음껏 움직이고 녹화했으면, 시퀀스로 저장된다. 저장되는 경로도 시퀀스 레코더 탭에서 설정 가능하다. 시퀀스를 열어보면, 저렇게 움직였던 것이 저장이 된다. 녹화된 카메라의 움직임을 보려면, 시퀀스에서 카메라 컷을 생성하고 바인딩한다...