Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Post
  • Reply
Malcolm
May 11, 2008

pixaal posted:

[...] Basically after making a game with only basic courses in programming and have very little idea of what the hell I was doing I made a horrible mess. This source code has to be horrible from the start and he's kind of doing a piece by piece recode which is a horrible idea. What should have happened is a complete recode "Dwarf Fortress 2.0" and probably would have allowed for multi threading. If one thing could benefit from tons of cores its Dwarf Fortress. Hell AMD's Bulldozer might actually be a viable processor for DF multi threaded. We'll likely never know though.

With advances in consumer hardware, I foresee a line drawn in the sand between games that are 64-bit/multithreaded, and those that are not. When 64GB RAM and 16-core CPUs are the norm, I think 32-bit single thread applications will really suffer. Don't get me wrong I love Dwarf Fortress, but even commercial games are failing to adapt to the new environment and will eventually become unplayable outside of DOSbox-style emulators for obsolete Windows versions.

Adbot
ADBOT LOVES YOU

Toplowtech
Aug 31, 2004

Fuligin posted:

It used to be that only elves could eat other sentient creatures, and it was the general casus belli for the other races exterminating them. I wonder what changed. In adventure mode at least I've found it a good strategy to always grab one companion in the beginning, bring them out into the wilderness, and then kill and butcher them for enough meat to last you at least two or three weeks.
I think the ethics of each kingdom is more randomized (or can it be changed by the rulers?), i have seen a human kingdom allowing slavery and ending up with tons of slaves after a few conquest. When i asked the lawgiver about the war with the other human kingdom, it was about slavery. I think the game needs a "laws/rules" dialogue option so you can ask to the locals what the rules are there because there is no in-game way to know the kingdom's ethics.

Toplowtech fucked around with this message at 09:13 on Jul 13, 2014

NewMars
Mar 10, 2013
No, they're set in stone according to civ type in the raws. For instance:

[ETHIC:KILL_ENTITY_MEMBER:JUSTIFIED_IF_GOOD_REASON]
[ETHIC:KILL_NEUTRAL:JUSTIFIED_IF_NO_REPERCUSSIONS]
[ETHIC:KILL_ENEMY:ACCEPTABLE]
[ETHIC:KILL_ANIMAL:ACCEPTABLE]
[ETHIC:KILL_PLANT:ACCEPTABLE]
[ETHIC:TORTURE_AS_EXAMPLE:ACCEPTABLE]
[ETHIC:TORTURE_FOR_INFORMATION:ACCEPTABLE]
[ETHIC:TORTURE_FOR_FUN:APPALLING]
[ETHIC:TORTURE_ANIMALS:SHUN]
[ETHIC:TREASON:PUNISH_CAPITAL]
[ETHIC:OATH_BREAKING:PUNISH_CAPITAL]
[ETHIC:LYING:PERSONAL_MATTER]
[ETHIC:VANDALISM:PUNISH_SERIOUS]
[ETHIC:TRESPASSING:PUNISH_SERIOUS]
[ETHIC:THEFT:PUNISH_SERIOUS]
[ETHIC:ASSAULT:PUNISH_SERIOUS]
[ETHIC:SLAVERY:ACCEPTABLE]
[ETHIC:EAT_SAPIENT_OTHER:UNTHINKABLE]
[ETHIC:EAT_SAPIENT_KILL:UNTHINKABLE]
[ETHIC:MAKE_TROPHY_SAME_RACE:ACCEPTABLE]
[ETHIC:MAKE_TROPHY_SAPIENT:ACCEPTABLE]
[ETHIC:MAKE_TROPHY_ANIMAL:ACCEPTABLE]

Humans are perfectly fine with slavery.

Edit: it's likely the war was to acquire slaves.

NewMars fucked around with this message at 09:22 on Jul 13, 2014

Neurion
Jun 3, 2013

The musical fruit
The more you eat
The more you hoot

Is it at all possible for an adventurer to encounter a forgotten beast underground prior to them appearing in a player fort? It's so tempting to go exploring underground, but I just know I will never find my way back to the surface if I stray too far from the tunnels.

scamtank
Feb 24, 2011

my desire to just be a FUCKING IDIOT all day long is rapidly overtaking my ability to FUNCTION

i suspect that means i'm MENTALLY ILL


