Putting the 'role' back in role-playing games since 2002.
Donate to Codex
Good Old Games
  • Welcome to rpgcodex.net, a site dedicated to discussing computer based role-playing games in a free and open fashion. We're less strict than other forums, but please refer to the rules.

    "This message is awaiting moderator approval": All new users must pass through our moderation queue before they will be able to post normally. Until your account has "passed" your posts will only be visible to yourself (and moderators) until they are approved. Give us a week to get around to approving / deleting / ignoring your mundane opinion on crap before hassling us about it. Once you have passed the moderation period (think of it as a test), you will be able to post normally, just like all the other retards.

Dwarf Fortress now on Steam with a graphical overhaul

Tacgnol

Shitlord
Patron
Joined
Oct 12, 2010
Messages
1,871,855
Codex 2016 - The Age of Grimoire Grab the Codex by the pussy RPG Wokedex Strap Yourselves In Codex Year of the Donut Shadorwun: Hong Kong Divinity: Original Sin 2 Steve gets a Kidney but I don't even get a tag. Pathfinder: Wrath I helped put crap in Monomyth
The game still has no significant multi-threading support, and Toady says he finds it too confusing to implement. Multi-threading would help a lot with DF as the game has a lot of things going on that could be offloaded.

It also doesn't help that Toady isn't a trained programmer and generally seems to work to a "if it compiles, it's good enough" style of development.
You people don't seem to understand. Multithreading is the necromancy of programming. It's alluring and easy to get in to but it's just as easy to lose your sanity and create an abomination. Experienced programmers don't tread lightly with this dark art. Parallelizing a behemoth like DF with 20 years worth of linear code assumptions is an epic herculean task that would take years and generate legions of hard to find bugs.

Also wtf is a trained programmer? There is no training for programmers worth a shit, the only thing that really matters is experience. Toady is a monk that spent decades on top of a mountain honing his craft and his kung fu is not to be underestimated.

Toady is a maths guy, that doesn't translate directly to being good at writing optimised code. Good algorithms, sure.

Also what experience? Toady has spent years working on his own codebase without any real idea of the technical debt and nightmare he was creating. Also a lot of formal training these days for coders is completely shit (and probably infested with woke nonsense) I agree, but in my day we learnt useful things. Try writing inefficient code when you have a 30 year ex-ministry of defence programmer criticising every line you've written.
 

Perkel

Arcane
Joined
Mar 28, 2014
Messages
16,071
I didn't know know he was an MIT grad, and in math at that. Huh. So I wonder if the performance issue is just due to having no multi threading, and Tarn doesn't want to go and refactor? From a quick search Dwarf Fortress started in 2002, and is written in C++. C++ didn't get multi-threading until C++ 11, which released in 2011. To add multi-threading he'd need to refactor 9 year old code. I can see the reluctance, I barely want to work with code I wrote last week.

As far as Tarn said anything there are only some things that are multithreaded not related to simulation.
Problem is in what you said refactoring nearly 15 years old code to include properly jobs and locks is by itself huge task that would take a lot of time.
 

thesecret1

Arcane
Joined
Jun 30, 2019
Messages
6,500
I was unaware of delta time, I'm assuming engines and frameworks take this into account? Because the two I am pretty familiar with (Godot and Love2d) has _process() and love.update() functions that are referred to as being called "once per frame" in their documentation.
Engines allow you to do whichever one you want – some things, you may want to tie to framerate, so the option is of course there. But it's not difficult to measure the time that passed between the two update calls (the delta time) and use that for further computation. For example, let's say you want to animate a progress bar filling up. The naive approach is to fill it by a little bit with each frame update, which will lead to the issue you mentioned. In any serious environment, however, such a solution will be returned to you with a request to redo it. So what do you do? You decide that the bar should fill in 10 seconds, for example, so you know that after 1.5 seconds, it should be 15% full. Then it's just a matter of storing the time when the whole operation began, and each update asking "How much time has passed since the start of the operation? 2.16 seconds? Then set the bar to be filled at 21.6%." This way, the bar will be filled after exactly ten seconds regardless of the actual FPS. This general approach can be used for anything, in order to decouple actual game logic from framerate.

For big studios, I understand the time crunch and abstraction portion for optimization purposes. I was referring more to smaller indie devs like Bay12/Tarn.
Indie devs tend to be worse at optimization than bigger studios, for three reasons: Experience, Money, and Manpower. In a big studio, it's normal for team leader to go "Hey Joe, we have some performance issues, so spend the next week profiling memory and CPU usage." But a smaller studio can often not afford to spend such a period of time without one of the developers. Also, I find, the smaller studios tend to have inexperienced devs that never worked in a really big team (and thus are mostly self-taught, rather than being coached by seniors you find in bigger studios), and you sort of need to know what you're doing and what to look for when optimizing things.
 

