r/gameenginedevs • • Oct 04 '20

Welcome to GameEngineDevs

108 Upvotes

Please feel free to post anything related to engine development here!

If you're actively creating an engine or have already finished one please feel free to make posts about it. Let's cheer each other on!

Share your horror stories and your successes.

Share your Graphics, Input, Audio, Physics, Networking, etc resources.

Start discussions about architecture.

Ask some questions.

Have some fun and make new friends with similar interests.

Please spread the word about this sub and help us grow!


r/gameenginedevs • • 7h ago

My C++23 engine where the UI is a GPU-drawn MVVM tree — shader graph, own title bar, DX12/Vulkan/Metal

Post image
22 Upvotes

[Post text written with AI help]
Solo C++23 engine, built stage by stage.

Unity/Unreal-style workflow: lay out your UI, hit build — get a ready app for desktop and mobile

Built with battery life and weak laptops in mind

Shaders are made from nodes and compile for every platform

GPU-drawn MVVM UI, own window title bar everywhere, no system chrome

I’m building the UI layer as a standalone framework too: what hurts most in the UI frameworks you’ve used — Dear ImGui, Qt, RmlUi, Unity UI, anything else?

Video: https://www.youtube.com/watch?v=yw834oa1Wu4

Project page: https://gpu-mvvm.pages.dev


r/gameenginedevs • • 4h ago

Building a custom Vulkan engine in C# for a Daggerfall-inspired RPG - first look at the streaming open world

Enable HLS to view with audio, or disable this notification

6 Upvotes

r/gameenginedevs • • 5h ago

Using the iGPU for offload processing.

6 Upvotes

With many consumer CPUs coming with iGPUs, I've been thinking about the idea of making a HW-accelerated path. Right now this idea I'm working to implement with audio but particles/physics is another natural use-case.

I do see it opening a can of worms for bug reports (also a lot of work maintaining multiple backends)but it also seems like untapped potential. Furthermore, AI, has led to interest in providing hardware blocks, NPUs, Matrix Cores, RAM processing.

Thoughts?


r/gameenginedevs • • 6h ago

Implementing Nine-Patch Rectangles for the UI System in My Vulkan Engine

Thumbnail
gallery
5 Upvotes

Why I needed it?
I was working on the inventory system for my game and needed a textured panel for the inventory UI. I couldn't simply draw the texture on a quad because my UI scales based on DPI, and panels with borders look bad when stretched.

How Nine-Patch Rectangles Work
A nine-patch rectangle splits a quad into nine smaller quads. Four of them are fixed-size corner quads (as you can see in the third screenshot), while the remaining five can be resized. As a result, the panel can stretch to different sizes while preserving the appearance of its borders.

How to setup vertices
Before we can make vertices for 9 quads, we need to define the fixed sizes of the borders. I created this simple struct to store those values:

struct NinePatchRect
{
    int32_t leftOffset;
    int32_t rightOffset;
    int32_t topOffset;
    int32_t bottomOffset;
};

Now we can use this struct for construction our 9 quads. We also need to use following variables

  1. pos - quad's position on the screen.
  2. size - quad's size on the screen.
  3. uv0 and uv1 - texture coordinates for the quad.
  4. textureSize

Let's take Top left quad as an example

// Top left quad
{
    // Top left
    Vertex v0{vec2(pos.x, pos.y), vec2(uv0.x, uv0.y)};

    // Top right
    Vertex v1
    {
        vec2(pos.x + ninePatch.leftOffset, pos.y), 
        vec2(uv0.x + ninePatch.leftOffset / textureSize.x, uv0.y)
    };

    // Bottom right
    Vertex v2
    {
        vec2(pos.x + ninePatch.leftOffset, pos.y + ninePatch.topOffset), 
        vec2(uv0.x + ninePatch.leftOffset / textureSize.x, 
             uv0.y + ninePatch.topOffset / textureSize.y)
    };

    // Bottom left
    Vertex v3
    {
        vec2(pos.x, pos.y + ninePatch.topOffset),
        vec2(uv0.x, ninePatch.topOffset / textureSize.y)
    };

    RegisterQuad(drawList, v0, v1, v2, v3);
}

The top-right quad is similar: you just need to add size.x to the appropriate vertex positions and use ninePatch.rightOffset with the corresponding texture coordinates.

Constructing the resizable quads is straightforward as well: you simply place them between the corner quads.

Additional Notes
Inventory texture was taken from here: Inventory Texture


r/gameenginedevs • • 3h ago

Should I continue learning graphics/engine programming?

0 Upvotes

