Bay 12 Games Forum
Finally... => Creative Projects => Topic started by: salmonjockey on January 01, 2011, 10:57:58 am
-
I've been designing, programming and modding games on a hobby basis for over a decade. And I must say Dwarf Fortress is one of those groundbreaking games that makes me nod in agreement and say "Yep, this is the good stuff right here."
But, there are a million things I disagree with. No multiplayer, no scalable multi-core architecture, the user-interface, a lack of general playability. The list would be endless if I went into details, but can summarized by the simple fact that I would have entirely different plans if I were to make an awesome simulation game.
As it happens, I have been planning to make an awesome simulation game for years - since long before I even tried DF. I've spent a couple of years just working out a scalable architecture that can utilize any number of cores and/or machines for a strategy/simulation type game, figured out a lot of details regarding multiplayer and user interface, and I feel quite ready to get started properly.
I cannot imagine, however, that I am the only one. Surely, there are other people out there. It would be nice to get to know you! 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?
Oh, and if I can make a request, I'd like this thread to be for programmers. There is already an entire sub-forum (http://www.bay12forums.com/smf/index.php?board=5.0) for anyone to talk about generic suggestions.
-
I've thought that, but I lack the experience, skill, and know-how, required to pull it off.
-
I've thought that, but I lack the experience, skill, and know-how, required to pull it off.
This.
Although, I'm not complaining about how Toady makes his games - after all, everybody is different.
-
http://www.goblincamp.com/
-
I blame this on the RPG culture, where the worlds we can create are so amazing yet always lacking. What if we could automatically create them!? What if we could get cool things to happen? sweetness occurs.
As I learn how to program, I am SO going to start making a similar god-sim. Ideally I'd want it to be able to support better graphics, which would also allow variations in sizes of creatures and so forth. The graphics would probably be along the lines of the first final fantasies, since getting graphics that don't clash horribly would probably require a professional.
And so forth of course. The ideal version would require such computing power though that no one would be able to play it.
-
I've thought that, but I lack the experience, skill, and know-how, required to pull it off.
This.
This.
-
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.
-
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?
As I learn how to program, I am SO going to start making a similar god-sim. Ideally I'd want it to be able to support better graphics, which would also allow variations in sizes of creatures and so forth. The graphics would probably be along the lines of the first final fantasies, since getting graphics that don't clash horribly would probably require a professional.
And so forth of course. The ideal version would require such computing power though that no one would be able to play it.
I think you are spot on with graphics along the lines of the first final fantasies. Or to put it another way: Graphics that are highly "icon"-ish (to use a different word for low fidelity). Not only is it a lot easier for the programmer/artist than high definition 3d models; there is another great benefit as well: Players will be in "fill in the blanks"-mode rather than "noticing what's wrong "-mode. That is, the more realistic something looks, the more you notice what's wrong: if a high definition model attacks, it looks stupid if the sword doesn't properly connect with it's target. If the graphics is simple however, the player's imagination is more than happy to help.
As for whether the ideal world-sim would require more CPU power than we can handle, the keyword is distributed computing. It's difficult, yes, but it will let you run worlds that are, literally, 10, 100, 1.000, 10.000, 100.000, 100.000.000 times larger than you can ever do with single-core. I mean, even today, if you could combine 10 8-core machines - even assuming 50% efficiency loss - you can still run 40 times more stuff than a single core. And unlike single-core, this will follow moore's law, probably for quite some time even :)
-
I've been designing, programming and modding games on a hobby basis for over a decade. And I must say Dwarf Fortress is one of those groundbreaking games that makes me nod in agreement and say "Yep, this is the good stuff right here."
But, there are a million things I disagree with. No multiplayer, no scalable multi-core architecture, the user-interface, a lack of general playability. The list would be endless if I went into details, but can summarized by the simple fact that I would have entirely different plans if I were to make an awesome simulation game.
As it happens, I have been planning to make an awesome simulation game for years - since long before I even tried DF. I've spent a couple of years just working out a scalable architecture that can utilize any number of cores and/or machines for a strategy/simulation type game, figured out a lot of details regarding multiplayer and user interface, and I feel quite ready to get started properly.
I cannot imagine, however, that I am the only one. Surely, there are other people out there. It would be nice to get to know you! 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?
Oh, and if I can make a request, I'd like this thread to be for programmers. There is already an entire sub-forum (http://www.bay12forums.com/smf/index.php?board=5.0) for anyone to talk about generic suggestions.
I can, the inside of dwarf fortress is probably a gigantic mess. Filled with a hundred thousand inconsequential things that I didn't even know (at the current time) were even tracked! Who could possibly allow such a large leak of things which don't matter in order to make an absolute simulation?
Toady1=whackjob.
-
The true curse of a programmer: every piece of software you come across, you always think "I could've done that better..."
(yes, that's a bit of an exaggeration, but it's bound to happen to some of us sometimes)
-
If any one knows of a group that is attempting to pull this off, let me know. It is my dream to make an immersible fantasy simulation in 3D. Basically I would like to implement an Iris Zoom like engine to view your corner of the world as a table top piece that when you zoomed in to different areas you would see all types of procedural life forms thriving. A group of faeries far to your south trying to fend off a family of trolls, vampires creeping in the forest at the edge of your town, different civilizations possibly building up slowly next to you, and of course with the minds that play games like this who knows what else. With multi-processor engines streaming in new areas, and SIMD ( or XNA math ), this CAN be pulled off in a very large scale with impressive 3d graphics. I know we can do it now if developers would look more into procedural content creation rather that the typical liner RPGs of late. I can see you choosing different races each with their own unique play style, humans building their vast farmlands and keeps, dwarfish empires carving their fortresses from a mountain side, orcs, goblins, and even our hated elven races building massive tree based civilizations, the list goes on. This is what I believe video games where supposed to evolve into.
Recent evolution of real time tessellation could not have come at a better time as we could render tens of thousands of elements using so little polygons unless we need to look at our minions up close as they crafted out their daily lives. This needs to be made.
-
The worst is when you make something yourself and you think "I could've done better", it's the worst with woodworking.
-
As more of an aspiring programmer than an accomplished one, I have a different perspective here. 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. There are plenty of people who kick his ass on any one of those three criteria, but they don't have a community of rabid fans like this one.
I think in this thread you're going to get more technical savvy folks - the ones who can build an engine that is theoretically awesome with all the right architecture. But their ideas may be unpopular, or they may lack the conviction to follow through with a big project. I don't mean this as a commentary on people who have or will post in this thread since I don't know enough about who they are or what they've done, but consider this food for thought.
-
As more of an aspiring programmer than an accomplished one, I have a different perspective here. 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. There are plenty of people who kick his ass on any one of those three criteria, but they don't have a community of rabid fans like this one.
I think in this thread you're going to get more technical savvy folks - the ones who can build an engine that is theoretically awesome with all the right architecture. But their ideas may be unpopular, or they may lack the conviction to follow through with a big project. I don't mean this as a commentary on people who have or will post in this thread since I don't know enough about who they are or what they've done, but consider this food for thought.
That's absolutely true. I think that last one is really the magic ingredient... it seems to be the weakness of most people, at least. Honestly, programming is not that hard; only every once in a while do you find a teeny bug that takes three hours to fix (looking at you, tile.has_agent!), and even then it's just a matter of looking everywhere for the mistake you made. You know, when the interpreter doesn't just point it out for you.
That said, there's a way to fix that actually-getting-shit-done problem. Bay12 7-Day Roguelike contest, anyone?
-
I know how it feels. What DF inspired in me was: "So it is possible, and possible by One Man Only!".
So I got started. And I'm still nowhere. Almost done with the "reallyreally big dynamically generated and rendered 3D-world that allows for digging"-part, but I've been "almost done" with that for the last 5 months :P OTOH, I haven't worked on the same project and gotten so far ever before.
It'll be done in about 2030, I'll get back to you on this.
-
Siqo, I'm kinda afraid to ask now.
... how the hell will you save that?
-
... 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!
-
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.
-
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.
-
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.
-
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.
-
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 ;) )
-
Does computer science have doctorates?
-
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.
-
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.
-
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/
-
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?
-
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.
-
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.
-
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.
-
The true curse of a programmer: every piece of software you come across, you always think "I could've done that better..."
(yes, that's a bit of an exaggeration, but it's bound to happen to some of us sometimes)
I do this all the time :( it's probably bad form...
-
i don't get the feeling of programing DF because im scared of even looking at the source code.
-
The true curse of a programmer: every piece of software you come across, you always think "I could've done that better..."
(yes, that's a bit of an exaggeration, but it's bound to happen to some of us sometimes)
I do this all the time :( it's probably bad form...
Ever done this: Seen a bug/poorly-implemented feature in commercial software and thought "What the F**K? That's a one-line fix!"
(And optionally realized later that it's probably not that simple.)
-
The true curse of a programmer: every piece of software you come across, you always think "I could've done that better..."
(yes, that's a bit of an exaggeration, but it's bound to happen to some of us sometimes)
I do this all the time :( it's probably bad form...
Ever done this: Seen a bug/poorly-implemented feature in commercial software and thought "What the F**K? That's a one-line fix!"
(And optionally realized later that it's probably not that simple.)
Yup. Even fixed it a few times ;) the company I work for has poor ancient code bases....
-
i don't get the feeling of programing DF because im scared of even looking at the source code.
This. I don't think anyone around here except Toady could come up with DF BUT BETTER in a matter of months like so many seem to want to do. Heck, it's just easier to start small. Remember REALLY early DF? That was small. Toady worked his way up. And now the source code would probably take lives in an attempt to decipher. This is how it is.
I don't want to make another DF because I rather like DF. For me, I want to make a game with procedural generation. It doesn't matter what. My only programming projects I've ever finished had some sort of procedural generation, not counting Flash. I have big dreams, and probably will achieve them, but not at the point I'm currently in. However, what's inspiration about DF is not that we HAVE a game that builds a moderately believable world from scratch and then lets you do whatever you want in it, but the way it was done. Toady's dedication to his pet project has taken up a significant part of his life, and it's the reason we have DF in its current state. But it took a lot to get there, even in the initial stages without much external stimuli (e.g. forum members that now populate B12), and the fact that he's gonna as far as he has and is still working is an inspiration to the collective hobbyist programming workforce that includes us all.
Did I mention I like procedural generation?
-
I think that no real programmer who gets to use some piece of software enough to form any kind of attachment or opinion about that software does not stop to think about the internals and how he or she would implement it. Especially if that person loves programming and does it with a passion.
If I were implementing my own DF inspired game, which I am not (wink wink nudge nudge ;D) I would focus on the following:
- User interface and accessibility
One of the biggest hurdles one has to overcome in order to enjoy DF is the steep learning curve that is not helped in any way by the way the interface is designed. I would make this my primary focus.
Graphics don't mean that much without gameplay, but they sure help. Having graphics that mean something even for the uninitiated is a huge benefit.
Take a few elements that you want to have in common, and implement them. Then test responsibly. Then balance them. Then think about it. See how much effort it was, if you want to continue and if you are heading in the right direction. I would not go wild and add dozens of barely functional semi features so I can say that my game is as complex as the competition.
As good as you might be there is always the chance that someone more creative is out there. Give them the means to create content for your game if they wish. Make it as easy as possible. Do not make them learn some semi programming language that only you use. Do not make them edit some weird text files.
This is only a short list of items and some of you might consider most of these unimportant. But keep in mind: there is already someone out there who is striving to make the most impressive and strangely entertaining piece of simulation (I am talking about DF). So other people can focus on other parts if they wish so. Arguments like "Toady does not care about graphics because he is busy creating a deep simulation" do not work here. Maybe you do care about such things. I need to check out Goblin Camp more and see how it differentiates itself from DF.