Bay 12 Games Forum

Please login or register.

Login with username, password and session length
Advanced search  
Pages: 1 [2] 3

Author Topic: Can a programmer play DF without thinking "I want to program this!"  (Read 3524 times)

eerr

  • Bay Watcher
    • View Profile
Re: Can a programmer play DF without thinking "I want to program this!"
« Reply #15 on: January 03, 2011, 01:49:18 pm »

Siqo, I'm kinda afraid to ask now.

... how the hell will you save that?
Logged

salmonjockey

  • Bay Watcher
    • View Profile
Re: Can a programmer play DF without thinking "I want to program this!"
« Reply #16 on: January 03, 2011, 04:09:53 pm »

... Tarn has a weird combination of technical savvy + creativity + actually getting shit done that is rare, and that's why DF is what it is.

You absolutely need those three talents, for sure :)

But the most difficult one, the "actually doing stuff", I think all owes to the community. This is a bit speculative, but it appears Tarn put a lot of focus on actually making stuff - anything really. Just cranking out something, forgoing stuff like graphics and user-interface. The subsequent sharing and interaction with the community that comes from actually having something is what I believe is the true power, the fuel if you will, that powers a single person to do a big project. The monetary support the community is giving Toady is NOTHING compared to the value of having an audience.

At least that's how I feel a couple of my previous project has ground to a halt: It was just myself, producing something that took too long to reach a playable stage. Can anyone really motivate themselves for a full year working on something by themselves, with no feedback? I sure know I struggle. I've done months of solid work, but there are limits. I recently had a chat with an older man on the subject of authors, and he wanted to impress onto me a certain point: Despite the common myth of the "lone" author-genius, the truth is that artists are generally very dependent upon their milieu and audience. And I guess that same goes for programmers.

Which is why I wrote this post in the first place. Not because I necessarily want to find partners or talk about any specific project I'm doing - I just want to see if there are other people in similar situations.

That said, there's a way to fix that actually-getting-shit-done problem. Bay12 7-Day Roguelike contest, anyone?

This. Such a great idea, and for so many reasons. It allows people to dip their toes. It builds confidence and momentum. And it will give, at least for the time being, everyone an audience, which is a great motivating factor.

We'll need some generic rules and stuff. Personally I'd prefer a weekend thing as opposed to 7 days. But yeah, let's get the ball rolling!
Logged

Nadaka

  • Bay Watcher
    • View Profile
    • http://www.nadaka.us
Re: Can a programmer play DF without thinking "I want to program this!"
« Reply #17 on: January 03, 2011, 06:02:52 pm »

To an experienced programmer with highly advanced skills, I look at dwarf fortress and simultaneously see several different views.

1: Tarn is very knowledgeable in advanced maths and has amazing self organizational skills. I would find it very hard to do this without losing interest or getting distracted.

2: He also lacks the rigorous and formal knowledge of computers and programming skills that I possess. While he is a capable learner, there really is no replacement for the fundamentals and he would be much farther along if he had taken a year or two to study this at the beginning of the project.

3: Tarn had the gumption to quit his job and take a huge chance to follow his dream in a way that I was always too afraid to try. I think that this is the big thing that separates him from others. That he is willing to stake everything on this project and follow through.

I have a ton of great ideas and the skill to implement them, but they compete in the same "free time" space as everything else in my life after work ( playing video games, playing rpgs, robotics, friends, women, beaches, etc) so I rarely get anything substantial done. DF is definitely the kind of thing I find fascinating and something I would like to do, it is something like things I have planned and started. But like others have said, I just lack the dedication to commit to it as wholeheartedly as Tarn has.
Logged
Take me out to the black, tell them I ain't comin' back...
I don't care cause I'm still free, you can't take the sky from me...

I turned myself into a monster, to fight against the monsters of the world.

Siquo

  • Bay Watcher
  • Procedurally generated
    • View Profile
Re: Can a programmer play DF without thinking "I want to program this!"
« Reply #18 on: January 04, 2011, 04:57:01 am »

Siqo, I'm kinda afraid to ask now.

... how the hell will you save that?
Only save the changes made by the user. The rest is generated on the fly by the same algorithm.
So: Generate-with-pseudorandom-with-seed -> get changes for this locale -> apply changes -> display. Right now I'm using SQLite to keep track of changes, I hope it holds up with large amounts of data. When moving through the world new parts are generated and loaded and the parts "behind you" are unloaded from memory. By using some kind of octtree (or larger, I'm still experimenting to find a good size) for the terrain it's possible to generate less detail for far-away stuff and more detail for close stuff.
Logged

