Bay 12 Games Forum

Dwarf Fortress => DF Dwarf Mode Discussion => Topic started by: Sorgklaan on March 27, 2016, 07:09:21 pm

Title: My friend doesn't understand how resource intensive Dwarf Fortress is.
Post by: Sorgklaan on March 27, 2016, 07:09:21 pm
Basically, I want somebody to help explain it to him. He doesn't understand how an ascii game can be so resource intensive and he has mocked me relentlessly because of it. He's a major elitist snob who only plays modern games with HD 1080420P blaze it graphics.
Title: Re: My friend doesn't understand how resource intensive Dwarf Fortress is.
Post by: steel jackal on March 27, 2016, 07:55:12 pm
tell him its single threaded, locked at 2GB ram, has to pathfind for hundreds of entities, simulate tens to hundreds of other civilizations (depending on the world) has to simulate the lives of thousands if not millions of individuals, has to do (less advanced) pathfinding for those individuals, has to simulate diplomatic actions between civilizations, has to keep detailed track of hundreads of unique monsters all with unique bodies, descriptions, and characteristics, keep track of who killed who with what when and where, has to keep track of every freaking finger, toe, fingernail, toenail, organ, body part and skin of every living and undead in your fort, has to keep track of everyons completely unique personality, has to keep track of every item ever made that still exists, has to keep tract of every single historical event ever from an unimportant dwarf eating cheese to a dragon melting a loaf of bread with its fire breath, has to keep track of every engraving which of there may be thousands in each fort and can have a great amount of detail in what they say if you have good engravers and has to track thousands of unique objects just inside your own fortress, all of which can have hundreds of decorations.


oh and did i forget to mention that your GPU is utterly useless in this game and that your CPU has to do all the work and since its single threaded you can only use 1/4th (intel) or 1/8th (AMD) your cpu capacity?

and you better pray to chuck norris that armok dosnt send 500 zombies, 100 demons, and a few megabeasts at you at the same time, lest you die from the sheer quantity of enemies dragging your FPS down

all of that on 2gb of ram
Title: Re: My friend doesn't understand how resource intensive Dwarf Fortress is.
Post by: Melting Sky on March 27, 2016, 08:33:47 pm
The best way to demonstrate it to him is take a save of 40 year old fortress with 150 dwarves in it on a good sized embark with a volcano that just breached the circus and install it on his gaming rig and watch it bring his rig to its knees.
Title: Re: My friend doesn't understand how resource intensive Dwarf Fortress is.
Post by: King Kitteh on March 27, 2016, 08:48:35 pm
tell him its single threaded, locked at 2GB ram

I don't know why, but I don't think this'll stop his mocking.
Title: Re: My friend doesn't understand how resource intensive Dwarf Fortress is.
Post by: Immortal-D on March 27, 2016, 08:54:05 pm
Admittedly, DF isn't so much resource-intensive as poorly optimized :(  When Toady gets around to 64-bit and all of the multi-core CPU goodness that comes with it, your FPS won't even blink at a mere 100 catsplosion.  That said, just tell him about the sheer level of detail involved in this simulation.  For example; The game computes every body part, of every creature, in every battle, for the entire length of WorldGen, just in case you want to read about the hilarious and bloody history of your world.
Title: Re: My friend doesn't understand how resource intensive Dwarf Fortress is.
Post by: Edward_Tohr on March 27, 2016, 09:01:56 pm
When Toady gets around to 64-bit and all of the multi-core CPU goodness that comes with it

Not to keep striking this ‼XXMangled Horse CorpseXX‼, but those are two very, very different things. Lumping them together is like saying "I have 32 gigs of RAM, and all of the CD burning goodness that comes with it".
Title: Re: My friend doesn't understand how resource intensive Dwarf Fortress is.
Post by: Lordhermitcrab on March 27, 2016, 09:03:45 pm
Admittedly, DF isn't so much resource-intensive as poorly optimized :(  When Toady gets around to 64-bit and all of the multi-core CPU goodness that comes with it, your FPS won't even blink at a mere 100 catsplosion.  That said, just tell him about the sheer level of detail involved in this simulation.  For example; The game computes every body part, of every creature, in every battle, for the entire length of WorldGen, just in case you want to read about the hilarious and bloody history of your world.

