April 26, 2018, 09:59:13 AM

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - Impaler

Pages: [1] 2 3 ... 10
Suggestions / Re: Start a petition? Open Code
« on: August 26, 2016, 03:34:49 PM »
Robobob has the possibility to come here, and express himself. Why he doesn't is up to him. You can make a petition, ask a signed word from your parents, or whatever, it will change nothing. Robobob is the developper of the game and the only owner of its code. You have absolutely no right to try and force him into anything, let alone the means. I think such petition would be plain wrong.

Petitions are by definition the opposite of the use of force.

If people are interested in open source code I have a project on Sourceforge called Khazad, see my sig, anyone is free to fork it as it is GPL, it's very far from being even alpha though.  I do most of my development in the winter btw so that's a good time to get in touch if you want to collaborate.

Other Games / Re: Khazad - An opensource Dwarf Fortress like game
« on: January 27, 2016, 11:12:34 PM »
Thx gnome, my intent has always been to build an active ongoing open-source development team and have already gotten help from a number of people working in an volunteer manor and this is the way I'd like to continue. I feel that will make for a much better ultimate game then keeping the source closed.

While I have considered excepting donations at some point when a more playable state is reached but kick starter is a very definite commitment to deliver a product for sale and it would not be a volunteer effort anymore, Patreon is more the model I might use but it still presents difficulty in how developers would share in any funds as I expect developers to come and go over time, and I would certainly want a community that can carry on in my absence.  I generally find that money sours that kind of cooperation.

The best way to grow and accelerate the project right now is for developers to join and if your not a developer to tell other folks who might be interested in the game about it and encourage them to do likewise according to their skill sets.  When my upcoming release is ready (the code is feature frozen right now and I'm addressing bugs) that will be the time for a significant promotion push.  Anyone who thinks they can help should PM me and we can start planning.

Other Games / Re: Khazad - An opensource Dwarf Fortress like game
« on: January 10, 2016, 11:15:28 AM »
I'm moving into final small features and long delayed fixes before freezing for release testing.  The terrain slicing that the side scroll bar provides can now be replicated by holding the scroll-wheel down and scrolling, this will cause the camera point of focus to move up and down which is indicated by the white 'eye-ball', the scroll-bar moves in sync with this scroll-wheel movement.  Scroll-wheel movement when not pressed down still zooms the camera.

I've also improved the map generation by making better (and in fact simpler) use of perlin-noise to create a landscape more like Minecraft or Gnomoria itself with a series of smoother hills covering large areas.  I'm now focusing on reducing the memory footprint of the map and speeding up generation so the long promised giant maps do not require annoying long generation times.  Below is a screenshot of the new map generation.

Other Games / Re: Khazad - An opensource Dwarf Fortress like game
« on: January 03, 2016, 12:14:46 AM »
Now at 3,000 speed under 200 population after tweeking Heuristics and trimming the list down to a single element after each node expansion.  Just a factor of 6x from goal and around 30x faster then a month ago.  I'm currently working on getting low detail terrain meshes to generate properly and hunting a bug in the new terrain slicing system.

Other Games / Re: Khazad - An opensource Dwarf Fortress like game
« on: December 31, 2015, 10:31:21 PM »
Another major pathing improvement that's speed up simulation speed by a factor of 3x, I had to start testing under higher populations of 200 and my 2 cores max out at 2400x speed now.  This puts me just a factor of 8 from the ultimate goal.

The technique I used was to put a very small doubly linked list 'above' the priority queue heap structure that holds the A* fringe nodes, nodes are popped from the list if it is not empty (otherwise take from Heap) and are always inserted into it which sorts them in the same priority the heap uses, then before the next node pop the list is trimmed back to just 4 nodes from the bottom up (lowest priority) and these are sequentially added to the heap.

What this dose is keep the amount of heap reorganization down to a minimum because A* is always expanding nodes with priorities very close to the current heaps root which makes for a slow reorganization.  The list keeps at minimum saves 1 pop and one insert into the heap each node expansion cycle while also sending most nodes in a small sorted batch which are absorbed by the heap at minimal cost.

Other Games / Re: Khazad - An opensource Dwarf Fortress like game
« on: December 30, 2015, 12:27:04 AM »
I've decided to rename some of my map structures to better match the lingo common in Minecraft,  henceforth the smallest 1 m^3 bits of the map are 'Blocks', the 32x32x32 groups of Blocks are 'Chunks', a 512x512x512 area of Chunks will be a 'Sector', a 32x32 group of Sectors is a 'Region' and a world map the size of Earth would be about 48x48 Regions.  Note that the world will be only 1 sector thick, but this is a depth of ~16 km and provides all the depth necessary to go from the tops of mountains all the way to the bottom of the ocean and then some down to some kind of magma sea.

The noticeably large number of Chunks in a Sector is possible because chunks will actually vary in size and will contain lower resolution Blocks when they do, at the largest sizes it will only take 32x32x32 chunks to fill a sector.  Note that only a fraction of these would ever even be created as the surface of the ground will generally stay within a narrow band allowing all the above and below volume to be omitted until needed.  The area of the players settlement would be at the highest resolution with a gradual falloff at distance.

In other news path-finding performance has climbed to 1800x (on 2 cores) after the elimination of an unnecessary memory allocation during node expansion.   Also the rendering thread has been given highest priority which is greatly reducing, but not eliminating, lag when the simulation it maxing out all cores.

Suggestions / Re: A Few Suggestions
« on: December 17, 2015, 11:12:45 PM »
Bit of a shameless plug, but if folks are looking to see what multi-threading can do they should have a look at my Khazad project https://github.com/ImpalerWrG/Khazad and our new forum at www.khazad.net, while still in pre-alpha development I use multiples threads extensively for rendering, game logic and path-finding and see great performance.  I'm looking for other programmers who know java to help contribute as it is an open source project.

Other Games / Re: Khazad - An opensource Dwarf Fortress like game
« on: December 16, 2015, 05:30:43 PM »
Good news, the new Khazad forum is up and running at www.Khazad.net

I encourage everyone following the thread to register and post here or PM me with with the user-name so I can activate the account.  I'll be moving all my development discussions their and making more of them as well, I'll likely only post here when releases are made or to provide a link to a dev diary.

Other Games / Re: Khazad - An opensource Dwarf Fortress like game
« on: December 15, 2015, 02:50:56 PM »
Please understand how obsolete my processor is, a comparable chip can be purchased for $30 today which is practically the bottom of the market.  At the high end of the market such as Intel i7 are 4-5 times faster then my CPU in a multi-threaded benchmark.

I only activated my defective 3rd and 4th core for brief testing to confirm the sequential bottleneck and it's elimination, I do all the rest of my development and testing on 2 cores and extrapolate what the quad core performance would be.  I expect my own system to be the lowest machine spec the game needs to be tested on and my testers will have access to higher end machines which can show what the performance curve is on better machines.  I set the ultimate performance goal for a quad core (only twice my systems normal performance) because the goal is SO high, each game second is actually 12 logical slices within-which things can happen, so running at 4,000 times real time is actually 48,000 logical slices per second. 

Such levels of performance are astronomically high and what's been achieved so far already blows everything else in the genre out of the water.  The iteration by a simple loop over all objects would never have gotten this far, I've been using a Heap sorted by the future tick on which an object needs an update, and even that wasn't fast enough so added a circular queue based on tick modulus for the fastest updates.

I intend to squeeze as much performance as possible out of the code in the long run (as I really like the development of path-finding code) and if this exceeds my goals then all the better, but the current speed is adequate for building the basic game-play around, once the game content gets high enough that a real late-game emerges then it would be time to attack performance again.

Other Games / Re: Khazad - An opensource Dwarf Fortress like game
« on: December 14, 2015, 01:51:14 PM »
An attempted improvement to path-finding using a Fibonochi heap was unsuccessful (being slower then the current java PriorityQueue), but this may have been a flaw with the heap library I was using as it used a Key/value pairing rather then the simpler Comparable interface which PriorityQueue supports and this may have caused the slowdown due to huge quantities of Float objects that had to be created as keys and loaded with redundant information. 

The Fibonochi heap is a weird muti-branching tree structure which was apparently developed specifically for path-finding and has a O(1) insertion time but it is not standard to the java library so I may try to find a better implementation of it or even write my own someday.  In any case this was a small and quick diversion from the main rendering focus.

On that front I've enlarged map 'Cells' to 32x32x1 with full rendering and pathing support and will now try to extend them in the Z axis as well which is going to be slightly trickier.

Suggestions / Re: This game needs a minimap similar to SC2
« on: December 13, 2015, 06:33:11 PM »
Yep mini-maps are good, but likely represent a significant additional work in the rendering process due to the significant number of very small tiles that need to be layered to create a zoomed out image, just because the space on the screen is small doesn't mean it's a small load.

Other Games / Re: Khazad - An opensource Dwarf Fortress like game
« on: December 12, 2015, 06:16:46 PM »
By removing a bottle-neck in the iteration of game objects I've raised the performance to ~850x real time, this puts me a factor of 50x from my goal.  Fortunately the bottle-neck is now back in Pathing which has plenty of room for improvement through a number of techniques that are well known.

My motherboard has the ability to unlock two defective cores giving me a quad core, but it's highly unstable (typically crashing within 30 seconds if being maxed out), I did some testing under these conditions and hit ~2500x real time, a factor of just 16x short of the goal (half the speed at 1/10th the population).  I won't be able to play this way but I expect most of you will have functional quad core processors so I'm going to consider this valid for achieving the goal.

Other Games / Re: Khazad - An opensource Dwarf Fortress like game
« on: December 10, 2015, 08:26:20 PM »
Please do give it some compiling and testing (note that you need to get my current working branch 'Rendering 2ndTry" to get my latest work), though I think I'm more interested in game-play programmers and UI programmers to assist at this time as I've gotten a good handle on the rendering system and after I finish my current round of improvements centered around the zoom-out reduced detail meshes I'm going to declare Rendering done until animation support needs to be added (which will require having some actual animation assets to use).

I've just activated a frame-rate cap at 60 FPS and this should free resources to be available for logic, I also added  a more accurate measurement of my simulation speed when it is not attaining the full speed setting.  My old AMD Phenom II X2 555 3.2 GHz (2 core) processor looks to be maxing out at ~200 logical game seconds per real second with 100 dwarves walking constant random paths or a rate of 20,000 'dwarf-seconds' per second.  Better systems with more cores will see even higher performance.  The ultimate goal is 4,000,000 dwarf-seconds per second (200x faster then current) allowing a 1000 population settlement to run at 4000x faster then real time which will corresponds to a full day every ~20 seconds and a year in 2 hours.  Note that you can't actually SEE anything once it's this fast, around 200x it's like watching a swarm of bees so I just turn off the rendering of creatures at the highest speeds.

Multi-threading is future of this genre.

Other Games / Re: Khazad - An opensource Dwarf Fortress like game
« on: December 08, 2015, 08:24:25 PM »
Discovered two Rendering performance improvements today that promise to boost performance significantly.

First a batch rendering system of the Nifty GUI which knocked it from 35% of rendering time down to 5% and boosted the FPS considerably.

Second a trick called Oblique Near-Plane Clipping (Lengyel’s Frustum), this consists of changing the cameras normally flat near plane to a plane attached to the world geometry.  I can now use this plane to slice the world and provide the cut-away views that your already familiar with.  The benefit is that I no longer need to actually make 1-Z level tall Meshes of the terrain, rather I can make large blocks of terrain and these will render much more efficiently through a modern GPU.  I'm now looking at going to 16x16x16 or even 32x32x32 tile across pieces.

This will also solve (which as partly the original motivation for investigation) a difficulty I've had in properly creating reduced detail meshes of the terrain for zoom-out.  The move to a 3D block will fix this as it was correctly showing steep slopes in a 1 Z high box that was proving impossible.

Suggestions / Re: Climbing!
« on: December 08, 2015, 06:49:05 PM »
In favor, this reminds me of Craft-the-World (a 2D sid-view style Dwarf themed game) in which dwarves could indeed climb, but rather then being limited arbitrarily in height they had a chance to fall off and take some damage.  Equipping them with crampons helped them climb better.

Different surfaces should have different difficulties to climb, rough stone being easy and perhaps some kind of polished stone being hardest (only spiders could climb it), this would make for some interesting choices for defense.

Pages: [1] 2 3 ... 10