• Advertisement
Sign in to follow this  

How to create a dwarf fortress like game

Recommended Posts

I'm looking to create some kind of simulation like game similar to rimworld and dwarf fortress.  I would also like to include a way to control units through programming, similar to screeps, I'm even thinking of using JavaScript as well.  I would like the graphics to be separate from the actual game, so that people can make their own if they don't like the default on (the game will be open source).  Are there any languages or engines that would be good for this task?  I mostly program in functional languages like racket, but I know some python, Java, and JavaScript.  I know how to use unity somewhat, but I'm not sure that it would be best for this.  Also, I'm not sure if this is important for picking out the right tools, but I am thinking of including a feature to run parts of the simulation at different levels of detail, for example, you could "zoom in" on a battle that's happening and see each individual shot, or you could just get the main idea of the battle, like if you won and how much gold you got or something like that.  Thanks for any suggestions.

Share this post


Link to post
Share on other sites
Advertisement

I believe you shouldn't focus that much on frameworks or engines, as long you can get the job done.  I would start making a small prototype (covering a subset yet fundamental functionalities) then re-iterate to improve it. On my blog, I'm building a prototype from scratch using C and SDL (which is also cross platform), maybe it can help you.

Share this post


Link to post
Share on other sites

Standard engines are Unreal and Unity. The former uses C++, the latter uses C# which is quite close to Java. These engines are mostly aimed at 3D games. For 2D, pretty much anything could work. From Python, the standard solution is Pygame, although it uses somewhat old techniques for painting onto the screen. For Java, there is libgdx and lwjgl. C and C++ typically use SDL2. At Windows there is the DirectX stuff, which I know literally nothing about (not a Windows user).

My list is far from exhaustive, but it may give you some starting points.

 

As for programming the game, the biggest problem is overscaling. In your mind it's all simple, intuitive, and easy. Getting that into a computer is much more work than one thinks. So start small, very small, and expand in small steps.

Share this post


Link to post
Share on other sites

I'd suggest for your first iteration you start with Python.  It's very good for rapid prototyping and constant refinement, is very capable, and is fast enough that it's become the de facto language in the AI community where the sort of massive data crunching you're envisioning is the lifeblood.  The learning curse is shorter, too.

Once you've stabilized at the conceptual and functional level, you can start replacing bits piecemeal with C or C++ implementations for speed, because Python be like that.

There are plenty of third-party libraries available for Python for choice things like graphics, sound, and using the GPU for massively parallel number crunching like you might want for handling the updates of 1000 minions while maintining framerate.

Also, it's portable to any desktop and many other devices.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this  

  • Advertisement
  • Advertisement
  • Popular Tags

  • Advertisement
  • Popular Now

  • Similar Content

    • By bakchoi
      This is the 1st game we built by Cocos Creator! We need your feedback about this game on:
      Is this game fun?  How is the graphic performance (laggy?) How can we improve the game? https://itunes.apple.com/us/app/color-block-game/id1347502739?ls=1&mt=8
      Thank you =)
       
       




      App Preview - Color Block - 886x1920.mp4
    • By HouseAndMoon
      I make a game on my own. I do not use forums (until now) or social media programs to talk about it, I just do it. So the problem is: I finished the game, I published the game for android, no one (ok, 3 persons) check the game. So I see 2 possibilities: either the game is really, really bad (I suck) or I have no idea how to promote my game (this one is true for sure). I really think the game is rather fun but maybe I completely wrong. So, how the hell I check if my game is good or not and how the hell can I do some little promotion of my game for free. I would stop caring about the game if the game is really bad, but I sincerely think it is not. I would be grateful if someone post an opinion about this.
      Thanks.
    • By chuksphil12
      i am just starting to learn c++ and i  want to know exactly which free engine will be okay for a beginner to make games
    • By Josheir
      Hello, I am rewriting my pixel art game program and have decided to support the following resolutions:
       
      1920 x 1080
      1280 x 720
      1024 x 768
       
       
      I think they all look fine on the different sized monitors.  Does anyone have an opinion of any other needed resolution to support?
      When I started this research I seem to recall a general response of it might be just important to have the aspect ratios.  What does this mean exactly?  Why?
      Thank you,
      Josheir
       
    • By MagicMike
      I am starting my first serious game in a LONG time and would like help in remembering and setting up my workflow.  I have an outline of my idea and have chosen two engines to test for best function.  I am refreshing my programming skills.  What I need now is some help deciding what to do first, then next, etc.  Initially it will be a two person work group with my wife as the resident artist (although I think I will be buying sprites and world art to speed things up).  I will be doing the heavy lifting as programmer and project manager.  HELP!!! and thank you in advance.
  • Advertisement