But wouldn't it be immensely difficult to recode this entire game so that it runs on 64-bit? I mean, change one thing and another 5 bugs pops up somewhere, right?
Title: Re: My friend doesn't understand how resource intensive Dwarf Fortress is.
Post by: Spinning Fly on March 27, 2016, 10:46:49 pm
Maybe this?

Spoiler (click to show/hide)

Edit: And that's just with a fort running in a 2x4 biome in a pocket size world. If you had a fairly advanced fort in a massive world with a much larger area, you'd probably see much more RAM usage.

But I don't really get the question...is he mocking you because your computer is having trouble running a game that (according to him) isn't resource intensive? Or is he mocking you because you're playing a game that (according to him) is not resource intensive?

If it's the former, then just pop DF on a usb drive and run it on his computer. That would show him how slow it gets even on his ultra badass rig.

If it's the latter, and the only reason he's turning his nose up at DF is that it's not as resource intensive as the games he plays, then he's a fucking moron anyway and there's no point wasting time on this.
Title: Re: My friend doesn't understand how resource intensive Dwarf Fortress is.
Post by: King Kitteh on March 28, 2016, 12:55:30 am
But I don't really get the question...is he mocking you because your computer is having trouble running a game that (according to him) isn't resource intensive? Or is he mocking you because you're playing a game that (according to him) is not resource intensive?

If it's the former, then just pop DF on a usb drive and run it on his computer. That would show him how slow it gets even on his ultra badass rig.

If it's the latter, and the only reason he's turning his nose up at DF is that it's not as resource intensive as the games he plays, then he's a fucking moron anyway and there's no point wasting time on this.

I think it's because he doesn't think a game with ascii graphics could be resource intensive. Seemingly he thinks that graphics are the main cause of intensiveness in a game.

Honestly you can't really blame him, most modern games strain the graphics card the most. They aren't overly complex in terms of content. It's kinda like how people laughed at minecraft for being laggy when it has bad graphics.
Title: Re: My friend doesn't understand how resource intensive Dwarf Fortress is.
Post by: Findulidas on March 28, 2016, 02:06:36 am
Your friend is an idiot or a bully. I mean it doesnt take much imagination to figure out how to make a complex game without using much graphics. You just have to keep adding stuff that the computer has to keep track of. You can then also make each new feature interact with each other.

Such as temperature having an effect on when fat boils, then that having an effect on dwarves being injured. Then it has to calculate wounds. Then it has to calculate pain. Then it has to calculate if the dwarf can continue doing what hes supposed to do or give into pain. I mean its easy to have it cascade.
Title: Re: My friend doesn't understand how resource intensive Dwarf Fortress is.
Post by: PatrikLundell on March 28, 2016, 02:34:04 am
Keeping up the beating of the ‼XXMangled Horse CorpseXX‼...

Going to 64 bits shouldn't be incredibly difficult, as it's mostly a matter of changing compiler switches, although care will be needed to ensure data types are changed to larger ones when appropriate (with the attendant adjustments of any pointer offset access to data). 64 bits won't provide much in itself, as it mainly allows DF not to crash when requiring more than 2 GB memory, but instead continue to crawl at 0.1 FPS. 64 bits is basically an enabler, like a sturdier foundation allowing you to build a higher house.

