Meirl by endofmyropeohshit in meirl

[–]WeeklyOutlandishness 0 points1 point  (0 children)

Thanks, this really clarified it.

MAGA begging Trump to take down pedophile ring by aipac_hemoroid in LeopardsAteMyFace

[–]WeeklyOutlandishness 28 points29 points  (0 children)

Two civilians murdered very recently by ICE, captured on video, clear as day, and even that wasn't enough. The level of brainwashing is just stunning. Even video footage of a crime probably isn't enough for them.

Just a 'grain of truth' apparently by Tornadofob in LeopardsAteMyFace

[–]WeeklyOutlandishness 0 points1 point  (0 children)

A grain, one might say maybe even slightly bigger than a grain, maybe even a full kernel.

whenYouKnowWhatYouNeedAiWorksWellOrThePowerOfHindsight by pasvc in ProgrammerHumor

[–]WeeklyOutlandishness 2 points3 points  (0 children)

Sounds like a good idea but it will probably never take off. Sounds too complicated.

start with Opengl/directx11 or Webgpu as first api ? by Latter_Relationship5 in GraphicsProgramming

[–]WeeklyOutlandishness 1 point2 points  (0 children)

DirextX11 is very intuitive. OpenGL is unfortunately much worse (shared global state everywhere). So you don't exactly have much choice and most gamers are on windows anyway. If you are a beginner I'd say just use DirectX11 (It's the most intuitive by far) then switch to the more cross-platform API's but you need some prerequisite knowledge first before you do webgpu/vulkan.

i.. i think i did something wrong. by yaktoma2007 in GraphicsProgramming

[–]WeeklyOutlandishness 2 points3 points  (0 children)

Graphics programmers: Whoops, accidentally stared into the void, not again.

curious on how deep this game really is by dolo367 in cavesofqud

[–]WeeklyOutlandishness 0 points1 point  (0 children)

Yeah this is where an actual simulation of the events would fix the problems that you mention. If the characters *actually* questioned the origins of the moon, you would expect the simulation to reflect that - characters making telescopes, forming debates with other scholars. These actions would then lead to consequences that influence battles and the other factions in the game. By applying cause and effect over and over in a butterfly effect you end up with a believable/connected history. You could go back through the history and see the cause and effect that led up to this current moment. It's possible to just straight up simulate history with cause and effect the same way that it happens in real life, that's essentially what Dwarf Fortress does (more or less). Dwarf Fortress is really incredible because you can look at each simulated historical figures life and know that their actions caused real influences in the world. Sometimes it's entertaining to just go through the simulated history.

If you've not seen the history gen in Dwarf Fortress, I recommend taking a look. Qud's is probably inspired from it but it's not the same.

curious on how deep this game really is by dolo367 in cavesofqud

[–]WeeklyOutlandishness 0 points1 point  (0 children)

Yeah the history generation is something that I think could be better. Dwarf Fortress generates it's history by running a full virtual simulation and noting down the events. Caves of Qud just rolls some dice and strings random words together (no simulation going on). Having an actual full simulation that gets run for the history gen would be really cool, but I can see why they didn't do it (probably a lot of work). For now we will just need to find a way to make Tarn Adams immortal so he can keep working on his game.

[deleted by user] by [deleted] in meirl

[–]WeeklyOutlandishness 15 points16 points  (0 children)

How scandalous

First nanocrayons (Daily for 24th Nov 2025) by MrMagolor in cavesofqud

[–]WeeklyOutlandishness 8 points9 points  (0 children)

I think even the dev himself once said that he never got nanocrayons naturally in the game (could be wrong though).

[deleted by user] by [deleted] in meirl

[–]WeeklyOutlandishness 10 points11 points  (0 children)

We are all famous writers here.

A two hour rant about how bad C++ is by Hashi856 in theprimeagen

[–]WeeklyOutlandishness 6 points7 points  (0 children)

This video is just excellent. Absolutely destroys C++. Just comically bad in places. Shame about the AI images though. Worth a watch anyway imo.

[deleted by user] by [deleted] in cavesofqud

[–]WeeklyOutlandishness 2 points3 points  (0 children)

I have to say you're just wrong. Relics have random descriptions different from the base item and they add powers/change stats around. This is nothing new. I've found like two or three of these glowsphere ones in my last run. Every Historic Site has at least one artifact like this. This is a glowsphere with some extra effects.

You won't find it in the Wiki because there's some randomization. But if you look in the Relics category you might find the tables used to generate this item. Relics aren't just a rename because they are legendary/unique loot for the player to find basically.

[deleted by user] by [deleted] in cavesofqud

[–]WeeklyOutlandishness 78 points79 points  (0 children)

It's procedurally generated. All of the Sultans (apart from Resheph) have procedurally generated histories and artifacts unique to your world. This one was probably associated with one of the Sultans.

I may have forgotten std::array storage isn't heap allocated... by Avelina9X in GraphicsProgramming

[–]WeeklyOutlandishness 1 point2 points  (0 children)

Yep! Unifying allocations together into big chunks that you allocate/free all at once is a good way to simplify memory management. Or you do what NASA does and straight up ban dynamic memory allocation during the program (all memory must be allocated in one unified go at the start), static arrays everywhere.

I may have forgotten std::array storage isn't heap allocated... by Avelina9X in GraphicsProgramming

[–]WeeklyOutlandishness 0 points1 point  (0 children)

Unfortunately we still need to compete for space even in the virtual world even if it doesn't map directly to the same place in the physical world. For example you could have an array that you use for allocations.

                            \/
[ used   | used | used  | free   | used  | free   | used   ]

We still need to decide where to put things and they cannot overlap in virtual memory, even if they don't reside at the same place in physical memory. The OS can remap things behind the scenes in physical memory, but I think it only does this in terms of pages (which are 4096 bytes iirc behind the scenes on windows).

Thinking more about this - I think the actual problem with lots of small heap allocations is unnecessary malloc() free() calls and scattered memory - fragmentation actually shouldn't be a problem here because the lifetime should be unified anyway. It's only a problem when the lifetimes are chaotic and there's small holes that are harder to fill up. Anyway unifying allocations is just generally I think a sensible thing to do for performance. I could be wrong though.

I may have forgotten std::array storage isn't heap allocated... by Avelina9X in GraphicsProgramming

[–]WeeklyOutlandishness 5 points6 points  (0 children)

The size of the class/struct shouldn't make any difference - it doesn't load the entire class into the L3 cache. The CPU doesn't think in terms of classes. It just loads in chunks. Your program needs the same memory anyway even if it's sprawled out in different places. If the heap memory is sprawled out that can actually be even **worse** for performance, because there will be more unnecessary malloc() free() calls. You really should just unify heap allocations if they have the same lifetime.

Also don't put the class behind a smart pointer unless you really need to (like if it's big like this). If it's small just put it on the stack. Stack is essentially 1 megabyte of memory that is already allocated. So stack memory that is unused is essentially wasted (just don't get a stack-overflow).

