CleverRaven / Cataclysm-DDA

Cataclysm - Dark Days Ahead. A turn-based survival game set in a post-apocalyptic world.
http://cataclysmdda.org
Other
10.63k stars 4.18k forks source link

Add simple visual effects to... everything? #24807

Closed cthulchu closed 5 years ago

cthulchu commented 6 years ago

Tiles or curses: Tiles

OS: Windows

I have this idea... It may potentially make the game look a lot more comfortable and it requires very small effort. But it requires usage of non-blocking functions. I know it's quite simple to implement in higher level languages via async functions, but I don't really know the proper implementations of async (non-blocking functions) in C, so I'm sorry if my explanation is not purely c-based.

In a method that creates/removes tiles and other things like bullets/arrows/bolts or items, we call an async method that adds simple visual effects to that event. This effect doesn't require precreated animation or a lot of calculations. Like fading for appearing/disappearing. Or animating trails when an object moves from one location to another. I believe there are many simple free C libs for this basic fast graphics.

If it's async, it won't influence the game speed because of the micro delays added by the animation here and there. We also don't care about the callbacks of those async animations, so that's good. And if these delays are really short, they wont overlap unpleasantly even if a user plays really quickly. Plus there are enough organic delays for the animation to look even more organic.

As a result, everything that appears/disappears or moves (changes coordinates) will leave trails which will make it a lot more pleasant for a human eye.

Thanks!

kevingranade commented 6 years ago

It's incredibly complicated to bolt something like this on to a render system, and it's not free performance-wise either.

I have zero interest in maintaining something like this, and if someone else wants to implement it they're going to have to be extraordinarily careful to make it not impact the rest of the game.

Night-Pryanik commented 5 years ago

No discussion in over half a year, closing.