Hacker News new | past | comments | ask | show | jobs | submit login
Dwarf Fortress Development (bay12games.com)
235 points by dopu on June 28, 2016 | hide | past | favorite | 193 comments



I know they don't want to open source it, but I wonder if they would be amenable to having a volunteer who would help organize and push the code into a version control system hosted on their private server.

In an interview I read, Tarn said something to the effect of that "he was not interested in learning about version control and it would just be a distraction that would take away time from the important work, since the way he works has worked for him for many years".

I can't help but think that first, it's a bit dangerous way to work, all "past, current and future" state of the project is only in his head and if he happens to become indisposed, the project is very very likely to die (though I suppose there would be hardcore fans willing to reverse engineer it)...

Second, it's a loss of historical record... imagine in fifty years historians wanting to analyze the project's history, it would be so much more useful to have a granular history instead of just a blob of files scattered across thousands of directories...

Just look at Unix History repository here for example: https://github.com/dspinellis/unix-history-repo - I think there's immense long term value in preserving this kind of archival history.


Actually, he's done that in the past. He let some folks from the DF forums have part of the source code, specifically the part which uses OpenGL to draw the graphics. They were able to improve it so that it was much more efficient, and so that it could use TrueType fonts. The results were quite successful, in that the graphics now take up much less of the game's time, and TrueType fonts can make the game much more approachable.

On the other hand, Tarn has said that he now no longer understands this part of the code. If he ever needs to modify it he'll either have to learn how it works from scratch, or farm the work out to the community again. Since he has no desire to become a project manager, he's unlikely to do the latter.

Also, the game isn't completely closed-source; it uses SDL, libpng, zlib, etc.

Interestingly enough, this hasn't really stopped people from improving on DF after the fact. Just take a look at the dfhack and Text will be Text projects, for instance.


  On the other hand, Tarn has said that he now no longer understands this part of the code. If he ever needs to modify it he'll either have to learn how it works from scratch, or farm the work out to the community again.
Reasonable, but that's when, surprise, revision history is pretty useful in figuring out what the changes are and why they were made :)


In theory yes, but in practice I've rarely been satisfied with the 'why' of a change unless I was able to talk to the author about it. Everyone seems to leave these things out of commit messages, because they seem so obvious at the time. Bug trackers are often better for this than version control.


This is something that I hammer into newer members of my team (mostly about code comments rather than commit messages):

The comment that tells you what happened is merely saving you some time parsing the code. The comment telling you why it's done like that is completely irreplaceable.


It has earned me the Stickler moniker, and I'm absolutely alright with this. They've never had the displeasure of refactoring code from 3 years prior where the function's name is getIpAddress(), but it does 6 additional things within the method. The docs says, "Gets the IP address". The commit message says, "gets user's IP address". The function really gets the IP address, does some weird encoding (of which I'm still not sure why), does some other stuff with the request headers, then returns the IP.

Documentation saves lives, people.


You may want to also consider refactoring this code. A function should do what it says, not have unexpected side effects.

Not only can this be surprising to a client, but it also makes it difficult to leverage the code for reuse elsewhere ("I only wanted the IP address, not the rest, guess I'll write one called getIpAddressOnly", etc).

Functions like this also tend to become muddled and difficult to maintain because as time marches forward, functionality may need to be added between these side effects, and again, unless it is refactored, it has to end up within the same function, making the whole problem even worse.


"Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live"


the best thing in life (almost better than hearing the lamentation of their women) is when there's a good explanation WHY it's done like that and later someone changes the code while not updating the WHY (writing documentation is for people who don't get things done).


Agreed. I guess that he is not practicing basic software engineering. Developing code is not just updating code and then check it into version control with a helpful comment. They should be some documentation for the "what, how, who, why" answers.


I sympathise with this point of view, but I think it misunderstands what Tarn is doing. DF is a weird (also fun and deeply rewarding) piece of outsider art. Source code is his medium, but expecting him to apply professional software engineering practices is like expecting Andy Warhol to use the same process as Campbell's when making the label for a soup can.


That's a really great way to look at it, thank you :)


Commit messages with a link to the bug tracker and some short description are the best IMHO.


Dwarf Fortress desperately needs multithreading and optimization for data locality. Without that it is permanently limited in scope.

But it will never ever happen. Forget it. Anyone dreaming about open source DF should go make their own game. And I mean that sincerely: Dwarf Fortress is very good, but there are even greater things that will come. Build those things!


Dwarf fortress is the Bloomberg of gaming - used by a niche set of users, uglier than sin, non trivial entry barriers, and a focus on depth and breadth of services which are unmatched.

And in the same way, they are honey traps for young coders who don't get the sheer amount of different games which are working together here. (With the commensurate gripes about interfaces as well)


When is the Reuters Eikon competitor coming out for DF then? I want something pretty with an intuitive UI!


Rimworld certainly delivers on the intuitive UI aspect. It is a baby compared to Dwarf Fortress though.


This has somewhat happened a lot. To an extent, the entire crafting genre owes itself to DF, which inspired Minecraft, and between the two of them, a genre was born...

However, as yet, no-one's come close to the epicness of the generated world and story, even if they've made progress on the core gameplay.


Not to mention the dozens of "DF with graphics!" clones currently living on Steam... none of which remotely approach the complexity and flexibility of the original (though they do look better and have better UIs)


It's very different, but Rimworld gives me a similar feel to dwarf fortress in regards to depth, and has a far better interface.

Not that it's close to done yet.


Rimworld is a very direct clone of Dwarf Fortress, but in a Sci Fi setting and by a professional game dev. Tynan Sylvester previously worked on BioShock Infinite.

It has proper graphics (though simple, it is a one man project). It includes utilities like Dwarf Therapist. The random events are not so random, but tries for better story telling.

There are some limitations, which might or might not be fixed. For example, there is no digging down, only one z layer, so you cannot build elaborate fatal traps.

Overall, I really like it. :)


That sounds kind of like old schools DF, where you dug to the right instead of down.


Prison Architect may be more influenced by Dungeon Keeper than Dwarf Fortress but it's pretty deep and complex.

I haven't tried other DF inspired games from Steam, though...


Chris Delay has called PA "my very own Dwarf Fortress" and it was directly inspired by his work on Subversion, a failed "universal simulation" game based on similar ideas as DF.

Subversion tried to generate everything and have deeply complex simulations -- mostly because he realized Introversion couldn't design every last detail by hand at the scale the project was trying to provide. PA itself was actually directly the result of Chris realizing that he had more fun trying to build these intricate simulated scenarios than actually playing them.

