Raga 32x32 Tileset [WIP 85%]

Awesome work as always.
I know it’s a petty little change, but could you possibly make the levers/cranks (as shown in ChunkOfMeat’s top picture) a bit less yellow? they look a bit bright to me and I mistook them for hay bales!

Just a small change obviously…

[quote=“ragamer, post:39, topic:4401”]Just finishing the last tiles before releasing another update…

…Chunkofmeat good job with the new tiles effects but, I noticed you changed the line effect (“animated_line”, 49) to the single peeble (22). The problem is that by using a small solid background effect, the visibility of the targeting line is badly impaired on similarly colored terrains (for example on forests or while aiming in the streets). The line of fire effect is extremely important not only to know were the last target is but also which ones the attack will go through or when you want to make a throwing object to collide against a corner.

I created an specific background for it (975) starting with the vanilla red square (I made it a bit more transparent so it doesn’t disrupt the entities it goes over as much) and I added a high contrast “reticle” (transparent green) to be sure the line of fire is also visible when the background is predominantely red/orange.[/quote]

Yes, I agree with you. I have already said that we should try and think about how it will be better. Is practically no gaps in the locations, so I want to do game view improvement. There are some possibilities inherent, but not implemented due to the fact that all previous tilesets drawn to the need to get as soon as possible full coverage map. Therefore, different subjects often appropriated the same value tiles, such as bullets. I think it’s time to change that.

[quote=“Binky, post:41, topic:4401”]Awesome work as always.
I know it’s a petty little change, but could you possibly make the levers/cranks (as shown in ChunkOfMeat’s top picture) a bit less yellow? they look a bit bright to me and I mistook them for hay bales!

Just a small change obviously…[/quote]

Done
UPDATE 4 +:
https://drive.google.com/file/d/0B2U5XRj54vODNEJKQ2lqMVBCVEk/edit?usp=sharing

P.S. Sorry for my english, google translator helps me. )

“line_target”
"line_trail"
I do not understand something in ASKII version works, and in the tiles - no.

[code]/* Line drawing code, not really an animation but should be separated anyway */

void game::draw_line(const int x, const int y, const point center_point, std::vector ret)
{
if (u_see( x, y))
{
for (int i = 0; i < ret.size(); i++)
{
int mondex = mon_at(ret[i].x, ret[i].y),
npcdex = npc_at(ret[i].x, ret[i].y);

        // NPCs and monsters get drawn with inverted colors
        if (mondex != -1 && u_see(&(critter_tracker.find(mondex))))
        {
            critter_tracker.find(mondex).draw(w_terrain, center_point.x, center_point.y, true);
        }
        else if (npcdex != -1)
        {
            active_npc[npcdex]->draw(w_terrain, center_point.x, center_point.y, true);
        }
        else
        {
            m.drawsq(w_terrain, u, ret[i].x, ret[i].y, true,true,center_point.x, center_point.y);
        }
    }
}
tilecontext->init_draw_line(x,y,ret,"line_target", true);

}

void game::draw_line(const int x, const int y, std::vector vPoint)
{
for (int i = 1; i < vPoint.size(); i++)
{
m.drawsq(w_terrain, u, vPoint[i-1].x, vPoint[i-1].y, true, true);
}

mvwputch(w_terrain, POSY + (vPoint[vPoint.size()-1].y - (u.posy + u.view_offset_y)),
                    POSX + (vPoint[vPoint.size()-1].x - (u.posx + u.view_offset_x)), c_white, 'X');

tilecontext->init_draw_line(x,y,vPoint,"line_trail", false);

}
//*/[/code]
tilecontext->init_draw_line(x,y,ret,“line_target”, true);
tilecontext->init_draw_line(x,y,vPoint,“line_trail”, false);
Can anyone help?

Can anyone join in on tile-set fun? I’ve been playing classic DDA with city size 1 and run into a lot of farms. Getting a bit tired seeing so many missing tiles. I figure I have the graphic skills to produce some decent tiles for things like:

grapes (like blueberries but upside down with diff colors)
onion (Actually, re-colored tomato)
Broccoli
Zucchini
Rhubarb (I’ve eaten Rhubarb pie as a kid…)
Withered Plant

These would be separate 32x32 PNG images. Plug them in where ever.

Of course, Ruxe, you are more than welcome… I try to “release” an update each Monday & Thurdsday so each contribution will be checked and integrated on the next update. We are on the completion phase still (The priority is to erradicate all those gray “#”) so its good you announced in advance the tiles you want to contribute so we can avoid collisions while integrating (2 persons working on the same set of tiles).

I use GIMP and some Java scripts to automate the process, which allows me to read/process multiple types of formats so feel free to contribute in the format you are more comfortable with.

Thanks in advance.

I’ve wanted to make some sort of tileset for C:DDA, but I’m too unmotivated to make a whole new one by myself just yet, so maybe I could start here. I’m no programmer, but I am someone who can draw.

I would use either Paint.NET or Paint Tool SAI to draw sprites, but I can’t really do much more than share what art I’ve done for this tileset. If I need to do more than that, then I’m afraid that I’d have nothing of value to contribute to this project.

I can't really do much more than share what art I've done for this tileset.

That’s what’s needed :). The extras I do are simple organization tasks, mainly dealing with integrating the different sources and polishing some details… Not as remotely time consuming as when I sit and draw gfxs. In fact, today I will work on the last “complex” step which is to export to the “tiles_config.json” all entities’ symbols I have found so far checking the game files (There are still some sections of the source code I haven’t checked… But with Christmass coming I’m afraid I will have to wait for that because it’s more productive if I do that analysis in a focused way dedicating multiple sessions in a row).

What we really should try is that every1 works on different tiles so all the creative effort translates in faster completion. After the set is completed, we may enter in a polishment phase were we alter the current tiles to “improve” the visuals or something if we all agree or we get some requests (ATM some contributors revise their tiles without problems which is fine also… What I mean with a “polishment phase” is that we may have to resolve the “conflict” when 2 contributors offer different versions of the same tile).

P.S.: If you need help at getting started or anything don’t hesitate in asking, the tileset files are more or less self-explanatory, but there are a few caveats we have discovered along the way that may explain some weirdness when trying to achieve certain effects ingame.

Okay, I tried to figure out what tiles needed to be done on my own. I looked through the PNG image file for the tiles themselves, and it looked like there’s still some guns that need to be done, so maybe I can try that out. However, having to look through the whole tile config and the JSON folder is too overwhelming a task for me.

So it seems to me that I’d need to be told which exact tiles I’d need to do in order to contribute anything in the way of art. I know that they have to be 32x32 pixels and that the RGB values 255,255,255 correspond to transparency (right?), but any more than that, and I’m lost in the dark.

Guns have been added by me directly… So it’s safe that you work on them (I will shift to other types). As a start, if you want to play on the safe side, just edit the png directly and draw on each cell (That way the palette, RGB system and the alpha channel will already be setup by the editing tool you use) and just send me the modified png… I will take care of integrating it and check any potential issue with the “tile_config.json”… But remember, you need to trace the ID of the gun to know how the game describes it for a player inspecting it. That requires a bit of digging into how the system works… I will try to explain it in the following lines.

The maping between the png image and the “tile_config.json” goes as follow:

  • The .png file is divided into 32x32 cells and the system assigns a linear index starting from the top left corner as 0. Then the system loads from left to right and from top to bottom all tiles. The image size is irrelevant, as the “spliting” is sequential, so for as long as the image width and height are multiples of 32 it will work (In fact it’s programmed to ignore “excess” pixels on the borders even).

  • The original author (Deon) chosen a “row” of 16 tiles long (16x32 = 512 pixels). So to know which .json file index corresponds to a given cell you just get the row number x 16 + column (remember, top left is the 0 column and 0 row).

  • On the .json file (The mapping file) each entity (all those fields that start by “id” : [a name]) that has a “fg”:[number] or “bg”:[number] are valid defined items the game will try to show using the associated tile in the png file.

