Dwarf Fortress in 2013
gamasutra.com
gamasutra.com
Just imagine how good this game and community around it would be if it had always been open source. Just imagine how much money they could raise in a Kickstarter to simply open source everything.
> They don't want to be delegators. They want to make a game.
Delegation is part of engineering (or not, since these guys have chosen not to delegate). Or part of "making a game" if you prefer. It would be genuinely weird to take the attitude that the only people who "make" a game are the programmers.
Except in indie games all over the place, right? Zeboyd, Spiderweb Software, loads of small developers do exactly this. I do it. I don't want other programmers for something I can do myself because I don't need to share my project with them. It's mine. It's part of me. Bringing more people in lessens its meaning to me.
(I wouldn't contract anything at all if I could do music and art to the level I deem required.)
> Delegation is part of engineering
Whatever gave you the notion that this is engineering? They're not frigging engineers. They're artists.
This is (arguably) great for the consumer, but as a fellow creator I understand their reluctance to open source their baby.
While I am absolutely an advocate of OSS and I do wish Tarn would go for it, the basic thing is that they dont want to and they love what they do, so deal with it, it's their game.
There are several great weaknesses of DF that are not the result of the maker's vision but of their limited time and resources.
For example, it is not Toady's vision for the game to get very slow even on powerful hardware when you have a big fortress. This is perhaps a negative blowback of Toady's very laudable vision to have each dwarf be independently simulated. However, an expert in parallel programming should be able to improve this a great deal. AFAIK, DF currently runs as a single thread, and many of its processes can be split off. This is, however, not easy and probably not something Toady is able to or wants to do.
It is also not Toady's vision for the game to be controlled by a mindblowing number of complex menus and obscure key combinations. It was probably not his vision for about half the game controls to be mouse enabled and half of them not. He has admitted himself that the interface needs a lot of work. But he is obviously not working on it, but adding new features like vampires, and Indiana Jones style careening mine carts (last time I checked). I am not saying he should not add those things -- it is a free game and he should work on what is more fun for him. But if he opensourced it perhaps someone else would fix the interface for him.
It is obvious the game needs outside help. People are hacking the game in memory in order to add functionality. Last time I played, you needed to run another program called "dwarf therapist" while playing in order to be able to manage your dwarf's skills and professions. Dwarf therapist would work by directly reading and manipulating dwarf fortress data in memory. Sorry but if the game worked well, nobody would take the time to hack DF just so he can write a helper program.
If they opensourced the game, the people that wrote dwarf therapist could just add that functionality directly into the game.
I say this as someone who loves DF, but has suffered plenty from its frustrations.
Open-sourcing it dilutes their brand. It increases the likelihood that they can't fund it anymore because other people start blathering about their forks and distract from the game's actual mindshare.
> However, an expert in parallel programming should be able to improve this a great deal. AFAIK, DF currently runs as a single thread, and many of its processes can be split off
DF's simulation model is deterministic. Most aspects of it depend on prior aspects. It is a great case of Amdahl's law. Ripping that out and changing it would change the core of his game. I can't really see him wanting that if he doesn't understand it and, like Baughn's work on the graphics subsystem, I can't see him spending a lot of time to understand it. (Toady isn't a computer scientist and he isn't really a hacker as is commonly understood here. He learns what he needs to make his game and it pretty much ends there. This may sound critical but I mean it as a compliment.)
> But if he opensourced it perhaps someone else would fix the interface for him.
His supporters are content with the interface. It isn't preventing them from enjoying the game and it's not hindering their ability to fund continued development. You are suggesting that he potentially damage his revenue stream to fix problems that aren't really problems right now.
I haven't sent him any money yet, so I'm not sure if I count as a supporter - but I am damned not content with the interface. If it weren't for Dwarf Therapist, the game would be nigh unplayable.
I don't see what that has to do with using parallel programming to improve the performance of DF's simulation. If you are implying that threading implies nondeterministic behaviour in a simulation, you are mistaken. In fact, a system with such a discrete space model as DF would be quite easy to parallelize in a safe and deterministic way, with the proper expertise and forethought.
Basically, when starting the game, spawn X threads and partition the world between them so that only one thread can write to any particular world block. Then, when calculating a new frame, make a read-only copy of the previous world frame. Any reads are done from that copy; any writes obviously occur only in the blocks assigned to a particular thread. Wait for all threads to complete, then render thread. No messaging, locking, event handling or whatever needed. Just care and forethought.
But you are right that Toady likely not possessing that kind of knowledge. That's the very reason why people would like to see others involved for things like optimization and UI design and the main point these people are trying to make; Toady seems either not able or willing to do it himself, and it could improve the state of the game tremendously.
That is where open source in games seems to excel: keeping old games alive and running on modern systems.
One thing that holds crawl together is an overarching philosophy, particularly the Berlin Interpretation (http://roguebasin.roguelikedevelopment.org/index.php?title=B...).
Someone even made fan art for us: http://i.imgur.com/cGO39.png
http://roguebasin.roguelikedevelopment.org/index.php?title=M...
Considering the quality of open replacement assets like OpenArena, I also don't think that open source games work particularly well.
If DF were to be open sourced, the first thing I would do is attempt to contribute to cleaning up fortress mode. I suspect many developers would do this as well. So as a long long long time observer of this game, I can understand the lament that it's not open source and I sympathize. These sore spots likely won't see improvement. But...
All the reasons I normally advocate for freely open source software just arn't here!
Toady is clearly not doing anything malicious with his program. He also has no intention of restricting his program in the future, anyone can use it. He's trying to make the best software he can, for the user. Dwarf fortress isn't doing dirty things behind the scenes, and Toady has more than earned my trust. Versions have being ported to multiple OS's, and it's clear he's going to work on it for a long time. Open source isn't needed here, it would only get in the way of what he's trying to achieve. I'm willing to wait until I'm a much older person to see the masterpiece he creates.
Have you considered open sourcing more pieces of Dwarf Fortress so that the
community can try to help with the nitty gritty engine bits while you can
continue having sole ownership of the underlying direction?
The pathfinding and multithreading optimization is a good example of
something I'd love to help with given the opportunity. (Related to this
question.)
Is there any other way that the more technically-inclined can help?
Tarn's response: I'm just not a project manager. I tried sharing the pathfinding code with
some people, and some progress was made, but unless my involvement is more
hands-on, I don't think it'll work, and I didn't want to be involved in that
kind of arrangement. On the other hand, the porting and graphics work with
Baughn went pretty well, although now I can't work with the graphics code
myself because I don't understand it. I'd hate to have that happen to more core
pieces of the game. Baughn also had to suffer a lot of annoyances because I
have no inclination toward things like version control.
"I'm just not a project manager." As someone who has several active open source projects, I can very much relate. I can easily see Tarn and his brother be completely overwhelmed by open source activity, paralyzed to make any kind of internally directed progress on it. Also, not everyone is good at maintaining this kind of thing, so it could cause more harm than benefit to the project.I too wish the code was open source, but I can understand the reluctance and speculate that it may even be the correct decision until the project is completed or abandoned.
[0] http://www.reddit.com/r/IAmA/comments/1avszc/im_tarn_adams_o...
Take the +12 month release cycles, there will surely be more active open source forks than what the Adams' can compete with, resulting not only in loss of their revenue stream but also loss of control of their vision. Perhaps this would be an altruistic benefit to the community, but probably a solid loss for the creators unless they're willing and succeed in diving in and leading the community of contributors as a whole.
Very risky.
Also from another interview, Tarn spoke about how he sees Dwarf Fortress as his life's work. This is the masterpiece that he would spend the rest of his life perfecting. Imagine a master painter like Picasso working on a piece for nearly a decade, being asked to let the community contribute to it so that it will be completed sooner.
I don't think dilution is main threat here. I think turning Dwarf Fortress into a viable open source community takes effort, and just letting the code into the wild won't necessarily accomplish much.
This is the key right here! Without version control, there's absolutely no way he's going to be able to collaborate with a whole bunch of people on this thing. If he decides to dump the source code up on his site, it's basically read-only at that point.
Besides that, he derives his income from donations. He does not want his project getting forked and his community leaving him behind in the dust.
I don't think he'd even need to even open source it, in terms of allowing anyone else to release it. If it was just possible to hook into it and make custom UI or Renderers, I think people would run with it. Some have tried but they are extreme hacks at this point.
These guys just don't get it. DF can be SOOOOO much better, yet they are working on adding features instead making the game better.
With a one-developer game, you don't spend time polishing things. You bounce around different areas, adding things as you wish. Letting yourself get bogged down in polishing details that aren't exciting makes you start looking for other things to do, losing interest in the project altogether.
There are cures for all of these problems, but he refuses to treat or allow anyone else to treat his baby.
This project isn't some attach-rate-obsessed no-value-add startup. As long as he can pay his rent, he doesn't need to make anyone happy but himself.
There is a reason DF has inspired so many others (including the creator of minecraft), and it was't the graphics.
Basically: you're starting the equivalent of a "vim vs. IDE" flame war, and adding just about as much value.
I'm sure minecraft will be smaller by then, but that's because it's far less complex and development is basically nil at this point. Nothing to do with how the controls are implemented.
DF sees a little of this with dfhack and all the mods on the forums.
Maybe. Or maybe it would lose its soul and become yet another pretty game with boring back stories.
I'm torn about that, but I can't help notice that the reason why the stories of your dwarves are so engrossing and so unbelievably epic and real is because 100% of Today's time is spent working on these stories instead of a pretty GUI.
I understand they do not want to invest time in these, but all they need is to open up a TCP port and have a protocol that accept commands and returns some game state. Then we could make all kind of open source clients, some fancy (2D, 3D, 4D, whatever) some crazy (multi-screen setups), web frontends or android thin-clients to cloud hosted DF, etc.
Sorry, couldn't help myself.
Given the cult following of the game and the people who would like to play it but are otherwise frustrated, I doubt they'd have trouble reaching the limit. The press they'd get just from announcing would give them a boost as well.
I don't understand why this is such a hard concept for some people.