I can definitely understand that. It’s tricky, because a managed-side object that represents a UnityEngine.Object is almost entirely useless when the native-side object has been destroyed.
I do think it might have been better to have had a specific “IsAlive()” function from the beginning, however.
November 14, 2025 at 12:04 AM
I can definitely understand that. It’s tricky, because a managed-side object that represents a UnityEngine.Object is almost entirely useless when the native-side object has been destroyed.
I do think it might have been better to have had a specific “IsAlive()” function from the beginning, however.
this discovery only happened due to my own experimentation. the game does nothing to help figure this out. also “new” and “accolades available” are useful outside of the DLC so this solution kinda sucks.
November 13, 2025 at 11:41 PM
this discovery only happened due to my own experimentation. the game does nothing to help figure this out. also “new” and “accolades available” are useful outside of the DLC so this solution kinda sucks.
okay I figured it out. you have to open the map, open the filters menu, and hide “new”, “accolades available”, and “expeditions”. only THEN will the DLC not show on the map and the GPS won’t route you to them. also you have to make sure you don’t already have your GPS marker on a DLC map marker.
November 13, 2025 at 11:40 PM
okay I figured it out. you have to open the map, open the filters menu, and hide “new”, “accolades available”, and “expeditions”. only THEN will the DLC not show on the map and the GPS won’t route you to them. also you have to make sure you don’t already have your GPS marker on a DLC map marker.
Example: You use the in-game GPS to say “I want to race”. It routes you to the nearest one. If that race happens to be part of DLC you don’t own… the game doesn’t care. Maybe you don’t know you don’t own it and you attempt to begin the race. An unskippable trailer for the DLC begins playing.
November 13, 2025 at 4:40 AM
Example: You use the in-game GPS to say “I want to race”. It routes you to the nearest one. If that race happens to be part of DLC you don’t own… the game doesn’t care. Maybe you don’t know you don’t own it and you attempt to begin the race. An unskippable trailer for the DLC begins playing.
I'm really excited to finally get to the point to where I can make simple games, and serialization is another big step towards that. Next up is scene creation. Until next time!★
June 21, 2025 at 10:24 AM
I'm really excited to finally get to the point to where I can make simple games, and serialization is another big step towards that. Next up is scene creation. Until next time!★
Finally lots of architectural changes, leaning more on SDL3, and bug fixes (specifically for memory access patterns). I also integrated a basic assets system that allows for engine/editor/game asset separation and access (Suzanne and her shaders are currently engine assets).
That’s all for now!~★
May 30, 2025 at 6:53 PM
Finally lots of architectural changes, leaning more on SDL3, and bug fixes (specifically for memory access patterns). I also integrated a basic assets system that allows for engine/editor/game asset separation and access (Suzanne and her shaders are currently engine assets).
Proper MVP matrices are now setup used for rendering. The model matrix is properly derived from transform components. View and Projection from a camera component are next!
May 30, 2025 at 6:53 PM
Proper MVP matrices are now setup used for rendering. The model matrix is properly derived from transform components. View and Projection from a camera component are next!
Leaning way harder into ENTT. Suzanne is now an entity with mesh renderer and transform components. Systems dedicated to submitting meshes for rendering and this debug spinning from these gifs have been implemented.
May 30, 2025 at 6:53 PM
Leaning way harder into ENTT. Suzanne is now an entity with mesh renderer and transform components. Systems dedicated to submitting meshes for rendering and this debug spinning from these gifs have been implemented.
Mesh normals! This also comes with a separation of the CPU and GPU data for meshes. You interact with the CPU side and the GPU data is loaded and unloaded on demand as-needed, or manually. It’ll be very easy to do stuff like deleting the CPU data from memory while keeping the GPU data for rendering.
May 30, 2025 at 6:53 PM
Mesh normals! This also comes with a separation of the CPU and GPU data for meshes. You interact with the CPU side and the GPU data is loaded and unloaded on demand as-needed, or manually. It’ll be very easy to do stuff like deleting the CPU data from memory while keeping the GPU data for rendering.
Here's where I'm at now. I've got a proper MVP matrix setup, wrapped the render data for the mesh into a dedicated class that doesn't require recreation from the source asset every frame. I'm now able to manipulate the "camera" via the view matrix and the model with the model matrix.
May 27, 2025 at 11:23 PM
Here's where I'm at now. I've got a proper MVP matrix setup, wrapped the render data for the mesh into a dedicated class that doesn't require recreation from the source asset every frame. I'm now able to manipulate the "camera" via the view matrix and the model with the model matrix.
Got vertex colors working, added a wireframe mode toggle, and started rendering with indices. At this point I'm still recreating all of the render data manually every frame and rotating the verts on the CPU. Also remembered to actually enable depth testing.
May 27, 2025 at 11:23 PM
Got vertex colors working, added a wireframe mode toggle, and started rendering with indices. At this point I'm still recreating all of the render data manually every frame and rotating the verts on the CPU. Also remembered to actually enable depth testing.
Not the very first thing I rendered, but the first rendered mesh loaded from disk is this... poorly executed Suzanne. I was only giving OpenGL verts, no indices. If you do that, you need to provide duplicate verts to form proper triangles. I wasn't doing that, hence the broken result.
May 27, 2025 at 11:23 PM
Not the very first thing I rendered, but the first rendered mesh loaded from disk is this... poorly executed Suzanne. I was only giving OpenGL verts, no indices. If you do that, you need to provide duplicate verts to form proper triangles. I wasn't doing that, hence the broken result.