I think an example will show all what I’m trying to explain… Here is an extract of an ingame entity:

        {
            "id":"t_wall_glass_v",
	    "fg":89,
	    "bg":64,
            "rotates":false
        },

The important pieces of data for you would be:

  • “t_wall_glass_v”. Is the internal name of the object (more on this later).
  • “fg”:89. Is telling the system to use as foreground for this object the tile with index 89.
  • “bg”:64. Is telling the system to use as background for this object the tile with index 64.

It’s fine and dandy but you are interested in locating this tile index on the image… Well, lets go for the foreground (most objects just need a foreground tile):

89 / 16 = 5.56 -> the tile is on row 5 (remember topmost row is the 0 row) and the column is…

89 - 5 x 16 -> 89 - 80 = 9 -> the tile is on column 9 (remember the leftmost column is the 0 column.

If you do the same for the background tile… 64 / 16 = 4. Which means row 4 and column 0… The leftmost tile in the 5th row.

Well, we have the entity, we know were to draw into the .png file but…

…We have absolutely no clue how this item is described in the game. Well, most entities properties are defined into the text files (also .json) that are located into:

[cataclysm install dir]/data/json/

And

[cataclysm install dir]/data/json/items/

So if you do a file search for the string “t_wall_glass_v” you will find the description of the item itself. In this particular case, this tile is a Terrain type, which will have a dull description.

if you were looking for a gun you will find their IDs into:

[cataclysm install dir]/data/json/items/ranged.json

Finnally I will try to explain the setup of software I use to ease this process:

  • I have the png imported into my editing software native format (For GIMP is .xcf).

  • I use notepad++ as the tool to open all .json files. In particular I like how fast is its utility to look for a given string over a set of files (Which, as you can imagine, helps a lot at speedup matching tiles IDs with their descriptions ingame). It has also 2 added bonuses: Full regexp support on replace (which allows some flexible and powerfull batch editing) and a Diff-like plugin (that allows to browse the differences between 2 text files… Which, ofc, helps tons at integrate tile_config.json coming from different contributors).

  • On GIMP, into the .xcf file I setup the png as the bottom layer.

  • I have defined a grid of 32x32 pixels and activated “snap to grid”, so it makes very easy to work with the tiles, specially copy’n paste operations.

  • On top of it I add a coordinate + comment layer. At the leftmost tile on each row I written its index number so I can immediatly translate sequential tile numbers into rows and column coordinates. I also add comments for myself, for things to do, and to mark special tiles with special meanings.

  • Finnally, a 3rd layer, the topmost, contains a mix of transparent and black 32x32 cells. I put a cell “on black” to mark the tiles that has been included into the most recently published update. I use this “completion mask” layer to spot which tiles has been created since the last update, to know who contributed them and to allow my java scripts to automatically cross check with the game data to offer the statistics of completion.

  • Obviously I have to export from the complex gimp .xcf file to generate ragatiles.png (layer 0) and after each update I also export layer 2 (the completion mask) to a temporal folder so my scripts can use it.

I hope you find any of this usefull and I also hope that my translation to english is not confusing you.

P.S. If this explanations aren’t helping I can create a list of guns with relative coordinates on the png (starting at the “yellow gun”… The “nail gun” ingame) so you can start drawing and to get more real examples on how the system works.

Good deal ragamer! From what you’ve posted, seems you have a plan/goal set up already. Nice. Get the tiles to 100% or near, and later bicker about what looks good or doesn’t. Actually, there isn’t much at all I’d bicker about. The tiles do the job rather well. Yup. Seeing what you posted recenly answers a lot of questions I had, ignore what follows if it makes no sense. The math thing Really helps.

Quick questions/notes:

  1. What’s the easiest way to host my files? Since my ISP killed free web-space, I’m not sure where to put this stuff these days.

  2. I use Gimp as well. My images are stored in *.xcf so as not to disturb transparency/alpha channel. Would this format be more acceptable?

  3. Since I have partial color blindness to deal with, my image colors may be a bit off. Feel free to change everything about them as per the tile-set requirements. Did my best to stay within convention, but maybe my Onion looks like a yellow pumpkin or basketball? To me, the Onion looks just fine.

  4. Is transparency/alpha allowed in the tile-sets? Seems so. If so, I could possibly do a better job smoothing rounded objects. Just curious. Many objects are bound by a solid black border with no transparency. Other objects seem to have a mix of black border and transparency.

Anyway, don’t worry about the holidays… Deal with any contributions after. :slight_smile: Although, since school and work are nix’ed, I’m likely to get way more done simply cuz I have more time to use when not dealing with anything else.

Lastly, Have a good one ragamer! My hangovers leading up to 1/1/2014 will be legendary. Oops, did the NSA pick up on that? Oh god, better hide the onions!

Next small bit of changes.
https://drive.google.com/file/d/0B2U5XRj54vODNEJKQ2lqMVBCVEk/edit?usp=sharing

Added:

“t_pit_corpsed” Wow - graveyard in FEMA camp.

"t_wall_metal * "

Changed tiles

“t_door_metal *”
“line_target”
“vp_wheel_bicycle”

Changed json

Added “fg”:975, to * _alarm", <- I think it’s unnecessary.

Changed “fg”

“tr_pit”
“tr_spike_pit”
“tr_lava”
“tr_ledge”

  • <- I think it’s important.
    {
    “id”:“highlight_item”,
    “fg”:192,
    “rotates”:false
    },
    PS Greetings to all who wished to join. Add from myself. I edit tileset “live” in the running game. This allows you to see all the inconsistencies in complex areas of several tiles. To obtain the required object or location using the debug menu.
What's the easiest way to host my files? Since my ISP killed free web-space, I'm not sure where to put this stuff these days.

I use Google Drive, because its humongous ammount of space, direct share link (you can define access rights to EACH file individually) and integrated revision system (You can have older versions of the same file stored separately, which helps at projects like this when you want to check something old in the right context). On the bad side, you have to access it as uploader using a valid google account, which some ppl seems to dislike.

I use Gimp as well. My images are stored in *.xcf so as not to disturb transparency/alpha channel. Would this format be more acceptable?

It will work, no problem. As you saw me explaining I also use .xcf as the “main file” for gfx but I export regularly layers to *.png (That is also a lossless format with alpha channel support… The one the tileset engine natively supports).

Since I have partial color blindness to deal with, my image colors may be a bit off. Feel free to change everything about them as per the tile-set requirements. Did my best to stay within convention, but maybe my Onion looks like a yellow pumpkin or basketball? To me, the Onion looks just fine.

K, will do… But don’t worry about that too much. There is room on the polishment phase to adjust all those kind of things. In the future the idea is that all tiles belonging to the same “theme” share common looks, it’s something I try all the time while patching the holes other contributors leave, to try to mimic their style so there is no abrupt change on looks for the players. But ofc, first we have to define “theme sets” which is, itself, a pain because of the wild variety of entities this excellent game may show.

Is transparency/alpha allowed in the tile-sets? Seems so. If so, I could possibly do a better job smoothing rounded objects. Just curious. Many objects are bound by a solid black border with no transparency. Other objects seem to have a mix of black border *and* transparency.

Oh it’s fully supported, that’s why the “input” the game accepts is in .png format. The “sharpness” of some models is intentional (the black border). The problem is that the game shows a big variety of Terrain tiles, on top of them you have your gfx, if you blend… It will work on some backgrounds but it may mask the entity on others. That’s were the black outline comes in, ensure that the entity is clearly visible against all backgrounds (Which is very important if that entity can kill a player… This is a game after all and Gfx need to support gameplay, imho). On the other side, there are entities which do not have gameplay elements associated or that makes sense that blend on the background. I introduced more transparent sections than what the original author used (Only zombies used a semitransparent section as shadow), most “live” explosive have associated somekind of glow as most light sources, because it functionally describe to the player “Hey! here is something dangerous that’s active… Pay attention to it!”. I did the same with the puddles of liquid that basically stain the floor, so it made sense they naturally blend into it, that’s why they don’t have the black outline.

Lastly, Have a good one ragamer! My hangovers leading up to 1/1/2014 will be legendary. Oops, did the NSA pick up on that? Oh god, better hide the onions!

Thanks, same to you and your loved ones… And don’t worry about the NSA, they will be busy checking the American Flag I added for today’s update ;).

