Page 2 of 3

Re: Make a Tileset from Scratch?

Posted: Sat Nov 21, 2020 6:12 am
by cazfi
Hans Lemurson wrote:Haven't tried this with debug launches from console, though. Maybe it would give the full list of problems as opposed to just #1 out of 137.

Not necessarily even debug log level thing, but if you run client from the console, you would see what it prints to the console in general.

Gui is more for the end user of your tileset. She/he is not interested about technical jargon of why your tileset fails to load.

Re: Make a Tileset from Scratch?

Posted: Sat Nov 21, 2020 6:38 am
by Hans Lemurson
cazfi wrote:
Hans Lemurson wrote:Haven't tried this with debug launches from console, though. Maybe it would give the full list of problems as opposed to just #1 out of 137.

Not necessarily even debug log level thing, but if you run client from the console, you would see what it prints to the console in general.

Gui is more for the end user of your tileset. She/he is not interested about technical jargon of why your tileset fails to load.


I'll keep that in mind, thanks. Gotta break out of my GUI-centric habits.

Re: Make a Tileset from Scratch?

Posted: Mon Nov 23, 2020 4:05 am
by Hans Lemurson
More fun facts: The gtk-3 client will not launch if a tileset contains a graphic accidentally saved in an unreadable format.

Renamed a file to *.png which was NOT a png, and the client crashed saying the graphics file was missing. The client then refused to launch (silent instant crash) until I fixed the graphic.

No luck on getting debug messages when launching freeciv-gtk3.exe from Windows PowerShell.

Re: Make a Tileset from Scratch?

Posted: Mon Nov 23, 2020 6:45 am
by cazfi
Hans Lemurson wrote:No luck on getting debug messages when launching freeciv-gtk3.exe from Windows PowerShell.

Right. There might be code making it to detach from the console in Windows (I think I've cursed such behavior in the past).
Not as good as seeing it to print messages to screen, but you may have better luck with writing log to a file with "-l <filename>" commandline parameter.

Re: Make a Tileset from Scratch?

Posted: Mon Nov 23, 2020 8:03 am
by Hans Lemurson
I got the debug info printed out into a log file, so that's good.

The bad news is, I've been getting an error ever since I changed the name of a file. I made sure to change the .png file name, the .spec file name, the name of the file that the .spec file loads, and the name of the .spec file that the .tilespec file loads.

And now I get the following crash no matter what I do: 2: in tileset_error() [../../../../client/tilespec.c::583]: Map topology and tileset incompatible.

Did I forget a comma somewhere? Maybe a file isn't properly terminated with a newline.
Who knows?

But I know two things for sure:
-It is NOT a topology incompatibility. That message is sooo useless. (the tileset was working 20 minutes ago, and my only changes were with the "unitcost" file)
-Editing tilesets is like walking through a %!#&@ mine-field. :x All it takes is one trivial error, and the whole system comes crashing down.

...
The problem in this case was that I accidentally deleted the file reference to unit.spec when I was changing unitcost.spec.
I had to go to debug level 3 to find this out.

Important lesson: Any error in the ".tilespec" file shows up as a Topology Incompatibility.

Re: Make a Tileset from Scratch?

Posted: Mon Nov 23, 2020 3:10 pm
by cazfi
Hans Lemurson wrote:Map topology and tileset incompatible.[/b]

To get so far that one gets that error would indicate that tileset has loaded succesfully, and only when its topology is compared to that of the game settings, it fails.

Re: Make a Tileset from Scratch?

Posted: Mon Nov 23, 2020 3:49 pm
by cazfi
Improving that particular error message -> Feature #899315.

Can you send your non-working tileset so I can investigate what goes wrong, and why it's not giving good error message?

Re: Make a Tileset from Scratch?

Posted: Mon Nov 23, 2020 10:09 pm
by Hans Lemurson
cazfi wrote:Improving that particular error message -> Feature #899315.

Can you send your non-working tileset so I can investigate what goes wrong, and why it's not giving good error message?

Is attaching a zip file to this message good enough, or would you like it through some other channel (since this isn't technically the bug-reporting section)?

Re: Make a Tileset from Scratch?

Posted: Tue Nov 24, 2020 1:12 am
by cazfi
Even after disabling number of debug features (which were producing more logs about the situation) from my freeciv build to make it like more like what gets built for Windows as official release, I get:

1: in tileset_read_toplevel() [../../../src/client/tilespec.c::1775]: Could not open '/fast/freeciv/rulesets/3rd/S2_6/data/RoundSkew.tilespec':
In secfile_from_input_file() [../../../src/utility/registry_ini.c:465]: secfile '/fast/freeciv/rulesets/3rd/S2_6/data/RoundSkew.tilespec' in section 'tilespec': Expected value
file "../../src/data/misc/colors.tilespec", line 1, pos 0
looking at: '[colors]'
included from file "/fast/freeciv/rulesets/3rd/S2_6/data/RoundSkew.tilespec", line 127

This was with default debug log level (number '1' in the beginning indicates that this is an error level message)

Re: Make a Tileset from Scratch?

Posted: Tue Nov 24, 2020 1:41 am
by Hans Lemurson
More fun facts!
In an isometric tileset, some images are not centered the same way that Terrain is.

The graphics like Bases and Units have their base Y-value shifted upwards by about half a tile. This is reasonable, since you want to have the possibility of going extra-tall. If you need to go lower, you can just draw the graphics lower-down

However, a great annoyance is that the graphics for Tile Yields, have an inherent X-offset which prevents you from displaying them any further left than this:
Image
I wanted to get the blue production-pips aligned with the center of the tile, but this seems physically impossible.
The Food dots are already at the leftmost edge of the graphic.

Is there any way to control this graphical offset? There are controls for many offsets, but I haven't seen any reference to this one. It might not have come up before, because I'm not sure how many people have tried to make a 48px wide isometric tileset.
If my graphics were 64px wide, the inherent 12-pixel offset wouldn't be much of a problem.


........
Looking further into it...
This appears to have been a deliberate design decision: https://github.com/freeciv/freeciv/blob ... 4676-L4696
The const ints ox and oy are set to 1/3 of the tile-width for isometric tilesets.
A negative value for Y, shifting the graphic upwards (fine, you can always go lower if you want in your graphic)
A positive value for X, shifting the graphic rightward (which is impossible to compensate for).

There's a small chance it was a bug (forgot to make X negative too? Maybe was only supposed to apply to iso-hex?), but given that every single isometric tileset that's ever been made has its tile yield graphics aligned based on these...could be a pain to fix.