Multi threading, however, is a completely different matter altogether. It's not insanely difficult to do when implemented from scratch and basic discipline is maintained, but retrofitting something not intended for it is a fair bit more complicated. Let's try a DF analogy:
In this DF mock system we can order the production of a loaf of bread, and, as e.g. digging orders in the real DF, tasks are given in a priority order and allocated in that order. Urist McHermit is given the following tasks with the following priorities:
1. Harvest wheat (and store it in the food stockpile).
2. Pick up wheat from the food stockpile and mill it into flour.
3. Store wheat flour in the food stockpile.
4. Pick up flour from the food stockpile and take it to the kitchen to make a loaf of bread.
5. Store the bread in the food stockpile.
6. Pick up the bread from the food stockpile and eat it in the tavern.

In the multi threaded case Urist McOne harvests the wheat, while Urist McTwo, Urist McThree, Urist McFour, and Urist McFive all "cancel task, no source material". And finally Urist McOne "cancel task - no bread".

In multi threading you have to ensure everything that's dependent on things happening in a specific order actually are performed in that order, delaying dependent jobs until the preconditions are met. Sometimes you might not care which order things are happening in (regular wear of a ¤sock¤ vs wear of that same sock due to burning), and sometimes they're not related at all (King of fortress Distant ordering the execution of the Liaison in spring and the harvest of plump helmets in Fortress Local during the same tick. The former should affect Fortress Local only when the news reaches the fortress MANY ticks later, although you may give engravers the liberty of knowing, but then you have to take care the engravers aren't reading data that's only partially written). With multi threading you also have to ensure data protection, i.e. that one thread isn't affecting a piece of data while another one is reading it. If we take the !¤sock¤! above, it doesn't really matter if the wear due to fire or wear is applied first, but it does matter if its done as:
- Burn thread: Read current !¤sock¤! wear.
- Wear thread: Read current !¤sock¤! wear.
- Burn thread: Subtract burn damage wear from !¤sock¤! and write it back.
- Wear thread: Subtract wear from !¤sock¤! and write it back.
In this case the burn damage is lost, because the wear thread overwrote the results from the burn damage. This can be even worse if the !¤sock¤! gets destroyed, so the burn thread removes the now ex ¤sock¤ from the game, and the memory used by that ¤sock¤ is reused to store some completely different data altogether, like a pointer to the list of items in a new migrant's inventory. When the wear thread writes the !¤sock¤! wear it now overwrites a pointer with a wear value, and DF will probably terminate the next time it tries to access the migrant inventory list, as the pointer is corrupted and doesn't point to any legal memory in DF at all.

I'd try to explain what's said by others above. If the friend isn't interested in listening, just stop mentioning DF to him, as it's obviously a subject there's no point in discussing.
Title: Re: My friend doesn't understand how resource intensive Dwarf Fortress is.
Post by: King Kitteh on March 28, 2016, 02:55:59 am
-snip-

Kinda sounds like the longer Toady puts off multi thread support, the harder it'll be to add  :-\
Title: Re: My friend doesn't understand how resource intensive Dwarf Fortress is.
Post by: Orange Wizard on March 28, 2016, 03:03:49 am
Kinda sounds like the longer Toady puts off multi thread support, the harder it'll be to add  :-\
Pretty much, although it's basically impossible at this point anyway because you'd need to gut and rewrite 10+ years of code.

But wouldn't it be immensely difficult to recode this entire game so that it runs on 64-bit? I mean, change one thing and another 5 bugs pops up somewhere, right?
64-bit version is in the works now, and it's hardly rewriting the entire game like multithreading would be. It should speed things up a little, and unlock more memory so paging won't be such an issue.
Title: Re: My friend doesn't understand how resource intensive Dwarf Fortress is.
Post by: Shonai_Dweller on March 28, 2016, 03:15:32 am
-snip-