I’ll have to hold off on this for now. I need to get myself back together.

UPDATE 5:

  • Canvas extended to hold 320 more tiles (To provide space for the new entities & future content).
  • All entities added by 0.9 version now included into “tile_config.json” (Reasson behind Completion Percentage decrease ;)).
  • Terrains courtesy of Chunkofmeat.
  • Clothes & Misc Items courtesy of Oakforce.
  • Clothes, Misc Items, Furniture & Melee weapons.

In Google Drive as usual:
https://drive.google.com/file/d/0BxOjT8xhbKf7MWwxNVpMWHlHejQ/edit?usp=sharing

Due to Christmass Holidays I will miss this Thurdsday update so the next update will be on Monday 30th… Merry Christmass to all!.

As usually, ) small addition.
Raga’s UPDATE 5: +


I wrote, but Raga did not included this in its latest update.

[quote=“ChunkOfMeat, post:51, topic:4401”]+ <- I think it’s important.
{
“id”:“highlight_item”,
“fg”:192,
“rotates”:false
},[/quote]
Tiles with items are now displayed.

Merry Christmass to all!. )

Glad to see this project… progressing! :> Looks like you guys are doing quite a bit to the underlying tileset code-stuff as well :slight_smile: Evolution!!

As usually, ) small addition.

