Bay 12 Games Forum

Please login or register.

Login with username, password and session length
Advanced search  

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - Romaq

Pages: [1] 2
1
Yeah. I can't really guess how the data is managed, and that aspect is still way out of anything I really know anything about. Other than CTD. I don't like CTDs. I know that much. :)

2
Yeah. Separate volume control/ mute-toggle for the channels that make sense to set that way would be a big help. :)

Music
Voice
Ambiance/ Weather?

I verified music re-triggers on any event even when I turn the volume control 'off'' for the music channel using the speaker icon (not the red block button).

3
One change I thought of would be to have a separate 'display' fork from the running code. Simply turn the 'do stuff' DF process into a server that puts state changes into a queue along with reading from a command queue (things like 'build' or 'designate' that force a halt to the running 'do stuff' thread).

Then you would have a separate thread who's mission is simply to display state changes, interpret 'change display' requests (level up/ down, move display in a compass direction, alter display size). Even if your 'do stuff' thread had a frame-rate of 10 FPS, your display thread (running on its own core) would cheerfully display at 50 FPS, and if you gave it a 'build/ designate/ pause' command, it would receive the command right away and be able to throw a HALT signal to the 'do stuff' process. The processes could run separate cores and with totally separate memory. They would have a common I/O queue to communicate state changes and command. Both processes would still have to be aware of what memory they have to work with, so as to not CTD on the memory boundary.

Just ideas. I really don't know what the hell I'm talking about. Other than... it bites hitting a CTD on 2 GB of memory on a 9 GB machine with plenty of open real memory space.

4
DF Suggestions / Re: 'Test Run Mode' for DF returning standardized score.
« on: December 13, 2011, 06:53:00 am »
By 'scorecard' I was simply thinking in terms of "DF test completes in 3 minutes avg. 40 fps graphics 45 fps, available memory (2 GB) maxed out at 1 GB). Recommend max embark size of 12 x 12 with a max settler setting of 80 for recommended performance."

Stats that tell you something useful about how well your machine runs DF on a test database, your max embark size given your memory, and what limit you should set on mobiles for 'recommended performance'.

It's all very well to say, "Well, a 4 x 4 embark is JUST FINE, you shouldn't need or want any more than that."

Toady allows for a 16 x 16 embark, even though it will CTD as it runs out of memory attempting to allocate that much. If I could do a 16 x 16 embark, well why the hell not? If I could have my DF support 200, 500 or 1000 dwarves and still get a framerate of 20, why not? Why can't maxing out DF be my 'megaproject'?

If it's cool and fine and wonderful to build a working (if terribly slow) virtual computer within DF, what'n'hell's wrong with wanting to max out DF itself? Or perhaps a better question... what'n'hell's wrong with having DF itself give me some sort of standardized info (stats/ scorecard) where I can 'max out' but still have a playable game that doesn't CTD?

5
You are correct. I dunno. I think I'll just keep enjoying the game as best I know I can and let other people sort it out. I'll just go on record as thinking that CTD's by memory ought to go away, one way or another.

6
DF Suggestions / 'Test Run Mode' for DF returning standardized score.
« on: December 11, 2011, 04:02:04 am »
While discussing 'embark size' issues and CTDs, I had the thought of DF having a 'test mode' that runs on a pre-packaged setup world/ fortress, and this runs in a 'test' mode.

When you start the test mode, DF unpacks this standardized 'game in progress' that includes a group of dwarves committed to battle against some goblins, a waterfall and dwarves both prepared for jobs and tasked with hauling. The test mode disallows interface interruptions... the user is forced to wait, and mode displays graphics only of the battle near the waterfall (so as to work graphics as intensely as possible). The test runs for a useful number of frames, say 500 or whatever number is 'long but not too long' at max.

After the end of the run, the test mode provides "Useful Info (tm)."

What's the largest size embark I should consider to avoid FPS death of my fortress?
Do I actually have sufficient memory to support the max size recommended?
What's the max dwarves I should consider for a fortress of that size? What if I used a fortress a quarter that size? Can I double the number of dwarves allowed?

