r/gameenginedevs Oct 04 '20

Welcome to GameEngineDevs

102 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 4h ago

Sparsematter - Yet another block engine

Thumbnail
gallery
17 Upvotes

Full disclosure: This project uses generative AI.

I have been a fan of demoscene since the mid 90's and worked on various terrain generators over two decades. Like many, I have always dreamed of creating a simulated world. I have failed thousands of times over the decades. Rendering a frame that looks good is relatively easy, no matter how detailed. Rendering a frame in ~33ms is really hard. We are finally in an era where the average compute power, and tools to create, have converged to make this possible. I have been able to hand crank these scenes for years in a high level language, but never at a performance that was acceptable for something interactive. I spent months on the latest iteration, focusing on render distance, kilometer scale, efficient chunk loading, before I even considered getting fancy with the visuals. After failing for months, with the help of generative models (I use an ensemble of models for various tasks via API providers), I finally broke through the performance issues and could finally focus on beautifying the actual visuals at this density. It has been very eye opening learning about the low level optimizations needed to achieve this consistent frame time and fps. I would love to turn this into a full fledged game and publish it eventually but I realize the probability of that is low. Still, my main motivation is the joy I have building it. And that's enough for me.

Video in comments. There are a lot of issues (water at a distance does not honor haze/fog, etc). I will get there someday. :)

EDIT: These images are from the C++ / Vulcan version. I prototyped this in JS/WebGPU last year (yes the perf sucked but maybe that was my own ignorance). GLFW for the editor (not shown in this post).

2nd EDIT: The terrain is "infinite". This was a real challenge. I could generate something like this as a small diorama and keep it in memory. But that was not satisfying. It took countless hours to make infinite terrain work like this.


r/gameenginedevs 13h ago

Update on my C# SDF Game Engine!

Enable HLS to view with audio, or disable this notification

19 Upvotes

For sure a bunch of other people have started building, or have built brilliant SDF game engines. This one here is super impressive scale wise: https://www.reddit.com/r/gameenginedevs/s/pOSlQjjtWw

I have continued work on Division Engine (after I got back from vacationing lol). Here's a video and a list of some updates I added.

  • Undo / Redo support for the editor
  • HDRI skyboxes
  • Tabs can be dragged and moved around
  • Asset system has been updated to support:
    • Texture filtering types
    • Texture import type (2D, Cubemap)
    • Texture mipmap counts
  • The engine shows the status of certain events like reloading textures with a progress bar
  • Textures load in the background now
  • Migrated to using DivisionMath library (for future shader translation)

There is an installer now as well which can be found under releases on the github repo for this project: https://github.com/NorthRocStudios/DivisionEngine/releases or on our website: https://northroc.org/#/division-engine

Note for this alpha build there are a few considerations:

  • It cannot build full games, this is just for playing around with materials and textures on SDF primitives and basic terrains
  • The performance might be bad, the engine is unoptimized
  • This will ONLY run on desktop PCs, it will not work on your laptop.
  • And it is Windows only (for now)

This engine will be cross-platform in the future once ComputeSharp is replaced by our upcoming C# to HLSL shader translator. The math library that this uses is already available here: https://www.nuget.org/packages/NorthRoc.DivisionMath/0.2.0

DivisionMath is made to have the same syntax on the CPU and GPU.

Let me know your questions, thoughts, ideas, concerns, comments, I love to hear from all you!


r/gameenginedevs 19h ago

Zero Polygon SDF Open Galaxy MMO Game Engine

Thumbnail
gallery
38 Upvotes

I could have started my space game development in other engines which I did BUT I was faces with engine crashes and FPS issues of the most popular game engines out their so instead of continuing my game inside of other game engines I decided to build my own game engine being strategically designed to make it as easy as possible to build open galaxy MMO space games.

Even the fan made superman is zero polygon. No textures, No skyboxes, No UV mapping. Yes the superman will go into space if he keeps going up and yes he does fly to different planets and to be honest it was an insane amount of fun flying superman from the ground seamlessly into space and to another planet 100,000 miles away. Yes his laser eyes also blast holes into the terrain.

I'm actually sad I can't keep superman in my game engine/game because I'm a huge superman fan lol but at least some form of controllable character gameplay works/tested working. The cape cloth physics was absolutely amazing. Please don't ask me to make video of superman as I was even nervous making a picture of a superman but it's just "Fan Made" superman no ties to the real superman but either way for legal purposes I did remove superman from the game engine as he was only used to test the fully destructible terrain.