Alienman

Retro-Fascist
Patron
Joined
Sep 10, 2014
Messages
17,925
Location
Mars
Codex 2016 - The Age of Grimoire Make the Codex Great Again! Grab the Codex by the pussy Codex Year of the Donut Shadorwun: Hong Kong Divinity: Original Sin 2 Steve gets a Kidney but I don't even get a tag.
Oh thank God. Almost written this year off, but now at least we are getting something! Gonna be fun.
 

The_Mask

Just like Yves, I chase tales.
Patron
Joined
May 3, 2018
Messages
5,925
Location
The land of ice and snow.
Strap Yourselves In Codex Year of the Donut Steve gets a Kidney but I don't even get a tag. Pathfinder: Wrath I helped put crap in Monomyth
lets-go-lets-goo.gif
 

anvi

Prophet
Village Idiot
Joined
Oct 12, 2016
Messages
8,069
Location
Kelethin
Can you even do anything interesting in this game? Or is it just building rooms and piles of trash?
 

covr

Prophet
Patron
Joined
Sep 3, 2006
Messages
1,364
Location
Warszawa
Current version also does not support Steam Workshop. And no one plays arena mode. Complaining about not having Classic mode at launch is just too much - you can download classic mode anytime for free, you don't need steam graphical version for it.

Adventure mode is a different story, I believe that less than 10% of DF players are using adventure game mode. But Toady let ppl choose - wait a bit more and have everything or release the game with new modules for each release. Any sane person would select having earlier release.
 
Self-Ejected

Dadd

Self-Ejected
Joined
Aug 20, 2022
Messages
2,727
Will you be able to turn off the new art style but keep the new UI?
 

Gregz

Arcane
Joined
Jul 31, 2011
Messages
8,828
Location
The Desert Wasteland
CPU is always a problem. Large companies release specific products for cryptocurrencies but not for DF :negative:

It isn't processing power that's the issue with DF, but optimisation and design.

The game still has no significant multi-threading support, and Toady says he finds it too confusing to implement. Multi-threading would help a lot with DF as the game has a lot of things going on that could be offloaded.

It also doesn't help that Toady isn't a trained programmer and generally seems to work to a "if it compiles, it's good enough" style of development.

Even "trained programmer"'s have difficulty with multithreading, it's not a trivial problem.
 

Tacgnol

Shitlord
Patron
Joined
Oct 12, 2010
Messages
1,871,855
Codex 2016 - The Age of Grimoire Grab the Codex by the pussy RPG Wokedex Strap Yourselves In Codex Year of the Donut Shadorwun: Hong Kong Divinity: Original Sin 2 Steve gets a Kidney but I don't even get a tag. Pathfinder: Wrath I helped put crap in Monomyth
Even "trained programmer"'s have difficulty with multithreading, it's not a trivial problem.

Indeed, but in Toady's case he is very much a coding novice (by his own admission). He has fortunately started getting more and more community help when he's completely out of his depth.
 

Haba

Harbinger of Decline
Patron
Joined
Dec 24, 2008
Messages
1,872,026
Location
Land of Rape & Honey ❤️
Codex 2012 MCA Divinity: Original Sin Project: Eternity Torment: Tides of Numenera Wasteland 2
Is there a list of things that have been implemented in the "Steam version"?

Last played DF about ten years ago. I bet it will still bog down, despite having massively faster CPU today.
 

Tacgnol

Shitlord
Patron
Joined
Oct 12, 2010
Messages
1,871,855
Codex 2016 - The Age of Grimoire Grab the Codex by the pussy RPG Wokedex Strap Yourselves In Codex Year of the Donut Shadorwun: Hong Kong Divinity: Original Sin 2 Steve gets a Kidney but I don't even get a tag. Pathfinder: Wrath I helped put crap in Monomyth
Is there a list of things that have been implemented in the "Steam version"?

Last played DF about ten years ago. I bet it will still bog down, despite having massively faster CPU today.

From what I gather, it's not going to differ greatly from the normal version it will just come with a graphical tileset implemented by default and contain a more user friendly GUI with mouse based context menus.
 

Alienman

Retro-Fascist
Patron
Joined
Sep 10, 2014
Messages
17,925
Location
Mars
Codex 2016 - The Age of Grimoire Make the Codex Great Again! Grab the Codex by the pussy Codex Year of the Donut Shadorwun: Hong Kong Divinity: Original Sin 2 Steve gets a Kidney but I don't even get a tag.
The thing I liked the most about the DF was this very cool classic guitar piece playing in the game. I wonder what will the music be like in this szteam version. Release date annoucement video did not sound interesting at all.
Looks like they will be using music from this guy:



I really enjoy the tunes myself.
 

As an Amazon Associate, rpgcodex.net earns from qualifying purchases.
Back
Top Bottom