I'm not certain of the details, but the goals of such a test would be to help the player better determine their embark size strategy to ensure their fortress dies from HFS, as opposed to FPS or CTD.

Death by HFS is a healthy part of the game. Death by FPS is undesirable. Death by CTD is ... well, CTD should go away.

Oh, and as a side benefit, the 'test mode' could create a scorecard on system performance that could be used by Toady to know what level of hardware the fans are using at any given time. Reporting one's scorecard would be voluntary, and it would also allow for a bit of bragging rights. If the larger portion of people playing DF are using higher end systems, that would indicate Toady has more iron available on the typical machine he could put to use in DF.

7
It sounds as if the only concern with a 16 x 16 embark, were it possible, is FPS death. Ever faster hardware will keep pushing FPS death back, as well as playing so as to keep the mobile count down. FPS death 'of a sort' is also a problem for Civilization, including Civ V: you have to wait for the other Civs to 'take their turn'. So at some point you decide to cut back on the number of Civs and size of your world to make playing the game tolerable.

But if you have a $2000 'game machine' or a cheap used Sun Blackbox emulating Windows, it ain't braggin' if you can swing it. :)

Civ V does not bother attempting to stop you from playing 'max size world + max size civs'. It certainly doesn't CTD when you attempt to do so. It simply has you wait while the many other Civs are plotting your death behind your back. Some sort of 'test mode' in DF wouldn't hurt.

"Run System Test" could be a new menu option. The system test returns a recommended 'max setting' and offers to write that max setting into your system's config file. The system test simply has a stock fortress and it spends a minute running that fortress from a known start point. A group of dwarves are committed to battle, foes are ready to destroy them. Other dwarves have tasks assigned to them, and the test runs for, say, 500 frames and then ends. The system can then figure out a 'score' for your system, and based on that score suggest you can run a 16 x 16 embark (after ensuring you have the memory to support it, and DF won't just CTD on you) or it may suggest you are pushing it if you do more than a 4 x 4 embark.

That would be a means to provide the game player a tool to evaluate how best to plan their DF gameplay experience without the CTD being a part of that.

Who would want to have a 16 x 16 embark? Well... if I have the hardware and the memory to support it, why not? Well, FPS death. Yeah? Well... what tools do I have to evaluate how big I can make it without FPS death in an established fortress? Crash-To-Desktop. Oh yeah, if you get a CTD, your fortress is 'likely' too big. K'thanks.

CTD is NOT a reasonable means to suggest you are biting off more than you can chew on an embark. A 'standardized test run process returning useful info' would be far more useful than CTD. Hrm... 'standardized test run package' would be another suggestion I ought to post...

8
All this is very definitely out of my area of expertise.

I just know that CTDs are a category of HFS that is way more fun than I care to allow myself. :) The only warning when trying to do a 16 x 16 embark is about 'lag'. Options that are physically impossible due to the lack of available memory should be blocked with a warning, "Only X amount of space is available, alter Y and/ or Z for more of X". CTDs, especially due to memory should be exception handled, hopefully with a 'crash save in /crash' for a hope-in-hell recovery.

Everything else is in the 'if wishes were fishes'.

If a 64-bit compile were even considered, that only pushes the problem down the road rather than resolving the problem. Pushing the CTD issue down the road another 5 years works for me, so long as there is the understanding it is not a good long-term solution.

If the problem can be isolated, a dollar figure put on it, and a pot we can throw money into, I will commit to throwing $50 into the pot in two payments. I know it's not enough money, but it's what I can do. Any problem you can solve with money you have at your disposal is no problem. Hopefully memory CTDs are annoying enough for people they'd want to throw sufficient money at it so Toady can make them go away, and stay gone. 4 GB, 8 GB, 16 TB, 256-bit OS platforms with 1024 cores... whatever. CTD's be gone! :D

9
There is really only one reasonable solution to the problem: release a 64 bit version.

