분류 전체보기
-
[ProudNet] 살펴보기 : 연결 수립 (Simple example)기타 2024. 1. 31. 10:01
이번 글은 프라우드넷에서 제공하는 가이드의 Simple 프로젝트를 사용합니다. ProudNet Documentation : Simple 예제 만들기 이번 글에서는 프라우드넷의 Simple 프로젝트를 구현하는 과정에서 발생한 이슈 몇 가지와, 프라우드넷에서 서버 - 클라이언트 간 통신을 하는 기본적인 방법을 살펴보도록 하겠습니다. 이번 글에서 사용된 Visual Studio는 2022(V143)입니다. 1. PIDL 생성 오류 더보기 Common프로젝트의 PIDL.exe를 이용하여 proxy, stub, common 파일을 생성하는 데 문제가 발생할 수 있습니다. 이는 프라우드넷의 설치 경로의 문제일 수 있습니다. 프라우드넷이 Program files 폴더에 있을 경우 권한이 부족할 수 있으니 다른 경로로..
-
[WinAPI] 메시지 루프에 대한 간단한 고찰C++/C++ 자문자답 2024. 1. 25. 20:01
DirectX에 대한 공부 이전에, WinAPI에 대한 학습이 부족했습니다. 이에 몇 가지 공부했습니다. Q1. WinAPI의 메시지 루프 A1. Windows 응용 프로그램은 사용자의 입력, OS의 이벤트를 메시지 큐에 저장합니다. 저장된 메시지 루프는 GetMessage, TranslateMessage, DispatchMessage등의 함수에 의해 확인, 수정, 전달될 수 있습니다. Q2. 메시지 루프는 비동기인가? A2. 메시지 루프에 여러 스레드를 접근시켜 성능을 향상시킬 수 있는지에 대한 의문이었습니다. 메시지 루프가 비동기인지는 아직 확실하지 않지만, 이에 대한 글을 볼 수 있었습니다. Why does the win32 message loop stop working when threaded? ..
-
[Win32] Windows application 만들기C++/미분류 2024. 1. 25. 19:35
Win32 API(이하 WinAPI)는 C++에서 GUI개발을 위해 사용되는 대표적인 라이브러리 중 하나입니다. 이번 글에서는 WinAPI를 이용해 간단한 Window하나를 만들어보도록 하겠습니다. 이번 글에서는 Visual Studio 2022 (v143)를 사용합니다. 1. 프로젝트 생성 및 초기설정 더보기 위와 같이 새 프로젝트를 생성합니다. 이후, Visual Studio창에서 Alt + Enter 혹은 위와 같이 Project 우클릭으로 Property Page로 들어갑니다. Property Page 의 Linker-System에서 SubSystem을 Windows로 변경합니다. 이는 exe파일의 진입점을 명시하는 작업입니다. (Console과 Windows는 main함수에 차이가 있습니다.) ..
-
[ProudNet] libssl-1_1-x64.dll, libcrypto-1_1-x64.dll 오류기타 2023. 11. 29. 15:01
프라우드넷 예제 도중 오류가 발생했습니다. 대상 예제는 프라우드넷에서 제공되고 있습니다. ProudNet Documentation : Simple 예제 만들기 예제를 따라 Server 프로젝트를 작성할 경우, 빌드만 되고 위와 같이 실행이 되지 않을 수 있습니다. 이 경우, 위와 같은 오류 메시지가 출력됩니다. 이는 프라우드넷의 버전이 업데이트 되면서 생긴 이슈로, 업데이트 로그에도 명시되어 있습니다. 수정된 기능 - 하위 호환성을 유지하지 않는 수정사항 이제부터 윈도우에서 서버모듈(dll&lib 모두)을 사용하시려면, OpenSSL의 libssl.dll과 libcrypto.dll을 서버모듈과 같은 경로에 두셔야 됩니다. (다운로드 링크 1 : https://kb.firedaemon.com/support..
-
[Gatsby] Gatsby template기타 2023. 11. 8. 16:14
이전 글 (Gatsby start)을 통해 개츠비 프로젝트를 생성하는 방법을 살펴보았습니다. 이번 글에서는 이전 글에서 사용된 템플릿 이외에, 여러 상황에 맞는 템플릿을 적용하는 방법을 살펴보도록 하겠습니다. 1. Gatsby starter library 더보기 개츠비에서 기본적으로 제공하는 템플릿입니다. Gatsby Start Library 여러가지 템플릿이 기본적으로 제공되는 것을 볼 수 있습니다. 관심이 있는 템플릿을 눌러보면, 해당 프로젝트를 생성하는 cli 명령어도 확인할 수 있습니다. 2. Jamstack Themes 더보기 Jamstack Themes는 여러 프레임워크의, 여러 웹 페이지 템플릿을 공유하는 플랫폼입니다. Jamstack Themes 여러 프레임워크에 대한 테마를 찾아볼 수 있..
-
[Algorithm] BFS 격자 탐색 (dx, dy + dz)기타 2023. 10. 16. 00:51
BFS는 그래프 탐색에 자주 사용되는 알고리즘입니다. 기본적인 BFS는 인접 행렬, 인접 리스트 등 노드와 노드 사이의 연결 관계를 나타낸 그래프를 Queue를 이용하여 탐색합니다. 이번 글에서는 주어진 데이터가 인접 행렬, 인접 리스트가 아닌 경우의 예시를 살펴보도록 하겠습니다. 1. 입력 데이터 및 조건 더보기 주어지는 데이터의 예시는 다음과 같습니다. // pseudo code int arr[][] = { 0, 1, 1, 0, 1, 1, 0, 1, 1 ,1, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0 }; 위와 유사한 2차원 배열이 주어집니다. 주어진 배열의 노드 (X, Y)에 연결된 노드는 다음과 같습니다. (X+1, Y) (X-1, Y) (X, Y+1) (X,..
-
[Unreal Engine] LuaMachine : 함수 중복 사용하기 (LuaComponent)Unreal Engine 5._ 2023. 10. 6. 15:30
지난 글 (LuaMachine : Install & Hello World)에서 LuaMachine 플러그인에 대해 소개드렸습니다. 저는 이 플러그인을 모딩 기능을 구현하기 위해 사용했습니다. 제가 사용할 Lua 스크립트의 특징은 다음과 같습니다. 스크립트의 이름은 다음과 같은 형태를 합니다. Script.{ID}.lua ({ID}는 1000~9999까지의 자연수입니다.) 스크립트는 특정한 템플릿에 맞춰 작성되어야 합니다 두 번째 특징인 특정 템플릿의 예시는 다음과 같습니다. 더보기 function Start() end function Process() end function Finish() end 이름에서 알 수 있듯이, 게임의 특정 기능에 대하여 지정된 함수가 호출되는 형식입니다. 모더는 위 함수의 구..
-
[Unreal Engine] USaveGame templatizeUnreal Engine 5._ 2023. 10. 1. 19:26
지난 글(Save&Load)에서 USaveGame객체를 이용해 언리얼 엔진에서 제공하는 Save, Load기능을 사용하는 방법을 알아보았습니다. 이번 글은 지난 글에 이어, 해당 기능을 조금 간편하게 활용할 수 있는 방법을 고찰해보도록 하겠습니다. 지난 글에서 살펴 본 Save & Load의 특징 중 일부는 다음과 같습니다. USaveGame을 상속받은 객체의 값을 Save, Load합니다. 데이터에 대한 Mapping 수단으로 (해당 데이터를 찾는 방법으로) 문자열을 사용합니다. 문자열은 Save, Load함수에서 각각 독립적으로 입력됩니다. 위와 같은 특징을 생각해보았을 때, Save와 Load시 입력되는 문자열이 달라지거나, 다른 USaveGame객체를 사용하게 되는 등의 경우에 대하여 확장성이 부..