wave of devlogs!

Toady One posted:

The mystery babies in the fort should be gone -- aside from being mysterious, they were causing at least one crash (the one where you press tab), so that's good. Large city walls were also causing a crash in adventure mode. I'm working on another crash related to that now.

Flavahbeast
Jul 21, 2001


Malcolm posted:

With advances in consumer hardware, I foresee a line drawn in the sand between games that are 64-bit/multithreaded, and those that are not. When 64GB RAM and 16-core CPUs are the norm, I think 32-bit single thread applications will really suffer. Don't get me wrong I love Dwarf Fortress, but even commercial games are failing to adapt to the new environment and will eventually become unplayable outside of DOSbox-style emulators for obsolete Windows versions.

I think the reverse is happening, single thread performance is the most important metric if I'm buying a CPU because multithreading is so often underutilized

Ogantai
Apr 21, 2003

Full of bologna

pixaal posted:

What should have happened is a complete recode "Dwarf Fortress 2.0" and probably would have allowed for multi threading. If one thing could benefit from tons of cores its Dwarf Fortress. Hell AMD's Bulldozer might actually be a viable processor for DF multi threaded. We'll likely never know though.
Dwarf Fortress is the 2.0, the original Slaves to Armok was even worse. :gonk:

my dad
Oct 17, 2012

this shall be humorous

Ogantai posted:

Dwarf Fortress is the 2.0, the original Slaves to Armok was even worse. :gonk:

At least it was 3D. Ish. If you squint.

Johnny Joestar
Oct 21, 2010

Don't shoot him?

...
...



Agent Kool-Aid posted:

Goddamn, how do I get dwarves to move corpses across the map to a refuse stockpile? Either that or a garbage dump? They just really don't seem to care about some wild animals I had my military hunt, no matter what I set the corpses to.

For real, I have no idea how to get the little shits to do anything with them. If I remember correctly you used to be able to forbid then unforbid them to jog the memories of your units, but that doesn't seem to be working this time.

scamtank
Feb 24, 2011

my desire to just be a FUCKING IDIOT all day long is rapidly overtaking my ability to FUNCTION

i suspect that means i'm MENTALLY ILL


The first question is always "does your Orders menu forbid touching outdoor trash?"

Johnny Joestar
Oct 21, 2010

Don't shoot him?

...
...



Is that order relatively new? :psyduck: I don't ever remember it being a thing.

ToxicSlurpee
Nov 5, 2003

-=SEND HELP=-


Pillbug

Flavahbeast posted:

I think the reverse is happening, single thread performance is the most important metric if I'm buying a CPU because multithreading is so often underutilized

Multithreading is also absurdly difficult to program properly. Where I'm studying that sort of stuff is covered in a 400-level class that's notorious for being nasty and difficult. It's hard to wrap your head around it to begin with but it gets even worse when you consider that there's a whole bunch of extra crap you need to think about when it comes to data and how it is handled. You can end up with things like a variable changing dramatically in the middle of a thread doing something that completely torpedoes absolutely everything.

The suggestion of "well programmers should just multithread everything" is a pretty ridiculous thing that programmers get sick of hearing. Multithreading an application means rewriting it from the ground up, requires dramatically different algorithms, and introduces more bugs, sometimes an exponential increase in them. The other side of it is that a lot of stuff just can't be multithreaded and, sometimes, the time saved from multithreading is undone by the extra overhead. It's actually possible to make a program run more slowly by multithreading. Actually one of the earliest assignments we did was more or less "OK write this program this way and that way. Intentionally do things that will suck, then rewrite it to be a single thread, and look at the difference."

A lot of programs just flat out don't need multiple threads. One of the biggest thing that multithreading has done is allowing a computer to dedicate an entire core to a program rather than splitting the program among multiple cores. You have the OS running on one core, the game running on another, and the other one paying attention to your internet connection. There is still a net gain in performance in that case as there's usually crap loads of stuff running in the background and it eats processes to switch between them. More cores means less switching.

scamtank
Feb 24, 2011

my desire to just be a FUCKING IDIOT all day long is rapidly overtaking my ability to FUNCTION

i suspect that means i'm MENTALLY ILL


Agent Kool-Aid posted:

Is that order relatively new? :psyduck: I don't ever remember it being a thing.

