Live data from Hacker News

Peredvizhnikov Engine: Lock-free game engine written in C++20

github.com

51–60 of 183 posts

Re: Peredvizhnikov Engine: Lock-free game engine written in C++20

#51

> At the moment, the only supported platform is Linux. Regardless of your feelings on the status quo, there is one thing you must do when building a game engine if you want it to succeed: support Windows .

I'd love to see the Steam Deck "console" change this status quo.

Re: Peredvizhnikov Engine: Lock-free game engine written in C++20

#52
post #29

I have an Actor framework which uses a vanilla std::deque for method pointers, and to add messages to the queue, the locking technique is a Benaphore (the original Futex, which uses an atomic and a locking primitive, with the twist that my locking primitive is a combo of spinlock/mutex based on retry count). Nothing special. Benchmarks show that very rarely does the message push function block, and the chance of an O…

how do you deal with msvc's `std::deque`? (or maybe you're not using literal std::dequeue)

Whatever the issue is, they support Clang on linux, i.e. no MSVC standard library.

Re: Peredvizhnikov Engine: Lock-free game engine written in C++20

#55

> At the moment, the only supported platform is Linux. Regardless of your feelings on the status quo, there is one thing you must do when building a game engine if you want it to succeed: support Windows .

I'd love to see the Steam Deck "console" change this status quo.

Most of the SteamDeck games are just running windows games through photon, wine and other compatibility layers.

While that works amazingly well, I tend to prefer games with native Linux and SteamOS builds, even though they're rare.

Re: Peredvizhnikov Engine: Lock-free game engine written in C++20

#56

> At the moment, the only supported platform is Linux. Regardless of your feelings on the status quo, there is one thing you must do when building a game engine if you want it to succeed: support Windows .

I'd love to see the Steam Deck "console" change this status quo.

win32 is the stable ABI for SteamOS, same as any other Linux distro

Re: Peredvizhnikov Engine: Lock-free game engine written in C++20

#57
post #44

Earlier quoted context omitted.

My benchmarks show that the price is acceptable Well, except to people who have a hard requirement that there never be this unpredictable, infrequent longer delay you mention.

It's probably fair to claim that zero* game developers have this hard requirement. At best they have a strong desire which might be partially backed up by benchmarks and squinting hard enough. *: ignoring deliberately esoteric cases, like Doom on a hard real-time system.

It's a requirement for any game that needs a reliable frame rate. Unpredictable delays during frame rendering cause jank.

(This is not to say the OP has any such issues in its context.)

Re: Peredvizhnikov Engine: Lock-free game engine written in C++20

#59
post #44

Earlier quoted context omitted.

It's probably fair to claim that zero* game developers have this hard requirement. At best they have a strong desire which might be partially backed up by benchmarks and squinting hard enough. *: ignoring deliberately esoteric cases, like Doom on a hard real-time system.

It's a requirement for any game that needs a reliable frame rate. Unpredictable delays during frame rendering cause jank. (This is not to say the OP has any such issues in its context.)

[deleted]

Re: Peredvizhnikov Engine: Lock-free game engine written in C++20

#60
post #44

Earlier quoted context omitted.

It's probably fair to claim that zero* game developers have this hard requirement. At best they have a strong desire which might be partially backed up by benchmarks and squinting hard enough. *: ignoring deliberately esoteric cases, like Doom on a hard real-time system.

It's a requirement for any game that needs a reliable frame rate. Unpredictable delays during frame rendering cause jank. (This is not to say the OP has any such issues in its context.)

This is usually called "soft realtime" -- you want it to be fast but it's not wrong if it misses deadlines. It doesn't violate correctness of the system to miss a deadline. In a "hard realtime" system, it is a fatal error if the system misses a deadline because correctness is violated. I presume this difference is what OP is talking about. Games are never hard realtime; missing frame deadlines reduces user experience but it doesn't break the game. Hard realtime is things like industrial motion control, automotive and aviation electronics, pacemakers, etc.
Post reply on HN