Kinda sounds like the longer Toady puts off multi thread support, the harder it'll be to add  :-\
And since Toady just said that it's mainly badly optimized code (for which he has a fix-list) rather than single core threading that causes fps death it probably won't get done any time soon.
Title: Re: My friend doesn't understand how resource intensive Dwarf Fortress is.
Post by: PatrikLundell on March 28, 2016, 03:31:41 am
Getting a better FPS is the goal, and multi threading is just a means. If better optimization improves the FPS gains then optimization should be higher on the priority list than threading. However, the more stuff that's thrown into DF and the more of these things there are (64 bits allowing it), the more likely it is multiple threads have to be used (but that won't help if the DF processing is limited by memory access throughput rather than CPU, though).

The more code you produce without thoughts of multi threading the harder the task. I wouldn't be surprised if a proper multi threading overhaul of DF took several years. However, you can produce new code that at least provide the basics (such as making sure all new objects introduced are accessed only via methods/operations/APIs... that either support concurrent access protection or allows easy implementation of it. It ought to be possible to implement partial threading as well, by locating tasks isolated from most everything else and put that in separate threads, with the data stores shared with the rest of DF being protected. At some time, however, the bullet will probably have to be bit through a long multi threaded only arc, with the DF coming out at the other end being a fair bit faster and subject to many horrible threading bugs that takes quite a long time to clear up. If the multi threading support was introduced properly, DF shouldn't just terminate, but produce some kind of report indicating what failed (that's sound programming practice not tied to threading, but it's surprisingly uncommon nevertheless). Such error reports would typically not tell you what was wrong itself, but rather where it was detected (such as "trying to access non existent creature inventory item", but it won't tell you where DF failed to properly remove the reference when the item itself was removed).

The problem with producing a threading foundation with new code is that most of the new code will still access the old data stores in the old, unprotected, ways, and the old code/design probably doesn't provide for a nice easy way to provide access to old data in a more multi thread ready way. You can retrofit one data store at a time, but that requires first locating and then rewriting of all the places that accesses that store.
Title: Re: My friend doesn't understand how resource intensive Dwarf Fortress is.
Post by: TheFlame52 on March 28, 2016, 10:33:45 am
Tell him every single 8-bit smiley has its own functioning circulatory, muscular-skeletal, and nervous systems. Show him the amount of data in each dwarf's profile. Tell him that it's all tracked and effects the gameplay. Also do the stuff other people said.
Title: Re: My friend doesn't understand how resource intensive Dwarf Fortress is.
Post by: Foxite on March 28, 2016, 10:38:28 am
The best way to demonstrate it to him is take a save of 40 year old fortress with 150 dwarves in it on a good sized embark with a volcano that just breached the circus and install it on his gaming rig and watch it bring his rig to its knees.
Sigging this
Title: Re: My friend doesn't understand how resource intensive Dwarf Fortress is.
Post by: Tarsis on March 28, 2016, 06:16:59 pm
Every time 64-bit and multithreading come up I learn things. Thanks for the polite discourse guys!
Title: Re: My friend doesn't understand how resource intensive Dwarf Fortress is.
Post by: NW_Kohaku on March 28, 2016, 07:39:14 pm
Actually, you could probably just tell him that many people "burn test" their rigs by downloading a program from NASA that basically outsources some of the math they need to calculate all the data they get from various telescopes and satellites.  This basically involves using 100% of your computer's processors for as long as you leave it running doing nothing but pure math problems as fast as your GPU can solve them, which is more resource-intensive (and therefore will overheat your computer more) than any graphics ever could.
Title: Re: My friend doesn't understand how resource intensive Dwarf Fortress is.
Post by: Saiko Kila on March 29, 2016, 10:13:00 am
I don't believe that changing to 64-bit will actually speed something up. Occasionally I compare 64-bit versions of programs with their 32-bit versions, and usually the 32-bit version is faster (if there's a difference), and always it takes less memory (which is expected, and which may explain why it is faster). I suppose only the bigger forts will be affected positively, and they are already crippled by other things.