It's been the default from at least version 31 on. I wouldn't be surprised if it was in there from the very start.

Synthbuttrange
May 6, 2007

Agent Kool-Aid posted:

Is that order relatively new? :psyduck: I don't ever remember it being a thing.

It's been there for a long-rear end time to prevent idiot dwarves from running outside and getting murdered all the time.

Drunk in Space
Dec 1, 2009

Ogantai posted:

Dwarf Fortress is the 2.0, the original Slaves to Armok was even worse. :gonk:

Having never seen the first game, I had to look it up and,

https://www.youtube.com/watch?v=-ARLSii23w8

What the gently caress?

Synthbuttrange
May 6, 2007

It had magic. One of the first magic spells I tried was to teleport my brain out of my body.

It worked.

scamtank
Feb 24, 2011

my desire to just be a FUCKING IDIOT all day long is rapidly overtaking my ability to FUNCTION

i suspect that means i'm MENTALLY ILL


Oh cool beans the DFHack drudgery is nearly halfway done. Can't wait to get a hold of TWBT again.

LostCosmonaut
Feb 15, 2014

Anybody else have issues with wildlife staying on the map and not leaving? I've had a cluster of raven men hovering out of the range of my archers for about two years now, and it's annoying as poo poo (since no actual wildlife is coming onto the map while they are there).

Apoffys
Sep 5, 2011

pisshead posted:

I'm having countless problems.
Farmers keep cancelling plant seeds because it needs plump helmet spawn. There are at least ten in the stockpile, and they're not forbidden.



Here are a few workarounds for the seed problem. Basically you need separate stockpiles for collecting and storing seeds (by using links), none of which should have barrels.

http://dwarffortresswiki.org/index.php/v0.34:Farming#Bugs

pisshead posted:

I don't have enough skilled workers in poo poo that actually needs doing.

Just assign some useless dwarves to those jobs, they'll learn quickly.

pisshead posted:

Even though I have three masons with some masonry skill, and jobs that are requiring masonry, they just sit idle with no job. How do I force someone with masonry skill to do the masonry jobs that need doing? They have permission to do it.

Do your masons actually have masonry enabled as a job? Can they actually reach both the job site and wherever the materials are stored? Burrows, locked doors and raised bridges might prevent them from getting there.

reading
Jul 27, 2013

Zurai posted:

Did you set the civilization you wanted to play to playable in the Masterwork launcher? It's the second or third tab IIRC, has a big grid of red Xs and green check marks. You want the second column to be a green checkmark for whichever race you want to play. I recommend only enabling one race as playable at a time and just generating a new world if you want to play a different race, it makes it easier to figure out which civ is the race you want to play.

