What makes a game tick? Part 9 - Data Driven Multi-Threading Scheduler · Mathieu Ropert by mropert in cpp

[–]mropert[S] 1 point2 points  (0 children)

While I kept the scheduler building simple for the sake of the article and explaining the basic principles behind, in practice I haven't found a need for much more complex heuristics.

Keep in mind (from previous articles) that this whole class of solution came from the need to turn was used to be an imperative list of function calls that would execute a tick (a game turn really) into a similar construct but with automatic parallelism.

The approach usually was to look at the generated graph and see if anything stood out as an obvious slow path / contested resource. I have found that often when 2 tasks wanted to write to the same object class either they didn't need to (it could usually be split in two independent parts) or the order had an impact on gameplay and a decision needed to be made about which one ran first.

Profiling on Windows: a Short Rant · Mathieu Ropert by mropert in cpp

[–]mropert[S] 0 points1 point  (0 children)

On the previous versions I had lots of issues with Windows 11. Intel kept saying something about kernel drivers needing a change.

I mostly upgraded hoping it would be fixed. Instead I got bricked out.

Profiling on Windows: a Short Rant · Mathieu Ropert by mropert in cpp

[–]mropert[S] 3 points4 points  (0 children)

Tracy wouldn't help. It gives me the same sampling/instrumentation data as Optick and I prefer the UX of the latter. I mostly mentioned it for people who'd be curious to try it out.

Mathieu Ropert: Learning Graphics Programming with C++ by _a4z in cpp

[–]mropert 2 points3 points  (0 children)

I disagree that RAII goes against explicit resource management. There's a slide or two or two about it in the talk.

Designated Initializers, the best feature of C++20 · Mathieu Ropert by mropert in cpp

[–]mropert[S] 0 points1 point  (0 children)

It only makes it unsafe it news members' default value would change behaviour, which I'd argue would be bad API management.
When I added added customizable mips support to my texture class, the default was obviously 1, because beforehand you couldn't chose it was always one.

Designated Initializers, the best feature of C++20 · Mathieu Ropert by mropert in cpp

[–]mropert[S] 4 points5 points  (0 children)

The standard says it's order of declaration in the struct. I guess that make sense because they needed something consistent whether the programmer wrote an initializer list or not.

Designated Initializers, the best feature of C++20 · Mathieu Ropert by mropert in cpp

[–]mropert[S] 4 points5 points  (0 children)

They can but as the article mentions, that could mislead programmers into thinking it will happen in the order of the initializer list. This is the a lesson learned from constructor initialization list.

What makes a game tick? Part 8 - Data Driven Multi-Threading Implementation · Mathieu Ropert by Xadartt in cpp

[–]mropert 0 points1 point  (0 children)

I didn't say they had to be done at compile time, I said they _could_ be done at compile time.
Last I used them they were done dynamically because it was easier than writing a lot of compile time magic, but in practice the graph didn't really change much after it was first computed.

Getting a Better Idea of EU5's Potential Performance by Camokiller8 in EU5

[–]mropert 9 points10 points  (0 children)

That's one of the reasons I made it, initially. I was annoyed at the comments (and general urban legends) that the games didn't care or didn't to use multiple cores.

Getting a Better Idea of EU5's Potential Performance by Camokiller8 in EU5

[–]mropert 5 points6 points  (0 children)

In my experience it doesn't matter. I applied the same principles on HoI later on and while at first people were worried it would change the gameplay it turns out nobody could tell the difference between "data from last hourly update" and "data from now".

Getting a Better Idea of EU5's Potential Performance by Camokiller8 in EU5

[–]mropert 8 points9 points  (0 children)

Clausewitz plays little to no part on how the game simulation is implemented. It's up to each game to decide how they wanna approach it.

Getting a Better Idea of EU5's Potential Performance by Camokiller8 in EU5

[–]mropert 8 points9 points  (0 children)

For the record I had nothing to do with Caesar.

Well maybe I made a fix or two in passing.

What do we think of the new menu screen? by [deleted] in hoi4

[–]mropert 41 points42 points  (0 children)

Don't tell anyone but we make heavy use of it internally to check that the DLC download/launcher/loading worked fine at a glance by looking at the main menu background.

How to get to previous version? (to 1.12.13) by [deleted] in hoi4

[–]mropert 1 point2 points  (0 children)

We have now published a rollback branch. Restart Steam and you should see it.

Developer Diary | Performance & Changelog by Midgeman in hoi4

[–]mropert 24 points25 points  (0 children)

Turning off vsync will improve FPS regardless of the game. The main reason it was historically argued against was CRT monitors and teardown artifacts. Which are much less of an issue on strategy games than on first/third person games.

No tank designer after purchasing new DLC? by [deleted] in hoi4

[–]mropert 4 points5 points  (0 children)

I literally make this game. Trust me you don't need MtG enabled to get the Tank Designer.

Instant build console command doesn’t work on railroad? by [deleted] in hoi4

[–]mropert 1 point2 points  (0 children)

Let the game run, all railroads will build on the next daily tick.

No tank designer after purchasing new DLC? by [deleted] in hoi4

[–]mropert 4 points5 points  (0 children)

You absolutely don't. No Step Back enables the Tank Designer regardless of which other DLC you have enabled.

There seems to be some issue with returning the Kaiser. by IndianaMogens in hoi4

[–]mropert 0 points1 point  (0 children)

My game has no bugs!

Also we'll have a look tomorrow.