This one thread is mine. MIIIIINE!!! And it will remain a happy, friendly, encouraging place, whether you lot like it or not. 
will rena,eme sique to sique sxds-- siquo if sucessufil
(cant spel siqou a. every speling looks wroing (hate this))

salmonjockey

  • Bay Watcher
    • View Profile
Re: Can a programmer play DF without thinking "I want to program this!"
« Reply #19 on: January 04, 2011, 08:14:04 am »

2: He also lacks the rigorous and formal knowledge of computers and programming skills that I possess. While he is a capable learner, there really is no replacement for the fundamentals and he would be much farther along if he had taken a year or two to study this at the beginning of the project.

That doesn't matter in my opinion. Anyone with great interest in a field will quickly assume a level of competence that far exceeds the "average" graduate. Not that I want to downplay the value of a proper CS education - a highly motivated student in this field can surely make tremendous strides. All I am saying is that that you can easily learn as much by yourself, and more, than your average student mediocre CS student.

It's hard to weigh up the pros and cons. A talented self learned programmer is probably highly pragmatic with a great ability to think for himself. On the other hand, there is the risk of using inferior methods where known solutions exist. At least I don't think we can just say that "with CS education, Toady would be further ahead now" - there are just too many variables.

3: Tarn had the gumption to quit his job and take a huge chance to follow his dream in a way that I was always too afraid to try. I think that this is the big thing that separates him from others. That he is willing to stake everything on this project and follow through.

But like others have said, I just lack the dedication to commit to it as wholeheartedly as Tarn has.

Yeah. You would have to be one focused individual to combine developing DF with work and a bunch of hobbies. Unless, of course, you didn't insist on making everything yourself... A handful people, assuming they were all on the same page, could easily develop a game with larger scope than DF and in shorter time. But, I guess it is really hard to gather such a handful of people. Everyone has their own ideas, and then there is the organizational noise. Still, it's probably doable.
Logged

Rysith

  • Bay Watcher
    • View Profile
Re: Can a programmer play DF without thinking "I want to program this!"
« Reply #20 on: January 04, 2011, 11:44:49 am »

Who here has tried making a similar game? Who has been thinking about it, but never quite done anything? And perhaps most interestingly, what would be the most important things you would do differently, both in terms of architecture and game design?

So, I'm a programmer (and I like to think of myself as a good one), and I've tried to make a similar game before (back in the downtime between graduating and finding a job), and I have to say that while if I were starting to make Dwarf Fortress today I'd do some things differently (particularly around handling multiple cores and what I suspect is a task-creation system that doesn't scale well with number of taskable items on the map, in terms of committing excessive memory access), but I'd be at least five years behind. As I said, I've tried making a game like dwarf fortress (though less ambitious, it still wanted to have a randomly-generated world + significant history), and as with any software engineering project there are tons of unexpected things that come up and need to be solved, and even having seen Dwarf Fortress I've be surprised if I could get a Dwarf Fortress clone to where Dwarf Fortress is now in five years. I deeply admire Tarn (and Zach) for their collective determination, creativity, and programming skill.

2: He also lacks the rigorous and formal knowledge of computers and programming skills that I possess. While he is a capable learner, there really is no replacement for the fundamentals and he would be much farther along if he had taken a year or two to study this at the beginning of the project.

That doesn't matter in my opinion. Anyone with great interest in a field will quickly assume a level of competence that far exceeds the "average" graduate. Not that I want to downplay the value of a proper CS education - a highly motivated student in this field can surely make tremendous strides. All I am saying is that that you can easily learn as much by yourself, and more, than your average student mediocre CS student.

Somewhat contradicting myself from above, I have to agree with Nadaka that a 'proper' CS background is something that I think would really help Dwarf Fortress now. I find that while anyone with a great interest in the field can definitely exceed an average graduate, in order to truly excel you need to both have a great interest and the theoretical background. I'm sure that Tarn's math background helps immensely here (Because CS is essentially applied math), but at the same time it seems like there are certain things that show up as DF grows in complexity (like multithreading, or efficient memory access) that are artifacts that don't show up in the math, and Tarn has to learn about them as they become problems, rather than designing for them from the start. With that said, we're now thinking of things that are relevant now, rather than when DF was first released, much less first designed. You said that you spent a few years working on the infrastructure to generate a scalable simulation game, an effort that I'm sure a) didn't seem appropriate when DF was first designed and multiple processors were few and far between and b) is directly opposed to the spirit of releasing bits of the game as they are playable. You've seen the list of planned features for DF: Can you imagine writing the infrastructure to support everything on that list, and only then starting to write the actual game?