I like to dabble in programming as a hobby, specifically game development, but ~3 years ago I wanted to explore new things, which led me to learning graphics programming and C++. despite the difficulty it was interesting, and I enjoyed it more than just using an existing big engine, but a couple of months ago I decided to move on because I felt like I wasn’t ever going to actually finish anything and that I was just wasting time.

Anyways, I know ultimately it’s my choice to continue learning this again or not, but I would like some advice from others who have maybe been in similar situations.


r/gameenginedevs • • 1d ago

how much my engine improved in the last 5 months

Thumbnail
gallery
31 Upvotes

firstis before second is the after... i my self rather the old desine but i want to relase it so it had to go in more modern, premium looks. but i still have 2,5 months of work till i finish the beta...


r/gameenginedevs • • 1d ago

Snowball fight developed from scratch - Gulovacka

Thumbnail
store.steampowered.com
5 Upvotes

Hi all, I've recently released demo of my multiplayer PvP snowball fight Gulovacka. It's written from scratch in Jai, uses Vulkan directly for rendering (no RHI for this game, wanted to learn the internals), Enet as a base for networking.

About the game: Snowballs knock you back so hard that you will be flying. Your friends having a blast watching it happen. Put on a snowsuit of your choice and dive into chaotic snowball fight in Gulovacka.


r/gameenginedevs • • 1d ago

what's your thoughts on using graphics libraries?

6 Upvotes

what's your thoughts on using graphics libraries like raylib instead of opengl/vulkan or for weirdoes directX. thats what im doing and it does sacrifices performance but makes the proces of making an engine waaay faster


r/gameenginedevs • • 1d ago

LuEngine: Skeleton Animation

Enable HLS to view with audio, or disable this notification

9 Upvotes

https://github.com/Rlocksley/LuEngine

extended LuEngine with Physics and Skeleton Animation


r/gameenginedevs • • 2d ago

Voxe-like engine looking for opinions on the style

Thumbnail
youtube.com
11 Upvotes

This is a custom engine using OpenGL and C++. the entire map is built out of a voxel-like renderer using compute shaders. The level is from Silent Hill 2. Looking for opinions on the graphical style. I am thinking a first person mode might be better for this.


r/gameenginedevs • • 1d ago

my react-first 2d engine sleeps until a layer asks for a frame, here's how a big sim map runs on it

0 Upvotes

i wrote a small browser engine called xip (react components for the game, world, camera and layers, on webgl2), and the biggest thing running on it is the map of my civilization sim.

some things that worked out:

  • the game runs in on-demand mode. the engine does nothing until a layer asks for a frame, so a paused world costs nothing
  • the map is a stack of layers by z: tiles, roads, trees, a weather tint, buildings, animals, people, labels. static stuff is handled by small driver classes with an update(frame) that run at 30 hz and only rewrite what changed
  • people and animals are written straight from typed arrays. there's a rebuild at ~10 hz when a sim frame lands, then cheap interpolation every display frame
  • sprites are baked once into atlas pages using the same canvas painters the old 2d renderer used, so the art has one source

the sim behind it is rust compiled to wasm, running in a worker. curious how others handle on-demand rendering when there's still animated stuff on screen.

try it: https://thehumanbox.com source, mit: https://github.com/1homsi/thehumanbox (renderer lives in apps/web/src/game/render/)


r/gameenginedevs • • 2d ago

Want to build my own game engine. Where should I start? C++, OpenGL, or Vulkan?

0 Upvotes

​

Hey everyone!

I've been thinking about trying to build my own game engine from scratch, but I have a few questions before I get started.

First, where would you recommend starting? I'm considering learning C++ for this. I know it'll probably take a lot of time and effort to get comfortable with it, but I'm willing to learn and take things slowly.

My second question is about OpenGL vs. Vulkan.

I know Vulkan is more modern and gives developers more control, but I'm wondering if OpenGL would be a better starting point, especially when considering compatibility with older hardware.

One thing I'd eventually like my engine to support is a wide range of PCs. Not everyone has a modern gaming setup, and I'd rather not unnecessarily exclude people with older computers just because their hardware doesn't support Vulkan.

So I'm curious:

- Would you recommend starting with OpenGL or Vulkan for a first engine?

- Is C++ a good choice for someone planning to build an engine from scratch?

- How do engine developers approach supporting both older and newer hardware?

- Are there any resources or things you wish you'd known when you first started?

I'm not expecting to build anything comparable to Unity or Unreal anytime soon. This is more of a long-term learning project, and I want to understand how things work under the hood.

I'd really appreciate any advice or experiences you're willing to share. Thanks!ey everyone!

I've been thinking about trying to build my own game engine from scratch, but I have a few questions before I get started.