But making multithreading should add more. Especially if made smartly, like adding pathfinding to another thread (which is often used in PC games) or doing that with some environmental updates. Still, it is much, much harder to do.
Title: Re: My friend doesn't understand how resource intensive Dwarf Fortress is.
Post by: TheBiggerFish on March 29, 2016, 10:39:30 am
Post to watch people beat an ‼XXMangled Horse CorpseXX‼.
Title: Re: My friend doesn't understand how resource intensive Dwarf Fortress is.
Post by: xana55 on March 29, 2016, 10:59:23 am
Just tell him if he's convinced it's so trivial to put it on his PC and see how long it lasts. I'm willing to bet it'll surprise him.
Title: Re: My friend doesn't understand how resource intensive Dwarf Fortress is.
Post by: Pvt. Pirate on March 29, 2016, 07:30:32 pm
copy it over on USB and create a large world on his computer.
while his computer bends, open the DF wiki and explain to him WHAT the game has to calculate and keep track of while time passes.
and that all the events that are being calculated will affect your game when you chose to embark.
also tell him that in every single frame, it also keeps calculating the rest of the world with all its politics, economics, tragedies, wars, marriages, childbirths, animals, animals copulating, animals dying, animal corpses being processed into items or rotting away, trees growing and dying, simlultanous to your fortress growing or going to ruin.
Title: Re: My friend doesn't understand how resource intensive Dwarf Fortress is.
Post by: Dozebôm Lolumzalės on March 29, 2016, 09:51:15 pm
HAVE HIM BREACH HELL AND THEN SEAL IT OFF

HE WILL KNOW DESPAIR

AND THE STARING AT THE TASK MANAGER ANGRILY
Title: Re: My friend doesn't understand how resource intensive Dwarf Fortress is.
Post by: Lummox JR on March 29, 2016, 11:03:12 pm
Converting a single-threaded program to multi-threaded is hideously difficult. Hideous. I could tell you horror stories.

DF might be uniquely suited to some forays into multi-threading, however, by virtue of the fact that some tasks like pathfinding could be considered inherently parallel. The temperature loop could probably be split off and also broken down into subsets, as could (to some degree) flows. The trick would be for all these things to never make a change on their own that might affect the main thread or each other, but rather to message the main thread.
Title: Re: My friend doesn't understand how resource intensive Dwarf Fortress is.
Post by: PatrikLundell on March 30, 2016, 02:31:31 am
I would expect converting a single threaded program into a multi threaded one usually to be easier to do by reimplementing it from scratch, making use of the knowledge of the overall design of the original, its algorithms, and some select pieces of code than to massage it by shifting load bearing structures around. In the case of DF, that would probably generate too much of a years long development hole. Also, the whole DF development is one of building a shack, expanding it into a cottage, then a house,...

