davidpol.bsky.social
Handcrafted game programming and custom game engines.
https://innercomputing.com
52 posts
258 followers
88 following
Regular Contributor
Active Commenter
comment in response to
post
My code was not properly accounting for this difference yet. I had assumed Mac OS was the only platform with a different behavior regarding high-DPI displays, and I have only been testing on Windows and Linux so far. This was a very roundabout way to go about this all, but it is fixed now.
comment in response to
post
Now, what does this have to do with the size of my window being wrong? Well, when it comes to supporting high-DPI displays, X11 works similarly to Windows (which deals in physical pixels), while Wayland works similarly to Mac OS (which deals in window coordinates).
github.com/libsdl-org/S...
comment in response to
post
Gnome's compositor, Mutter, only recently added support for these protocols. Fedora Workstation 42 upgrades Gnome from version 47 to version 48, which incorporates these changes. So SDL was using X11 on Fedora 41 and is now using Wayland on Fedora 42.
www.phoronix.com/news/GNOME-M...
comment in response to
post
Starting with SDL 3, SDL does indeed prioritize using Wayland. But it only does so if the underlying compositor supports the fifo-v1 and commit-timing-v1 protocols, as these are required to precisely time display updates.
github.com/libsdl-org/S...
comment in response to
post
Yes, you can extend the idea depending on how you want to use them. I do single translation unit builds, so linking is not an issue.
comment in response to
post
Putting an actual end to the game in ante 8 would have made it clearer that this title is not really after the "Slay the Spire playing experience" (where beating the game is more like the actual beginning), but I wonder how such a design decision would have affected its reception.
comment in response to
post
Exactly! I have also found that "using the right tool for the job" in practice often means ending up with a combination of different approaches in the same codebase.
comment in response to
post
Many games have a small and well-defined set of entity and component types, and these are probably better served by an ad-hoc architecture that avoids the rigidity and complexity an ECS would introduce. It can still be data-oriented, but just a simpler approach tailored to the problem at hand.
comment in response to
post
A data-oriented approach does not _require_ using an ECS architecture. I see ECS more useful when writing code that is intended to be used for a wide variety of different games, or as a way to manage the complexity with game designs involving a combinatorial explosion of behaviors.
comment in response to
post
Data-oriented programming is about understanding the shape of the data in your problem domain in order to maximize performance on contemporary hardware (and improve modularity in the process): What are the inputs and outputs? What is the transformation process?
www.youtube.com/watch?v=rX0I...
comment in response to
post
I try to present a non-dogmatic view on the ECS architecture, which is too often introduced as a "One True Way" of doing things nowadays. Many of the original resources on data-oriented programming do not even mention the term ECS in the first place!
gamesfromwithin.com/data-oriente...
comment in response to
post
Orthodox C++ is a reasonable subset if you want to keep things minimal: gist.github.com/bkaradzic/2e...
And if you want to avoid the STL, there are interesting alternatives such as the EASTL, Sane C++ by @pagghiu.bsky.social or Bedrock by @jeremy.laumon.name.
comment in response to
post
This also means I can finally update this section of my game engine programming course, which makes me very happy.
comment in response to
post
Thank you, Michael! Different beasts indeed. 🙂
comment in response to
post
Oh I see, thank you! This is great to know, as it made me learn what I did left a pointless GRUB entry.
comment in response to
post
The solution was to uninstall the current kernel with 'sudo dnf remove' and set the latest as the default with 'sudo grub2-set-default'. A list with the names of the installed kernels can be retrieved with 'rpm -q kernel'.
comment in response to
post
It is also my humble attempt to put an end to the hegemony of malloc/free shenanigans that far too many educational resources still seem to get caught up in, ultimately driving programmers away from a topic that is not as obtuse as often presented.
comment in response to
post
I am putting a lot of emphasis on how the process of treating memory as a first-order consideration and grouping objects based on their lifetimes can be very useful for memory budgeting and tracking purposes, as well as result in better and simpler memory management code overall.
comment in response to
post
Just experimenting. VSCode is a great option to keep an identical setup between platforms.
comment in response to
post
It's only been a few days, but I am genuinely impressed so far.
comment in response to
post
I have mainly used it plugged in so far, but a MacBook Pro with Apple Silicon has definitely better battery life.
comment in response to
post
I love it. The smaller size and more aggressive pinky stagger are a better fit for my hands than the Lily58 I was using before.
comment in response to
post
It is good, but I think the trackpad on the MacBook is still best in class.
comment in response to
post
You do not need to reinstall; new versions appear on the Software application similarly to regular updates.
comment in response to
post
It is a Ferris Sweep with Ambients Twilight switches.
comment in response to
post
I am still using Windows (no way around it as a game programmer). I just wanted to make sure my code also works well on Linux and explore the ecosystem first-hand.
comment in response to
post
As for the programming, I am currently using Alacritty as the terminal emulator, Zellij as the terminal workspace and Neovim as the text editor (with lazy.nvim for plugin management). I will probably end up refining this environment over and over, but it already feels very good as a starting point.
comment in response to
post
Fedora 41 has been very stable, with all the hardware working just fine out of the box. A file explorer with no fluff? Straightforward privacy settings? Kind of depressing that this is is something that needs to be celebrated these days, but I guess that's where we are at.
comment in response to
post
Building the laptop was very straightforward. I have not used it much in "laptop mode" yet, but so far I would highlight:
- The 2.8K 120Hz matte display with a 3:2 aspect ratio.
- The keyboard travel feels very nice.
- The customizable expansion cards.
- The physical camera/microphone switches.