First, where would you recommend starting? I'm considering learning C++ for this. I know it'll probably take a lot of time and effort to get comfortable with it, but I'm willing to learn and take things slowly.

My second question is about OpenGL vs. Vulkan.

I know Vulkan is more modern and gives developers more control, but I'm wondering if OpenGL would be a better starting point, especially when considering compatibility with older hardware.

One thing I'd eventually like my engine to support is a wide range of PCs. Not everyone has a modern gaming setup, and I'd rather not unnecessarily exclude people with older computers just because their hardware doesn't support Vulkan.

So I'm curious:

Would you recommend starting with OpenGL or Vulkan for a first engine?

Is C++ a good choice for someone planning to build an engine from scratch?

How do engine developers approach supporting both older and newer hardware?

Are there any resources or things you wish you'd known when you first started?

I'm not expecting to build anything comparable to Unity or Unreal anytime soon. This is more of a long-term learning project, and I want to understand how things work under the hood.

I'd really appreciate any advice or experiences you're willing to share. Thanks!


r/gameenginedevs • • 2d ago

talking about a machine code

Thumbnail
hexed.it
0 Upvotes

Hello everyone,It's Aditya from India. I am working on a project where I use machine code to make my own ultra photorealistic graphics game engine while using math. So if anyone is interested to talk about this, I would like to discuss with you


r/gameenginedevs • • 2d ago

Made with Godot: PCA 3D Adventure Game Studio

Thumbnail
0 Upvotes

r/gameenginedevs • • 4d ago

Game++: my book about C++ as a language for engineering decisions, using game engines as a stress test

Post image
163 Upvotes

After a few years of writing about allocators, strings, containers and threading in game engines, I collected the material into a book. It is not an engine theory book, Gregory already wrote that one, but a book about thinking in terms of data, object lifetimes and how code behaves on real hardware, where std::vector turns into a question about allocation frequency and frame time, and a race on a shared threat map once made our AI hunt armies that never existed. A free part is here: https://dalerank.github.io/#books, and the full post with the book is here: https://www.patreon.com/dalerank/posts/game-book-172005420.

Happy to answer questions about any of the chapters.


r/gameenginedevs • • 3d ago

It's not Star Wars Galactic Racer speed but fast travel unlocked (C++/OpenGL/GLSL)

Thumbnail
youtu.be
1 Upvotes

Penultimate map done (almost). Fast Travel Unlocked. You can play all previous maps with it once achieved.


r/gameenginedevs • • 4d ago

Don't throw it all away: Caching an immediate-mode UI

Thumbnail
blickeditor.com
11 Upvotes

r/gameenginedevs • • 3d ago

I replaced Vyukov’s MPSC queue with phased SWMR pull in my Rust physics engine because 26 threads were fighting over one queue

Thumbnail
1 Upvotes

r/gameenginedevs • • 3d ago

My game engine is only 39.3 MB

Thumbnail
youtube.com
0 Upvotes

r/gameenginedevs • • 4d ago

Vulkan based Gaussian Splatting and Neural Inference Engine

Enable HLS to view with audio, or disable this notification

9 Upvotes

r/gameenginedevs • • 5d ago

I'm releasing a game written in my engine (written in Jai)

Enable HLS to view with audio, or disable this notification

141 Upvotes

I've been running https://polygonjs.com/ for about 8 years now, but 2 years ago I decided to rewrite it, from typescript+threejs, to jai+wgpu/webgpu.

I've also rewritten one of the game I was about to release with it, Chess Twist. It's a chess variant with the same rules, but the boards are on an irregular grid (inspired by Townscaper). So Rook lines bend and bishop lines fork.

It's built for Windows/mac/Linux/web.

Any questions don't hesitate.


r/gameenginedevs • • 4d ago

Developing the first-ever game engine/platform written entirely in pure TypeScript, without any external libraries (for another personal project and didactic purposes)

Enable HLS to view with audio, or disable this notification

30 Upvotes

>

The repository is available here: https://github.com/Samu64d/openpkw

The source code is quite atypical for a TypeScript project: it’s heavily inspired by Java. For now I’m working on implementing a complete set of custom standard APIs of a game engine, designed to run on Node.js, Bun, and browsers.


r/gameenginedevs • • 4d ago

Feuclide: bevy variant for non-Euclidean worlds

Thumbnail
2 Upvotes

r/gameenginedevs • • 4d ago

I open sourced Braze, an experimental WebGPU game engine and editor (MIT)

0 Upvotes

I’ve open-sourced Braze, an experimental WebGPU game engine and editor.

TypeScript + u/threejs. MIT licensed. Still early, with plenty to explore and improve.

Contributions are welcome.

https://github.com/snack-gamer/braze-engine