Karim Abdel Hamid's Avatar

Karim Abdel Hamid

@khamid.bsky.social

I'm a software engineer at @irongalaxystudios.com‬, and an open source developer on the Grindstone game engine independently. If you would like to volunteer or make games with Grindstone, feel free to reach out! https://karimio.github.io/grindstone/

13 Followers  |  11 Following  |  11 Posts  |  Joined: 16.12.2024  |  1.4857

Latest posts by khamid.bsky.social on Bluesky

I haven't been able to shut up about it for 2 years and it's impossible to get people to play it. I got one of my friend to and they loved it as well. It's some of the best storytelling and presentation in all of gaming imo

29.09.2025 06:48 — 👍 1    🔁 0    💬 1    📌 0

...which the editor can show within the material inspector, can be saved, and modified across materials. The new system is much more robust and easy to use. It took a while but I'm sure I'll be glad I have it in the long run! I hope to extract this system into its own open source library later on.

27.06.2025 00:19 — 👍 0    🔁 0    💬 0    📌 0

...rather than just shader code. Blending state, depth handling, culling, etc. These are defined in the same file as the rest of the shader so a technical artist can easily see all related aspects of a shader program at once. Finally, a shader provides several material resources and parameters...

27.06.2025 00:19 — 👍 1    🔁 0    💬 1    📌 0

In addition, shader composition is hard. Include files are useful but can be complex. That's why I introduced a shaderblock system where you can include specific snippets that will not be duplicated, but can be used across many different shaders. Next, a shader program requires additional info

27.06.2025 00:19 — 👍 0    🔁 0    💬 1    📌 0

Although initially it seems most of these shaders can be defined as a single common shader, that ignores cutoff/alpha tested shaders like leaves or fence wires, and ignores vertex displacement on shrubs that move in the wind. This is what the new system supports in the form of passes.

27.06.2025 00:19 — 👍 0    🔁 0    💬 1    📌 0

So earlier, I submitted the new shader system into Grindstone #gameengine. The new system is important because materials can't easily be defined by one shader. Surfaces have regular rendering, but also have shadows, depth prepasses, mouse clicks, and others. #game #programming #opensource

27.06.2025 00:19 — 👍 2    🔁 0    💬 1    📌 0

So I'm super excited it'll be done soon. I'll be able to build post-processing shaders much easier, and support custom effects per shader for things I couldn't before (shadows, outlines, mouse picking etc).

I'm hoping to merge this branch within a week or two!

04.06.2025 22:17 — 👍 0    🔁 0    💬 0    📌 0

This lets me build a system that can support multiple shader pipelines for a single material (ie: outline, custom shadows, transparent pass, and more), with different configurations (ie for different gpu capabilities), and hot reload any PipelineSet (as I call these files) easily.

04.06.2025 22:17 — 👍 0    🔁 0    💬 1    📌 0

For the past few months, I've been refactoring the shader system of the Grindstone #gameengine. I've been writing a meta programming languages similar to ShaderLab, hoping to contain all the necessary state information I need...
#opensource #gamedev #indiedev

04.06.2025 22:17 — 👍 10    🔁 3    💬 1    📌 0
A game engine editor screen, with a viewport in the middle. On the left, there is a scene hierarchy panel, with various objects that exist in the scene. On the bottom, there is an asset browser panel with icons for each asset. On the right side, there is an inspector panel, which allows editing each object. The scene in the viewport is the popular scene "Sponza", which in this image features stone floors and columns, plants in vases, vines, and blue and green curtains.

A game engine editor screen, with a viewport in the middle. On the left, there is a scene hierarchy panel, with various objects that exist in the scene. On the bottom, there is an asset browser panel with icons for each asset. On the right side, there is an inspector panel, which allows editing each object. The scene in the viewport is the popular scene "Sponza", which in this image features stone floors and columns, plants in vases, vines, and blue and green curtains.

Here's a screenshot of Grindstone #opensource #gameengine from a few months ago. It has a long way to go, but I'm still pretty proud of it so far! #indiedev #gamedev

04.06.2025 04:56 — 👍 10    🔁 3    💬 0    📌 0
Grindstone Game Engine Karim Abdel Hamid's blog, full of stories, dev logs, programming rants, and more.

Hello void! I'm Karim, and I'm a professional game developer. Here, I will mostly talk about my own open-source game engine, Grindstone, and probably in the future my own games.

karimio.github.io/grindstone/

04.06.2025 04:49 — 👍 3    🔁 0    💬 0    📌 0

@khamid is following 11 prominent accounts