There's a beautiful demonstration of Subversion where he shows a heist scenario with intricate alarm and security systems and how the player could just bypass all of it by simply shooting people -- that was apparently the dying blow to the project.


I hear that claim, but do you have sources to back the fact that Minecraft was significantly influenced by DF? I mean, there was a crafting mechanic before DF, right? And not many gameplay elements from DF found their way into Minecraft at all.



Dead links galore, the way back version has the images, but not the games nor videos:

https://web.archive.org/web/20091102174928/http://notch.tumb...



Notch cited DF and Infiminer as influences.


Surely Sim City be classed as being based around a crafting mechanic?


How so?


>> "To an extent, the entire crafting genre owes itself to DF"

There's plenty of crafting games way before DF. In fact, some of the earliest RPGs I played, like Neverwinter Nights (1991), allowed crafting weapons and armour. Maybe crafting has taken off a bit (too much) since DF.


Different kinds of crafting, definitely. Not just a quantitative difference. DF and it's descendants, you take apart the world to rebuild it. RPG crafting is just fetch quests and recipes.


There is no name for this genre, though.

I'd try "survival sandbox". In Minecraft and Dwarf Fortress the initial goal is to survive. Later the game turns into a sandbox where you can build magnificent structures. For the sandboxing there is some complex simulation going on (biomes,fluid dynamics,etc).


Survival sandbox seems pretty good... but I don't think that difficulty curve description is accurate.

http://i.imgur.com/YzevDTs.png http://dwarffortresswiki.org/images/4/40/FunComic.png


Interesting point, apparently no one knows where that image originated, or what it originally said.

I know EVE was in the original version I saw years back, and there seems to be some misattribution to XKCD (presumably due to the art style and humorous graphs?). Bonus points if anyone knows the POTBS reference offhand.

http://images.mmorpg.com/features/4577/images/LearningCurve....

https://m.reddit.com/r/AskReddit/comments/3m1ahz/which_games...


Throwing it out there, but if anyone is interested in building an open source DF, email me. It's been a side project of mine (more specifically, the story/history generation components) but I haven't pursued it as much as I'd like.


It seems that the project is now dead, sadly. But you could easily pick up where they left off since it's open source.

http://www.goblincamp.com/


Second that mulithreading and optimization. My computer is 8-core, but each core is only maxes at 1.8 Ghz, which prevents me from playing on large maps, which basically caused me to give up on the game. There are tons of smart people out there who would gladly volunteer time to improve the code if it was open source.


There are already games that are better than DF available today. Several of them, some 3D, some 2D, all of them are superior games.

The only thing DF has going for it is the depth of detail. That is a significant feature, but some day one of these superior games is going to have that too.

I am a huge DF fan, I wish they'd hire an art developer or something. It's just ridiculous.


They don't want to hire an art developer. They make enough money to keep the lights on between donations and the Patreon, but it's not enough to subsist the income of another.

Toady's reason for the simple graphics is that it lets him focus on core gameplay, which is what he enjoys.


An art director? Ascii in itself is entirely it's own aesthetic. There's a huge roguelike community that much prefer graphics like that.


What's some of those games? Interested in trying out some new stuff


Gnomoria is my personal favorite.

There is a great 3D one that lacks features but the interface is great, that one is called Dwarves! if I recall correctly.


I tried Gnomoria and it simply doesn't compare to DF. You could read multiple reviews on steam to find out lots of stupid bugs, but here's a taste: gnomes don't comprehend levels and path finding across levels fails badly - if you want to build a fence around some tunnel entrance, you'll find them running around confused until they die. (https://steamcommunity.com/sharedfiles/filedetails/?id=67559...) And it won't be fixed. Gnomoria is "complete" as far as I know and no updates are planned. My next favorite is that gnomes will happily do any work when injured, but if you have a hospital? They'll lay on the bed and die out of hunger just because nobody is assigned to care for them. (http://steamcommunity.com/sharedfiles/filedetails/?id=675590...)

And that's ignoring the lack of any story component, complex interactions, any interesting events apart from "something came to attack your area", etc. It's just boring once you play it a few times.


To be fair, that's a similar bug to what Dwarf Fortress had until recently: unless you built walls from certain directions, your dwarves would end up on the "wrong side." And you can't say Dwarf Fortress doesn't have stupid bugs; a recent fort had a were-elephant scared up into a tree. He couldn't climb down, being an elephant, but inflicted terror on anyone who dared approach, including a lumberjack instructed to chop the tree down. In fact, the stupid bugs make the game amusing [and frustrating] [and !FUN!].


The difference is, for some reason DF bugs are amusing as hell. It's pretty freaking funny to imagine a were-elephant in a tree yelling at everything. I think part of it is that DF doesn't really have graphics. You have to imagine what's going on, which makes it pretty freaking funny. Also almost no bug doesn't have solution, and none really stop the game either- even with that tree you could probably tunnel under it and collapse it, which is again, funny as hell.


I'm not saying DF is free of bugs, but actual bugs in it are going to be fixed, so it's easier to ignore them. If you knew your dwarves are going to get stuck now, and in a month, and whenever you want to play, would it be still fun?


If a game depends on future changes to be fun, it's not fun until those future change actually occur.


I have to disagree with this. I'm definitely going to have fun with a game with a known bug that's going to be fixed in a week. It can even be a crashing bug, or making some mechanics unavailable. I'm just going to avoid that area, because the game is still evolving.

The same bug that's never going to be fixed makes the game not fun at all for me.


> I'm just going to avoid that area, because the game is still evolving.

That sounds to me like you're avoiding parts of the game because they're not fun, regardless of the chance of them being fixed in the future.


I love when people use the word "fun" without knowing what "FUN" means in the context of Dwarf Fortress.


For context, I think it's a shame Carp don't gain the Swimming skill anymore. Or teeth, apparently, if the wiki is to be believed.


That isn't the point, the game is a better game. It's existed for about 2 years, how long has DF been around?

I've read the developer's reasons for not having graphics, and it's BS. If he doesn't want to do it himself he should let someone talented in that area join the development team.

You're right of course, it's his project and he doesn't have to share it. It's free and beggars can't be choosers. But a game belongs as much to it's community of players as it does to the people who create it. The best games ever created have all been open, either open source or by embracing a modding community. As a gamer who's had a passion for all forms of gaming since before I could read, I find the developer's attitude extraordinarily negative in general.

That's my opinion, nobody is obligated to share it. I'm just saying something superior is going to come along and when it does nobody will remember DF. And that would be a shame, really.


DF has been around, and under active development, for ten years and is quite a bit more popular than you seem to realize.

> If he doesn't want to do it himself he should let someone talented in that area join the development team.

And it's also one guy living off Patreon and the donations generated by DF. Where should he find the money to pay an employee?


Kickstarter for Dwarf Fortress graphics initially, then Patreon again with an expanded community due to the Kickstarter. Seems like that would work reasonably well, without changing the basic game.


i think the type of programmer who fusses over data locality and multi threading isn't the same one who happily implements sand in the eye making the creature blind (until it's washed out by rain or splashing fluids).