Kind of on that, I suspect that the inside of Dwarf Fortress is about as messy as you'd expect a constantly evolving five-year-old program to be, and so while we can look from the outside and say "It would be nice if it supported multiple cores" or "it would be nice if it supported multiplayer", adding things like that might well involve a fairly drastic rewrite of what's been done already. We've seen that before, of course, with the OpenGL rendering rewrite that we got with 40d and I suspect that many things are being rewritten under the hood with the current town/world changes, but adding something like support for multithreading at this point would almost certainly involve a total rewrite. I think it's not just that Tarn didn't plan for multithreading or fortresses with hundreds of thousands of items, but that they weren't appropriate to think about when he started writing DF.

So, in summary: Have I thought about making a game like DF before? Yes. If I was writing a game that I knew would turn into what DF is now, would I do things differently from what Tarn has done? Yes. Do I think that having had a 'real' CS education might have helped DF's development? Yes. At this point, though, looking at where DF was, what it has turned into, and what it is trying to be, I'd say that I can't see myself doing things as well as Tarn has thus far.
Logged
Lanternwebs: a community fort
Try my orc mod!
The OP deserves the violent Dwarven equivalent of the Nobel Peace Prize.

Siquo

  • Bay Watcher
  • Procedurally generated
    • View Profile
Re: Can a programmer play DF without thinking "I want to program this!"
« Reply #21 on: January 04, 2011, 11:58:58 am »

I'd say that I can't see myself doing things as well as Tarn has thus far.
But you'll never know until you try :D (well, you specifically did try, but if more people tried to be like Tarn, the world can only become a better place ;) )
Logged

This one thread is mine. MIIIIINE!!! And it will remain a happy, friendly, encouraging place, whether you lot like it or not. 
will rena,eme sique to sique sxds-- siquo if sucessufil
(cant spel siqou a. every speling looks wroing (hate this))

eerr

  • Bay Watcher
    • View Profile
Re: Can a programmer play DF without thinking "I want to program this!"
« Reply #22 on: January 04, 2011, 01:10:29 pm »

Does computer science have doctorates?
Logged

Nadaka

  • Bay Watcher
    • View Profile
    • http://www.nadaka.us
Re: Can a programmer play DF without thinking "I want to program this!"
« Reply #23 on: January 04, 2011, 01:56:25 pm »

Does computer science have doctorates?

Yes it does. I was considering going back for a doctorate after my first employer went bankrupt, but I found a new job before it came to that. For most schools the big differences between the masters program and doctorate in CS is that the doctorate pays a stipend, requires teaching and has a thesis project.
Logged
Take me out to the black, tell them I ain't comin' back...
I don't care cause I'm still free, you can't take the sky from me...

I turned myself into a monster, to fight against the monsters of the world.

malimbar04

  • Bay Watcher
    • View Profile
Re: Can a programmer play DF without thinking "I want to program this!"
« Reply #24 on: January 04, 2011, 02:36:55 pm »

No. No programmer will ever be able to play DF without thinking about what the inner logic is. We are cursed to ponder the inner workings of an artifact made by a man far greater then most of us for the rest of our natural lives.

I can't say I ever had that feeling. DF does make me think "wow, that is a really sensible way to handle X". But it never makes me think "I don't understand how it does X". Contrary to popular belief, DF isn't magical :)

I blame this on the RPG culture

What do you mean by RPG culture btw?

I was thinking of tabletop RPG's like Dungeons and Dragons. The leader of the group either buys a campaign in a book (really expensive and super-cliche), or makes it up. They HAVE to do that, or there is no game. So what do we do? Spend hours upon hours setting up a world, continents, cultures, and so forth. Depending on which game, you also often decide on mechanics, how magic works, what "classes" are available, or whether it's really acceptable that one of your characters does a backflip over an orc in order to stab him in the back.

I've never been a particularly good game leader, and I never had a group to practice much with, but on my own time I've created dozens of worlds on graph paper. I've also created an all-cursive alphabet (that's more logical than the English alphabet and uses something like 30 characters), and several different city plans, superstitions, and so forth. Half of the classes I've had I try to apply to making a world.

Logged
No! No! I will not massacre my children. Instead, I'll make them corpulent on crappy mass-produced quarry bush biscuits and questionably grown mushroom alcohol, and then send them into the military when they turn 12...

Siquo

  • Bay Watcher
  • Procedurally generated
    • View Profile
Re: Can a programmer play DF without thinking "I want to program this!"
« Reply #25 on: January 04, 2011, 03:13:05 pm »

I was thinking of tabletop RPG's like Dungeons and Dragons. The leader of the group either buys a campaign in a book (really expensive and super-cliche), or makes it up. They HAVE to do that, or there is no game. So what do we do? Spend hours upon hours setting up a world, continents, cultures, and so forth. Depending on which game, you also often decide on mechanics, how magic works, what "classes" are available, or whether it's really acceptable that one of your characters does a backflip over an orc in order to stab him in the back.