Nice one, Chunk… Small but very important. Some ppl will find the highlight too invasive but as of today it has the VERY important function of marking which tiles of a flat furniture contain items (A feature some ppl already asked for).

We should have an option in the Interface to activate/deactivate item stack highlighting, to please all kind of gamers, but for now we keep it to gather feedback, ¿ok?.

Another update

https://drive.google.com/file/d/0B2U5XRj54vODNEJKQ2lqMVBCVEk/edit?usp=sharing

In the car a true survivalist should be all. Even if he shoots rats by a laser rifle. )

Added

“vp_chemlab”
“vp_cargo_space”

Changed a lot of animation tiles - fire, weather, a car’s tiles is reworked.

Have fun. )

Raga,

Sorry for the delay, but you can get my tiles here:

URL:
http://s000.tinyupload.com/index.php?file_id=03563146495151402227

They seem to look “OK”, but the witherd plant and raw potato are just experiments. Use them or not. Also, since you use GIMP, feel free to modify the tiles as needed. Might have to mod the colors a bit… Since scale didn’t seem an issue, I tried to use as much of 32x32 as I could. Hope these tiles work:

[
Zuchini1.xcf
Brocoli2.xcf
Grapes1.xcf
RawPotato3.xcf
Rhubar1.xcf
Witherplant4.xcf
YellowOnion5.xcf
]

Oh it's fully supported, that's why the "input" the game accepts is in .png format. The "sharpness" of some models is intentional (the black border). The problem is that the game shows a big variety of Terrain tiles, on top of them you have your gfx, if you blend... It will work on some backgrounds but it may mask the entity on others. That's were the black outline comes in, ensure that the entity is clearly visible against all backgrounds (Which is very important if that entity can kill a player...

I noticed that pretty quick. Mostly, smoothing doesn’t really work all that well. My tiles (-2) have the dark outline in place and seem to be acceptable enough.

And later, I’ll have something to say about “id”:“highlight_item”, Good for some, but bad for others… I noticed it in the Waldo tile-set.

Anyway, hope my stuff works out. Thanks.

Fantastic work, Ruxe… Was a simple copy’n paste job to integrate as they were already formatted and I must say they blend with the existing models naturally, which is an added bonus. They will appear on tomorrow’s update and I hope your “farm world” looks better than ever ;).

Thanks for the contribution.