Make a Tileset from Scratch?

Contribute, display and discuss art and tilesets for use in Freeciv here.
Hans Lemurson
Veteran
Posts: 107
Joined: Mon Aug 22, 2016 10:25 pm

Make a Tileset from Scratch?

Postby Hans Lemurson » Mon Nov 09, 2020 9:05 am

I'm interested in trying to make a Freeciv tileset from the ground up, with all of the files and artwork (except maybe the units) created by me. (Yes I know it's a monumental task.)

My previous attempts have been me just taking somebody else's tileset and then just modifying or replacing the graphics, but being stuck with whatever way they chose to organize the files and lay out the graphics. This is useful since everything that a tileset "Needs" is already present, but it's meant that I don't have a clear idea of what parts are necessary for what and how they can or should be arranged.

I have a couple main questions right now:
  1. Does anybody know if there is a guide or list of all of the graphical elements required to make a working tileset?
  2. Does anybody know how you're supposed to configure sub-tile components, like for coastline corners and the like?
  3. What about layering terrain? Any advice on how to get that set up?
Wishes he could convert Civ2's scenarios to FreeCiv...
But instead, he made his own tileset variants, RoundSquare and Sextant-enHANSed, and refuses to play on anything else. Check them out!

Ignatus
Elite
Posts: 398
Joined: Mon Nov 06, 2017 12:05 pm
Location: St.Petersburg, Russia
Contact:

Re: Make a Tileset from Scratch?

Postby Ignatus » Mon Nov 09, 2020 12:57 pm

Read your friendly... hmmm... C code... well, not so friendly. Actually, most standard features are best documented in comments of the standard tilesets. Some basics are here but it's highly likely some parts are deprecated for 2.6.

cazfi
Elite
Posts: 1837
Joined: Tue Jan 29, 2013 6:54 pm

Re: Make a Tileset from Scratch?

Postby cazfi » Mon Nov 09, 2020 2:18 pm

See README.graphics in your doc-directory. It's somewhat outdated, but should be better than nothing.

Updating that document has been in TODO for some time, but it's going to be painstaking project as *nobody* in the project currently knows the exact details so one will need to reverse engineer the code to figure things out in order to write them down.

Hans Lemurson
Veteran
Posts: 107
Joined: Mon Aug 22, 2016 10:25 pm

Re: Make a Tileset from Scratch?

Postby Hans Lemurson » Mon Nov 09, 2020 8:27 pm

Ignatus wrote:Read your friendly... hmmm... C code... well, not so friendly. Actually, most standard features are best documented in comments of the standard tilesets. Some basics are here but it's highly likely some parts are deprecated for 2.6.
Yeah, it was looking over that that made me post my question here.

cazfi wrote:See README.graphics in your doc-directory. It's somewhat outdated, but should be better than nothing.

Updating that document has been in TODO for some time, but it's going to be painstaking project as *nobody* in the project currently knows the exact details so one will need to reverse engineer the code to figure things out in order to write them down.

I'm looking at that now. It seems more useful than the last time I looked at it. Not sure if the version with 2.6 is better, or if I just understand it better now.

Is there any checklist for the terrain features you have to include, like:
-Mountains
-Hills
-Forest
-Jungle
-Swamp
-Grassland
-Plains
-Desert
-Coast
-Sea
-etc...

Or do I just look to the Ruleset in question to define this?

Also, if I fail to include a terrain-type/resource/feature/icon, will the game gracefully use a Default icon, or will it continually crash until I've gotten every last detail right?
Wishes he could convert Civ2's scenarios to FreeCiv...
But instead, he made his own tileset variants, RoundSquare and Sextant-enHANSed, and refuses to play on anything else. Check them out!

Hans Lemurson
Veteran
Posts: 107
Joined: Mon Aug 22, 2016 10:25 pm

Re: Make a Tileset from Scratch?

Postby Hans Lemurson » Fri Nov 13, 2020 9:09 pm

I just attempted a practice conversion of my RoundSquare tileset from 2.5 to 2.6, and a single misconfigured file caused Freeciv to crash as soon as I even attempted to open the "Local Client" options. Not even trying to select a tileset, simply attempting to open "Local Client" cause the crash.

Fortunately it gave an error message and told me exactly where the error was! This is much better than the silent errors I was fearing, but it does mean that I'll basically have to get everything right before I can even see anything. :x

