Tileset project

Perhaps all the tilesets could come in the options menu.

Options
Tileset: Default -> Deon’s Tiles -> CDDA Community Tiles -> Samscale’s Tiles (If I ever get around to finishing it)

I feel like making a tileset of my own so when that is done I will upload it. Sorry, guys Im dropping out of this one to go solo.

Any of the tiles on here can still be used or you can redo them :slight_smile: I am redoing everything for my set so Its all up to you.

Yeah, I’m backing out as well. Any of my work can be used in anyone’s tilesets, you have full permission to do whatever you want with them.

I read a question on items which take up multiple tiles, like beds and benches?

What about just generalizing the tiles?
Like make a bench be several vertical slats of wood (Kind of like a locker room’s bench)
and beds could just be the mattress with no pillows or sheets or ‘edges’ (Just some indentations for where the springs are in the middles)

They should still be easy to Identify visually and be able to be added easily without looking weird when viewed from any angles.

I have seen it done before, and it typically works well.

Yeah, sure. I’ll send out my full list of hardcoded objects :smiley: It’s rather lengthy heh

What I have so far:

Explanation and example snippit

Multitile Object Requirements:
	Tag in JSON file: "multitile": 0 or 1 (default 0)
A	1 fully enclosed center tile
B	1 corner tile
C	1 t-connection tile
D	1 single width edge tile
E	1 end tile
F	1 unconnected tile

.........F.F
.BCB...F....
.CAC......F.
.BCB....F...
..........F.
.EDDDE...F..
............

Additional tags:
	"additional_tiles": [] - Contains an array of extra tile references to display as each of the 6 above tiles. 
	If "multitile": 1 then the tile definition's "fg" and "bg" tags are ignored in favor of the contained tags, 
	unless one of the 6 tags is not specified, in which case it is set to the tile definition's values.

Something being multitile automatically assumes that some of its tiles can rotate; all but A and F in the above list.
Things that can be multitile:
	Just about any terrain, though the majority will look better as just tiles and not contextually placed
	Some fields (actually, pretty much any of them should look okay as a multitile except maybe the gibs)
	Some Furnitures (beds, tables)

Tile Rotations:
	Tag in JSON file: "rotates": 0 or 1 (default 0)
	Tiles that rotate will check for the appropriate rotation and change their display automatically.

Example Use
	{
		"comments": "the <id> tag is required, but no other tags are required and will be set to default values of 0, 0, 0, 0, and [] in order. ",
		"more_comments": "<fg> is the tile number of the foreground tile, drawn second. <bg> is the tile number of the background tile, drawn first.",
		"even_more_comments": "<multitile> will automatically set rotates to true and then skip <rotates> tag. <additional_tiles> tag contains tile references",

		"id":"value_from_list_below",
		"fg":number,
		"bg":number,
		"multitile":0 or 1,
		"rotates":0 or 1,
		"additional_tiles":
		[
			{
				"id": "center",
				"fg": number
			},
			{
				"id": "corner",
				"fg": number
			},
			{
				"id": "t_connection",
				"fg": number
			},
			{
				"id": "edge",
				"fg": number
			},
			{
				"id": "end",
				"fg": number
			},
			{
				"id": "unconnected",
				"fg": number
			}
		]
	}

Hardcoded Keys

LIGHTING KEYS
	lighting_boomered_light,
	lighting_boomered_dark,
	lighting_lowlight_light,
	lighting_lowlight_dark,
	lighting_hidden

PC/NPC KEYS
	npc_male,
	npc_female,
	player_male,
	player_female