The only masterwork launcher I can see is the Windows/DOS executable that came with the linux download (I'm using linux). I have not seen anyway to get this "launcher" under linux. I don't think it has been ported. There are only some scripts that start up DF with DFHack and other utilities enabled.

HFCS
Oct 16, 2013

Zereth posted:

by "patch" do you mean "Deleted the old version and then put the new one down"? Because if you just slapped the new one over the old one that could cause strangeness.

I deleted the other one entirely when I got the new one. There is no overlapping.


LostCosmonaut posted:

Anybody else have issues with wildlife staying on the map and not leaving? I've had a cluster of raven men hovering out of the range of my archers for about two years now, and it's annoying as poo poo (since no actual wildlife is coming onto the map while they are there).

This happens in mine as well. No wildlife spawn (including no breeding), just a small cluster of bug-people up really high.

Space Bat
Apr 17, 2009

hold it now hold it now hold it right there
you wouldn't drop, couldn't drop diddy, you wouldn't dare
So I decided to play adventure mode for some friends to show it off. I'm not very good at dwarf fortress, but I do enjoy adventure mode and with a new version out I figured there'd be some mischief to get into. Well, I certainly found some interesting things.

First off, I decided to roll an elf demigod to see how the new elven sites look. It took me a minute to realize you actually start in a tree, but after I jumped down I figured I was good to go and find a human town to borrow some metal gear from. While I was leaving, however, I noticed something weird about elven sites. The ground was covered with dying elves. Apparently, they all just decided to jump (I assume because their AI has no idea what's going on) so there were like four elves lying around the base of the tree house I just came down from, all of whom had broken every bone in their bodies. Being a good Samaritan, I decided to put them out of their misery. Being an elf, however, I was trying to slash them with a wooden sword. It took a while.

Eventually I got to a human hamlet and started trying to borrow some gear from the locals, and despite their unhappiness with my methods, I eventually got my hands on a bronze axe. While I was killing people I did learn something that I never realized you could do. I was slashing at a guy's lower body and suddenly I got a message that said, "Human loses his grip on his socks, shoes, pants, ect." and I was confused. It took me a second to realize I had just cut him in half :staredog: Obviously I knew you could cut off body parts but I need realized to what degree you could!

Some other oddities I encountered: When travelling cross country to go raid a dark fortress I found a group of birdmen squatting in the mountains. I decided to greet them, to which I was greeted with Greetings! My name is TRANS_NAME] which I guess isn't too surprising, since animalmen don't have unique names. It gets odd though. After I decided to kill one for some food, I was spammed with dozens of messages every turn I was within a full screen's distance near ANY animal men. They'd all say "I am currently fighting the human [my dude]." It could be falcon men, lice men, whatever. Everywhere I went and found a gaggle of those animalmen they'd all stare at me and yell they were fighting me, each one screaming it so the log was just spammed with the same message over and over.

Also, no matter how many curses or threats I threw out no one would ever fight me. The only fight I had was with an enraged wolverine and no matter how many times I whacked it in the head or neck with my whip it would not die, but it was also incapable of hitting me. It was good training, I guess.

Finally, I remember earlier someone mentioned a story where they had two sponges screaming at each other?



It's still there, and it rules.

scamtank
Feb 24, 2011

my desire to just be a FUCKING IDIOT all day long is rapidly overtaking my ability to FUNCTION

i suspect that means i'm MENTALLY ILL


Dang, wrestling with patch.exe paid off. Now I can surgically transform raws between tilesets, even on the fly.

pisshead
Oct 24, 2007

Neurion posted:

The planting cancel spam is an issue with the new hauling system that was added in the latter updates of DF2012. Rather than hauling a single sock or seed to stockpiles, dwarves will go to the stockpile and grab a bin, barrel, or bag, and use that to collect multiple items. While the container is in transit, though, its contents are off-limits to everyone else. If someone ate a plump helmet, leaving spawn behind, a dwarf will grab your seed bag and rush to pick up the spawn. If your only seeds are in that bag when a farmer decides to plant it will produce the cancel spam, at least until the bag is once again free for use in the food/seed stockpile.

I have spawns in the stockpile though.

Addamere
Jan 3, 2010

by Jeffrey of YOSPOS

Flavahbeast posted:

I think the reverse is happening, single thread performance is the most important metric if I'm buying a CPU because multithreading is so often underutilized

I build a new PC a few months ago, and my choice in processor (i5 4670) was made entirely on its single-thread performance reviews.

Ogantai
Apr 21, 2003

Full of bologna

Drunk in Space posted:

Having never seen the first game, I had to look it up and,

https://www.youtube.com/watch?v=-ARLSii23w8

What the gently caress?

If you think that's :wtf: inducing, check out how Today handles keyboard input: (this is from BattleChamps, one of the few cases where he's released the source)