...
I just discovered that you can test to see if a tileset can load without having to start a game: the Client Settings are available from the main menu!
This speeds up the process a bunch.
Also, you only get the insta-crash if you have a tileset that's missing files.
If it's merely missing definitions, then you don't get the crash until you attempt to load the tileset. Much more civilized. And it even says what you're missing!

It would be nice if the program didn't crash though, and simply didn't let you load an invalid tileset. Constantly re-launching freeciv gets a bit old.
Wishes he could convert Civ2's scenarios to FreeCiv...
But instead, he made his own tileset variants, RoundSquare and Sextant-enHANSed, and refuses to play on anything else. Check them out!

cazfi
Elite
Posts: 1837
Joined: Tue Jan 29, 2013 6:54 pm

Re: Make a Tileset from Scratch?

Postby cazfi » Sat Nov 14, 2020 1:18 am

Maybe it would be best to give your tileset as commandline option, and enabled sufficient level of logging so you see the problems right on when client is launching without need to play with the gui.
Assuming you are using gtk3.22-client, something like:

Code: Select all

freeciv-gtk3.22 -t mytileset -d 2

cazfi
Elite
Posts: 1837
Joined: Tue Jan 29, 2013 6:54 pm

Re: Make a Tileset from Scratch?

Postby cazfi » Sat Nov 14, 2020 1:22 am

Hans Lemurson wrote:I just attempted a practice conversion of my RoundSquare tileset from 2.5 to 2.6

For updating tilesets, see relevant wiki page; in this case http://www.freeciv.org/wiki/How_to_upda ... 2.5_to_2.6

Hans Lemurson
Veteran
Posts: 107
Joined: Mon Aug 22, 2016 10:25 pm

Re: Make a Tileset from Scratch?

Postby Hans Lemurson » Sun Nov 15, 2020 7:05 am

cazfi wrote:Maybe it would be best to give your tileset as commandline option, and enabled sufficient level of logging so you see the problems right on when client is launching without need to play with the gui.
Assuming you are using gtk3.22-client, something like:

Code: Select all

freeciv-gtk3.22 -t mytileset -d 2

Ah, thanks. Never thought of using the command line. Don't think I've ever used it before.
Are these commands you give the server, or use from the Operating System's command line?

cazfi wrote:
Hans Lemurson wrote:I just attempted a practice conversion of my RoundSquare tileset from 2.5 to 2.6

For updating tilesets, see relevant wiki page; in this case http://www.freeciv.org/wiki/How_to_upda ... 2.5_to_2.6

Yeah, I followed that, and about 80% of the problems I encountered were mentioned there. But it was also a test to see how frustrating trying to validate my tileset would end up being.

I hope I can get the command line running like you suggested, since being able to "fail fast" and know what the problem is will greatly help.

...
I also just realized that there IS a way to refresh a tileset without changing to a new one first: Just type in the name with different capitalization! It evaluates to the same set, but it's technically a change in the String, so it actually bothers to load the tileset once again!
Wishes he could convert Civ2's scenarios to FreeCiv...
But instead, he made his own tileset variants, RoundSquare and Sextant-enHANSed, and refuses to play on anything else. Check them out!

Hans Lemurson
Veteran
Posts: 107
Joined: Mon Aug 22, 2016 10:25 pm

Re: Make a Tileset from Scratch?

Postby Hans Lemurson » Mon Nov 16, 2020 9:58 am

I'm now attempting to make a custom .tilespec file myself, using README.graphics as my guide.

I'm currently in the process of figuring out how much of the file has to be defined before Freeciv will actually recognize it as a tileset.
I hope soon I will graduate to "Actually get error messages".
Wishes he could convert Civ2's scenarios to FreeCiv...
But instead, he made his own tileset variants, RoundSquare and Sextant-enHANSed, and refuses to play on anything else. Check them out!

Hans Lemurson
Veteran
Posts: 107
Joined: Mon Aug 22, 2016 10:25 pm

Re: Make a Tileset from Scratch?

Postby Hans Lemurson » Fri Nov 20, 2020 10:44 pm

Apparently the <name>.tilespec file has to be absolutely perfect for Freeciv 2.6 to even deign to recognize it.

Then and ONLY then may you have the privilege of being given barely helpful error messages when it crashes.
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.
Wishes he could convert Civ2's scenarios to FreeCiv...
But instead, he made his own tileset variants, RoundSquare and Sextant-enHANSed, and refuses to play on anything else. Check them out!