TERRAIN KEYS
	t_hole
	t_dirt
	t_sand
	t_dirtmound
	t_pit_shallow
	t_pit
	t_pit_corpsed
	t_pit_covered
	t_pit_spiked
	t_pit_spiked_covered
	t_rock_floor
	t_rubble
	t_ash
	t_metal
	t_wreckage
	t_grass
	t_metal_floor
	t_pavement
	t_pavement_y
	t_sidewalk
	t_floor
	t_dirtfloor
	t_grate
	t_slime
	t_bridge
	t_skylight
	t_emergency_light_flicker
	t_emergency_light
	t_wall_log_half
	t_wall_log
	t_wall_log_chipped
	t_wall_log_broken
	t_palisade
	t_palisade_gate
	t_palisade_gate_o
	t_wall_half
	t_wall_wood
	t_wall_wood_chipped
	t_wall_wood_broken
	t_wall_v
	t_wall_h
	t_concrete_v
	t_concrete_h
	t_wall_metal_v
	t_wall_metal_h
	t_wall_glass_v
	t_wall_glass_h
	t_wall_glass_v_alarm
	t_wall_glass_h_alarm
	t_reinforced_glass_v
	t_reinforced_glass_h
	t_bars
	t_door_c
	t_door_b
	t_door_o
	t_door_locked_interior
	t_door_locked
	t_door_locked_alarm
	t_door_frame
	t_chaingate_l
	t_fencegate_c
	t_fencegate_o
	t_chaingate_c
	t_chaingate_o
	t_door_boarded
	t_door_metal_c
	t_door_metal_o
	t_door_metal_locked
	t_door_bar_c
	t_door_bar_o
	t_door_bar_locked
	t_door_glass_c
	t_door_glass_o
	t_portcullis
	t_recycler
	t_window
	t_window_taped
	t_window_domestic
	t_window_domestic_taped
	t_window_open
	t_curtains
	t_window_alarm
	t_window_alarm_taped
	t_window_empty
	t_window_frame
	t_window_boarded
	t_window_stained_green
	t_window_stained_red
	t_window_stained_blue
	t_rock
	t_fault
	t_paper
	t_tree
	t_tree_young
	t_tree_apple
	t_underbrush
	t_shrub
	t_shrub_blueberry
	t_shrub_strawberry
	t_trunk
	t_root_wall
	t_wax
	t_floor_wax
	t_fence_v
	t_fence_h
	t_chainfence_v
	t_chainfence_h
	t_chainfence_posts
	t_fence_post
	t_fence_wire
	t_fence_barbed
	t_fence_rope
	t_railing_v
	t_railing_h
	t_marloss
	t_fungus
	t_tree_fungal
	t_water_sh
	t_water_dp
	t_water_pool
	t_sewage
	t_lava
	t_sandbox
	t_slide
	t_monkey_bars
	t_backboard
	t_gas_pump
	t_gas_pump_smashed
	t_generator_broken
	t_missile
	t_missile_exploded
	t_radio_tower
	t_radio_controls
	t_console_broken
	t_console
	t_gates_mech_control
	t_gates_control_concrete
	t_barndoor
	t_palisade_pulley
	t_sewage_pipe
	t_sewage_pump
	t_centrifuge
	t_column
	t_vat
	t_stairs_down
	t_stairs_up
	t_manhole
	t_ladder_up
	t_ladder_down
	t_slope_down
	t_slope_up
	t_rope_up
	t_manhole_cover
	t_card_science
	t_card_military
	t_card_reader_broken
	t_slot_machine
	t_elevator_control
	t_elevator_control_off
	t_elevator
	t_pedestal_wyrm
	t_pedestal_temple
	t_rock_red
	t_rock_green
	t_rock_blue
	t_floor_red
	t_floor_green
	t_floor_blue
	t_switch_rg
	t_switch_gb
	t_switch_rb
	t_switch_even

TRAP KEYS
	tr_bubblewrap
	tr_cot
	tr_brazier
	tr_funnel
	tr_rollmat
	tr_beartrap
	tr_beartrap_buried
	tr_snare
	tr_nailboard
	tr_tripwire
	tr_crossbow
	tr_shotgun_2
	tr_shotgun_1
	tr_engine
	tr_blade
	tr_light_snare
	tr_heavy_snare
	tr_landmine
	tr_landmine_buried
	tr_telepad
	tr_goo
	tr_dissector
	tr_sinkhole
	tr_pit
	tr_spike_pit
	tr_lava
	tr_portal
	tr_ledge
	tr_boobytrap
	tr_temple_flood
	tr_temple_toggle
	tr_glow
	tr_hum
	tr_shadow
	tr_drain
	tr_snake

FIELD KEYS
	fd_blood
	fd_bile
	fd_gibs_flesh
	fd_gibs_veggy
	fd_web
	fd_slime
	fd_acid
	fd_sap
	fd_sludge
	fd_fire
	fd_rubble
	fd_smoke
	fd_toxic_gas
	fd_tear_gas
	fd_nuke_gas
	fd_gas_vent
	fd_fire_vent
	fd_flame_burst
	fd_electricity
	fd_fatigue
	fd_push_items
	fd_shock_vent
	fd_acid_vent

