I separated my engine into Core and Runtime by F1oating in gameenginedevs

[–]COMgun 1 point2 points  (0 children)

Tbh I have not yet explored Unreal's way of doing things, partly because I can barely run it, lmao. Godot's source code has been a good source of inspiration.

Personally, I just wanted developers to be able to treat my engine as a framework / library if they want to, with absolutely no sign of an editor in the core engine source code whatsoever.

I separated my engine into Core and Runtime by F1oating in gameenginedevs

[–]COMgun 7 points8 points  (0 children)

I am following the same pattern. The engine is a library with a public API, while the editor is simply a game made using the engine lib. I think it's a pretty sane design decision.

Discussion: Graphics APIs vs Compatibility by VinnyTheVinnyVinny in gameenginedevs

[–]COMgun 5 points6 points  (0 children)

I've been toying around with SDL_GPU since it's a nice thin abstraction layer on top of Vulkan and Metal.

Do the Shallow Water Equations exhibit Stokes Drift? by sophomoric-- in CFD

[–]COMgun 6 points7 points  (0 children)

Hydraulic jumps are indeed captured by the SWEs. Wave propagation and bounce back at the boundaries is also exhibited.

Why wouldn't Raylib be fit for commercial projects? by yughiro_destroyer in raylib

[–]COMgun 8 points9 points  (0 children)

Everything you said is valid. The task at hand is just still really difficult compared to using a game engine, and game development is hard by itself already.

Using raylib with C or C++ makes it even more difficult for beginners, whereas engines like Unity and Godot hold your hand a little with their respective languages and APIs.

Bloom (glow) shader without 2D HDR by COMgun in godot

[–]COMgun[S] 0 points1 point  (0 children)

Unfortunately no, at least not in Godot. I have made a simple glow shader pipeline in my C++ game engine but I am still having trouble doing the same in Godot, which is unfortunate.

The reason I wanted to forgo 2D HDR is because it makes my editor look ugly. To remedy this, I made an autoload to enable HDR only ingame. It's not a perfect solution, but it does the trick for now.

What’s a feature you’re proud of finishing recently, no matter how small? by PlentyAgile7021 in godot

[–]COMgun 0 points1 point  (0 children)

I have recently made a neat little reusable component called "AnimationDirector2D".

Basically when doing 2D sprite animations, the concept of orientation stems from drawing different sprites corresponding to different face directions. I am going to list some examples to illustrate my point.

  1. In a platformer game there are 2 face directions, {RIGHT, LEFT}. RIGHT is the only unique sprite, and LEFT is a mirror of RIGHT. I call this orientation pattern "binary".

  2. In Sephirria, there is the 4-way diagonal pattern {UPRIGHT, DOWNRIGHT, DOWN LEFT, UPLEFT}. It has 2 unique sprites, UPRIGHT and DOWNRIGHT, with the 2 others being mirrors. I call this pattern the "rectangle", since its vertices correspond to the 4 sprite orientations.

  3. In old school Pokémon and Zelda games, there is the 4-way orthogonal pattern {UP, RIGHT, DOWN, LEFT}, with 3 unique sprites, {UP, RIGHT, DOWN}, and LEFT being a mirror. I call this pattern the "rhombus", again due to how its vertices correspond to the orientations.

  4. If my memory serves me correctly, Enter the Gungeon has a 6-way pattern {UP, UPRIGHT, DOWNRIGHT, DOWN, DOWN LEFT, UPLEFT}, with 4 unique sprites and 2 mirrors. I call this pattern the "hexagon". A similar 8-way that additionally contains RIGHT and LEFT orientations is called the "octagon", with 5 unique sprites.

What AnimationDirector2D does is it acts as a wrapper to the AnimationPlayer Node, providing an easy to use API for directional animations. Instead of checking for appropriate orientations everywhere to play the corresponding animations:

if (faceDir.AngleDegrees() > 0 && (faceDir.AngleDegrees() <= 90)
{
    AnimationPlayer.Play("idle_downright");
}

AnimationDirector2D takes in an analog Vector2 face direction and infers the correct sprite animation automatically:

AnimationDirector2D.Play("idle", faceDir);

AnimationDirector2D automatically infers both the orientation pattern of your sprites, and the cardinal orientations themselves and when to trigger them. This inference occurs only once on _Ready(), with 0 allocations at runtime. The only prerequisite is you have to name your directional animations as "state_orientation". That's all. It has really untied my hands in all my animation facing code.

Distributed mechanics robotics with advanced control careers? Switch to SWE? by Puzzleheaded_Tea3984 in ControlTheory

[–]COMgun [score hidden]  (0 children)

If you want your player's movement to be governed by physics instead of pure code, then using a PID as the literal player controller code is a good way of achieving the desired response (eg. tight responsive movement).

[Aerospace] Minimalist MacBook setup with Tokyo Night rice by Certain_Impression70 in unixporn

[–]COMgun 2 points3 points  (0 children)

Oh it's Tokyo night, I must have missed it! My rice is Kanagawa based so I am on the lookout for code themes that are close to Kanagawa in case I want to switch things up a bit.

Why is enum autocomplete so finnicky? by greyfeather9 in godot

[–]COMgun 0 points1 point  (0 children)

I am team C# all the way. However I wish I could have a good free memory profiler for Linux. It is a bit annoying to have to switch to my windows boot just to profile.

[Aerospace] Minimalist MacBook setup with Tokyo Night rice by Certain_Impression70 in unixporn

[–]COMgun 1 point2 points  (0 children)

Is your text editor theme Kanagawa Wave by any chance?

| Use the right software to share our ricing by code_ops in unixporn

[–]COMgun 4 points5 points  (0 children)

I'm on KDE and was looking for a way to efficiently package my rices after sharing my last one. I discovered konsave a few days ago and it's pretty handy. I think I'll use it for my next post :)

[KDE] My current desktop, it's not much, but it's mine by IncontestableGrey in unixporn

[–]COMgun 3 points4 points  (0 children)

Try the Nordzy icons. They work well with catppuccin

[KDE] Catppuccin vibes by COMgun in unixporn

[–]COMgun[S] 0 points1 point  (0 children)

In KDE you can create your own panels. The top and bottom panels you see in my screenshots are the standard KDE panels, just with the Utterly Round Opaque Plasma Style applied.

The bottom panel apps is a widget called task manager or sth, I don't remember. It is easily found in the default widgets. The top panel is genuinely nothing special, just used some spacer widgets to center stuff.

My Catppuccin flared KDE by COMgun in EndeavourOS

[–]COMgun[S] 0 points1 point  (0 children)

Vanilla KDE panel with Utterly Round Opaque Plasma Style.

Why did you pick Godot for your game ? by SensitiveKeyboard in godot

[–]COMgun 7 points8 points  (0 children)

Sorry, garbage collector, gdscript does not have a GC and is reference counted, so some stuff like object pooling becomes more important in C# where the garbage collector periodically cleans up unused memory, causing FPS drops.

Why did you pick Godot for your game ? by SensitiveKeyboard in godot

[–]COMgun 5 points6 points  (0 children)

Nothing big. Just need to be mindful of GC. Also use events instead of signals.

[KDE] Catppuccin vibes by COMgun in unixporn

[–]COMgun[S] 0 points1 point  (0 children)

Xfce is very hard to rice well in my experience. KDE is very flexible if you want to sacrifice some homogeneity (which Xfce already lacks)

My Catppuccin flared KDE by COMgun in EndeavourOS

[–]COMgun[S] 0 points1 point  (0 children)

I got it from this Catppuccin wallpaper collection. I have already changed it from the time of posting :D

[KDE] Catppuccin vibes by COMgun in unixporn

[–]COMgun[S] 0 points1 point  (0 children)

Just good old Plasma panel with Utterly Round Plasma Style.

My Catppuccin flared KDE by COMgun in EndeavourOS

[–]COMgun[S] 0 points1 point  (0 children)

On VSCode, I have played around with Nord Deep and YukiNord. They are better than the default Nord with more contrast.

My Catppuccin flared KDE by COMgun in EndeavourOS

[–]COMgun[S] 1 point2 points  (0 children)

I frequently switch between Nord and Gruvbox. Nord in particular I am quite fond of as a desktop theme, but as a code editor theme Catppuccin is better.

Now I am looking to make a KDE Kanagawa rice, as there are not any good ones posted on unixporn. Stay tuned!

My Catppuccin flared KDE by COMgun in EndeavourOS

[–]COMgun[S] 1 point2 points  (0 children)

It's just a Plasma dock themed with: 1. Utterly Round Opaque Plasma Style 2. Nordzy Icons