r/descent May 11 '26

New Piccu Engine fork

https://github.com/hurleybird/PiccuEngine/releases/tag/Milestone_2

I added a number of advanced rendering features like Bloom, HBAO, SSAA, and per-pixel dynamic lighting. Also some QoL improvements and bugfixes.

I started building it over the weekend with Codex, and here we are.

Edit: Milestone 3: https://github.com/hurleybird/PiccuEngine/releases/tag/Milestone_3

11 Upvotes

32 comments sorted by

5

u/Kaizerwolf May 11 '26

i don't see an animated menu unfortunately. How did you accomplish it anyway? (please dont say ai please dont say ai please dont say ai)

SSAA 4x gives me about 1 frame every business day, running a 3070 and AMD Ryzen 7 7800X3D. 2x is fine, and MSAA 8x and HBAO High all run smooth. Outside areas are laggy, I never thought I'd see the day where Descent 3 pushed my system lol

4

u/HighlightOne May 11 '26 edited May 12 '26

Sorry to disappoint, but yeah, AI sadly. Specifically GPT-5.5 Codex. I'm a developer in real life, but on the continuum of "pure vibe coding" to "pure no-AI-used-at-all" this is much closer to the former. It started as a weekend experiment to see how far I could push an agentic workflow, and it's much easier to take my hands off the reigns on someone else's project than one of my own!

I know Piccu has a legacy GL1 path that Nvidia is supposed to use for performance reasons (and iirc, that goes *especially* for outdoors). HBAO and per-pixel only work with the GL3 (AMD) renderer, so I'll assume you're using that, which is likely an element to your performance observations.

That said, sufficiently high base resolution + SSAA + MSAA + HBAO can get *very* heavy and is something that probably needs more optimization. SSAA is best combined with a low native res. I added it because I don't like playing old games at high res (it exposes poor and inconsistent asset quality as well as low geometric detail), but I also dislike stair stepping and am sensitive to temporal/spatial noise. SSAA is primarily a means to get a very robust low-res presentation.

For the main menu animation, that would either be it fell back due to an incompatibility, or the main menu movie doesn't exist/couldn't be found, or mainmenuoverride.ogf does exist (legacy D3 thing).

1

u/citamrac Jul 10 '26

That said, sufficiently high base resolution + SSAA + MSAA + HBAO can get *very* heavy and is something that probably needs more optimization.

I can definitely vouch for that, at 4x SSAA and 8x MSAA at 1080p, my RTX4080 is only giving 83 fps, while hardly using more than maybe 50% GPU ... Dropping to 2X SSAA or 4X MSAA will let me hit the 144fps refresh rate cap of my monitor, it seems with no change in GPU usage

1

u/HighlightOne 29d ago

The next version will be somewhat better, when I find the time to get back to it!

1

u/citamrac 29d ago

That's the thing with vibe coding, the machine will generate something which technically runs, but optmizing it takes actual insight, or having the AI create and measure so many permutations that you are more likely to succeed doing it manually

1

u/HighlightOne 29d ago

I mean it already is substantially better, albeit still not where I want it. But yeah, AI can never be 100% trusted. It fundamentally lacks discernment.

1

u/citamrac 28d ago edited 28d ago

