Implemented a simple NAT traversal mechanism

June 29, 2015

<img width="750" height="288" src="http://mifki.com/assets/uploads/tumblr_nqnsd7BhmV1qzmw9xo1_1280-750x288.jpg" class="attachment-full-width size-full-width" alt="" srcset="http://mifki.com/assets/uploads/tumblr_nqnsd7BhmV1qzmw9xo1_1280-750x288 acheter viagra au maroc.jpg 750w, http://mifki.com/assets/uploads/tumblr_nqnsd7BhmV1qzmw9xo1_1280-300x115.jpg 300w, http://mifki.com/assets/uploads/tumblr_nqnsd7BhmV1qzmw9xo1_1280-768x295.jpg 768w, http://mifki.com/assets/uploads/tumblr_nqnsd7BhmV1qzmw9xo1_1280-1024x393.jpg 1024w, http://mifki.com/assets/uploads/tumblr_nqnsd7BhmV1qzmw9xo1_1280-320x123.jpg 320w, http://mifki.com/assets/uploads/tumblr_nqnsd7BhmV1qzmw9xo1_1280.png 1280w" sizes="(max-width: 750px) 100vw, 750px" />

More people should now be able to connect to their DF game running at home. 

Also, shaking your device will now show a popup with a page from dwarffortresswiki.org relevant to the current screen. This will change in future though – I don’t like using shake for any actions, and ideally it should be possible to show help for example for individual jobs in a workshop and not just for the entire screen.

·

App Store is fucked up

June 29, 2015
In good old times App Store on front page had sections like Noteworthy New Apps, Editor’s Choice, etc. Then it became Best New Apps and Best New Games (with “new” being very often just minor updates of well-known products) . Then games became first. And this week there are even no separate section for new apps - only Best New Games and Apps & Games at a Limited-Time Price. Of all things Apple invented/popularised there’s one special - In-App Purchases - which perverted entire mobile gamdev industry. And now App Store is unfortunately overflowed with and focused on stupid freemium games made by stupid developers for stupid people.
·

Dwarf Fortress Remote status update

June 23, 2015

<img src="/assets/uploads/tumblr_inline_nqcdbwjCHh1qzj0rp_1280-750x423 le viagra sur ordonnance.png" alt="tumblr_inline_nqcdbwjchh1qzj0rp_1280" width="750" height="423" class="alignnone size-full-width wp-image-668" />

Over the weekend, I implemented a lot of missing functionality, mostly related to building and buildings. Almost all buildings have their actions and options available at build time implemented now. Also improved handling of announcements, specifically popup announcements, and other UI elements. Reconnection / restoration of game state is much faster now even if the app has been terminated while in background.

I do not answer questions about the estimated release date, mostly because I do not know how much time I’ll have to work on this. Below is the list of unimplemented stuff.

Missing: military screen (while squads menu is implemented), workshop profiles, stockpile-workshop links, health overview screen, justice-related stuff, stocks screen, civilizations screen, points/routes/notes, burrows, hauling, traps/levers and their linkage, world creation/starting a new game, several building actions (e.g. assigning creatures to cages and chains), nobles requirements/demands/mandates.

It’s a huge list, and some things are really important and I will work on them now, while some are deliberately skipped and will not be done until after the first public test release. Of course, advanced players may consider all of them must-have, but technically you can play without burrows and minecarts, for example.

I’m mostly happy with the networking and UI code, so can focus on this list now. The only other non-gameplay thing I’ll do is a support for NAT traversal, so that more people will be able to connect to their game running on a computer at home. 

·
June 19, 2015
Swift could be a great language. But no. The syntax (among other things) is so terrible, that even having so far 100+ classes in the DF Remote iOS App and willing to get rid at least of annoying mostly empty .h files, I can’t bear it.
·
June 9, 2015
Spent last couple days playing Dwarf Fortress on the go (too bad there’s no save button yet). This resulted in fixing some crashes, making UI/UX improvements related to repeating operations like placing buildings, and also dramatically improving network performance and responsiveness. Here’s a video demonstrating gameplay over a 3G cellular connection to a server in another country (175ms ping). Actually, it’s a bit smoother in real life then on a recording.

I’m now finishing this stuff, then will be another round of implementing missing screens and functionality, and then I’ll prepare an alpha version to give out to number of people to try.
·

Experimenting with UI colours again

June 5, 2015
Dark background is required to be able to use standard DF colours for professions, jobs, materials and everything else, but initially I was going to use all the default colours for UI components. Probably only some screens will be dark, and some will be partly dark, as the item and unit info screens.

Also making row height smaller on certain screens either as an optional compact mode, or more likely not optional, because it’s much less comfortable to navigate long lists (units, trade goods) when only several items fit on screen, compared to one text line per item in DF on desktop.
·
June 5, 2015
Artifact list, item info screen, look mode, look list, container contents view. Look mode eventually will replace building query mode and unit selection modes because there’s no sidebar on mobile so no real differences between them anyway.
·
May 27, 2015
A post was planned here about how I rewrote a widely used job management and cost recovery software for MFDs from 450k lines in Java to 15k lines in Node.js, making it ten times faster and more reliable. But what else can I say?
·

Overcoming 16-colour palette limitations in Dwarf Fortress

May 19, 2015
In Text Will Be Text version 5.46 I’ve added a way to use colour values from colour tokens for tiles. If any background or foreground colour is >= 100, then colour values will be taken from df.global.world.raws.language.colors[value-100]. One example of how to use this is the included script realcolors.lua, which processes material definitions and replaces tile colours with values from material.state_color.Solid, which will give results similar to the screenshots below.

Before: After (note the different colours of wooden furniture): Technically this was very easy to do but some work probably will be required from tileset authors. Some colours specified in vanilla raws are not quite correct, but this can be fixed (e.g. by using an external colour database, one option is to use Stonesense data, as Japa suggested). The biggest problem here is that tilesets are designed to make use of background and foreground colours, while if we make use of colour tokens, there will be only one foreground colour. For the background colour, we’ll have to either leave it as is, or set to some fixed value (e.g. black or white), and that’s not what existing tilesets expect. EDIT: On the other hand, if you specify colours manually (in raws or overrides.txt for overrides), you can still have both foreground and background colours set to anything you want.
·