It might start off with version control, but it would then end with us gulping plump helmet slurpees watching the latest cgi DF-Marvel tie in at the local megaplex. Leave the brothers be, and let future historians earn their pay.


Wow,I've heard slippery slope arguments before, but this definitely takes the cake.


I don't even know what it means.


Version control and "mainstreamness" seem pretty orthogonal to me.


You haven't heard of the new Linux, The Movie! project have you?


Seth Rogen is to play a young Richard Stallman.


Adam Sandler as a young Linus Torvalds


You aren't going to convince an idiosyncratic developer to release the source code and do all the other things that make a good developer a good developer.

I see it as a double edged sword. It's good we get DF, but at the same time, DF itself is a huge mess.


Thomas Biskup of ADoM said that he'd not publicly release the ADoM code for two reasons. First, people would trawl it for the secrets (discovery is a big part of the ADoM experience). Secondly, he was embarrassed about the state of his code and didn't want to let people see...

He did do a re-release recently that I funded on $kickstarter_analogue, but I haven't had a chance to play with it yet (and it's been a while...)


There are numerous public prereleases available and I'm playing the most current one right now (the barebones ascii version). It's still the ADOM I knew, but now with extra dungeons, stuff to do and a variety of fixes for bugs and scummy exploits.


Yeah, I understand they wouldn't be convinced to release the source, but that's why I am thinking about a middle ground, to have someone volunteer to help organize it, while still keeping the code private.

Though I guess there's the question of trust... would have to be someone they knew very well.


I'm sure he keeps regular backups. There's also his brother. If Tarn dies, his brother will probably release the code or have fans help recover it.


> In an interview I read, Tarn said something to the effect of that "he was not interested in learning about version control and it would just be a distraction that would take away time from the important work, since the way he works has worked for him for many years".

I want you all to imagine having to work with this person.


Why? He has stated on many occasions that he has no intention of working with anyone else.


I seem to remember at some point that Tarn said that if he ever stops working on DF for whatever reason, he would open source it.


I don't remember the exact words but if he is killed for this reason, it won't be.

I mean I love dwarf fortress but I probably wouldn't kill toady for it


"probably"

So, there's a chance?


Why not open source it? He would still be in control of the vision of the project.


He has stated in interviews that he doesn't want to turn into a project manager. He's said he's happy with how development on the game currently works and as long as the project brings in enough money to support him and his brother it's unlikely to change.


For all their advancement in storytelling and worldbuilding, it is still so frustrating to try and play DF today. I did not grow up with Roguelikes and ASCII characters or backwards-ass vim-style key-memorization GUI patterns, and the nostalgia that surrounds these things is simply annoying. The noob pack helps but what it really needs is for that isometric graphics mod to become a full UI layer. Mid-90s WinForms would be an improvement over what DF's got.