php:
<?
void getstring_interfacechar(string &str,interfacekeyst &key)
{
    if(!gview.valid_held_key(key.binding))
        {
        str="Not Supported";
        return;
        }

    short ind=0;
    if(key.shift)ind++;
    if(key.ctrl)ind+=2;
    if(key.alt)ind+=4;
    if(!gview.display_string[key.binding][ind].empty())
        {
        str=gview.display_string[key.binding][ind];
        return;
        }

    str.erase();

    if(key.ctrl)str+="Ctrl+";
    if(key.alt)str+="Alt+";
    if(key.shift)str+="Shft+";
    switch(key.binding)
        {
        case VK_BACK:str+="Backspace";break;
        case VK_TAB:str+="Tab";break;
        case VK_CLEAR:str+="Clear";break;
        case VK_RETURN:str+="Enter";break;
        case VK_SHIFT:str+="Shift";break;
        case VK_CONTROL:str+="Ctrl";break;
        case VK_MENU:str+="Alt";break;
        case VK_PAUSE:str+="Pause";break;
        case VK_CAPITAL:str+="Caps";break;
        case VK_ESCAPE:str+="Escape";break;
        case VK_SPACE:str+="Space";break;
        case VK_PRIOR:str+="Page Up";break;
        case VK_NEXT:str+="Page Down";break;
        case VK_END:str+="End";break;
        case VK_HOME:str+="Home";break;
        case VK_LEFT:str+="Left";break;
        case VK_UP:str+="Up";break;
        case VK_RIGHT:str+="Right";break;
        case VK_DOWN:str+="Down";break;
        case VK_SELECT:str+="Select";break;
        case VK_PRINT:str+="Print";break;
        case VK_EXECUTE:str+="Execute";break;
        case VK_SNAPSHOT:str+="Print Screen";break;
        case VK_INSERT:str+="Insert";break;
        case VK_DELETE:str+="Delete";break;
        case VK_HELP:str+="Help";break;
        case 0x30://0
        case 0x31:
        case 0x32:
        case 0x33:
        case 0x34:
        case 0x35:
        case 0x36:
        case 0x37:
        case 0x38:
        case 0x39://9
            str+=key.binding;
            break;
        case 0x41://A
        case 0x42:
        case 0x43:
        case 0x44:
        case 0x45:
        case 0x46://F
        case 0x47:
        case 0x48:
        case 0x49:
        case 0x4A:
        case 0x4B://K
        case 0x4C:
        case 0x4D:
        case 0x4E:
        case 0x4F:
        case 0x50://P
        case 0x51:
        case 0x52:
        case 0x53:
        case 0x54:
        case 0x55://U
        case 0x56:
        case 0x57:
        case 0x58:
        case 0x59:
        case 0x5A://Z
            str+=(key.binding-'A')+'a';
            break;
        case VK_NUMPAD0:str+="Numpad 0";break;
        case VK_NUMPAD1:str+="Numpad 1";break;
        case VK_NUMPAD2:str+="Numpad 2";break;
        case VK_NUMPAD3:str+="Numpad 3";break;
        case VK_NUMPAD4:str+="Numpad 4";break;
        case VK_NUMPAD5:str+="Numpad 5";break;
        case VK_NUMPAD6:str+="Numpad 6";break;
        case VK_NUMPAD7:str+="Numpad 7";break;
        case VK_NUMPAD8:str+="Numpad 8";break;
        case VK_NUMPAD9:str+="Numpad 9";break;
        case VK_SEPARATOR:str+="Separator";break;
        case VK_SUBTRACT:str+="Subtract";break;
        case VK_ADD:str+="Add";break;
        case VK_MULTIPLY:str+="Multiply";break;
        case VK_DECIMAL:str+="Decimal";break;
        case VK_DIVIDE:str+="Divide";break;
        case VK_F1:str+="F1";break;
        case VK_F2:str+="F2";break;
        case VK_F3:str+="F3";break;
        case VK_F4:str+="F4";break;
        case VK_F5:str+="F5";break;
        case VK_F6:str+="F6";break;
        case VK_F7:str+="F7";break;
        case VK_F8:str+="F8";break;
        case VK_F9:str+="F9";break;
        case VK_F10:str+="F10";break;
        case VK_F11:str+="F11";break;
        case VK_F12:str+="F12";break;
        case VK_F13:str+="F13";break;
        case VK_F14:str+="F14";break;
        case VK_F15:str+="F15";break;
        case VK_F16:str+="F16";break;
        case VK_F17:str+="F17";break;
        case VK_F18:str+="F18";break;
        case VK_F19:str+="F19";break;
        case VK_F20:str+="F20";break;
        case VK_F21:str+="F21";break;
        case VK_F22:str+="F22";break;
        case VK_F23:str+="F23";break;
        case VK_F24:str+="F24";break;
        case VK_NUMLOCK:str+="Numlock";break;
        case VK_SCROLL:str+="Scroll";break;
        case VK_LSHIFT:str+="L Shift";break;
        case VK_RSHIFT:str+="R Shift";break;
        case VK_LCONTROL:str+="L Control";break;
        case VK_RCONTROL:str+="R Control";break;
        case VK_LMENU:str+="L Menu";break;
        case VK_RMENU:str+="R Menu";break;
        case 0xBA:str+="Key BA";break;
        case 0xBB:str+="Plus";break;
        case 0xBC:str+="Comma";break;
        case 0xBD:str+="Minus";break;
        case 0xBE:str+="Period";break;
        case 0xBF:str+="Key BF";break;
        case 0xC0:str+="Key C0";break;
        case 0xDB:str+="Key DB";break;
        case 0xDC:str+="Key DC";break;
        case 0xDD:str+="Key DD";break;
        case 0xDE:str+="Key DE";break;
        case 0xDF:str+="Key DF";break;
        case 0xE1:str+="Key E1";break;
        case 0xE2:str+="Key E2";break;
        case 0xE3:str+="Key E3";break;
        case 0xE4:str+="Key E4";break;
        case 0xE9:str+="Key E9";break;
        case 0xEA:str+="Key EA";break;
        case 0xEB:str+="Key EB";break;
        case 0xEC:str+="Key EC";break;
        case 0xED:str+="Key ED";break;
        case 0xEE:str+="Key EE";break;
        case 0xEF:str+="Key EF";break;
        case 0xF1:str+="Key F1";break;
        case 0xF2:str+="Key F2";break;
        case 0xF3:str+="Key F3";break;
        case 0xF4:str+="Key F4";break;
        case 0xF5:str+="Key F5";break;
        case 0x15:str+="Key Hangul/Kana";break;
        case 0x17:str+="Key Junja";break;
        case 0x18:str+="Key Final";break;
        case 0x19:str+="Key Hanja/Kanji";break;
        case 0x1C:str+="Key Convert";break;
        case 0x1D:str+="Key Nonconvert";break;
        case 0x1E:str+="Key Accept";break;
        case 0x1F:str+="Key Mode Change";break;
        case 0x92:str+="Key 92";break;
        case 0x93:str+="Key 93";break;
        case 0x94:str+="Key 94";break;
        case 0x95:str+="Key 95";break;
        case 0x96:str+="Key 96";break;
        default:str="Not Supported";break;
        }
}
?>
:cripes:

Edit: It wasn't written in php, but I used the tag to make it a big easier to read.

suburban virgin
Jul 26, 2007
Highly qualified lurker.
Can you explain what that means to non-coders? Tell me the joke!

Ogantai
Apr 21, 2003

Full of bologna

Fargo Fukes posted:

Can you explain what that means to non-coders? Tell me the joke!
Imagine a man staring at a piece of fruit. He picks it up, and asks himself: "Is this an apple? No. Is this a banana? No. Is this a cherry? No. Is this a durian? No." and so forth until 5 minutes later he finally determines it's a quince. Then, he picks up the next fruit and does the same thing.

The joke is that Today chose what has to be the most inefficient method to handle input short of requiring the player to enter all the moves in morse code.

OwlFancier
Aug 22, 2013

Also as far as I can tell, all that seems to be doing is converting kepresses from their hex codes to a plain text description of the key. I am not really sure why.

So it's a bit like someone saying 'Pass me that quince' and then the person picks up the fruit, goes through the whole rigamarole to figure out what it is, and then announces 'It is a quince!' and then stands there not doing anything.

nielsm
Jun 1, 2009



Ogantai posted:

Imagine a man staring at a piece of fruit. He picks it up, and asks himself: "Is this an apple? No. Is this a banana? No. Is this a cherry? No. Is this a durian? No." and so forth until 5 minutes later he finally determines it's a quince. Then, he picks up the next fruit and does the same thing.

The joke is that Today chose what has to be the most inefficient method to handle input short of requiring the player to enter all the moves in morse code.

Yeah no sorry, that's not keyboard input handling code. That's user interface code for converting a key-binding into text that can be displayed. It isn't something that needs to run often, and it's also quite likely that the compiler is able to optimize the code into a simple jump-table.
There really isn't anything funny or interesting about that code, it's just some boring UI helper function written in a quite standard way.

(By the way, there is a [code=language] tag you can use to format source code for many different programming languages.)

pixaal
Jan 8, 2004

All ice cream is now for all beings, no matter how many legs.


Ogantai posted:

If you think that's :wtf: inducing, check out how Today handles keyboard input: (this is from BattleChamps, one of the few cases where he's released the source)



:cripes:

Edit: It wasn't written in php, but I used the tag to make it a big easier to read.