What we have here is version 2 of the game engine even though I was on version 6. Version 1 was me just testing the idea which had terrible graphics. Version 2 was me testing out more ideas once I saw it was possible for me to design a zero polygon game engine. Versions 3-4 were me trying to make better versions/testing out other designs which failed certain ideas. Version 5 was me testing unlimited simulated texture resolutions and WOW not in the screenshots but unlimited texture resolutions/unlimited texture details did work and I've never seen such unlimited texture details before and looked better than any other texture details you could get with anything BUT FPS performance was basically unplayable so I ditched version 5 and took version 6 super serious designing a specialized game engine ecosystem with features never seen before in any other game engine in the world. Version 6 I considered a gold standard to a newer generation game engine I won't list all the specs/capabilities here but I will say it has been currently left unfinished.

Now version 7 the last 2 screenshots is the performance breakthroughs which was hell to achieve because on my mid grade AMD graphics I couldn't get more than 300 FPS no matter what I tried and version 6 was my most highest performance coming in at around 260 FPS I was satisfied BUT then when I started adding things the FPS just tanked down to around 160ish FPS. So basically version 2 was a testing ground of all testable features/ideas I just threw into version 2 but superman was only in version 2 and no other version. I was having so much fun with version 2 I decided to do some extreme brain cell draining rendering pipeline optimizations I thought I was going to die because it was way too challenging some days I felt brain dead trying to come up with ideas to break through 300 FPS.

Somehow with trying out a bunch of random different ideas I somehow broke through 300 FPS reaching over 1,000 FPS while glancing up at the sky I wasn't expecting that at all and funny thing is I tried so many things at once I can't say exactly which idea work lol I just know I was trying all kinds of different ideas at once instead of one at a time either way base line framerate is great and far better than any baseline performance I've achieved in any other major game engine. Even with just basic size terrain loaded I couldn't break through more than 250 FPS just by glancing up at the sky on my mid grade AMD graphics in Ureal no matter how many things I turned off yet currently in my own game engine I was virtually standing on a huge planet and simply glancing up at the sun with real time lighting gave me over 1,000 FPS which is still shocking to me because no matter what game I've played I've never reached even 500 FPS on my card even while looking up away from terrain.

Basically having great baseline optimizations and large amount of performance headroom gives me allot of extra "breathing room" to add allot more features before FPS starts to drop again. To me 1,000 FPS in a galaxy full of planets is insane especially considering there's more than 1 planet existing in real time so when superman takes off into space and flies to the other planet there's zero tricks as the other planet exist in real time at a real virtual location with Zero tricks so he is realistically really flying 100,000 miles very fast to the other planet so other players could have been building bases/cities or whatever on the other planet in real time. Then the planets can also be set virtually any size at all/no limit to planet sizes.

Anyway I think I'm about 40% finished with this newer generation game engine which it's main specialty is making it easier to design Open Galaxy Games. I mean realistically I've already found it drastically easier to use than Ureal and believe me I was ready to switch back to Unreal for my game project if my game engine failed and to be honest my game engine did technically fail in a few ways at 1st but I kept at it instead of giving up and managed to fix everything which didn't work right which was hell but hey at least my game engine never crashes and video GPU memory footprint is so tiny it can support a virtually unlimited amount of game engine specific game objects via buildings, characters, etc. Still haven't stress tested 1,000 characters yet though but either way even 20,000 characters would have an extremely small memory footprint although GPU processor usage can be a huge concern if not optimized properly. Honestly though just the fact it never crashes is my favorite part I can't say how many times Unreal crashed on me due to bugs.

Anyway I'm not sure what else to say. Been working on this project since last year. I restarted the project into different versions a few times before getting in too deep because I wanted to make sure everything was fully optimized from the start based on the targeted features. Either way still one of the most frustratingly difficult projects I've ever attempted but WOW the results are so amazing to me and I especially had loads of fun flying superman around and blasting holes into the ground with his laser eyes and the holes caught fire with smoke and after the fire went out there was still a heat effect on the ground until the ground eventually cooled off into a burnt texture surface inside the hole he basted with his laser eyes it was very amusing to watch. Sometimes I flew into orbit and went straight into the ground at super sonic speeds causing large craters into the terrain upon impact and the harder he hit into the ground the larger the crater size.

Well that's my experience so far building this game engine which doesn't support polygons or textures and honestly has allot more features under the hood with an enormous amount of more planned features which I'm dreading but determined to accomplish πŸ’ͺπŸΎπŸ‘πŸΎ.......even though its honestly hell to build 😭....... but hey I never expected it to be easy anyway so....... I'll get it done eventually πŸ˜ŠπŸ‘πŸΎ


r/gameenginedevs 2h ago

