#MCFX - Minecraft FX Rendering Engine

9 messages · Page 1 of 1 (latest)

low grove
#

MCFX is a retained-mode rendering engine for Minecraft effects. Effects don't directly spawn entities, instead they declare a model of what should exist, and the renderer diffs it each tick:

Existing parts → update
New parts → spawn
Missing parts → remove

This creates a virtual-DOM style system where effects are deterministic, composable, and easy to manage.

Features
Single frame renderer: all effects submit once per tick for consistent state.
Declarative animations: tweens, pulses, paths, easing, and timed behaviors.
Composable effects: Effects can be composed of other effect specs and groups allowing for much more complex designs.
World interaction - controlled block damage, entity damage, teleportation and much more

Library still in progress, I had to learn a lot for this to work.

dry birch
#

That looks insanely cool! How did you create the screenshake? Through a shader?

low grove
dry birch
#

I see, thats certainly a good serverside solution tho I'd argue. But shaders would need to be present on the client, aka have to be sent through a resourcepack for them to work

low grove
#

yeah, thats what I was thinking, I want this lib to be fully serversided so devs dont have to worry about what shaders/resourcepacks the clients are running

dry birch
#

Maybe you could allow that for the user to configure and to kind of add own screen animations in the future (choosing between keeping it completely serverside or adding a RP)

latent summit
# low grove yeah, thats what I was thinking, I want this lib to be fully serversided so devs...

but technically it could be "completly serverside" - idk how you feel about hosting the pack yourself, but when you host it would basicly just package the components like screenshake, blur, etc and in the api any developer could just "apply" these. So the api basicly packages an enum of all effects..

Then there would still be a resource pack, but i think that would be fine if you make it Opt In

pearl flare
#

I am curious about the performance of this, it looks super cool though. Do you plan on making it open source?