Going to use this as an example of something that is horribly coded and should be on a separate thread. I'm well aware that multi-threading is a complete bitch to do. DF would benefit a ton from it though, all the reactions that go on per tile. Off loading input to a separate thread is usually one of the easier and safer things to implement. I haven't really tried my hand at doing multi threading but obviously trying to calculate the heat on every tile is going to result in a bad time as the temperature of a tile changes mid work load on the tiles near it.

The way to likely deal with that would be work your way using 2, maybe 4 sections compute the grid that have another process start when all the threads are done and compute the grid section lines. There is probably a much more efficient way to do this but off the top of my head it would be the safest and least likely to cause bugs. Hell you could divide the entire game into "chunks" of 10x10 tiles. and make each one a workload them 10x10 groups of chunks compute the edges then compute the edges of other tiles and so on. It would let the game scale.

Actually coding that is a beast I know but the performance increase is tangible.

A "simple" and by that I mean by multi threading standards solution would just be simulate the background world on 1 thread while the fortress runs input on thread 2 and the game on thread 3 with the main thread keeping track of everything and making sure the date doesn't get out of sync. Bug: It is the world 150 in the Fortress it is the year 17,212 outside the fortress all life is gone. The only life in the world is some dwarfs in a time dilation field.

StrangeAeon
Jul 11, 2011


Adventures in Masterwork mod. I'm slowly learning things that have been mentioned in here (too late), such as "Turn off research" and "don't enable hard farming for the love of god", and I think it's about time to abandon the fort and re-gen because none of my plants grow at all jesus christ.

My question now is this: does Masterwork fix the ungodly-broken Undead from evil rains/fogs? I'd like to get some evil biomes going, but I don't want a repeat of the last fort I tried on a purple square: a zombie got lit on fire and tanked my fps by eternally burning, but never dying.

scamtank
Feb 24, 2011

my desire to just be a FUCKING IDIOT all day long is rapidly overtaking my ability to FUNCTION

i suspect that means i'm MENTALLY ILL


StrangeAeon posted:

My question now is this: does Masterwork fix the ungodly-broken Undead from evil rains/fogs? I'd like to get some evil biomes going, but I don't want a repeat of the last fort I tried on a purple square: a zombie got lit on fire and tanked my fps by eternally burning, but never dying.
I don't think MW has touched it yet, but I have managed to tone down their impossible strength bonuses.

MW still includes the string patcher (dfint.exe), right? Open up template.lng (the one that has Meph's changes in it, if there's more than one file) and add this line somewhere:
|[CE_PHYS_ATT_CHANGE:STRENGTH:300:1000:TOUGHNESS:300:1000:START:0]|[CE_PHYS_ATT_CHANGE:STRENGTH:120:300:TOUGHNESS:200:400:START:0]|

Patch the executable with that in the template and generate a new world. The zombies and thralls in it will be considerably less cancerous and tank-like.

e: Now that I thought about it, you might be able to make the changes into an ongoing save, too. The syndrome data should be stored as plaintext in the save's world.dat, but I don't know if it takes.

scamtank fucked around with this message at 15:48 on Jul 13, 2014

StrangeAeon
Jul 11, 2011


scamtank posted:

I don't think MW has touched it yet, but I have managed to tone down their impossible strength bonuses.

MW still includes the string patcher (dfint.exe), right? Open up template.lng (the one that has Meph's changes in it, if there's more than one file) and add this line somewhere:
|[CE_PHYS_ATT_CHANGE:STRENGTH:300:1000:TOUGHNESS:300:1000:START:0]|[CE_PHYS_ATT_CHANGE:STRENGTH:120:300:TOUGHNESS:200:400:START:0]|

Patch the executable with that in the template and generate a new world. The zombies and thralls in it will be considerably less cancerous and tank-like.

e: Now that I thought about it, you might be able to make the changes into an ongoing save, too. The syndrome data should be stored as plaintext in the save's world.dat, but I don't know if it takes.

Awesome, thank you. I posted it at the end of the file, I hope that works.

GenericOverusedName
Nov 24, 2009

KUVA TEAM EPIC

Ogantai posted:

If you think that's :wtf: inducing, check out how Today handles keyboard input: (this is from BattleChamps, one of the few cases where he's released the source)


:cripes:

Edit: It wasn't written in php, but I used the tag to make it a big easier to read.

