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

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  

  • Forum Statistics

    • Total Topics
      628667
    • Total Posts
      2984138
  • Similar Content

    • By Kerrick
      TL;DR: noob non-coding teacher somehow thinks they can build a narrative educational game in WordPress; plz halp how do I games?
      I'm mostly a teacher with no coding background--I played with teaching myself Java for a bit but couldn't really code anything from scratch. I'm interested in developing (as a hobbyist) an educational game that would be a sort of choice-based narrative branching storyline, a bit like Fallen London/Storynexus. Because it's so storyline based and I don't need crazy 3d animation, I'm considering just building it as a WordPress site with a couple of gamification plug ins to handle inventory and choice consequences. The unique hook is that the game requires (suggests really) that the player accomplish real world building challenges to accomplish your goals. I.e. Your character has to cross a river? Get some popsicle sticks or cardboard or whatever and build a model bridge. Take a photo of your bridge and upload it to your portfolio to continue (and maybe I don't develop this feature right away).
      I'm in this for three reasons: the educational value for families and teachers, the storyline and world I'm building that I'm super excited about, and the fame and massive wealth (just kidding but it has to have to potential to pay for itself).
      Before I sink too much of my life into this, I want to know more about what I'll need to do to make it work.
      Specifically my questions are:
      1) I get that WordPress isn't optimal for developing games. But can I do it or will I have to learn a new engine because I can't make do what I want? (And if so, what's a better engine with low-to-no coding prereq that will still allow me to sell my game?)
      2) How do I budget for a project like this? (The link to the Reddit post about legal fees was very useful thank you)
      3) What are the additional considerations when creating a game like this intended for children with adult supervision? (Obviously privacy, and I need to cover my assets in case some kid takes "go build a bridge!" too literally and gets hurt with mama's table saw in the garage...)
      4) Is this not the forum for this since what I'm talking about is something more like educational narrative fiction and certainly not the spectacularly complex and amazing projects you all are working on?
      Thank you for any and all thoughts.
    • By Vegermy
      What are some of the best ways to actually sell your prototype or a Proof of Concept to a company? Would a power point presentation be best? Or maybe a video like a teaser trailer to go along with a power point presentation? I'm just trying to get some ideas of how to best go about this.
    • By turanszkij
      I am porting a DX11 game engine to DX12, and have some questions about root signature usage. The engine clearly defines a global bind slot range for resources, to avoid using shader reflection. This means, that both the application, both the shaders explicitly know the binding slots for everything (constant buffers, textures, etc.). This would trivially translate to a global root signature in DX12, and I have created it as a big root signature like the following: There are 12 descriptor tables, so for every shader stage there are a sampler descriptor table and a CBV_SRV_UAV table. I though about keeping a "staging" descriptor heap, to which I would place descriptors at resource load time. Then when calling PSSetShaderResources(), which is a DX11-style function, the function would fill out a GPU-visible descriptor heap which is created to match the layout of the root signature tables. The nice thing about is that each frame I would only have a single call to set the root signature and to set root signature tables. The command list would just fill it with descriptors before rendering.
      I've found out however, that filling out descriptor tables can only be done on the CPU timeline with ID3D12Device::CopyDescriptors(). This complicates things and I can only think of populating the GPU descriptor heap, and after each draw call, I would need to copy the whole table and CopyDescriptors() again when there is a new call to PSSetShaderResources(). Am I on the right path if I also want to keep DX11-style bindings? 
      I also thought about each shader having a custom root signature and only ever copying the descriptors which are required by the shader, but in this case I will need to rebind the whole root signature each time a shader changes. I would also have to do a shader reflection step and modify my shader-asset pipeline (because I don't want to depend on d3dcompiler when I run the engine) which I really want to avoid.
      Which would be the preferred way? I read the Nvidia Do's and Don'ts but they say these which are contradicting in my case:
      Minimize the number of Root Signature changes Don’t bloat your root signature and descriptor tables to be able to reuse them UPDATE: The second way (unique root signature with PSO) I would also have to bind resources strictly after I have set the right PSO, because the table is now unique. 
    • By thesargento
      Hi there. I’m a veteran video gamer but an MMORPG fan since a few years back. Most recently I was hooked on Guild Wars 2, Marvel Heroes Omega and Naruto Online. But it turns out that GW2 came up with completely unnecessary mounts so I stopped playing. MHO was shut down without any solid explanation so I’m left with Naruto even though is not a real MMORPG.
      The monetization of these kinds of games –pay-to-win systems, loot-boxes, and general micro-transactions- have had influenced me in the past to even mount premade Private Servers of games like Aion and Jade Dynasty. But nowadays these tendencies are on the rise so I really want a gaming experience free from it completely.  
      I miss games more focused on player skills but I also like the MMO character growing style. Whit that in mind, I remember Guild Wars, the original, to be a really good gaming experience.
      So my question is: Where to start to turn an MMORPG into a single player game?
      -I’m not interested in any commercialization or nothing like sort.
      -I’ve been able to mount premade private servers.
      -I’ve modded quite a few games via tutorials and just experimenting.
      Have some knowledge of HTML, PHP, XML, Javascript and LUA.
       
      Thnx in advance, I appreciate any help/guidance
    • By @Teejay_Cherian
      This is for a dissertation im working on  regarding procedural generation directed towards indie Developers so if you're an indie dev please feel free to share your thoughts
      Does run-time procedural generation limit the designer's freedom and flexibility? if( Have you ever implemented procedural generation ==true){ talk about  some of the useful algorithms used}  else {explain why you haven't} Do you think indie Devs are taking advantage of the benefits provided by procedural generation? What are some of the games that inspired you to take up procedural content generation? If there is anyway i can see your work regarding proc gen please mention the link ( cz i need actual indie developers to make a valid point in my dissertation) Thank You So Much
  • Popular Now