It is painful to see people so smart pooh-pooh something so obvious as a useable UI (I won't say "decent", because "decent" nowadays is this brightly-colored material-design garbage) that isn't super painful for people who like to come and go.


Anything worth doing takes a lot of work, and Dwarf Fortress is no different. It really is a matter of putting in the hours. But thanks to dozens of radical tools, you, too, can turn your fortress into a 3D, moving world.

Treat the experience more like playing with some sort of odd micro-kernel in a VM, with tools for poking and probing it. Approach it like a software development tool, or a Linux server and it becomes a little less daunting, especially as all the letters are on the screen for quick reference, rather than in a man page.

Still, the beauty of Dwarf Fortress IS that it doesn't care about the UI. It's not for you. It's not for anyone other than it's creators. It's for Zach and Tarn. Yes, it's also for the game's fans, but the brothers have always been building the game THEY wanted to play, and doing exactly what they wanted to do. They're not beholden to a schedule, or some massive revamp required in order to make the game more accessible. They're true to their own desires and souls.

They're artists. This is their art. Yes, it is truly impenetrable, but as with almost all art, taking the time to delve deeper is uniquely and spiritually rewarding. Yes, spiritually.


> Anything worth doing takes a lot of work, and Dwarf Fortress is no different. It really is a matter of putting in the hours.

And this is why, fascinating as it sounds, I'll never play Dwarf Fortress. I already have a job, and I get paid for it not only in satisfaction but also in money. It's awesome that they're able to devote their lives to their artwork, and I like reading about it from time to time, but in the end it's an unappealing value proposition for someone with limited time.


I agree 100%. I am very fascinated by Dwarf Fortress, but with a full time job, a family, and hobbies, I only spend a few hours every other week playing games. I donated money to them, but every time I think about actually starting to play I get intimidated by the incredibly steep learning curve. There are many other games that I can start playing and having fun immediately

That being said, I'm glad that I donated. I feel that I've gotten my money's worth just from reading about it every few months and knowing that I am supporting indie game developers. Hopefully at some point it will become more user-friendly so I can actually play it. Or maybe I should drop some hobbies...

Does anyone know how long it takes an average new player to get to the point where Dwarf Fortress is more fun than confusing and frustrating?


Honestly, just put in one long day. Throw 8 hours at it and by the end you should be having fun. Honestly. it only takes an hour or two to get going and learn the basics. The complex things are around specific functions, like military management, or the complexity comes from a task being difficult, like irrigation. Honestly, I fell in love with the game on the first day, and it took me a week or two to really learn the ins and outs so that I could begin doing complicated stuff. Again, a lot of the difficulty isn't from the UI, it's from the fact that finding out how to manage things is tough, and the fact that some of the things you're expected to do are extremely difficult to pull off, even if the UI were great. Perfect example is dealing with an acquifier: you have to dig a large, 3d plug into the ground: like a vertical box. You dig it out, but leave it connected by a small piece of land, then you dig out underneath it completely for a few Z-levels, then you dig out the last piece holding it up, and it drops into the Acquifier, making a sort of horozontal bridge layer through which you dig a staircase to the area under the acquifier.

Or, like me, you just turn off acquifiers in the Lazy Newb Packs launch options. Newbs should probably also turn off invasions.

Finally, a quick hint to help your fort flourish: ALWAYS kill the elf traders. You get all their stuff, and they never invade or get angry. They tend to come back again, actually, bringing you more cloth and food for free!


I tried the newb pack not too long ago... the experience was too clunky for me. The graphics packs are nice but they always feel incomplete... and even when I had this nice visualization (in a separate window...) it would frequently crashed and I really wished taht I could interact with the game with it.

Yes, they're artists and this is their art, but software rarely -- if ever -- exists in isolation, yet DF acts like it does. You've all these nerds with too much time on their hands building all this ridiculously complicated infrastructure just to play the game in a way that is more comfortable, when instead the DF guys could simply allocate X amount of time and then be done with it. And this isn't a demand that the DF guys make the UI better, just a wish that they would put in a minimal amount of effort so that the community could hook in their own GUI code with a minimum of fuss.

Besides, I write code and debug fussy computer shit all day for work. Games shouldn't require that kind of advanced hackery just to play.

And who cares if they're artists? Neither the artist nor his art are immune to criticism (or, wishfully thinking, critique).


Well, that's something I think the Adams brothers consider to be work. They aren't into doing work. They're into doing the fun stuff. Maybe that's immature and not to the liking of the audience, but once again, the whole point is that they don't care about the user. Frankly, that's a good thing, kinda like a film maker not caring about the mainstream audience, or making an accessible film. Like Harmony Korine...


And how is that mode of expression anything higher than selfish indulgence?

In cinema that sentiment has resulted in some of the most vapid, unwatchable trash ever created. In music this results in experimental, unlistenable noise that never seems to appeal to anyone enough to be self-sustaining. It's like an emotionally repressed teenager crying out, "you don't understand my pain, man! you'll never understand!" We do understand, we've all gone through it, and we've moved on.

If DF's creators want to be avant garde, then fine. But it is a lonely, and possibly pointless path, and again a damn shame, because oh how amazing it would be if it weren't!


It is ABSOLUTELY selfish indulgence. And plenty of people love every bit of it. Just because you find these sorts of things devoid of meaning does not mean they are meaningless to others.

Game development, these days, is so focused on hand holding, genre, and accessibility that it is only by truly following ones heart that something unique and new, like Dwarf Fortress, can be created.

Plus, it's still not verion 1.0, so who knows, maybe someday they'll fix the interfaces! But since other things are always in flux, it'd be a premature optimization now, anyway. Those pave the road to Balrogs, or something.


The game is over a dozen years old and from what I have experienced seems relatively complete. Sure, it's not 1.0, but at this point it is not hard to envision a functional ncurses-like interface built around the concepts that DF's current UI establishes, to say nothing of more exotic (or modern) alternatives.

But, as you say, it's their project. They can do with it what they want. I can sit here and critique and wish it were better, and you can defend it, and together we change nothing. I just really want to play a game as inspired as this in a way that doesn't require the kind of devotion and study this game does, because its a friggin videogame and I need to devote my studyin' time to shit that actually matters (to me, touche).

(And besides, I think we human beings have a fetish for complexity that we really could do without)


The version numbering scheme for DF is based on a percentage of desired features that have been implemented. The most recently-released version of DF is 0.43.04. It's not even half-way done!


So, guys create a ton of work for themselves and post up a public tracker. They scope the game to be WAAAY larger than what it could reasonably be, but this scoping allows its creators to put up this multi-generational progress bar that slowly-but-surely inches to completion, and in the process eke out a meager living. The elation, when that progress bar does move, is borderline orgasmic.

I call BS


Not everyone is out for a big score, and not all plans are short term.

They've already been working on it for a dozen years, so what's another dozen?

Anyway, back to the UI: they can rethink or polish it in the run-up to 1.0; no need to spend too much time on before then.


> The game is over a dozen years old and from what I have experienced seems relatively complete.

The original link for this thread is basically a huge list of the things that are not yet implemented.


Complete for a game, that is. All the pieces are there, the interactive feedback loop is in place, and one can currently get lost in it for hundreds of hours, should they so choose. That is a complete game to me.

The rest of that list? Stretch goals. Or the entire vision. What, you think I've never seen that list? It's a big list, and it's stupid because it is so impossibly long. The entire vision is never 1.0...


"Selfish indulgence"? What game did we make?


Several. But they never went anywhere, because they were never more than selfish indulgences. To say nothing of other art...


I think we should choose better words than "selfish" for the personal choices of people who make games that they give away for free.


I wouldn't generalize that any deviant, avant garde self indulgent artistic work that doesn't care about its audience and doesn't care about maintaining some conformity is necessarily "unwatchable" or "unlistenable" trash. I personally think that sometimes it's not such a pointless path, and helps push the boundaries of art, of what is accepted, and is essential in bringing new ideas forward.

It prevents everything from having the same esthetic and feel. The graphics of DF is also what makes it unique from the rest.


Also, only the fool thinks nearly all art is worth it, or that nearly all art can be "spiritual". Art is 99% crap and 1% gold -- whether music, or the visual arts, or the performing arts, or code -- and DF is one of the few cases in my mind that lands in both categories.


> * I did not grow up with Roguelikes and ASCII characters or backwards-ass vim-style key-memorization GUI patterns*

I did. They were still easier to learn and play than Dwarf Fortress.

A lot of people like to say that Dwarf Fortress is too deep and complex to ever be "easy," that making it more usable would dumb it down. This is silly. No one is saying that it should have fewer variables, fewer controls, that the underlying model should be changed any way. None of those things are necessary to build an interface which e.g. doesn't assign different keys to the same options in different menus.

To compare it to another famously unforgiving game, would Dark Souls be better if the controls reversed themselves every time you opened a menu? Would people consider that an exciting challenge?

I've worked with people like the DF developers, and even when they're skilled enough to tolerate their eccentricities, no one would ever pretend that it's a good thing. I think that's my real beef with it. As a programmer, I don't like shitty design. Dwarf Fortress is an awe-inspiring concept and engine buried in the shittiest of shitty design.


My sentiments exactly. Brilliance doesn't excuse bad design.


I think git is a great example of this. Amazing tool, I can't imagine software development nowadays without it. But that doesn't mean the interface couldn't have been more consistent.


> what it really needs is for that isometric graphics mod to become a full UI layer

Ugh, no. Isometric views are a nightmare for usability. They look nice, but they obscure things and make for particularly error-prone tile selection, which is just poison in a game where that's the main thing you're doing.

I'd look to Prison Architect and RimWorld for UI inspiration, not Stonesense and Gnomoria.


Alright fine, whatever, minor details. Isometric, fully 3d, 2d, who cares? Nearly anything is better than what it is right now.


I'm happy for people to augment DF with things like Armok vision and all the other tools, but I don't want DF to change in itself. That would totally ruin it. It's perfect how it is right now. RimWorld is fantastic, but it is a grain of sand compared to the beach that is DF. Which game would you prefer? The good lucking shallow one, or the feature-rich but slightly-less-sightly one?


Why is it always this binary comparison?

It doesn't have to be good looking. It doesn't have to pretty. It doesn't need to be 3d, or need all these fancy bells and whistles. Nowhere has that been suggested (at least in anything I've written), yet people nonetheless frame their answers in this artificial contrast.