I agree the results of what results side threads have come up with usually have to be introduced into the main memory structures through a main thread integration effort at the end of each tick, where you'll also have to resolve any conflicts (e.g. a fluid flow calculation may have to be modified or partially redone if an affecting drawbridge has been opened or closed).
Title: Re: My friend doesn't understand how resource intensive Dwarf Fortress is.
Post by: Psieye on March 30, 2016, 07:48:59 am
So to summarise the ‼XXMangled Horse CorpseXX‼, a proper multi-threading re-write looks prohibitively time-expensive. But extremely localised areas of code might (would need to be measured) see an improvement with a 'contained' implementation of parallel processing. For example, with pathfinding something like:
- "This is the list of all the units who need a path calculated"
- Pause the main thread
- "N worker threads, divide up this list and crunch through them. Your answers will be aggregated." where N is a fixed, small number
- Resume the main thread after all units have their paths assigned
Title: Re: My friend doesn't understand how resource intensive Dwarf Fortress is.
Post by: Orange Wizard on March 30, 2016, 07:56:41 am
Incidentally, Toady has said there are better ways to implement pathfinding than what he's done so far, and it could stand to be improved.
Probably involving chucking it onto a separate thread, really, but it's not like the algorithm itself is as efficient as can be.
Title: Re: My friend doesn't understand how resource intensive Dwarf Fortress is.
Post by: PatrikLundell on March 30, 2016, 08:59:56 am
So to summarise the ‼XXMangled Horse CorpseXX‼, a proper multi-threading re-write looks prohibitively time-expensive. But extremely localised areas of code might (would need to be measured) see an improvement with a 'contained' implementation of parallel processing. For example, with pathfinding something like:
- "This is the list of all the units who need a path calculated"
- Pause the main thread
- "N worker threads, divide up this list and crunch through them. Your answers will be aggregated." where N is a fixed, small number
- Resume the main thread after all units have their paths assigned
You could do it that way, or you could just have one path finding thread, one distant world event thread, one... and send these off to do their thing while the main thread continues on, reach the collation phase of the main thread, verify the paths selected and recalculate if failed apply and continue. That approach requires any changes to the fortress used by other threads to be thread safe, though (the change resulting from channeling away a wall should cause the pathing thread to either make use of the tile as blocked by a wall or removed to create a path, not mid way through the changing of the state, possibly resulting in a program termination). From this perspective, the "divide-and-conquer while I wait" approach is easier and safer (the path finding threads are all reading a frozen common state, but not changing anything), but requires you to either use a rather conservative value for N, or determine a suitable number on DF program start based on the computer it's run on. It also hinges on the number of paths to calculate each tick is usually at least 2 and frequently N for a fairly large fortress e.g. during a siege.

Incidentally, Toady has said there are better ways to implement pathfinding than what he's done so far, and it could stand to be improved.
Probably involving chucking it onto a separate thread, really, but it's not like the algorithm itself is as efficient as can be.
This is a rather important point. Before optimizing the code to be as efficient as possible, you should optimize the algorithm, as the gains there usually are much greater than anything code optimization can ever provide. Algorithm implementation also matters (iterating over a matrix column first or row first can matter a lot: if you iterate in the order the data is laid out in memory the next element is usually in the cache and quickly available, and on a cache miss several elements are usually fetched, while iterating with swapped indices can cause every read to be a cache miss if the data structure is large enough).
Title: Re: My friend doesn't understand how resource intensive Dwarf Fortress is.
Post by: Psieye on March 30, 2016, 10:01:01 am
... That approach requires any changes to the fortress used by other threads to be thread safe ... From this perspective, the "divide-and-conquer while I wait" approach is easier and safer ... but ...
Aye, I proposed the "just wait until the threads are all done" approach with safety and ease in mind - Toady doesn't have experience with multi-threaded coding/debugging and whatever time he spends getting to grips with it will be time he can't chip away at his long To-Implement list. Though ongoing world gen probably should be on its own thread anyway as most of the time the main thread won't care what's happening outside your own fortress.
Title: Re: My friend doesn't understand how resource intensive Dwarf Fortress is.
Post by: PatrikLundell on March 30, 2016, 11:09:53 am
The problem is that Toady probably will have to face the threading beast sooner or later regardless, but dipping the toe with a comparatively easy initial effort is probably wise. When that's done something with minimal interaction with other things can be attempted (such as the external world events. Even that isn't completely safe as you have to ensure engravers doesn't pick events that are only written half way, for instance). Just considering multi threading should get gears going to start a mind set where thread safety is at least somewhat present.
Title: Re: My friend doesn't understand how resource intensive Dwarf Fortress is.
Post by: Dark One on March 30, 2016, 11:58:58 am
You could show your friend a save of Doomforests or other huge and cluttered community fortress/succession game.
Title: Re: My friend doesn't understand how resource intensive Dwarf Fortress is.
Post by: HungryHobo on March 30, 2016, 01:52:26 pm
Chatting to a friend who's very into his graphics I remember saying something like

"in your game, how hard would it be to add a creature with skin made of copper, blood made of molten iron, hair made of silver wire and bone made of stone that bleeds burning molten iron when cut and adjusts it's behavior when you cut off a limb"

