Bay 12 Games Forum

Please login or register.

Login with username, password and session length
Advanced search  

Author Topic: Some questions about the early/current development of Dwarf Fortress  (Read 2479 times)

Syreal

  • Bay Watcher
  • Grand Master Magma Bather
    • View Profile
    • Syreal Games

I've become interested in creating my very own roguelike in the grand tradition of Dwarf Fortress. What I mean is this: I desire to make a roguelike combat simulator in which the combat is very detailed, like in DF. I've tried to play many roguelikes before: NetHack, ToME, ADOM, etc but have been disappointed by their evident lack of a combat system. I think DF has spoiled me, because now I expect something more than a hit-miss system. The game I envision would have multiple stages where you must defeat an opponent. After I get the base RL done, I envision fighting multiple opponents and commanding allies against your foes. Also, multi-z-level megabeasts would be cool, but that down the road a little ways.

Obviously, DF has been a very successful game, and naturally I was wondering what IDE was used by Toady to program it. After reading the interview I know he used C and bits of C++ as the language.

After some brief searching I found a C IDE called Quincy, that comes bundled with Conio2 which seems perfect for making a simple console RL and for beginner C/C++ users. What do you guys think?
« Last Edit: July 28, 2008, 07:50:05 am by Syreal »
Logged
You die in the heat.

Exponent

  • Bay Watcher
    • View Profile
Re: Some questions about the early/current development of Dwarf Fortress
« Reply #1 on: July 28, 2008, 08:30:03 am »

I think you're about to cause a programming language flame war.   ;)  Okay, it probably won't be so bad on these forums; for the most part, people are pretty level-headed.  But it might get a little heated at times.

I'd give you my recommendations, but I tend to be a bit long winded, and I have a dental appointment in just a few minutes I have to leave for.  I just wanted to jump in here early and give you an advanced warning about the dangers that lie ahead within this thread.  (Arguments over which language is best in the long run, which is best for a beginner, which is best for console output, which is most portable or platform independent, which is fastest, if any of these issues even matter, and so on.)
Logged

Bask

  • Bay Watcher
    • View Profile
Re: Some questions about the early/current development of Dwarf Fortress
« Reply #2 on: July 28, 2008, 08:43:44 am »

For roguelike development there's the newsgroups rec.games.roguelike.development and rec.games.roguelike.misc. The only other roguelike I can quickly remember that has deeper than normal combat is Gearhead and the unifinished Gearhead 2.

They are anime-inspired mecha roguelikes, so not for everyone (for example not me), but the source is available and as you fight both with mecha and on foot, you can check out the implementation of targeting, movement, multitile creatures, deformable terrain, allies and multiple foes.

Roguelikes seem like a simple project, but even the simplest roguelike needs pathfinding, line-of-sight, dungeon generation algorithms, different monster AIs, some original ideas and tons of other things. Checking rec.games.roguelike.development lets you not reinvent the wheel. Greatest problem seems to be being overambitious and not getting anything playable out. I would suggest starting with a simple, organized and expandable playable game  and adding features to it.

Good luck, can't help with the programming questions.
Logged

Syreal

  • Bay Watcher
  • Grand Master Magma Bather
    • View Profile
    • Syreal Games
Re: Some questions about the early/current development of Dwarf Fortress
« Reply #3 on: July 28, 2008, 10:05:15 am »

Thank-you very much for your thoughts and suggestions.

I guess I'm more interested in what Toady used to develop DF, but any opinions on other languages/IDE's would be helpful too.

Forgive me for being ignorant on the issue, Bask, but what exactly do you use to view the channels you recommended?
Logged
You die in the heat.

Bask

  • Bay Watcher
    • View Profile
Re: Some questions about the early/current development of Dwarf Fortress
« Reply #4 on: July 28, 2008, 10:45:41 am »

Forgive me for being ignorant on the issue, Bask, but what exactly do you use to view the channels you recommended?

