October 17, 2017, 07:54:52 AM

Author Topic: Khazad - An opensource Dwarf Fortress like game  (Read 19171 times)

Deuteros

  • Jr. Member
  • **
  • Posts: 62
    • View Profile
Re: Khazad - An opensource Dwarf Fortress like game
« Reply #15 on: March 22, 2015, 12:02:11 AM »
I think the zone system would work and the idea of setting worker limits sounds great.  It would be cool if in the chop trees zone you could specify 'chop up to 100 logs', same with the farms etc.  The tier 0 guys could be called 'unskilled', in reality peasants could actually be quite skilled, they just had a low social status.  And I believe you intend for social status to be an important part of the game.

I can't really think of any more potential problems I'm pretty sure your game would be a pretty major improvement on DF and Gnomoria.  And it's pretty amazing that it's going to be open source.  I am going to try and find some time to help out :)

EDIT: Well I tried to build it, I downloaded eclipse (which was a pain to install because by default I apparently had 32 bit java installed, and it would not run. Helpfully it said the problem was due to error 13). I fixed that by manually getting 64 bit java.

I tried to figure out how to build your project (since there is no .project file).  I tried import from github and got nowhere.  So if you could give some step by step instructions on how to build the game that would help a lot :). Maybe I should be using something other than eclipse? Do I need to download JMonkey?
« Last Edit: March 22, 2015, 03:11:00 AM by Deuteros »

Impaler

  • Full Member
  • ***
  • Posts: 145
    • View Profile
Re: Khazad - An opensource Dwarf Fortress like game
« Reply #16 on: March 22, 2015, 09:57:35 AM »
I think at the very least you will need some of JMonkey's libraries, it is an engine after alll, the easiest thing is to just use JMonkey lock, stock and barrel as has a nice IDE in my opinion.  Lots of people seem to like Eclipse though so maybe we can add a project file for it at some point.

P.S.  The 'Make to X' and 'Stockpile automatically up to X' type controls are another fine idea, the first game in the genre to do with was actually a little project called Goblin camp which is now abandoned.  With respect to trees cutting it will need to be attached to the stockpile that actually receives the wood rather then the source zone.
« Last Edit: March 22, 2015, 10:09:13 AM by Impaler »

Deuteros

  • Jr. Member
  • **
  • Posts: 62
    • View Profile
Re: Khazad - An opensource Dwarf Fortress like game
« Reply #17 on: March 22, 2015, 06:13:26 PM »
You might have multiple stockpiles that accept logs and only one tree cutting zone. Like for example you might want to have a small stockpile next to each furnace, sawmill etc.  So it seems like the chop to X would belong to the zone (maybe with a setting for each tree type), although honestly craft to X for each good would work fine just as a global setting.  Actually I just had an idea, you could have priority thresholds, like if logs < 100 then priority = 1, logs < 200 priority = 2, etc.

You should try giving more credit to Gnomoria, it's made a lot of improvements on Dwarf Fortress. Maybe RoboBob copied stuff from goblin camp, but I doubt it since it's pretty obscure.  I'm always surprised by the amount of hate that Gnomoria gets from Dwarf Fortress fans, I hope this game doesn't have the same negativity aimed at it.

I'll try building it using the JMonkey IDE, that sounds like a much better option. I didn't even realise it had an IDE I thought it was just some 3D engine.  If I manage to get it to work I'll put some build instructions in your project so someone else doesn't have to go through the learning curve I just went through!

EDIT: Ok I managed to get it to build using the jMonkey IDE. I had to locate some file called javatuples-1.2.jar, which I saw you had in resources/JavaLibraries.  Once it was running there was a null pointer exception. It wanted to load a texture called nehe.png which is the DEFAULT_TEXTURE.  But in your textures folder there is only some grass textures.  Maybe you need to check all those textures into github? I suppose I could get it working by editing textures.xml but I didn't really want to mess around with it.
« Last Edit: March 23, 2015, 12:28:58 AM by Deuteros »

Impaler

  • Full Member
  • ***
  • Posts: 145
    • View Profile
Re: Khazad - An opensource Dwarf Fortress like game
« Reply #18 on: March 23, 2015, 10:47:17 AM »
Sorry about the Texture problem, another friend of mine who is also right at the same step as you had the same issue, I've uploaded ALL the textures I have in my folder so this should be resolved.  It's easy to forget to add files to the repository them when nothing blows-up on my end.

I'll see if I can't get that minor annoyance with javatuples to go away, I have another library in their called XOM and it sounds like that didn't give you any trouble so I must have done that one correctly.

I very much like what RobBob has done with Gnomoria in that he has tackled the single biggest flaw in DF, the UI (and as someone who has done professional UI coding I really appreciate the importance of UI and how much of a grind it can be to do, it really is the grunt work of programming, hence why interns get to do it :P ). 

But I personally think DF has more issues with game play that can be improved.  And I think Rob is a bit conservative when it comes to pushing these boundaries so, I absolutely encourage Rob to pick up good ideas from other games (including Khazad) and from his own Mod community (see things like auto-trade, I want to have something like that in Khazad).  When I mentioned goblin camp it was to give them a nod of recognition and not to imply that I features should not be borrowed, the game industry would be nowhere today if people did not build on each others game play features.