"quite a while...."

"I just added it to DF while we were talking. Hey, look ,I just added a female of the species which has golden skin"

Once you get people to realise what gets excluded from more graphical games simply because it's hard to animate they can change their view of DF.
Title: Re: My friend doesn't understand how resource intensive Dwarf Fortress is.
Post by: King Kitteh on March 30, 2016, 09:08:28 pm
Once you get people to realise what gets excluded from more graphical games simply because it's hard to animate they can change their view of DF.

I don't know what game you're talking about because, darn. Adding those [CREATURE_TILE:][COLOR:] can take hours of work. I usually just give up, too much effort.
Title: Re: My friend doesn't understand how resource intensive Dwarf Fortress is.
Post by: Nyxalinth on March 30, 2016, 10:57:48 pm
Urist cancels beat ‼XXMangled Horse CorpseXX‼: interrupted by ‼XXMangled Horse CorpseXX‼ zombie.
Title: Re: My friend doesn't understand how resource intensive Dwarf Fortress is.
Post by: omega_dwarf on April 02, 2016, 03:41:02 pm
Having him specifically browse through legends on a large world, and subsequently realize how many of those figures and civilizations and sites are still around and kicking, might bring him around.

Then mention that that's only one of like five major tasks DF has to perform (have been mentioned elsewhere) each tick.

(As a side note, I'm teaching myself how to use basic threading [hobby programmer], and yeah. Until you've done it, it's hard to envision the headaches - and mine is a relatively young project, pretty much barebones engine. PatrickLundell provided a good explanation of the moment it hits you that it's not as easy as it seems.)

Very interesting topic.
Title: Re: My friend doesn't understand how resource intensive Dwarf Fortress is.
Post by: fluffymormegil on April 03, 2016, 09:06:16 am
I don't believe that changing to 64-bit will actually speed something up. Occasionally I compare 64-bit versions of programs with their 32-bit versions, and usually the 32-bit version is faster (if there's a difference), and always it takes less memory (which is expected, and which may explain why it is faster). I suppose only the bigger forts will be affected positively, and they are already crippled by other things.
If your program's performance is limited by CPU register space, going from x86-32 to x86-64 (specifically) will get you real performance improvements because you now have 16 registers instead of 8. (This doesn't apply to 32-bit vs. 64-bit versions of most other architectures.)

If your program relies heavily on 64-bit integers, going from any 32-bit arch to its corresponding 64-bit arch will get you real performance improvements because your registers are now 64 bits wide so the generated assembly code is much simpler (and may well involve fewer loads/stores).
 
If your program's performance is limited by the speed of pointer-chasing and your whole data set (using 32-bit pointers) fits in the address space available to 32-bit applications on your chosen operating system (a combination which applies to a lot of programs in practice), going from a 32-bit arch to a 64-bit arch will - as you've seen - actually make your performance worse, all else being equal.
Title: Re: My friend doesn't understand how resource intensive Dwarf Fortress is.
Post by: Somebodyelse on April 03, 2016, 01:26:56 pm
Basically, I want somebody to help explain it to him. He doesn't understand how an ascii game can be so resource intensive and he has mocked me relentlessly because of it. He's a major elitist snob who only plays modern games with HD 1080420P blaze it graphics.

He sounds like a self-absorbed egotistical superficial jackass who measures his fun in other peoples' unhappiness and looks down on others just because it makes him feel better about himself.

The solution to your problem is to stop being friends with him.

People like that don't want to understand anything. They only want something or someone to exclude/dismiss/one-up/dominate/mock or otherwise diminish in anyway they can to heighten their sense of self. As another poster already said: a bully.
Title: Re: My friend doesn't understand how resource intensive Dwarf Fortress is.
Post by: Pvt. Pirate on April 04, 2016, 03:00:38 pm
very well said, somebodyelse.
long ago i've chosen to get rid of all those kind of people in my life and ever since my life has become more pleasant.