It is terrifying :staredog:

Apoffys
Sep 5, 2011

pisshead posted:

I have spawns in the stockpile though.

Could still be the same bug. If you have two seed bags in the stockpile, and someone moves one of the bags after a farmer has decided to use a seed in it, the farmer will still cancel the job because he wanted to use a specific seed which he can't reach any more. He'll probably try again and pick a different seed, so he should eventually be able to plant stuff, but in the meantime you'll be spammed with "cancelled job"-messages.

my dad
Oct 17, 2012

this shall be humorous

GenericOverusedName posted:

It is terrifying :staredog:

It was inevitable.

Archonex
May 2, 2012

MY OPINION IS SEERS OF THE THRONE PROPAGANDA IGNORE MY GNOSIS-IMPAIRED RAMBLINGS

StrangeAeon posted:

Adventures in Masterwork mod. I'm slowly learning things that have been mentioned in here (too late), such as "Turn off research" and "don't enable hard farming for the love of god", and I think it's about time to abandon the fort and re-gen because none of my plants grow at all jesus christ.

Hard farming is neat, but it's definitely an advanced player thing. The trick is that you need dedicated growers to make it worthwhile. The skill of the person planting the plant heavily influences how many plants you get. Which offsets the longer times to get food. Also, to create a fairly large section to farm in. Plants grow to an edible status in like one to two years tops depending on the plant I believe. So you need a fair number of them.

The good news is that between the changes to how growing is handled and fertilizing fields it's remarkably easy to get ridiculous numbers of plants in one harvest. I think I got like 183 plants just in half a month from good planning. Definitely isn't a feature you want to turn on if you're new to MW though.

Also, never plant plump helmets as your only food, if you're doing that. They're a horrible trap now due to their long time to grow. If you can, plant something easier, like strawberries. My evil warlock tower that was literally slowly accruing a sort of blood pool as a moat around it from all the death and destruction (It got sieged twice every month. :stonk:) was literally dining on nothing but sweet, sweet, strawberries due to how quick they seemed to grow. Apparently the genocidal lunatics had a sweet tooth.

Research is a preference thing. I like it, since it gates some of the ridiculous late game stuff behind a system of progression. But I can see how it'd turn some people off.

quote:

My question now is this: does Masterwork fix the ungodly-broken Undead from evil rains/fogs? I'd like to get some evil biomes going, but I don't want a repeat of the last fort I tried on a purple square: a zombie got lit on fire and tanked my fps by eternally burning, but never dying.

Masterwork does a lot of stuff with curses in terms of easy customization. In fact the launcher can be used to tell the game how many night creature types, curses, bogeymen types, and even evil weather effects a world has. Adding on Fear the Night ought to add more, which ought to make it harder to get fire immune undead. Though the bug is actually the result of a bug in Dwarf Fortress itself.

Sounds like you got hit by husks, which is a vanilla thing that has some bugs that Toady never fixed. Toady screwed up the raws and made certain cursed undead (Not raised undead.) immune to fire. But I have seen them melt in lava, so I believe it's possible for cursed creatures to spawn as both burnable undead and immune undead now. Worse comes to worse you could just turn off cursed weather patterns if it's an issue. That might fix it.

Occasionally you'll still get a fire immune zombie though. I once had a bat skull that was decapitated sit outside my dwarven fort for a year, randomly terrifying passerbys as it chattered at people passing by it. It couldn't move, and all it could do was hop in place and burn slowly, so it was basically the equivalent of a fortress's Halloween decoration. Eventually I opened up DFHack and typed killitwith sabotage to put the thing out of its misery.

Archonex fucked around with this message at 16:02 on Jul 13, 2014

GenericOverusedName
Nov 24, 2009

KUVA TEAM EPIC
So it looks like Toady added in cassava as a plant. Somebody go eat it raw and tell us how well he's modeled it's real-world behavior.

Adbot
ADBOT LOVES YOU

Sultan Tarquin
Jul 29, 2007

and what kind of world would it be? HUH?!
Does anyone have a good guide on how to build a Colosseum? I figure the general layout is easy enough it's just the hauling the cages with the creature inside and setting it up with the levers and so forth.

  • 1
  • 2
  • 3
  • 4
  • 5
  • Post
  • Reply