Once again: just make the UI intuitive. Make things behave as normal. Grant a few hooks into the GUI code so the community can create their own without having to reverse engineer your game. That is all!


> It doesn't need to be 3d, or need all these fancy bells and whistles. Nowhere has that been suggested (at least in anything I've written)

You literally just suggested a pretty isometric visualiser become the new basis for the game UI.

That's a bit like complaining that vim is obtuse and to fix it we should switch its rendering engine to use proportional fonts.

> just make the UI intuitive

Oh yes, "just" do that.

If you actually have something new to suggest, feel free to contribute: http://www.bay12forums.com/smf/index.php?board=5.0

Generally the attitude is perpetually "yes, it'd be nice, but then we also want all this other stuff". And at the end of the day, Toady does what Toady does, he doesn't owe us anything.


Then you should play DF's predecessor Slaves to Armok: God of Blood which has procedural 3D graphics. (see http://www.bay12games.com/armok/screens.html)

The reason he transitioned to Dwarf Fortress (aka Slaves to Armok: God of Blood, Chapter II: Dwarf Fortress) is that developing the graphics and UI took so much time away from gameplay.


Of course. It doesn't change anything about DF though, and it's DF that made it into NY MoMA [1].

The problem with DF is that the UI runs off in a completely different direction. Playing the game requires untangling a mess of counter-intuitive mental contexts, using controls that seem to make little sense. It is an experience wildly different than the way one expects-slash-wants UI to behave. Artistically, one might say that DF's creators are making a statement against modern UI and its inherent complexity, but then I think that falls flat when you realize that the alternative (as in, what is it right now) requires considerable study to enjoy.

Is it artistic statement, or laziness? Or something else? Software, like all interactive mediums, has a functional component that you can't just ignore. If this were a painting, or a sculpture, or music, and I could only interact with it through perception, then that's fine -- entire art movements are built from challenging prevailing norms. But software is experienced through use, and no artist is immune to the practical considerations of their medium; rules which are best heeded. (Or not, but very veeery carefully and with great discipline.)

DF is a game, and games are meant to be played. This is a fundamental tenet of games. Play happens through approachability, among other things, and approachability is the product of an equation that includes good interface design. A game seemingly opposed to even a modicum of approachable design (something as simple as remapping mouse and keyboard controls to behave intuitively, as one would expect an ncurses-type app to act) runs opposed to very fundamental notions of game design. It is also terribly ironic, I think, and irony really is one of the basest and most-overused cliches in modern art.

Again, even the barest of olive branches extended to the community -- a simple, low-level API to hook into, or better default mapping of controls, or a recanting of their weird ideas of how windows should work -- would satiate this critic, as I really do want to enjoy DF. It is a shame that such brilliance is locked away in such a homely and unapproachable exterior.

[1] http://www.moma.org/collection/works/164920


> Is it artistic statement, or laziness? Or something else? Software, like all interactive mediums, has a functional component that you can't just ignore.

Of course it can be ignored. Given the depth of the feature list (see the original link), and the vagueness of the items on it, it's not surprising that they haven't gone through and come up with a comprehensive and perfect UI before anything else has actually been implemented.

Instead the UI grows to accommodate the features as they are added, like every other program in existence.


If I understand correctly, you say that software as an art form must by default have a conventional and easily usable UI or means of interaction, ("practical considerations of the medium") before considering anything artistic such as the gameplay itself?