Not so good a solution without prep work, in my opinion.
  • If you have a 64-bit OS with only 4 GB including virtual memory, and DF wants 4.1 GB (well way before that because of the OS, but by way of example...) if you have Crash-To-Desktop (CTD) now, you'll have it then too. Memory handling so as to avoid CTD is required, or a 64-bit release would be agony *anyway*.
  • Toady either has to abandon the 32-bit 'flavor', or support *two* 'flavors' on each platform (Linux, Windows). It would be best to have him focus on making DF better, since simply fixing CTD would allow you to nearly double memory usage ability anyway and stay 32-bit
  • Multi-threading would be more useful than a 64-bit compile, in my opinion. Right now, DF is locked to a single core. If DF could properly handle the nightmare of forking multiple threads, my OS may use up to 8 CPU cores. You can have display and interface on one core so even if your framerate drops below 5 to 1 frame per second, you can still have 50 fps graphics display and have the game respond. How fast you choose to display would not need to impact how fast the 'do stuff' frame process runs, as it would be on a different core.
  • I've been thinking of how DF could be bound to a database such as MySQL instead of all internal memory. Suppose you no longer had to choose how much embark space... the size of the world would be how much space you permitted that world to occupy on your hard drive. How large your fort was within that would would be a function of 'how much land you can grab AND HOLD. No more 'embark size' issues. You may find having a smaller size fort is easier to manage while keeping the frame-rate where you tolerate it. Not to mention your ability to deal with HFS, sieges, and so on. I've not quite fleshed out the notion, but breaking DF out of memory to a disk based database stored on the drive might take DF up to the next level the same way breaking DF out of 2D took DF up a notch. I'm still fleshing out ideas for a proposal to suggest on that one.

I don't think a 64-bit compile is a 'quick/ easy' thing to do. I would not mind having a 64-bit compile, I can run it. But a 64-bit compile that still CTDs, or takes away from the Toady One's focus and passion for DF would be undesirable, in my opinion.

10
Yeah, what thisisjimmy said. :)

What a program *can* do is write files in a format which allows it to do more things. That would be GIMP using cached info to edit image files much larger than what can fit in your memory, or a word processor creating temp files to store parts of a huge document that you are not looking at at the moment, but all of which needs to be kept track of for document editing. But that would be deliberate action taken by the software, and does not count as 'virtual memory'. It *does* count as smart programming, depending upon how well this is done.

Roughly speaking, disk is 1000 times slower than memory. VERY roughly speaking. Your mileage may vary. For the purpose of this 'suggestion' thread, CTD due to memory handling has to go away. Please. :)

11
As far as the 2 GB limit for DF, that is from http://www.bay12games.com/dwarves/mantisbt/view.php?id=136 but I initially noticed that the crash-to-desktop would happen around 1.9 GB as reported by TaskManager. I happened to have it up at the time. The only real way to get a good look at a potential site is to embark, then kill the DF process. According to the link above, that's a 32-bit 'feature' of the compiler.

Commercial games tend to recognize their memory limits. Even if they are 32-bit games, there are ways to 'cheat', but CTD's are a huge no-no and much effort is put into quashing those. Even if DF were released as a 64-bit compile, memory allocation still has to be aware of what limits it has to stay within them and avoid CTD's.

Having DFHack & StoneSense wedged into the same memory space outside of DF's control is *NOT* going to help matters. Toady really has zero control over StoneSense busting the memory limit through the SDL.DLL hack. :( The long-term roadmap needs a better plan.

I'll respond privately about the system spec stuff, at least as best as I can scare it up from the info I have. It's around somewhere, I just don't keep my spec sheet handy.

12
DF Suggestions / Re: Pumping vertically with gear pumps
« on: December 05, 2011, 06:55:14 am »
Sure! I think the general hope is a means, even with some in-game expense involved for some heavy z-level movement of water and magma without that expense involving frame-rate. If it's buckets, pre-fab pumps or some other tech appropriate to the era, we can already move water and magma some serious Z-levels, but we pay for it in frame-rate. If Toady could please allow us to shift the cost burden to something else and get better FPS, hopefully there is a good means for him to do that and the tech behind it is all hand-waving anyway.