I've never been a particularly good game leader, and I never had a group to practice much with, but on my own time I've created dozens of worlds on graph paper. I've also created an all-cursive alphabet (that's more logical than the English alphabet and uses something like 30 characters), and several different city plans, superstitions, and so forth. Half of the classes I've had I try to apply to making a world.
Get yourself a group and watch them tear your precious world apart. DM'ing is hell.
http://www.penny-arcade.com/comic/2010/12/13/ and http://www.penny-arcade.com/comic/2010/12/15/
Logged

This one thread is mine. MIIIIINE!!! And it will remain a happy, friendly, encouraging place, whether you lot like it or not. 
will rena,eme sique to sique sxds-- siquo if sucessufil
(cant spel siqou a. every speling looks wroing (hate this))

salmonjockey

  • Bay Watcher
    • View Profile
Re: Can a programmer play DF without thinking "I want to program this!"
« Reply #26 on: January 04, 2011, 07:11:17 pm »

When I made the original post, I was fairly unsure as to what I expected. But I must say I've been surprised by just how many different perspectives and thoughts I've read so far regarding the making of roguelikes and DF. I'm enjoying this a lot :)


Somewhat contradicting myself from above, I have to agree with Nadaka that a 'proper' CS background is something that I think would really help Dwarf Fortress now.

I do believe that a lot of the scalability and general optimization issues facing DF now is less about Tarn's abilities and more about how DF came into being - as a hobby project, started when multiple cores weren't mainstream. And as you said Rysith, those things weren't appropriate to consider at the time DF was started. And now it's really difficult. At least for a single person. Any optimization will directly delay implementation of new features.


Well, I have another question that really interest me. If there was a project just like DF, but open source, would you contribute? Let me specify "just like DF": It would be approximately the same level of complexity. A fair share of it would already implemented. Perhaps not as much as DF, but at least enough to make it playable. There would be at least somewhat of a community - thus an audience. A single person, a "Toady", basically decides what goes in and what doesn't. (Of course, it's assumed that valuable contributors would be listened to, but with a general agreement that one person ultimately owns the project).

I am asking the question specifically like this because I don't think a "community" game, where everyone implements whatever they feel like, makes any sense. But as stated, how attractive does it sound to contribute to, on a hobby basis? Are there any general conditions that make you want/not want to contribute?
Logged

Biag

  • Bay Watcher
  • Huzzah!
    • View Profile
Re: Can a programmer play DF without thinking "I want to program this!"
« Reply #27 on: January 04, 2011, 10:39:00 pm »

That said, there's a way to fix that actually-getting-shit-done problem. Bay12 7-Day Roguelike contest, anyone?

This. Such a great idea, and for so many reasons. It allows people to dip their toes. It builds confidence and momentum. And it will give, at least for the time being, everyone an audience, which is a great motivating factor.

We'll need some generic rules and stuff. Personally I'd prefer a weekend thing as opposed to 7 days. But yeah, let's get the ball rolling!

Awesome! I'll think about rules and put up a thread soon.
Logged

SolarShado

  • Bay Watcher
  • Psi-Blade => Your Back
    • View Profile
Re: Can a programmer play DF without thinking "I want to program this!"
« Reply #28 on: January 05, 2011, 03:45:58 am »

That said, there's a way to fix that actually-getting-shit-done problem. Bay12 7-Day Roguelike contest, anyone?

This. Such a great idea, and for so many reasons. It allows people to dip their toes. It builds confidence and momentum. And it will give, at least for the time being, everyone an audience, which is a great motivating factor.

We'll need some generic rules and stuff. Personally I'd prefer a weekend thing as opposed to 7 days. But yeah, let's get the ball rolling!

Awesome! I'll think about rules and put up a thread soon.

I'll try to keep an eye out. I may or may not be able to participate, but I'd love to spectate.
Logged
Avid (rabid?) Linux user. Preferred flavor: Arch

salmonjockey

  • Bay Watcher
    • View Profile
Re: Can a programmer play DF without thinking "I want to program this!"
« Reply #29 on: January 05, 2011, 06:58:41 am »

Awesome! I'll think about rules and put up a thread soon.

How about a 48-hour contest that participants can partake in at any time during a month, i.e february? People basically say "I'm starting now", and then they can post progress updates in the thread for the next 48-hours, and hand the release over to the organizer that holds it until the end of month. Then people will better be able to participate, and we might even attract more participants during the coarse of the contest.

As for specific setting rules, I'd like these two included:
  • You cannot directly control your units.
  • You generally have more than one unit that belongs to you.

Should make it DF-ish.
Logged
Pages: 1 [2] 3