Advertisement · 728 × 90

Posts by David Pol

Oops, good catch, thank you! I am right in the middle of a refactoring pass and missed this part. It is fixed now.

7 months ago 1 0 1 0
Video

Just finished implementing asset hot-reloading and dynamic texture atlasing in the engine.

#gamedev #c #sdl

7 months ago 10 3 0 0

• Having access to _Alignof/alignof makes arena allocation nicer, as it can be wrapped in a macro that automatically passes the required alignment for the type (avoiding any waste caused by over-aligning for the worst case).

• Anonymous structs/unions make for more succinct code with nested types.

8 months ago 3 0 0 0

I just upgraded my C99 codebase to C11. It improves a few things here and there:

• I use forward declarations a lot. But it turns out redeclaring typedefs in the same scope, which is just fine in C++, is not legal in C99. I only learned about this when compiling with -pedantic for the first time.

8 months ago 3 0 1 0
X11/Wayland in SDL 3 On why SDL 3 picks X11 over Wayland on some Wayland-based Linux distros.

A recent Fedora upgrade turned into a "Linux ecosystem: X11 and Wayland" crash course for me, so I wrote some quick notes about it in case they might be helpful. Or, in other words, why SDL 3 might still pick X11 over Wayland even on a Wayland-based distro.

www.innercomputing.com/blog/x11-way...

10 months ago 2 2 1 0
Preview
6 usability improvements in GCC 15 | Red Hat Developer GCC 15 brings better error messages and diagnostics for your code, including prettier execution paths and easier-to-read compiler errors for C++ templates

Some nice improvements for C/C++ programming coming in GCC 15.

developers.redhat.com/articles/202...

1 year ago 2 1 0 0
C language The homepage of the C programming language

C has an official website now!

www.c-language.org

1 year ago 6 2 1 0

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.

1 year ago 0 0 0 0
Advertisement
Generic collections in C An overview of different approaches for emulating generics in C.

Every time I encounter a void*-based collection implementation in C, my heart sinks. 💔

So I wrote some notes on writing generic collection code, as it turns out you can go pretty far without sacrificing type safety in the process.

#c #gamedev #indiedev

www.innercomputing.com/blog/generic...

1 year ago 17 3 1 0

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.

1 year ago 0 0 0 0
Preview
Solitaire — LocalThunk I have cited a few games as inspiration for Balatro in the past, but I wanted to talk about one in particular that hasn’t been mentioned much that arguably is the most important. I think if I had som...

Some #gamedesign notes by LocalThunk (of Balatro fame). It is very interesting to contrast the 'evergreen, comforting and low-stakes' type of experience the author intended with the way many players are interacting with the game.

localthunk.com/blog/solitaire

1 year ago 4 0 1 0
TypeScript types can run DOOM
TypeScript types can run DOOM YouTube video by Michigan TypeScript

Running DOOM on TypeScript types might just be the endgame of the "Can it run DOOM?" subject matter.

www.youtube.com/watch?v=0mCs...

1 year ago 2 0 0 0
Video

Just finished with the implementation of the 2D sprite renderer for my course. It uses the new GPU API in SDL 3, which is very nicely done.

Now moving on to writing how it all works! ✍️

#gamedev #c #sdl

1 year ago 16 2 1 0

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.

1 year ago 1 0 0 0

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.

1 year ago 1 0 1 0
Advertisement

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.

1 year ago 1 0 1 0
CppCon 2014: Mike Acton "Data-Oriented Design and C++"
CppCon 2014: Mike Acton "Data-Oriented Design and C++" YouTube video by CppCon

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...

1 year ago 1 0 1 0
Data-Oriented Design (Or Why You Might Be Shooting Yourself in The Foot With OOP) – Games from Within

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...

1 year ago 1 0 1 0
Post image

Putting the final touches on the entity systems chapter of the course. It covers data-oriented programming and the implementation of an ECS in C, which is a very interesting exercise in terms of design decisions and data structures.

#gamedev #indiedev #gameengine #c #sdl

1 year ago 8 3 2 0
Preview
Orthodox C++ Orthodox C++. GitHub Gist: instantly share code, notes, and snippets.

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.

1 year ago 5 0 0 0
Post image

This also means I can finally update this section of my game engine programming course, which makes me very happy.

1 year ago 1 0 0 0
Preview
Release 3.2.0 · libsdl-org/SDL Announcing the SDL 3 official release! SDL 3.0 is finally here! We have many many people to thank on the road to get here, but I'd like to call out special thanks to: @slouken and @icculus, lead d...

SDL 3.2.0 is out! This is the first stable release of SDL 3, containing many notable changes and improvements. A particular highlight of mine is the new, compute-ready GPU API.

#gamedev #indiedev #gameengine #c #sdl

github.com/libsdl-org/S...

1 year ago 10 3 1 0
Advertisement
Single translation unit builds Because, sometimes, the best build system is having no build system.

I wrote some more detailed notes on single translation unit builds in C that might be useful if you are interested in keeping a simple workflow. Sometimes, the best build system is having no build system in the first place.

#c #gamedev #indiedev

www.innercomputing.com/blog/single-...

1 year ago 9 2 0 0
Designated initializers and compound literals in C A better way to initialize structs in modern C code.

Designated initializers and compound literals are awesome features of C99 that almost turn C into a new language, so I wrote a small blog post explaining how they work in order to spread the word.

#c #gamedev #indiedev

www.innercomputing.com/blog/designa...

1 year ago 9 3 0 0
Preview
Release 3.1.8 · libsdl-org/SDL This is an update to the SDL Stable ABI Preview. As promised, this update maintains ABI compatibility with 3.1.3, and has lots of bug fixes as we head towards 3.2.0 release. In addition, this updat...

SDL 3.1.8 is out! This pre-release version adds many goodies:

• Asynchronous I/O
• Main thread dispatching
• Desktop tray API
• Support for format strings in debug text rendering

#gamedev #indiedev #gameengine #c #sdl

github.com/libsdl-org/S...

1 year ago 9 1 0 0

Thank you, Michael! Different beasts indeed. 🙂

1 year ago 0 0 0 0
How to get started with C programming Some notes on making your learning journey a bit less daunting.

I wrote some notes on how to get started with C programming. The process can be a bit overwhelming if trying to learn it all at once, and I have found that focusing your efforts on a smaller and more modern subset can be really helpful.

#c #gamedev #indiedev

www.innercomputing.com/blog/how-to-...

1 year ago 16 4 0 1

Oh I see, thank you! This is great to know, as it made me learn what I did left a pointless GRUB entry.

1 year ago 1 0 0 0

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'.

1 year ago 0 0 1 0
Advertisement
Post image

Today I realized my Linux machine had been stuck with an older kernel version ever since I did the upgrade from Fedora 40 to 41.

'Manually messing with the kernels' rite of passage is now complete.

#framework #linux #fedora

1 year ago 2 0 1 0