본문 바로가기

게임엔진/크로스플랫폼 : HazelEngine

231101 자체 엔진 개발 : Json Serializer / Parser 개발 더보기
231021 자체 엔진 개발 : Project System 설계 각 프로젝트마다 별개의 Class 를 만든다.맨 처음 작업하고자 하는 Project 폴더를 선택하게 하기 ProjectContext 라는 Class 만들어서 Project 와 관련된 내용들 담기  Engine BuiltIn Resource 들 Editor 에서는 Editor Asset 형태로 import - 이때 Editor 에 DefaultResourceLoader 상속받아서 별도 세팅 - 그 다음 선택한 프로젝트 안에 있는 Resource 들 모두 import 하기 - Import 하자마자 Binary 형태로 캐시로 만들기 - 캐시의 경우 별도 Cache 폴더에 만들기 - 그 다음 해당 프로젝트 안에 있는 Scene 을 열기 - 이때, SceneSetting.json 이라는 파일도 저장해서 마지막 S.. 더보기
231015 자체 엔진 개발 : Engine, Editor 통합 AssetSystem 설계 Engine- AssetManagerBase - PackManager - EditorAssetManager AssetManagerBase 는 single ton 형태로 진행 - AssetManager::LoadAndInserAsset(); -> Load까지 하고, AssetManager 에 저장- AssetManager::LoadAsset(); -> File 로 부터 Load 만 하는 함수.- AssetManager::WriteCache(); -> Load 한 파일을 Cache 형태로 쓰는 함수 원래는 아래와 같은 Hierachy 구조로 가져가려고 했다.Engine- AssetManagerBase - PackManager - EditorAssetManager 그런데 그러다보면, 예를 들어, LoadAss.. 더보기
231010 자체 엔진 개발 : Editor Asset System 설계 Editor- EditorAsset -> Resource 를 가지고 있는 형태 - Resource 는 Object 상속, 모든 Resorce 의 Base Class- EditorAssetManager -> Editor 상에서 Import 된 모든 Asset 관리- EditorAssetProcessor -> 각 type 별 Asset 관련 기능을 수행하는 function class- FileID, Uuid ->FileId 는 path 기반, Uuid  는 랜덤 발급 고유 id => Object DB 들어가면 내용을 변경해야 할 수도 있다. 더보기
231004 자체 엔진 개발 : Child Process Multicast 구현 하기 https://www.youtube.com/watch?v=hG45hISou58 TCP / IP mutlcast 를 구현해보고자 했다.하나의 컴퓨터로 multicast 를 구현하는 상황이다. 기본적으로 Server 역할, 혹은 Sender 역할을 하는 Process 를 하나 만들고Child Process 로 , 여러 Receiver 들을 만들어보려고 했다. 1st 시도 : receiver 들에게 각각 같은 Port 할당해주기  Multicast 는 기본적으로 UDP 통신이다.이때 Receiver 쪽에 bind 함수를 실행해줘서어떤 Multicast Port 와 Multi Cast Address 에서 오는 데이터를 수신하는지를 세팅해줘야 한다. 그런데 그 결과, 하나의 Receiver 가 만들어졌다.추가 R.. 더보기
230901 자체 엔진 개발 : Scene Serializer Class 더보기
230825 자체 엔진 개발 : Native Scripting 내부적으로 OnUpdate 이런 함수들을 호출하게 하고 싶다.그런데  override 로 하고 싶지는 않다. virtual 함수를 호출하는 과정은 빠르지 않다.중간에 virtual table 을 뒤져서 해당 class 에서 override 된 함수를 찾는 일련의 과정을 거치기 때문이다. 더보기
230822 Hazel GameEngine : IMGUI + FrameBuffer 참고 : 모든 정리 내용들 모두 복습 노트에 정리해두기 1) 전체 Scene 을 Frame Buffer 에 그린다 그 Frame Buffer 를 Texture 로 변환한다. 그 Texture 를 가지고 Imgul:ImageView 를 이용하여 Render 한다. 2) 기본 framebuffer에 있는 렌더 buffer의 위에서 동작되었습니다. 기본 framebuffer는 여러분이 윈도우 창을 생성할 때 생성됩니다(GLFW가 자동으로 해줍니다). glBindFramebuffer(GL_FRAMEBUFFER, fbo); 해당 함수의 경우, 우리가 만든 FrameBuffer 를 Binding 시켜서 모든 렌더링 작업이 우리가 만든 FrameBuffer 에서 동작하게 하는 것이다. 다른 FrameBufer 에 렌.. 더보기