But what if, beyond working on the gameplay itslef, it was artistically interesting for someone to play around with the practical necessities of the medium and try to diverge from the norm? Everyone believed in a standard, approachable reading format from left to right until poets and writers started messing around with that (I'm thinking ee cummings and House of Leaves by Mark Z. Danielewski). People tried to defy conventional ways to listen to music or watch movies too.

The DF UI is definitely a pain on the practical side and it's made it difficult for me to really get into the game yet, but from an outside perspective I think it's interesting that way too.


> If I understand correctly, you say that software as an art form must by default have a conventional and easily usable UI or means of interaction, ("practical considerations of the medium") before considering anything artistic such as the gameplay itself?

Yes. Exactly!

And in many cases (especially with games), people DO play around with the practical necessities and often stumble on something inspired. Like HomeStarRunner's "Virus" SBemail, or fourth-wall-breaking adventure games that comment on their own interface. But I think in DF's case it falls flat.

Western music is written in a consistent scale for practical considerations: it was discovered that writing music in a mathematically consistent format made it easiest for musicians to play and reinterpret. Sure, people deviate, but the vast majority of those efforts are terrible. Cinema -- even avant garde -- is constrained to the limits of film, audience attention, and patterns in storytelling, and the viewer generally expects certain things. Literature is constrained by the practical considerations of books and the written word, and so written text is formatted consistently per reader expectations. How is software any different?


Or the thought-games played by the Espers in The Demolished Man.

Personally I don't think the UI was planned out that much; maybe "it gradually got so" as the song says.

I think it's a bit like the qwerty keyboard. Maybe there was a rational for it at one point, but now it's just a thing you memorize and then don't think about much. In DF the 'loo(k)', '(v)iew', and '(q)uery' commands do similar but disjoint things which could easily be combined if Tarn really wanted to stop working on features for a while. Since he doesn't, it's just a thing that you memorize and then no longer need to think about; it becomes very much like touch typing.


There is no reason any game developer has to follow any particular established norm. That's a bit of an entitled point of view.


And I totally get their feelings against UI. Low level UI is a bitch to write and difficult to get right. I have abandoned ideas when I realized just how much work it would take.

These guys are clearly really smart. I agree with the other posts here in that I have no beef with the gameplay in any way. But god damn it would be nice if they would get off their high horse and learn from some working engineers.


If someone thinks they're better than you because they use the ASCII graphics rather than a graphics pack, then they are being a jackass. It's about the game, not about what it looks like.

That being said, I play it regularly and I found its learning curve incredibly similar to learning Vim. Videos really help in this regard - plus reddit's dorf fort community is really welcoming. Watch videos, pause a lot, and practice. A huge part of the game is !!FUN!!, which can be directly translated to "you will lose quite often". And that's okay!


From what I remember, the developer has said that he doesn't want to put much effort into the UI until the very end of the project, because he's constantly redesigning large subsystems and reworking the game mechanics. Any UI tied to any system or mechanic that gets ripped out, redesigned, or otherwise turned inside-out is going to have to be reworked every time that happens. So it gets a barebones UI until the underlying game mechanics are stable.


I feel like the only way anything you want is going to happen is in DF2.


Play it in text mode then, it is only menus.


It's funny how you can look at a simple item on that list, say, 'randomly generated musical instruments' and suddenly imagine a magma-powered tuba that menaces with spikes of microcline and which has an engraving of a dwarf and dwarves in orthoclase and rat leather relating to the founding of Doomedice on the Forgotten Glaciers of Terror in 1387...


Where it falls down is that none of that has any meaning. There is no context to explain why Doomdice or the Forgotten Glaciers of Terror are significant, nor what was going on in 1387 that caused dwarves to settle in such an inhospitable place.


It all has meaning. It's not just a RNG picking off words from a list and putting them together. All created masterpieces refer to an actual event in the history. All worlds have full histories with wars, civilisations rising and collapsing, megabeasts destroying pregenerated fortresses etc.


If you go read the Legend Mode, you'll find mentions of Doomdice and you can look up quickly what happened in 1387. Everything you find on artwork, is either related to the preferences of the dwarf who created the item, or to some of their known history.


That's where this magical thing of imagination comes in and takes over. Dwarf Fortress is the gaps in the world that it presents.


Well, usually the player would know why they settled in a haunted glacier, but masochism and insanity are two popular reasons for doing such a thing. Usually the player's imagination helps create the story at that point.

You can find a fort almost exactly like that in Roomcarnage:

http://www.bay12forums.com/smf/index.php?topic=139393.0


This game is the masterpiece life's work of one eccentric math PHD developer, and if you have any interest in fantasy or poetry in your soul I suggest you give the game a try. The learning curve is deathly steep, so I suggest starting with the lazy noob pack: http://dwarffortresswiki.org/index.php/Utility:Lazy_Newb_Pac... Strike the earth!


The learning curve is deathly steep, so I suggest starting with watching hundreds of hours of other people playing on youtube. Then getting the lazy noob pack.


The joy of DF is learning all the ways you can fail. Once you know how to set up a fort that can handle itself, the fun largely dissipates.


There's always somewhere harder to settle. There's always some new creative contraption that needs to be built.


True enough, and if you're into watching interesting people play games on video there's a lot of content to be had and DF is usually a fairly interesting watch since it can be relatively unpredictable at a certain point. There was one excellent guy I had bookmarked a long time ago, but I lost that set of bookmarks a while back.


The sense of entitlement that crops up throughout this thread amazes me.

It'd be bad enough coming from the people who actually donate the money that adds up to the steady living the Adams brothers earn by their work on Dwarf Fortress. Coming from random Hacker News commenters, many of whom hasten to add that they'd never play anything with such an awful UX themselves, it is bewildering and disappointing.

Isn't this community supposed to be above such things?


It is a bit discouraging. And keep in mind that the game is technically still in Alpha, everyone.


It has been in Alpha for a decade now. It's not clear if it is ever going to advance to Beta status.


Well, he has a set of goals he intends to achieve before it hits 1.0 and the version numbering currently is meant to reflect the % the brothers deem it complete. Considering they've managed to spend ten years doing the work I would say it seems possible it will, eventually, hit beta and even be 'finished'.


Well, it is currently at 0.43, and since we know that the last 10% of the project takes 90% of the time we can expect the 1.0 to release in approximately 232 years.


I find it interesting that there are so many complaints about the UI / keybindings. I agree that the keybindings are a bit confusing once your start, but I didn't find them to be that difficult to master. No more difficult than say, learning to use Vim effectively.

However, certain things do become issues once your dwarf population scales past 15 or so. Checking dwarf occupations manually (e.g., to make sure that there is at least one dwarf who is currently assigned the furnace operator occupation) becomes a pain, so I'd suggest using Dwarf Therapist [0] to manage that. It also lets you quickly check other things, such as whether any dwarves are feeling particularly sad.

Also, I encourage people new to the game to check out some of the stories that the community has generated throughout DF's existence. The game's ability to generate interesting scenarios that lead to good stories to tell your friends is perhaps the most interesting part of the game. Boatmurdered [1] is a classic. Roomcarnage [2] is currently in the process of being told and is quite good.

[0]: https://github.com/splintermind/Dwarf-Therapist

[1]: http://lparchive.org/Dwarf-Fortress-Boatmurdered/

[2]: http://www.bay12forums.com/smf/index.php?topic=139393.0


Honestly, I think eventually a central question of our time will become whether or not it is ethical to turn off dwarf fortress.


This game simulates at a granularity that is light-years beyond anything else that exists, so it's only fitting that the dev notes should contain goals which are absolutely impossible to imagine in any other game.


Indeed. From engravers drawing rats on a noble's bedroom walls because they dislike said noble (who hates rats), to cats getting drunk, because dwarfs moving around would spill their booze, which would get into the cat's pawns, who would subsequently lick them... the level of detail is outstanding.


Off topic: Using `background-attachment: fixed` for your background image will cause high CPU usage as the user scrolls.

http://fourkitchens.com/blog/article/fix-scrolling-performan...


Nah, modern browsers simply offload this to your GPU. They send the background layer to the GPU once, update the foreground as you scroll, and let the GPU composite them for display. Since this is a screen-space effect, and the fill-rate of a modern GPU is immense, this is pretty cheap overall.


Well a lot of people use Chrome and I immediately noticed a problem with the site when using Chrome, so maybe it's still something to keep in mind until it's improved.


That talks about Chrome, which is known to use a lot of resources in general (see: battery life tests).

Is it also an issue on IE/Edge or Firefox? What about Safari/Mobile Safari?


This line from the article makes me think it affects Mobile Safari (or did in the past).

> The performance for this feature is so bad that iOS simply ignores this property.


Oh, I guess that's why it seemed perfectly smooth on my iPad. Thanks.


position: fixed wasn't supported until iOS 5 and not completely/well until iOS 8: http://caniuse.com/#feat=css-fixed


This article was my introduction to DF when it was originally posted on HN: http://nytimes.com/2011/07/24/magazine/the-brilliance-of-dwa...


I love DF, played it for a long time but haven't touched it for last 1-2 years. A feew weeks ago I tried to play it again, I was excited about new features such as libraries and crafting in adventure mode.

I first started with adventure mode, and tried to make a conversation with someone... tried. New conversation system is a huge mess. Sure it is much more advanced but interface is needlessly complicated, it takes away all the fun.

I just closed DF and didn't even try fortress mode after that. I love DF but Toady's tastes with ui is too eccentric for me. I hated military UI when it came out and now this.

People doing awesome job with DF using reverse engineering. Playing it without dwarf therapist for example would be a nightmare. I wish it was opensource or at least had more modability.


This looks great, but I hope they don't fall into the "manual window placement" usability trap.

There is a reason the "old-fashioned" tiling window managers are still popular. And today most applications are internally structured via tiling/splitters and tabs, rather than individual window placement. Let alone that all attempts for a "web desktop" never took off.

Alas, I don't know any authorative sources for that, but I bet that manual window placement (and most of the time, also overlapping windows) is a well-known anti-pattern of user interface design.


Dwarf Fortress has never been about its usability and user interface - it's 100% focused on the background processes that drive the game.


How plausible would it be to take the generated executables, and get actual, readable code out of them?


Plausible, although your definition of the word readable may vary. In fact, I believe this is how the minecraft modding community operates (or operated), although they are starting with java bytecode which is much higher level so probably have an easier time of it.

Decompilers of varying quality have existed for a long time:

https://en.m.wikipedia.org/wiki/Decompiler


It depends how much you like reading a whole ton of X86 assembly language, with all the variable names replaced with numbers.

Something that looks like the UI code has its source included with the game, so there's some info to be gleaned there. Also, any interfaces to external libraries would be fairly easy to trace.

Still: Very difficult, due to the size of the binary (21MB), and the level of painstaking attention to detail that's necessary to reverse-engineer a program from its binary. Automatic decompilers exist, but they're fairly limited, and you'd still have the issues of meaningless variable names, even in the best case.


Emscriptem has a "loop detection" feature, I wonder if you could apply that to the binary...


One classic way to handle it is to load the binary into IDA Pro (a graphical disassembly suite). That starts from the entry point of the binary and traces through as much of it as possible, noting the locations of strings, function calls, the state of the stack when functions are called, different segments in the binary, etc. It'll allow you to view the code in blocks connected by lines, which indicate branches and loops. As a dev, you can go through the code then and start working things out. With some investigation and the context of where you are in the program, things slowly start falling into place, and you can start putting names to different functions. Although...Dwarf Fortress looks like it was compiled with GCC 4.5, so I'd expect things to be pretty difficult to read, just because of non-obvious optimizations made by the compiler.

I've always thought it would be useful to have a debugger that logs all the locations that data is read from or written to during execution, and which addresses were executed as instructions. Just play the game for a while to try to get some good code coverage, and import the data as extra input into IDA (probably you'd have to write your own plugin for that too).