MONSTER KEYS
	mon_squirrel
	mon_rabbit
	mon_deer
	mon_moose
	mon_wolf
	mon_coyote
	mon_bear
	mon_cougar
	mon_crow
	mon_dog
	mon_cat
	mon_ant_larva
	mon_ant
	mon_ant_soldier
	mon_ant_queen
	mon_ant_fungus
	mon_fly
	mon_bee
	mon_wasp
	mon_graboid
	mon_worm
	mon_halfworm
	mon_sludge_crawler
	mon_zombie
	mon_zombie_cop
	mon_zombie_shrieker
	mon_zombie_spitter
	mon_zombie_electric
	mon_zombie_smoker
	mon_zombie_fast
	mon_zombie_brute
	mon_zombie_hulk
	mon_zombie_fungus
	mon_boomer
	mon_boomer_fungus
	mon_skeleton
	mon_zombie_necro
	mon_zombie_scientist
	mon_zombie_soldier
	mon_zombie_grabber
	mon_zombie_master
	mon_beekeeper
	mon_zombie_child
	mon_jabberwock
	mon_triffid
	mon_triffid_young
	mon_triffid_queen
	mon_creeper_hub
	mon_creeper_vine
	mon_biollante
	mon_vinebeast
	mon_triffid_heart
	mon_fungaloid
	mon_fungaloid_dormant
	mon_fungaloid_young
	mon_spore
	mon_fungaloid_queen
	mon_fungal_wall
	mon_blob
	mon_blob_small
	mon_chud
	mon_one_eye
	mon_crawler
	mon_sewer_fish
	mon_sewer_snake
	mon_sewer_rat
	mon_rat_king
	mon_mosquito
	mon_dragonfly
	mon_centipede
	mon_frog
	mon_slug
	mon_dermatik_larva
	mon_dermatik
	mon_spider_wolf
	mon_spider_web
	mon_spider_jumping
	mon_spider_trapdoor
	mon_spider_widow
	mon_dark_wyrm
	mon_amigara_horror
	mon_dog_thing
	mon_headless_dog_thing
	mon_thing
	mon_human_snail
	mon_twisted_body
	mon_vortex
	mon_flying_polyp
	mon_hunting_horror
	mon_mi_go
	mon_yugg
	mon_gelatin
	mon_flaming_eye
	mon_kreck
	mon_gracke
	mon_blank
	mon_gozu
	mon_shadow
	mon_breather_hub
	mon_breather
	mon_shadow_snake
	mon_dementia
	mon_homunculus
	mon_blood_sacrifice
	mon_flesh_angel
	mon_eyebot
	mon_manhack
	mon_skitterbot
	mon_secubot
	mon_hazmatbot
	mon_copbot
	mon_molebot
	mon_tripod
	mon_chickenbot
	mon_tankbot
	mon_turret
	mon_exploder
	mon_hallu_zom
	mon_hallu_bee
	mon_hallu_ant
	mon_hallu_mom
	mon_generator

FURNITURE KEYS
	f_hay
	f_bulletin
	f_indoor_plant
	f_bed
	f_toilet
	f_makeshift_bed
	f_sink
	f_oven
	f_woodstove
	f_fireplace
	f_bathtub
	f_chair
	f_armchair
	f_sofa
	f_cupboard
	f_trashcan
	f_desk
	f_exercise
	f_bench
	f_table
	f_pool_table
	f_counter
	f_fridge
	f_glass_fridge
	f_dresser
	f_locker
	f_rack
	f_bookcase
	f_washer
	f_dryer
	f_dumpster
	f_crate_c
	f_crate_o
	f_canvas_wall
	f_canvas_door
	f_canvas_door_o
	f_groundsheet
	f_fema_groundsheet
	f_skin_wall
	f_skin_door
	f_skin_door_o
	f_skin_groundsheet
	f_mutpoppy

VEHICLE PART KEYS
	vp_seat
	vp_saddle
	vp_bed
	vp_frame_h
	vp_frame_v
	vp_frame_c
	vp_frame_y
	vp_frame_u
	vp_frame_n
	vp_frame_b
	vp_frame_h2
	vp_frame_v2
	vp_frame_cover
	vp_frame_handle
	vp_board_h
	vp_board_v
	vp_board_y
	vp_board_u
	vp_board_n
	vp_board_b
	vp_aisle_h2
	vp_aisle_v2
	vp_floor_trunk
	vp_roof
	vp_door
	vp_door_o
	vp_door_i
	vp_window
	vp_blade_h
	vp_blade_v
	vp_spike_h
	vp_wheel
	vp_wheel_wide
	vp_wheel_bicycle
	vp_wheel_motorbike
	vp_wheel_small
	vp_engine_gas_1cyl
	vp_engine_gas_v2
	vp_engine_gas_i4
	vp_engine_gas_v6
	vp_engine_gas_v8
	vp_engine_motor
	vp_engine_motor_large
	vp_engine_plasma
	vp_engine_foot_crank
	vp_fuel_tank_gas
	vp_fuel_tank_batt
	vp_fuel_tank_plut
	vp_fuel_tank_hydrogen
	vp_fuel_tank_water
	vp_cargo_trunk
	vp_cargo_box
	// Adds coloring only
	vp_steel_plate
	vp_superalloy_plate
	vp_spiked_plate
	vp_hard_plate
	vp_head_light