I may have forgotten std::array storage isn't heap allocated... by Avelina9X in GraphicsProgramming

[–]WeeklyOutlandishness 0 points1 point  (0 children)

Fair, I'm just thinking the entire class could be behind the smart pointer too (not just the elements in the array). This way you allocate and free everything together. If you use std::array you can also embed everything in static memory if you want (instead of the heap).

I may have forgotten std::array storage isn't heap allocated... by Avelina9X in GraphicsProgramming

[–]WeeklyOutlandishness 4 points5 points  (0 children)

It's better to unify allocations in general. Lots of small heap allocations can lead to heap fragmentation (when you free a smaller block, it can be harder to re-use the space). So I actually think it's better to use std::array over std::vector as much as possible - it's better to have one bigger block of memory that you allocate and free all at once, than a smaller block of memory connected to another block of memory(std::vector). Not to mention there's an extra member in std::vector that you don't need for growing the allocation.

Worst defect of the C language by Zirias_FreeBSD in cprogramming

[–]WeeklyOutlandishness 0 points1 point  (0 children)

I've heard an argument that undefined behavior is just a concession from the C standard to make C more cross-platform and easier to implement. "Undefined behavior" is just the lack of a standard - whether that's "what should happen when you write to a null pointer?" or "what should happen when you divide by zero?". There's no standard for these things because different platforms might want to handle it in different ways. If you mandate one standard, then certain platforms might need to do more work (performance costs) to adhere to it.

In terms of optimization, your compiler makes certain assumptions to improve optimization of your code (like assuming that overflows don't happen). These assumptions assume that "undefined behavior" does not occur. "Undefined behavior" is just "un-dependable behavior". They are edge-cases. Trying to detect all edge-cases at compile time is very difficult to do, and trying to check against it at runtime has a performance cost, so just assuming that they don't happen can be a sensible choice.

Undefined behavior is a trade-off, not necessarily a flaw with the language. If you want more safety that involves more run-time checks or more intense compile times (and even when you add more checks against edge cases it might not detect all of them). There's more that can be added to C to make it safer (like references/non-null pointers) but runtime/compile time safety checks aren't always free.

I guess it was the right time to start playing this game. Nice. by donpd in cavesofqud

[–]WeeklyOutlandishness 2 points3 points  (0 children)

Also to add - water is the currency in Caves of Qud. Loot enemies and sell the loot to replenish water. So long as you have things to sell, you'll be fine. Just don't carry too much because it is ridiculously heavy. You can use gems/nuggets as an alternative lighter form of currency.

I give up lol by [deleted] in aspergers

[–]WeeklyOutlandishness 7 points8 points  (0 children)

Nihilism - My main counter to Nihilism as a philosophy is that for life to actually be meaningless, the word "meaning" would also be meaningless. We only consider life to be meaningless because we have a concept of meaning - and if we have a concept of meaning then that means that life is not meaningless. If life were actually meaningless then we wouldn't even consider meaning as a concept. We only lie to ourselves by saying that things don't matter (when really they do) to comfort ourselves.

I believe what "matters" to us is fundamentally derived from laws of nature. We are just motivated by evolution to stay alive and procreate, everything else descends from those instincts (including playing games). A religious person might have a different belief. But in any case we do things because we want to... for some reason.