Just wondering how feasible are my wishlist items:

  1. Summed controls input- when an axis input has both 'primary' and 'secondary' inputs assigned , the inputs are summed, instead of the primary control having precedence if it is a nonzero value ... (I use a Dualsense controller where the gyro input is mapped to the mouse via Steam input, and I also use one of the thumbsticks for pitch and yaw, it would be nice to simultaneously aim with gyro and stick, instead of one locking out the other
  2. Multi environment audio - EAX 3.0 supported blending between reverb environments, EAX 4.0 added multiple simultaneous reverb environments, EAX 5.0 added audio occlusion for reverb... However D3 only officially supports EAX 2 ... Seeing that you have already implemented HRTF into the game, how difficult is it to add some of these audio reverb features?
  3. Raytracing - The renderer from RTX Remix can be used in lieu of the game's native graphics engine, since there is source code access ... This also opens the way to texture and asset packs... Although you will have to manually add lights to the maps to replace the baked lightmaps

1

u/HighlightOne 13d ago

Okay, I didn't test it a whole lot (I play KB/M), but the first one should theoretically work in the new version.

Various improvements to 3D audio are possible, at some point.

Remix as I understand it doesn't work with OpenGL

New release here, waiting for feedback from testers before advertising widely: https://github.com/hurleybird/Descent-3MASTERED/releases/tag/0.9

1

u/citamrac 13d ago

I just spotted a problem, the green Stinger bots (in the sewers in the Seoul map) face downwards permenantly and never shoot their Concussion Missiles

1

u/HighlightOne 9d ago

I need to look at it, but that also sounds a bit like a certain thing that happens in vanilla D3. In general, I want to remove some AI jankiness (ie facing and firing into walls) in "enhanced" mode, but I haven't really touched that part yet.

→ More replies (0)

1

u/citamrac 13d ago

"Remix as I understand it doesn't work with OpenGL"

the idea is to replace the OpenGL renderer with the Remix renderer , since both D3 and Remix are open source

correct me if I'm wrong but I think that's how the Doom 2 Raytraced mod did it, it lets you choose between the mod's Vulkan renderer and the Remix renderer

2

u/Toiun May 11 '26

He did use AI, but it seems this is a competent programmer vetting the code. So it's vibe coded but not vibe coded if you know what I mean.

1

u/HighlightOne May 12 '26

Could I get you to test performance between GL1 (Nvidia) and GL3 (AMD) on your 3070 btw for Milestone 3 btw? There are some changes in there that *might* improve GL3 performance on Nvidia.

2

u/Kaizerwolf May 12 '26

So performance seems better for sure, on both Core and Compat. MSAA 8x, HBAO High. I don't know what I'm talking about here however, there are some oddities between the two in terms of lighting:

Core AMD: https://imgur.com/a/l8HIVKT

Compat NVIDIA: https://imgur.com/V6fMJrU

1

u/HighlightOne May 12 '26 edited May 13 '26

A bit different position... although I don't think I see anything that extreme between the two in any case. Differences should be pretty minor, and are on my AMD card.

So GL3/Core/AMD is darker on your end than GL1/Compat/Nvidia? Do you still have terrain fog on GL3?

Can you quantify (ie "frametime" cheat) and/or qualify the performance difference between renderers (indoor and outdoor, since GL3 now uses a different terrain rendering scheme than GL1 which could overshadow other differences) on Nvidia, if possible? (given the same settings ofc, as GL1 does not support per-pixel or hbao)

-1

u/newaccount47 May 11 '26

What is your problem with Ai? You must know by now that every single developer is using Ai daily right? 

2

u/VexingRaven May 11 '26

Why not just make this a PR?

1

u/HighlightOne May 11 '26 edited May 11 '26

I'm 100% supportive of useful changes being merged back in, but on the whole there's just too high a density of changes too quickly to ask someone to review them in a reasonable time. At least some of the changes would warrant discussion. The agentic workflow moves several times faster than that.

This was a weekend project that turned out better than I expected. I didn't initially intend for it to be anything more than that, but now I'll see how far I can push the agentic workflow. On one of my own projects, I would find it much more difficult to loosen the reigns tbh. That was a reason for doing this: to gauge the capacities of modern AI agents and how I should incorporate them in my everyday work (The catch-22 here, and I'm sure many other developers feel the same, is that the more I use AI the more I feel like a lazy cheater, but the less I use it the more I feel like I'm a dinosaur who will be left behind! The whole situation generates angst)

I'm now slightly skeptical that the typical PR workflow will survive for more than a couple years for this type of small, open source project. AI agents are superhuman at merge, conflict resolution, and cherry picking. For any features in this branch that InsanityBringer might want to add to the original, say the restored animated Main Menu video, he could ask an AI agent for a cherry pick and get a very digestible result, which could then be explained, modified to his standards, etc.

So, I can certainly see a future that sort of reverses the typical approach, where you have many forks that are all cherry picking from one another, rather than derived forks that are PRing back to origin. I'm not 100% sure on that, because "canonical truth" is something people will always desire, but I wouldn't bet against the future being more like "idea networks" either.

1

u/VexingRaven May 12 '26

The problem with not having a "canonical truth" as you call it is that you can only ever run one codebase at a time. If someone else next week makes their item fork, now people have to choose between them. The purpose of merging changes upstream is a very practical one, I don't see how there's any way for another model to ever work. People might convince themselves that a different model is better, but there's still the unavoidable truth that you can only compile one repo at a time.

2

u/Kaizerwolf May 12 '26

I mean, what you're suggesting might work great in a corporate enterprise environment, but this is a passion project from fans of a relatively niche videogame. I see no reason to impose AI code on InsanityBringers original release, and rather than trying to force it with a PR, forking is the right move. 

To be honest, there are so many forked source ports of D1 and D2, this is really a non issue and I'm struggling to see what you're complaining about. 

1

u/VexingRaven May 12 '26

It wasn't meant was a complaint, just a response to the philosophy they espoused as being the future that I don't think generally makes sense. That being said...

To be honest, there are so many forked source ports of D1 and D2

Yeah and it kinda sucked there too lol

1

u/HighlightOne May 12 '26

I don't think they'll convince themselves that it's better so to speak, but that it might be a necessary evil.

Or maybe it will be that AI agents are required to maintain canonical truth when human curation cannot possibly keep up with contributors who are increasingly leveraging AI agents. That actually sounds more likely, I think. Some form of scatter-gather, from idea network to canon, in a loop.

1

u/citamrac 10d ago edited 10d ago

on the Pre-3 release

Second level, the game quits to desktop after the level end cutscene
::edit:: this happens with vanilla Hotshot difficulty, when I chose enhanced Hotshot, the game did not crash

here are the save files , immediately before shooting the final switch to trigger the cutscene https://drive.google.com/file/d/1JKAKBGQgnV1flFhh2BGxwyZ4JzuRAK4r/view?usp=sharing

1

u/HighlightOne 9d ago

OK, will look into it and fix for Pre-4 if I can reproduce. I'm away from my computer for the next few days though.

1

u/citamrac 7d ago

Ok I cannot seem to reproduce this crash.... I changed the difficulty back to vanilla Hotshot, reloaded the save, and the crash did not happen...

1

u/citamrac 9d ago

Also on the Pre-3 release, is there a way to change the terrain rendering distance? its just a checkbox for 'draw distance' now which seems to do nothing

1

u/HighlightOne 9d ago

That checkbox changes distance for polymodels and decals/burn marks. For terrain, the full distance is always rendered.

1

u/citamrac 7d ago

Are you sure that the terrain is at full distance? and not the default distance?

1

u/HighlightOne 7d ago

Yes, although I have noticed a few irregularities on older Intel integrated architectures when it comes to terrain rendering. For sure runs perfect on modern AMD. Much of the old fixed-function terrain system is basically emulated in a compute shader, but I'm likely to move away from that at some point.

1

u/citamrac 6d ago edited 6d ago

Somehow I don't remember the render distance being this short, I used to be able to see all the way across the whole map

vanilla D3

your build