Usually considerably slower than just writing it all again.


Toady should decouple the ui from the game so people could write a nice ui for a change. The only thing which stands between me and the game is the horrible ux.


Once a year or so, I pick up DF and play for a few weeks just to see what has changed. Coincidentally, I just finished my 2016 playfest last month.

I am sold on the ASCII graphics, especially once you drop in a decent replacement set. Generating unique icons for all the bazillion different things would be a huge undertaking graphically, and you pick up what things are quickly.

Sadly, the UI (and I use the term loosely) is still, well, awful. The menu system makes no sense (sure, you can memorize where something is, but that's not what I mean), and the keystrokes seem to be randomized across menus. As others have said, there's actually a pretty good game under there these days. It's just horrible to interact with.


That's fair enough. The menu can be a little tricky. But if you've played it on and off for almost a decade like I have, then the key bindings are so natural that I don't even look at the menu. Should they change, the game would be unplayable.

I suppose for new folks, it can be hard getting into it, but for the rest of us, I think it works quite well.


Is Dwarf Therapist still being maintained? (I'd look it up but I'm at work and all DF stuff is blocked by the firewall as "games") DT made the difference between playable and fun DF and endless fucking about with menus.


Sure is [0]. Really grateful for it. I don't think I'd be able to play this game without using Dwarf Therapist. Generally it becomes way too difficult to manage dwarf occupation assignments once your population shoots past 15 or so.

[0]: https://github.com/splintermind/Dwarf-Therapist


Love DF. Didn't know the community was so vast. Fingers crossed for open source, definitely would add some years of playability for the kiddies.

Praise the miners!


If you want to read the best stories the community has gathered from playing this game, here's a collection!

http://www.bay12forums.com/smf/index.php?topic=41896.0


I am thankful enough to have this incredibly fun game available to me; let's hope they can keep improving it.


No offense but trying to read a list with that background burns the eyes


Sorry; many are not acquainted with dwarf fortress. This is Tarn's style -- no style and all substance. It's worked for him for a long time because the substance is so substantial.

He's developed a procedural story generator; it doesn't look pretty on the outside, but it's become his life's work and inspired generations of developers.

The visual style of the list may be closer to an academic's webpage (he is a math PhD after all), but for fans of the game, it's a blueprint for a masterpiece.

I personally like the way he designs; write a story then build the game until it could potentially be generated by the game.


If he was all substance and no style, wouldn't he have a plain background colour that was about legibility, and inline any necessary images?

This strikes me as a particular, intentional style.


Certainly. It was just the best/easiest way I could think to describe it in a single sentence.

Dwarf fortress is fairly unique in style. I could say it's style is good, but I'd have to describe the game, it's culture, it's development history and how the minimal, perhaps unclean and cludgy style can help weave your imagination into it's narrative.

He could clean up the site, but I think it helps players understand the contract they are getting into by playing this game. A clean website would misrepresent dwarf fortress and it's style.


I'm going to go out on a limb and guess you've never brewed fine wine out of plump helmets, never carved the history of your race into the stone wall of the great hall, never scrambled after the goblin attack to remove decaying bodies of slain brethren as the last survivor goes mad with grief and purple miasma fills the mine.


Not sure why you're being downvoted. I agree. Merely opening that page made my eyes and head hurt immediately so I had to close it. I get that the game isn't for me, or for you, but it's a valid thing to say. I have a minor headache because of this page, and while that's not something I would normally complain about, I think it's a perfectly valid thing to say.


I think he's being downvoted because the observation does not say anything about the contents of the article linked. If there is nothing substantive to contribute to the discussion, better to say nothing.


I find the responses to my comment pretty great. I find the comment that "the game is not for me" particularly amusing. This game is right up my alley. I knew I would get downvoted for posting what I posted, but I feel it should be said. Contrary to what the other guy says, I feel it's a valid contribution in itself. I get that the background is the game. I get that it is a brilliant game. I get that it is a cult classic. I don't care if nobody cares. It is a fucking terrible background to read text on.


Actually, you could even mention it to the brothers, its quite possibly something they may eventually get around to fixing (if its a small enough fix).

Or you could wait till someone makes a web page which tracks and sorts all the goals into a readable tree, thus side stepping the issue all together.


This game may not be for you.


I love the game and have played it many times over the last 5 or so years... But does anyone else feel kind of betrayed/insulted that the project is not open source? The team is mostly just supporting 1 or 2 core devs who take years to release new features - and for a while now tools like dfhack are basically required to play the game.

The game has a huge community of fans but no one can contribute in any meaningful way. I dunno I find it mildly frustrating.


> But does anyone else feel kind of betrayed/insulted that the project is not open source?

Honestly, I find it hard to comprehend how much entitlement your comment suggests. A game is a work of art for his creator(s) and it is their own prerogative if they release the source code or not.

I can understand someone that wishes a game to be open source for study or moding purposes. But insulted by a game that doesn't align with my political agenda/view is a bit too much.


I suspect this is the sort of project that would die from design-by-committee injuries, if it were exposed to them.


The problem, I think, is that these two guys have a vision, and their cultural or technological decisions are all driven solely towards achieving that vision, and nothing else(as I see it). There's nothing wrong with that. In fact, you might argue that it is only through their unrelenting march towards their vision that they were able to not only create such a game as DF, but attract such a devoted following.


Open source doesn't really preclude that. They would still have control over committer rights. There are plenty of open source projects in which the majority of code and decisions are made by a handful of core contributors.


Open source does, however, require coordination time, training, answering a different set of questions than they currently do, probably rejecting all sorts of good code because it doesn't meet their vision and pissing off those contributors, or worse letting the code in.

Heck, just reviewing someone else's code is a potentially huge time sink.


I suspect that the brothers simply don't want to deal with the huge time sink that is governing an open source project with many contributors.


Yeah, really upset that they won't put my ideas in the next Star Wars movie too.


I don't think he even uses source control, so I imagine the code is not the cleanest.


This is likely accurate. If you look online you can find the original source to LCS[0], one of his older games.

It's basically a single 37kloc file.

Now, ... I'm not really one to say that you should keep all your to one function/class/whatever, i can appreciate the times when splitting things up does more harm than good, and I'm totally comfortable managing a 3-5kloc file.

But goddamn, 37kloc in one file is pushing it.

[0] http://www.bay12games.com/lcs/ (check 3.05, not sure if the later ones got cleaned up, i remember there was some effort by a couple devs to do so but... i don't know how far they got)


I had to download this to see it.

The `game.cpp` file is 925kb(!) in size and momentarily choked up my NVim upon opening the file. Hilarious.

Edit: Reading the source code made me want to play the game. The premise is great:

> The Conservatives have taken the Executive, Legislative, and Judicial branches of government. Over time, the Liberal laws of this nation will erode and turn the country into a BACKWOODS YET CORPORATE NIGHTMARE. To prevent this from happening, the Liberal Crime Squad was established. The mood of the country is shifting, and we need to turn things around. Go out on the streets and indoctrinate Conservative automatons.

http://lcs.wikidot.com/JK

EDIT 2: looks like it's still being developed and no longer 1 giant file https://github.com/Kamal-Sadek/Liberal-Crime-Squad


Some roguelike developers and solo game developers in general are notorious for writing code like this. The developer of Ultima Ratio Regum (http://www.ultimaratioregum.co.uk/game/) bragged on Roguelike Radio podcast about how his code base is difficult to deal with because it's a 500K LOC single Python file... He claims it's because he doesn't have a CS background but in practice most developers learn these practices in the industry, academic code is also known for being bad. There's definitely a proud ignorance to this style of programming, he knows he should be doing something else but can't be bothered to take steps that might make him more productive. Not intangibles but basic things like keeping his text editor from locking up or running slow.


500k? You'd have to be scrolling for a week... /s


I wonder how many self-conscious developers are out there, that don't release their source code for fear it having glaring flaws that will bring the wrath of their peers upon them.


Count me as one of them. My coding style suits me, but I know it's not for everyone. There's always a balance between writing elegant code, and throwing in a bunch poorly optimised conditional statements just because you are having a bad day and you just want that part of the app/game/whatever to JUST work properly after 5 solid hours of trying to debug it..

Going open source is like letting someone walk around inside your brain; If you are not thick skinned enough it's going to hurt, a lot.

I tried it once, and admittedly I was a much worse coder than I am now - it was my first big personal project (a MUD server) and I basically levelled up my coding skills from 'tinkerer' to 'semi-expert' over the years I was I writing it. When I finally open-sourced it (due to pressure from the community) several people tore it apart, and basically told me I was a shit programmer.

And that's why I don't do Open Source.


I know a professor working on a potentially important project that won't release his code and I suspect it's precisely for this reason. The communuty would tear him apart for sure, but it would be worthwhile to release it anyway.


This is a real problem in academia and not just because of superficial coding-style issues that the authors might be fearing criticism for. There is a real probability of serious bugs. There have been papers that have had to be retracted because the analysis software used was later discovered to have bugs that caused incorrect results (things being called statistically significant that weren't, and so on).


Lots I suspect. It is actually one of the reasons why I try to stick to "open source by default" in any side projects I might take on. Although it is pretty unlikely as I am a nobody it is theoretically possible that someone may choose to examine my code and I have that knowledge in the back of my head as I work.


Probably a lot. My guess is something similar happens with commercial software. Some commercial software that everybody loves dies, and the community cries out for it to be open sourced. Meanwhile, everyone that ever worked on the codebase is thinking, "You want to see this source? Uhhhhhhh..."


"Wow, this code is weird. Lets look at the commit history and hopefully that can shed some light on this..."

commit 7245 - working now, dont know why. whatever

commit 7244 - added debugging

commit 7243 - stupid impossible bug reported

commit 7242 - UI unimprovements I am required to make

commit 7241 - it is friday so committing before I go home LOL


As always, relevant xkcd: https://xkcd.com/1296/


This is easily the number one reason I keep most of my code in private repos on bitbucket rather than publicly on github.

And also what usually stops me from submitting pull requests on github.




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: