The Tumbleweed keeps on rolling...
by
, 04-04-2019 at 02:44 PM (34891 Views)
I knew this blog would be infrequent when I started it but I guess six years between posts is long enough.
Since I last updated, coding-wise, I've had bounteous times and barren times. I've had six months on and years off. I've added stuff, removed stuff, edited stuff and generally prevaricated the time away.
Some of the "Things" have changed immensely in that period of time (HillThing and TextThing) and others have hardly been touched (TreeThing and BorderControl), whilst another that was only a dream and a wish (WaterSorter) has blossomed into being and is now the most complete out of all the Things. Go figure.
More on that particular one next time though (maybe in six years? :s).
For this post I want to concentrate on "TextThing" and give a rundown of what it can do and how it works.
For starters, let me just say, this one was a bit of a nightmare to make. Translating, rotating, resizing characters mid-label whilst still keeping the text positioned correctly... these are all things I struggled with A LOT. Even getting anti-aliasing to work correctly wasn't as straightforward as it should have been. Zzzzz.
Anyway, the original purpose of the program was to take the text of a label and add some jitters to each character to give it a rougher and hopefully more hand-drawn feel. This is nothing that couldn't be done in any other graphics program given enough time and patience, but who has that?
The jitters would work in a similar way to TreeThing and move a character either individually or affect it and every following character's x, y, angle or size.
When all labels have been placed they could then be exported on one or several .pngs and post-imaged in PS or Gimp or whatever.
I envisioned it making labels look quite unique but actually being slower to use than a dedicated graphics program as it would still need to be transferred over to be finessed.
That was the mandate for the program and as such it has been realised.
Here are a few areas in which that original vision was surpassed...
For starters, one of the best time-saving improvements I added over the original idea was a name generator. This can of course be over-ridden with user-made names but when speed matters it is really simple to just select "Town" or "City" or "Feature" and just click-and-drag and let the program do all the thinking. Personally speaking, I can spend hours trying to think up town names for one map. This really helps.
At the moment the dictionary for the generator is hard-coded into the program but I intend to make it user-editable in the future.
As well as generating names one at a time for the program I added an option to export a list of names in a text file.
With the current dictionary it can generate 325.89 million unique towns, 785.46 million countries and 2.36 billion island names... among others.
Originally I was ok with just clicking on a spot and having a label placed horizontally with the jitters applied. Now though, each label can be angled and arced as it is placed. They can still be edited once placed but it is very easy to just click and drag and alter an arc on the fly, depending on mouse buttons pressed. For me, this is incredibly easier than placing labels in Photoshop.
The labels don't have to have jitters. The program can be used to just quickly place angled or arced text.
Each label can be stroked and have drop shadows. These effects were never envisioned originally but with them it is possible to skip the post-imaging in a graphics program altogether.
I added in the ability to add a marker for each label. These can be resized and coloured independantly of the label and can also have strokes and drop shadows applied. The text can be dragged independantly of the marker for positioning purposes, or both can be dragged together if required.
And here is an image from the first map I ever used the program on other than test images - Parallion, Jax's commission for me for the March challenge...
This is both a good example and a bad example of the program. For the good, all the labels on the map were done in about half an hour start-to-finish, including figuring out where to put them and which to add etc. It's a bad example because time constraints with the challenge (I was doing it at 11 o'clock at night the night before the challenge ended) meant I had no time to vary settings, fonts etc. and was rushing.
So... is it finished? Nope. There are a few more small features I want to add, some bugs to eradicate, some UI to simplify and it needs optimising a lot but it is getting there. My internal version number is v0.93. I have a bunch of more complex features I want to add in the future once the program has reached v1.0 but those are for another day.