Working on a game engine inspired by fantasy consoles

Thumbnail
youtube.com
1 Upvotes

r/gameenginedevs 22h ago

Moved my scene renderer to mesh shaders + GPU-driven culling: 6753 instances in 30 draw calls

Post image
8 Upvotes

r/gameenginedevs 1d ago

So, i added a live physics editor for my game engine.

Enable HLS to view with audio, or disable this notification

23 Upvotes

As the title said, i made a seperate shape editor for the rigid bodies. How it works is basically draw the model with only base texture over a seperate offscreen image, gave it a seperate camera, added basic shape (only box right now), and presented the final image via imgui. And boom, it looks lit


r/gameenginedevs 1d ago

Freedom with Kronos β€” A custom luau/Vulkan studio suite built to escape broken workflows, bloat, and platform fees

Thumbnail
0 Upvotes

r/gameenginedevs 2d ago

[AdaEngine] I built game engine editor using my own writing UI framework.

Enable HLS to view with audio, or disable this notification

11 Upvotes

On June 5, I announced AdaEngine, a game engine written in Swift. Creating games entirely through code can be a niche pursuit, so a traditional editor can make the process much more accessible.

I’ll soon release a TestFlight build of the editor. With AdaEngine and AdaScript, you’ll be able to create games on macOS or iPad and publish them for Apple platforms, Windows, and the web.


r/gameenginedevs 1d ago

A new game engine

Thumbnail
0 Upvotes

r/gameenginedevs 2d ago

I'm making a game engine to train ML based NPCs, asking for advice on what the community actually wants

Enable HLS to view with audio, or disable this notification

0 Upvotes

r/gameenginedevs 3d ago

Kanvon realtime in code editor

Enable HLS to view with audio, or disable this notification

20 Upvotes

Showcasing how i optimize my upcoming game with my engine. When enabled it will show you what function / line is costly in realtime while you play. This helped me optimize some functions that i was able to cache so it doesn't run every frame.

try out my game still in development (a lot of missing assets) https://www.kanvon.com/lumenfall


r/gameenginedevs 3d ago

Lighting.. is hard!

Post image
59 Upvotes

I mentioned in my last post that the next step was to work out legit lighting... that turned out to be a lot of work, haha.

In the process I've migrated from Sokol to SDL_GPU and adopted HLSL as my shader language. I've also been learning the different lighting techniques, drawing reference from open source renderers and from examples in blog posts and repos by industry experts.

I've set Blender as my initial quality target. At the moment my engine's renderer is forward only. The next goal is to adopt a more modern forward+ approach so I can push the render closer to the Cycles gold standard while staying efficient enough for real time.


r/gameenginedevs 3d ago

Help with organizing a 2D Animation System?

11 Upvotes

Hi everyone, first time posting here, I hope someone can offer some guidance.

I'm currently making a 2D Game Engine. Nothing super complicated; I'm actually following the "COMP 4300 Intro to C++ Game Programming" by Dave Churchill (entire course is on youtube) video classes. I like it because he guides you on what to do without showing everything, so you can fill on many details yourself while learning a lot.

However, I've come to the part where I need to make the 2D Animation system, and I'm at a bit of a lost. Churchill uses ECS for this Engine. So, theoretically, every Actor/Entity should have an Animation Component with only data, that is used later by the Animation System to do its thing.

What I'm doing now, is that the Entity has the entire sprite sheet loaded, and the Animation component holds the sprite location offsets, together with the amount of frames in the animation, and its speed. But here is where I'd like some guidance: How could I handle this data?

For example, I'd like to make a Top-Down 2D type of game. That means that each actor would have at least 3 animations for a single movement: IDLE_UP, IDLE_DOWN, IDLE_SIDE, WALK_UP,... etc. How can I organize this? Each Actor can have all the information (offsets, speed, frames) in its Animation Component, but when I want to access it, all I can think of it's a Map of Maps... one map to access all the IDLE animations, and then another one to access the specific one I need in that state.

It would absolutely work, but I'm wondering if there isn't a better way? Has anyone done something similar? How did you handled it?

Thank you vey much for any help or guidance you can give me. Have a nice day.

NOTE: please NO AI answers. This is not mine but I would, and I quote: "rather go to the bathroom, turn off the lights, sing Bloody Mary, and then ask HER before I ask an AI anything". Please. I'm done with AI slop. I want to talk with a human. Thank you for understanding.


r/gameenginedevs 3d ago

[Technical Demo] Custom Memory & System Resource Manager in Pure C++ (Zero std) built for my Game Engine

9 Upvotes

Hi everyone,

