Posts per page:153045
Page 2 / 2
Gabriel Coates avatar

Gabriel Coates

@gabrielcoatesBattles: Game
Posted: Mar 2, 2026, 3:44 AM

256 chars

Managed to switch over to clang and it works well. I was successfully able to read a file using Raylib's file system functions and slap the data into my own struct using Glaze to read from my JSON config file (aka the buffer created by Raylib's functions).

Gabriel Coates avatar

Gabriel Coates

@gabrielcoatesBattles: Game
Posted: Mar 2, 2026, 3:26 AM

602 chars

One of the important things to get the playback system working is parsing JSON. I decided to go with Glaze since I have never used it before and I also heard its stupidly fast so I thought it would be interesting to get into. I came across an issue when trying to compile it. I'm not well versed in compilers or the issues that keep coming up but from what I see its something to do with some bugs that MSVC has that breaks compatibility with Glaze. I think I could downgrade what version of Glaze I am using to fix it but I am not happy with this solution. I'm thinking of going with clang-cl instead.

Gabriel Coates avatar

Gabriel Coates

@gabrielcoatesBattles: Game
Posted: Mar 2, 2026, 2:26 AM

1107 chars

Jumping has now been added to the player. I had gotten it to work initially but I noticed that it would only work half the time. I attach an "IsGrounded" tag component to the player whenever it is grounded. When tracking down the issue, I noticed that the component would stay removed when the player is grounded (which is desired) but when the player is supposed to be grounded it constantly adds and removes the component each tick. As it turns out, my grounded check was running inside the wrong tile loop for physics checking. It would be written to and then overwritten constantly because of the mixed input. After fixing that issue by moving th...

Gabriel Coates avatar

Gabriel Coates

@gabrielcoatesBattles: Game
Posted: Mar 2, 2026, 1:38 AM

455 chars

Managed to get my custom frame timing working. I'd say its a lot more elegant than what I was doing before. With Raylib doing half the work and my engine doing the other half, you had a lot of stuff piled up everywhere. Now that I have my own frame time controller, I can combine both rendering/frame time with tick time. Technically, you can separate the two. But I'd rather it be contained all in one spot.

Now to see if input polling works as expected.

Gabriel Coates avatar

Gabriel Coates

@gabrielcoatesBattles: Game
Posted: Mar 1, 2026, 11:41 PM

710 chars

I just started to implement jumping again since before the ECS migration I did have jumping. Typically, you'd just check if the jump button was pressed in the current frame and then apply your jump force and whatnot. However, my engine works a little differently and I didn't take into consideration that polling input events during the frame update loop instead of the simulation update loop causes a pretty big issue. At this point, I am fighting Raylib when I could just do my own frame management. Raylib does provide the methods for you but by default the library handles it. Since I am doing my own simulation tick, I'm thinking about rewriting...

Gabriel Coates avatar

Gabriel Coates

@gabrielcoatesBattles: Game
Posted: Feb 28, 2026, 3:12 AM

150 chars

Next thing to implement is jumping and add back block breaking/placing mechanics. I also want to dive into more debug/cheat components for the player.

Gabriel Coates avatar

Gabriel Coates

@gabrielcoatesBattles: Game
Posted: Feb 28, 2026, 3:07 AM

536 chars

I've just implemented gravity again but this time through the ECS. I can tell you that ever since switching to EnTT for my ECS system, it has been a breeze reimplementing stuff. ECS kind of forces you to decouple your systems. I used to hate the way that things were setup using an ECS. I tried many times to use Unity DOTS but I was just so used to the original Unity workflow of GameObjects and components that are also themselves systems. I think it helps a lot that its partially my own system/engine and EnTT is very simple to use.

Gabriel Coates avatar

Gabriel Coates

@gabrielcoatesBattles: Game
Posted: Feb 28, 2026, 2:14 AM

443 chars

Need to redo my movement system unfortunately. Before ECS, physics were handled within the player class. Velocity would be applied to the players position on the X axis first and then collisions on the Y axis would be checked. Then I would process the Y velocity into the players position and check the X axis for collisions. I can no longer do that because my movement code is separate from my physics code (meaning they need to be combined).

Gabriel Coates avatar

Gabriel Coates

@gabrielcoatesBattles: Game
Posted: Feb 28, 2026, 1:36 AM

585 chars

While I don't like the use of AI, it is very helpful when trying to come up with names (or renames) for files, classes, and directories. I'm very picky with the file names I create and I am never happy.

Currently using Claude to look over a couple of systems I wrote for Battles. Here is what Claude returned (before and after) for the systems that are used.

ApplyMovement => KinematicsSystem
PlayerInput => InputSystem
RenderEntities => RenderingSystem
UpdateBoundingBox => BoundingSystem

These names may seem simple, and they are, but I couldn't be bothered to name them properly myself.

Gabriel Coates avatar

Gabriel Coates

@gabrielcoatesBlog
Posted: Feb 28, 2026, 12:58 AM

451 chars

The site is finally setup and working decently I think. I added a few more admin features like archiving (soft deleting) posts and recovering them. There were some weird Next.js issues happening only in production but it seems I got them sorted out. There also seems to be some sort of issue with the time in the administrative panel. It's currently 7:58 PM and the panel is telling me its 12:58 AM the day after. Some sort of time zone thing I think.

Gabriel Coates avatar

Gabriel Coates

@gabrielcoatesBlog
Posted: Feb 27, 2026, 8:53 PMEdited: Mar 6, 2026, 2:26 PM

126 chars

This is the first test post of my mini-blog. Welcome! This post was also edited on Feb 27 4:28 PM to test the editing feature.

Posts per page:153045
Page 2 / 2