The example bits at the top may change a little as I do testing…
*Edit: Forgot to add a tag for non-viewable bits so you can make a tile not just a black square if you’d like.

Galenevil - is there any plan or ability to add multiple icons to a single monster (at least), and have it randomly choose which one to use when created? It would, in my opinion, add quite a bit to the monster horde if we could have a bit of graphical variety.

Maybe not worth the effort, though.

It’s not in the plans at the moment, hadn’t thought of it hehe. It is definitely doable so I’ll add it to my list as it seems like a cool feature. May not be going into the initial release if I start getting close to the wire.

Ill make say 5 variants of each monster if you want an idea of how many variant skins to code in Galen. Does the furniture and blood and stuff like that record what tile it is standing on? So I can give it a transparent background. Would it be possible to add seasonal variants to trees and triffids? Eg in summer they are deep green. In winter they have no leaves, In autumn they have red leaves etc Also I will make a new thread in The Lab for my own tileset.

@Samscale1: they do not directly record their locations, but it’s accessible through map::something(x,y). Seasonal variants would probably be easy enough to do, but like GG’s idea it will probably have to wait just a little while so I can get everything in the original plan working. Should mostly be just adding a few tags to the JSON and logic to handle it on my end. I’ll add it to the list of additional functionality I have going now so I can remember to work on it.

Edit: To prevent a dblpost just gonna edit this one:

Was unable to finish tile support last night, and I will have limited time to program over the next 5 days. I hope to use that limited time to its fullest and get this finished before I return on Tuesday though. I am heading to a family reunion for 5 days (today through Tuesday). The posted list should give any tile makers a good deal of stuff to work on though. I have one more tweak to add to the JSON files and then I will be able to post up the full list of tags and format, which I will do tonight after I get to my destination and can get it worked into the build.

For the moment, the only Terrain pieces that will be checked for multi-tile arrangement are Wall types, any that would have the ‘|’ (pipe) or ‘-’ (hyphen) symbols. Traps, Fields, Furniture can be multitilable and the support is there for it. Vehicle parts only need a single tile per visible part, and will be rotated as needed automatically. The reason for only walls being checked is because there are a lot of special cases that I need to work through to get everything playing nicely and I’ll need to test more to figure out all of the special cases.

Sorry for the additional wait, and thanks for the patience.

So the tileset support is going to make it easier for people to “put in” (I don’t know what the technical term is) their own tilesets?

also, what types of picture file compression will be used for the tiles? .gif? .png? .jpeg?

Sorry if I’m taking away time from your busy work schedule asking these questions.

I say BMP, PNG or TGA. Definitely not JPG :).

png would be my guess cause bmp would make the filesize way bigger

TGA IMHO is the best in terms of processing by many engines, however it makes sense when we talk about 3d games with many textures. Here, for pixel art, it usually does not matter, and it’s much easier to make .png transparency than TGA via alpha channels (at least in photoshop), so I would vote for png.

What about resolutions? Would 32x32 work fine like in old cataclysm?

Hey, Deon, Nice to see you back in action with a tileset. Im working on one too. I use 16 by 16 since its the default. I think. Can it be bigger, I didnt know

Would it be possible to change the player icon depending on the way they start? Like unemployed get a generic player with a t-shirt and jeans or scoundrel gets a hoodie and jeans in the sprite.

Sounds like a cool idea.

It would be nice if we got the old Gremour’s tileset’s feature where all equipped items show up on player, then it would be even better.

It’d be nice, but that’d take ages You can do that in your set if its possible. I’ll stick making the player sprite change on each profession

It’d be nice, but that’d take ages You can do that in your set if its possible. I’ll stick making the player sprite change on each profession[/quote]

Paperdolling isn’t TOO terribly difficult, especially with the lack of animation in Cataclysm. What you would do is have a base player sprite, and item sprites that are an overlay of sorts that go over it.

But if we go into so much detail for clothes, it would be weird if stuff like gender, mutations, race etc weren’t represented in the sprite. I think this kind of thing takes a lot more planning than you initially might think.