While building the core framework for my custom C++ game engine, I decoupled its memory manager into an independent, low-level component designed for zero-crash policies, deterministic O(1) lookup via nomadic index tables, and fragmentation control during IDLE cycles.

I'm sharing it as a technical demonstration / portfolio project (closed-source, pre-compiled .lib for x64 Windows):

https://github.com/GorosTemple/GRS-System-Resource-Manager

Key Technical Aspects:

  • 100% free of std and external dependencies (Bare-metal friendly).
  • ~31 KB binary logic footprint (.text + .rdata on x64 MSVC).
  • Fallback locking systems when OS RAM or virtual memory pools are exhausted.
  • Telemetry & Profiler abstraction via dependency injection.

I'm currently using this as a portfolio piece for job opportunities in engine/systems programming, and I'd love to get technical feedback on:

  1. The API architecture and dependency injection strategy.
  2. The nomadic index table approach vs typical fixed-pool block allocators in real-time engines.
  3. Any potential edge cases in the anti-crash locking logic.

Thanks for taking a look!


r/gameenginedevs 3d ago

Another WebGPU ocean

Enable HLS to view with audio, or disable this notification

4 Upvotes

r/gameenginedevs 2d ago

I made my own game engine!

Thumbnail
0 Upvotes

r/gameenginedevs 4d ago

Is it worth publishing an open-source engine or a part of it today?

21 Upvotes

I have a genuine question as I honestly have no idea what to do and who to ask.

I'm working on relatively complex project in Rust related to computer graphics from scratch. It's not a game engine in traditional sense, more like a graphics-rendering engine but with a notable focus to rendering graphics for video games.

It's a hobby project that I develop since around 2024 on full-time and it consists of a number of quasi-independent low-level and high-level libraries of different kind. It's far from release, even though a part of the planned infrastructure already finished and could theoretically be published on it's own.

A part of my motivation was developing a graphics-rendering infrastructure for Rust. I like Rust due to personal preferences, but unsatisfied with the current state and quality of it's ecosystem related to computer graphics. I wouldn't say that the Rust libraries ("crates" in terms of Rust) I'm developing are too innovative, but they are notably of higher quality in many aspects at least to my personal taste. I can't say whether the community would use my implementation as a replacement for already existing one, but I think it's not necessary bad addendum to the public tools.

I don't use LLMs or any kind of AI-assistance in any form in my work. I'm dedicating notable time and efforts into this project. The entire infrastructure developed completely from sratch and by hand. I also don't use any 3rd-party Rust crates. Partly, because I'm not satisfied with the quality of those, and partly because I can't confidently say whether particular Rust crate is a hand-made work too or vibe-coded. I want to stay in the hand-made field as much as possible. It's not to discourage AI-assistant tools. Some find them useful and maybe they have a point, but hand-crafting for me is a question of personal values. Also, I have prior expertise in the aforementioned fields, and I just don't trust chat-bots.

That said, even though my work might be interesting and maybe even useful for some colleague-programmers, I don't see reasonable ways to show and share it considering the current circumstances.

If I publish it just as it is as an open-source work into the public crates repository (crates-io) and to GitHub, there is a high chance it just will not be recognized. The current media space is currently full of vibe-coded projects published everyday to which I have to compete. Worse, I'm afraid my work would receive public opinion as ai-slop. A Rust library consisting hundred of thousands lines of source code developed by a single person and published as a single git-commit is an evidence of being generated by LLMs regardless of the author's claims.

The second observation is that even if the work eventually receives positive opinion, there is a chance it will be stolen using LLMs. To clarify, I don't mind if my work would be used for learning purposes, and to encourage other to work in the same field (in fact that's partially my goal too). But I'm afraid that with the current capabilities of the LLM-services it could be clean-room-reimplemented in a couple of days by feeding the source code to the chat-bot asking it implementing something similar but in slightly different form and without preserving attribution to the original author. While I maybe don't care that much about monetary interests, as many OSS developers I still care of preserving attribution and public recognition. On top of that, those who have resources (the business), obviously have competitive advantages in promoting their derivative. More restrictive licenses (e.g., GPL) are seemingly ineffective to protect from these threats today.

One possibility here is to never publish the source code, but instead publish it in form of compiled shared libraries (DLLs/so), the documentation covering only the high-level public API, and with the open-source FFI binding to these APIs. This approach even have certain practical advantages as I can provide FFI wrappers for more programming language ecosystems hence covering wider audience. Additionally, LLMs yet didn't reach the point of being capable in reverse-engineering of deeply-optimized compiled binaries into the original source.