The simplest and laziest way is google groups. rec.games.roguelike.development. Your ISP probably has it's own Usenet servers, but maybe not. The very good faq for rgrn is here.
Logged

lanael

  • Escaped Lunatic
    • View Profile
Re: Some questions about the early/current development of Dwarf Fortress
« Reply #5 on: July 28, 2008, 10:58:31 am »

About IDEs:
I personnaly use Code:Blocks (http://www.codeblocks.org ) : it's free, open-source, multi-platform, can handle a lot of C/C++ compilers and even the D programming language.
The other majors free IDEs I can think of right now are eclipse (http://www.eclipse.org ) , or MS VC++ express ( if you plan to compile for windows only ).

About the language choice : Any will do for a rogue-like, IMO ( though a compiled language will be best if you plan to have something as complex as DF (when not paused !) for performance reasons ).

About programming : I don't know your experience but assuming that you're a beginner : what Bask said about how complex games can be sometimes is very important. Be prepared for the big amount of knowledge you will need to acquire.  ( And I don't speak about technical problems, personal problems, the time needed to refactor big parts of a project ).
And remember that the DF copyright actually span 6 years (2002-2008) ! :)

Ok, I realize this looks discouraging, but game programming is still quite fun when you sum up everything.
( and listen to what others have to say, I'm just a long-time game hacker after all ! )

Logged

Teldin

  • Bay Watcher
  • Canadian Bacon
    • View Profile
Re: Some questions about the early/current development of Dwarf Fortress
« Reply #6 on: July 28, 2008, 11:17:20 am »

My first suggestion on the development side of things is to start out using text-only, like textbased mmo's (MUDs) used to have. These can be coded in rather basic ansi C and compiled with little fuss or muss, then translated into a proper graphical environment later on when you've mastered the graphics side of things. I do this with most games I'm developing; the skeleton is built in a simpler environment and brought over when the front-end is playable.
Logged

Jay

  • Bay Watcher
  • ☼Not Dead Yet☼
    • View Profile
Re: Some questions about the early/current development of Dwarf Fortress
« Reply #7 on: July 28, 2008, 11:24:57 am »

My first suggestion on the development side of things is to start out using text-only, like textbased mmo's (MUDs) used to have.
|Used to?  It's not past-tense.  MUDs are still a dime a dozen.
Logged
Mishimanriz: Histories of Pegasi and Dictionaries

Syreal

  • Bay Watcher
  • Grand Master Magma Bather
    • View Profile
    • Syreal Games
Re: Some questions about the early/current development of Dwarf Fortress
« Reply #8 on: July 28, 2008, 11:33:22 am »

Thanks, Teldin. That's a good suggestion. I was actually planning to do it all in a DOS console at first. You know, get all the logistics down -- save games, line of sight, combat etc, before I even worry about any graphical nonsense. I have Torque Game Builder if I want to make something pretty. I'm actually working on a platformer right now, lol.

Back to somewhat on topic, do you know of any way to increase the size of a console window? The default 640 x 300 is really killing me. Is it possible to make it 800 x 600? I realize that's a little off-topic; do what you want with it.

[EDIT]

Sorry, missed lanael and Bask's previous posts.

Bask, thank-you for clearing that up for me.

Lanael,

Thanks for the suggestions. Code::Blocks really is quite awesome, I've used it briefly before -- the issue is getting conio2 libraries to work with it since I have such limited programming knowledge. Quincy makes it easy for you, since conio2 is bundled with it and Quincy also includes some heavy documentation on conio, C/C++ and other crazy stuff. I'll probably at least try and get conio working with Code::Blocks, or perhaps even find something better to use? Who knows?

I actually have a decent amount of game dev experience, but its all been with Torque Game Builder, which is basically game making without heavy programming. Here's my site: www.syrealgames.com Doing a roguelike in C is going to be a big turnaround.
« Last Edit: July 28, 2008, 11:56:05 am by Syreal »
Logged
You die in the heat.

Radtoo

  • Bay Watcher
    • View Profile
Re: Some questions about the early/current development of Dwarf Fortress
« Reply #9 on: July 28, 2008, 11:50:41 am »

Back to somewhat on topic, do you know of any way to increase the size of a console window? The default 640 x 300 is really killing me. Is it possible to make it 800 x 600? I realize that's a little off-topic; do what you want with it.

Use a different one. 4dos, bash, or powershell.

Logged

Kindjie

  • Bay Watcher
    • View Profile
Re: Some questions about the early/current development of Dwarf Fortress
« Reply #10 on: July 28, 2008, 11:55:02 am »

Thanks, Teldin. That's a good suggestion. I was actually planning to do it all in a DOS console at first. You know, get all the logistics down -- save games, line of sight, combat etc, before I even worry about any graphical nonsense. I have Torque Game Builder if I want to make something pretty. I'm actually working on a platformer right now, lol.

Back to somewhat on topic, do you know of any way to increase the size of a console window? The default 640 x 300 is really killing me. Is it possible to make it 800 x 600? I realize that's a little off-topic; do what you want with it.

Try the beginners section at: http://www.gamedev.net/

They'll probably tell you to download C# Express if you're just starting out, though. That being said, just starting in TGB might be even easier if you want to end up with graphics anyway. Just keep in mind that TGB essentially doubles the memory needed for sprites (at least it did when I worked with it ages ago), so keep it simple. :P
Logged

Syreal

  • Bay Watcher
  • Grand Master Magma Bather
    • View Profile
    • Syreal Games
Re: Some questions about the early/current development of Dwarf Fortress
« Reply #11 on: July 28, 2008, 12:10:36 pm »

Use a different one. 4dos, bash, or powershell.

If I'm not mistaken, that will affect playing the game on my computer only. I don't want to have to tell people to go download a different console terminal.

Kindjie,

I actually want to have ASCII graphics. In my opinion, that opens the door to imagination, which is better than any directX. Doing ascii in TGB is like trying to carve an intricate figurine with a chainsaw.
Logged
You die in the heat.

Radtoo

  • Bay Watcher
    • View Profile
Re: Some questions about the early/current development of Dwarf Fortress
« Reply #12 on: July 28, 2008, 12:18:15 pm »

Syreal, using a regular windows console for a not line-based text game is impractical - and even if its such a game, it probably is very annoying in one way or the other.

What you want to do in this case is probably render a window and grab key inputs yourself.

If nothing else, use a text box (output), a text field (input)... that's essentially what you'd get from a command shell anyways, without the actually annoying things that are meant to do stuff with things on the filesystem.
Plus it gives you the option to add key combinations and mouse things and such later, even directly from the prototype.
« Last Edit: July 28, 2008, 12:26:58 pm by Radtoo »
Logged

Riemann

  • Bay Watcher
    • View Profile
Re: Some questions about the early/current development of Dwarf Fortress
« Reply #13 on: July 28, 2008, 05:44:55 pm »

Toady started DF with Visual Studio 6 and has (fairly) recently upgraded to Visual Studio 2005.

I am a professional dev. Have been for number of years. And I have never seen an IDE come even close to Visual Studio for C / C++ / C# development. Other languages fit well into other toolsets but for C++ / C# it is definetly the most powerful tool for the job.

Much like DF itself there is a bit of a learning curve to learn to use it well, but the effort is well worth it.
Logged

Syreal

  • Bay Watcher
  • Grand Master Magma Bather
    • View Profile
    • Syreal Games
Re: Some questions about the early/current development of Dwarf Fortress
« Reply #14 on: July 28, 2008, 06:17:36 pm »

Riemann, thanks for the professional opinion, my friend. Many professionals would say the same about Visual Studio.

I can't start a project in Visual Studio without getting an error and project creation failing, so I don't use it. I've tried for at least three days to get it to work, and downloading a different edition takes forever on DSL, so I just forgot about it.
Logged
You die in the heat.