Impaler

  • Full Member
  • ***
  • Posts: 145
    • View Profile
Re: Khazad - An opensource Dwarf Fortress like game
« Reply #19 on: March 25, 2015, 11:57:04 PM »
Progress report:  Our two new programmers, Deuteros and Feone (a friend of mine who comes from a MineCraft background) have begun getting themselves familiarized with the current code base and have picked out some goals.  Deuteros has begun work on Serialization which is programmer speak for saving and loading to disk.  Feone has begun work on improving map generation with an emphasis on generating a larger world map of which the local map is a part of.  These efforts are just getting started and will not bare fruit until at least the release after next (aka beginning of May).

I've been mostly getting the new guys up to speed lately, but have managed to get a little bonus feature working which will be in the upcoming release, the simulation of some simple top down light onto some parts of the map but not others.  Thus underground tunnels will appear permanently dark while a day-night cycle illuminates the surface.  Ultimately this same light will determine if plants can grow and such simulation stuff, but for now it will be purely visual candy.  Their will also be a simple toggle for hiding everything which is sunlit, this will make it easy to quickly X-ray vision into the ground and see all tunnels without having to use the level slicing slider tool.  All looks to be on schedule for the release at the start of the month.

I'm also beginning to formulate a set of goals for the release after next, to start off their will likely be a big code clean up and an attempt to establish better/clearer code standards as I have been sloppy in a number of ways and our new programmers want to see some house cleaning happen, and I am eager to avoid messy merging conflicts as well.

Feature wise, in addition to Deuteros and Feone's work I will be doing a major rework of the way that terrain is rendered, specifically how the Meshes for terrain pieces are generated.  The goal will be to significantly improve performance by making the mesh more vertex efficient AND to make lower triangle count 'decimated' version of the terrain that are show as you zoom out.  This is a common technique in all game rendering that allows a much larger area to be rendered without killing performance.  If successful the map size can increase several fold.

We are open to suggestions for additional goals as well, and are always looking for more developers, and not just programmers.  We have need for many XML files to be made which will form the basis of the world gen, anyone who knows the Nifty GUI system could be a huge help and finally we would just kill for some 3D modeling artists.

alexschrod

  • Newbie
  • *
  • Posts: 46
    • View Profile
Re: Khazad - An opensource Dwarf Fortress like game
« Reply #20 on: March 26, 2015, 12:45:55 AM »
Thx for the feedback, I've gotten a similar request for key based panning.  While I was definitely going to add it for the directional keys I was a bit hesitant to devote WASD to that job as well because I'm assuming folks will want to use thouse as hot keys for menu drill-down as done in DF, though I personally prefer mouse their is nothing evil about hot-keys (whats evil is not having any mouse based menus).  Dose this sound like an acceptable compromise, do people reach for WASD first even if the game is not FPS or are directional keys equally viable, did you yourself try the directional keys first or second or not at all?

At least make it an option to use WASD. When you're playing a game with both the mouse and the keyboard, which is most of them, it's a lot more pleasant to have your left hand on the left side of the keyboard than the right side where the arrow keys are. As long as you allow hot keys to be remapped freely (and you should. ;)), it shouldn't be an issue anyway.

Impaler

  • Full Member
  • ***
  • Posts: 145
    • View Profile
Re: Khazad - An opensource Dwarf Fortress like game
« Reply #21 on: March 26, 2015, 05:14:32 PM »
Yes, by popular demand the WASD controls for camera are going into the next version, remapping is certainly something I'd want to have and the GUI system will support it fairly easily though obviously its not a priority right now.

P.S.  We hit 3 unique clones today on git, a new record!  Overall were averaging 1 unique clone and 4 unique visitors per day, and just over 30 views, most are originating from these forums with the rest coming through github itself.
« Last Edit: March 26, 2015, 09:46:34 PM by Impaler »

Templayer

  • Full Member
  • ***
  • Posts: 101
    • View Profile
    • The Tower of Akkon
Re: Khazad - An opensource Dwarf Fortress like game
« Reply #22 on: March 30, 2015, 12:55:44 PM »
Bumping this thread. (I have no idea how to set it to notify me. BUMP!)
-----------------------------------------------

http://forums.gnomoria.com/index.php?topic=7828.0 - New resources
http://forums.gnomoria.com/index.php?topic=7829.0 - New races and nations
http://forums.gnomoria.com/index.php?topic=7830.0 - New tools, armor and weapons
http://forums.gnomoria.com/index.php?topic=7841.0 - A poll for suggestions

alexschrod

  • Newbie
  • *
  • Posts: 46
    • View Profile
Re: Khazad - An opensource Dwarf Fortress like game
« Reply #23 on: March 31, 2015, 12:58:40 AM »
I have no idea how to set it to notify me.


Philk

  • Newbie
  • *
  • Posts: 36
  • Beware the Alpacalypse
    • View Profile
Re: Khazad - An opensource Dwarf Fortress like game
« Reply #24 on: March 31, 2015, 06:56:11 AM »
Do you intend to keep the speed system as it is now or is it a placeholder going to change? I honestly think that a simplified system with only about 4 speeds and having day/night cycle faster would be better, right now a day takes forever to pass unless you're on top speeds.

Impaler

  • Full Member
  • ***
  • Posts: 145
    • View Profile
Re: Khazad - An opensource Dwarf Fortress like game
« Reply #25 on: March 31, 2015, 08:38:37 AM »
My goal with time is to start with as fully realistic a system as possible and only if this proves untenable for game-play to back it off and make shorter days and years.  The current number of speed settings is inspired by X-Com which features a wide range of speed rates from seconds to weeks.

One of the reasons I want to try realistic time is that it can free the players settlement layout from the tyranny of hauling-distance.  In DF and Gnomoria the time needed to craft in a workshop or DO nearly anything is incredibly short compared to movement speeds, this means distance between stockpiles and workshops can be THE most important factor in productivity.  This invariably leads to high density 'factory floor' layouts which I find both unattractive and unrealistic.  A proper 'Moria' should be a sprawling complex, ideally covering many miles, if craft time is more realistic (such as it taking days to make a sword) then walking a mile (which takes about half an hour) is not very significant.

Currently dwarves walk at an average rate of 1 tile per second, aka 1 meter per second, a bit slower then humans walk.  At speed x1 the game is advancing at 1 second per second and things do in fact look quite slow.  I expect folks will use this speed setting almost exclusively in battles.

The maximum speed of x4096 should make a day pass in only ~20 seconds and a year would pass in 2 hours, which to me sounds like a good target rate for general gameplay, but I think it's falling short of that because performance ceiling is actually being hit prior to this point probably around the x1024 speed rate.  On my system I don't notice much difference between the two and my system is probably above average.  Better performance may help us hit this goal.

Impaler

  • Full Member
  • ***
  • Posts: 145
    • View Profile
Re: Khazad - An opensource Dwarf Fortress like game
« Reply #26 on: April 01, 2015, 09:51:58 AM »
The new release is ready, you can download a Windows, Mac or Linux version at

https://github.com/ImpalerWrG/Khazad/releases



Khazad v0.2.2 Release Notes



New Features
------------

Terrain is now composed of multiple types of material which have seperate textures and colors defined in XML

Games can be saved and Loaded with the save game file placed in the OS specific default directory (My Games/Khazad on Windows)

Terrain is now either sunlit or dark making underground tunnels noticably different, all sunlit terrain can be toggle hidden with L, and all terrain with T

A Balrog has been added to the map, if you delve too deeply it will be your doom

Pathfinding is now proberly updated as the map is modified from digging, path connections can be viewed with P

WASD keys will now pan the camera



Bug Fixes
---------

Digging of the ground and tunnels should no longer freeze dwarves

No holes in terrain apearing at start of game, though they may apear with digging
« Last Edit: April 01, 2015, 01:08:11 PM by Impaler »

Philk

  • Newbie
  • *
  • Posts: 36
  • Beware the Alpacalypse
    • View Profile
Re: Khazad - An opensource Dwarf Fortress like game
« Reply #27 on: April 02, 2015, 05:57:50 AM »
Nice, gonna try it out when I get home from work.

Lobstarooo

  • Jr. Member
  • **
  • Posts: 73
    • View Profile
Re: Khazad - An opensource Dwarf Fortress like game
« Reply #28 on: April 02, 2015, 09:29:26 AM »
Downloading it now!

Wow, it's really looking way more swanky now, colour me impressed. Still hard to see what you're digging, but at least they are digging quite well.
After a bit I decided to see if I could dig down the entire map (no seed or extra settings used) at 1024 speed or smt, and eventually it did crash with an "uncaught exception thrown in thread [LWJGL renderer thread, 5, main] OutOfMemoryError: Java heap space". But this is loking really promising. :)

Any chance you'll add in a flatland preset? It'll be easier to just test out stuff like building etc.
« Last Edit: April 02, 2015, 10:58:52 AM by Lobstarooo »

Impaler

  • Full Member
  • ***
  • Posts: 145
    • View Profile
Re: Khazad - An opensource Dwarf Fortress like game
« Reply #29 on: April 02, 2015, 07:36:19 PM »
Told ya there was a Balrog down their  ;)

It's simply that the game map isn't yet expanding dynamically as you dig, it's structure has been designed to accommodate that but it just hasn't been hooked up.  Will certainly be a priority for next release.

A flatter map is something we can generate when different parameters are supplied to the noise algorithms, if exposed at game setup you could allow you to get any level of flat/rough but I'm inclined to think that wrapping these kind of things into simpler interface options like "foothills' 'mountains' etc would be a better way to go for accessibility.  Also it is unlikely that we will have things available to build next release and even it we did, I would not want flat-terrain to be a prerequisite for building in general, Dwarves should be able to build on any slope short of vertical, and maybe even on that too!