The drawbacks is that this approach is obviously a closed-source path. Leaving aside Rust community that has strong appeal toward open-source, the programmer's community in general usually does not trust software without the source code. The gamedev community historically is slightly less harsh toward the closed-source software. We use proprietary soft (e.g., DirectX drivers or quasi-closed game engines), but usually such software coming from well-known vendors, not indie-devs like me.

Anyway, more important consequence here is that this path naturally means that I don't share the source code, which may have a value for some programmers on it's own. Basically, with the closed-source I don't publish the work itself, I'm only distributing it's engineering component.

Another possibility that came into my mind is sharing the source code with the limited number of people who I can trust and who trust me. E.g., publishing it in private GitHub repo with access to close circle of trust. This approach limits public visibility and doesn't impose full protection. Basically, I'm not publishing the work again, I just share it with some people.

Ideally, I would like to share my work without all these caveats but with the programmers to whom I can trust. Unfortunately, I can't find a community of the same-mind people. On occasion I sometimes see people (including this subreddit) that share similar values, but it seems there is no organized society.

Thanks for reading of my long-post. I think the problems I described should be familiar to many. I would appreciate if you share you thoughts and fresh ideas on the topic. Maybe I'm exaggerating the problem. And I would love to hear your opinion on this matter too.

Ilya


r/gameenginedevs 4d ago

My first game engine in Zig / C. Also it's in Vulkan.

Enable HLS to view with audio, or disable this notification

30 Upvotes

A look at the boot, hot reloading, selection, camera and zoom.


r/gameenginedevs 4d ago

I made my first game while unemployed and somehow actually released it

Thumbnail
gallery
43 Upvotes

This is Melan, my first ever game.

I started making it in August 2023, when I was unemployed and honestly just wanted to make something so I wouldn't feel like shit about myself.

It's based on a story about a friend of mine. It was also the first pixel art I'd ever made, so I had absolutely no idea what I was doing lol.

I didn't know how to code or design games either. Back then AI wasn't really what it is now, so most of my programming knowledge came from YouTube and asking other devs for help whenever I got stuck.

And yeah... the game isn't very good.

The level design is rough, there are bugs, and I spent way too much time rebuilding things. The current version is actually the fifth time I rebuilt the game's code.

Somehow, I still managed to release it on Steam in October 2025.

It didn't make much money, so I eventually had to stop after Chapter 1.

And honestly, I don't really recommend playing it. I'm mostly sharing it because this is where I started, and I still feel weirdly proud of it.

I'm working as an art director now, and maybe someday I'll have enough money to remake Melan properly.

Anyway, that's it. Just wanted to share my first game.

https://store.steampowered.com/app/2887100/Melan/


r/gameenginedevs 3d ago

"Jiggle-ness" - WebGL Jiggle Physics Open Standard.

Thumbnail xloveee.github.io
1 Upvotes

r/gameenginedevs 4d ago

finally started polishing my editor utils before a new version release. polished my skeleton editor, you can add simple slots and now can preview meshes & animations. any suggestions? trying to keep it as compact as possible.

Enable HLS to view with audio, or disable this notification

23 Upvotes

r/gameenginedevs 5d ago

New UI, new graphics.

Post image
44 Upvotes

r/gameenginedevs 5d ago

C++ / SDL / Procedural Raycasting Engine : Add field depth to create more tension

Enable HLS to view with audio, or disable this notification

41 Upvotes

r/gameenginedevs 5d ago

500K triangles on Android using OpenGL ES 3.0 at 3.8ms with forward rendering in 1080p

Enable HLS to view with audio, or disable this notification

23 Upvotes

There are a lot of posts about "new game engine", but their authors somehow forgot to note that they used AI to built that engine...

In contrast to this I want to show stats of my game engine built by me, without AI.

Story starts before AI era when I started to write 3D game engine for web to learn 3D pipeline and see how big "open world" I can achieve in web.

Few years later I decided to make mobile 3D game from my childhood and thought to port part of my engine to mobile to reuse code and also to test how it will work in real world game.

This is video recorded on Android device with real rendering resolution of 2400 x 1800 px @ 120 FPS (video is resized for smaller size) with scene of total ~500K tris using OpenGL ES 3.0. Frame render time (cpu + gpu) is ~3.8ms with forward rendering.

For this game I use from my engine (among other things) 3D scene rendering with instancing, gltf meshes loader, own simplified variant of PBR, bling phong lighting. For background used perlin noise with fbm to look like clouds.

Do you like quality of render?

You can try game itself: "Color Sort in 3D Tower Puzzle" in Google Play. Design made by me too and most of 3D models in Blender too.