13
DF General Discussion / Re: How Dwarf Fortress Influences You
« on: December 05, 2011, 01:26:57 am »
Working on a real life DF beard. DAMNIT I meant to put away DF 2010 for a while, at least for the next DF release and maybe a fix to the CTD on memory touching ~ 2 GB memory. Can't get the game out of my skull... I'll have to set DF up to play again. Damnit.

14
DF Suggestions / Re: Pumping vertically with gear pumps
« on: December 04, 2011, 07:16:00 pm »
I had in mind where Dwarves could gather the part for a 'pre-fab pump stack'. It would be VERY expensive, in materials, and you have to have the space or the building fails, just like anything. But suppose you had a 'pre-fab 5 pump stack', in effect you get a rock sealed stack of 5 pumps that have to be driven by the right amount of energy, but internal to DF you just have the water transported up 5 Z levels without calculating events in the middle. You could make 10 'pre-fab' stacks, or 20. In each case, the 'pre-fab' costs the same (or slightly more) in material, requires the same power, comes in fixed sizes, say 5, 10, 25 z height. And they would have to be all complete or all incomplete. The *bonus* to using these is that because it is sealed and functions as a single unit, the CPU gets to skip processing movement of the water or magma on the 'between' layers, so you get better performance.

There would be no 'new' technology in this. All you are really doing is making it reasonable to *NOT* have the pump-stack suck away your frame-rate because it is a single working unit and it is 'sealed'. If the 'seal' is broken on a pre-fab stack, the whole works breaks into its parts.

Is that something that would work and be reasonable?

15
http://reviews.cnet.com/4504-4_7-0.html?id=33703094&tag=compare might be my machine, or at least in the same line. Same case anyway. Note 9 GB (installed) / 24 GB (max) - DDR3 SDRAM on the web page. But I'd rather not have system spec issues in this thread cloud the larger issue I intended to address:

In 10 years if you don't have 64 GB on your machine, it isn't a serious game machine, and people will be able to play DF on their smartphones. Will DF *still* not be able to tell if a machine has only 1 GB of memory and safely limit memory requests to fit within that 1 GB without CTD? If DF *STILL* has to fit within just shy of 2 GB, will it be able to do so without CTD? When people wish to play DF on their 64 GB game machine in 10 years, why not allow DF to take advantage of it?

As a quick exercise, make a 256 x 256 world using a 16 by 16 font. That creates a 65536 by 65536 map. Now enlarge that by the 48 x 48 of each embark tile, and you have a 3145728 by 3145728 image. Drop your 8 x 8 embark map on the appropriate spot on that image, and you can get an idea of the amount of rich detail the world *potentially* has on just one Z level. That's a LOT of data, and it blew my mind when I first went through the trouble of overlaying my embark map on top of a proper scaled world map image.

And my above data may be wrong, and AGAIN I please don't let's get lost on the details of overlaying an embark image on top of a world image. Let's just say Toady has done a fantastic job of putting in very rich *POTENTIAL* detail within DF, and he managed to cram all that within a program that must fit within less than 2 GB.

It STILL CTD's if it touches that 2 GB limit. The CTD must die. Breaking DF out of the 2 GB limit is even better. Suppose DF supported the larger memory, and suppose it dropped your 8 x 8 embark in the middle of a 16 x 16 'embark' area it kept tract of? Suppose you could see armies form outside your 8 x 8 embark area? Suppose you had neighbors to negotiate with just on the other side of your embark area? What if you dug outside your embark area *and got caught*, in which case you could start a war with your neighbors? Again, I don't want to get side-tracked with the merits of such proposals. Without fixing memory so 'no more CTDs on hitting the 2 GB limit', nothing like that can seriously even be on the radar.

I'm just saying, DF has a HUGE amount of very rich textured detail that it packs away inside that 2 GB of single-core running memory. Once memory handling is fixed, Toady could examine things like having a separate core thread continue running 'legend' history so events continue, including battles and such, and having that outside world occasionally spill into the working fortress. But none of those ideas fly if the CTD isn't fixed and memory can't break beyond the < 2 GB. :(

Pages: [1] 2