# On Tiles and Why We Don't Have Them (But we're progressing. Thanks utunnels)

**URL:** https://discourse.cataclysmdda.org/t/on-tiles-and-why-we-dont-have-them-but-were-progressing-thanks-utunnels/197
**Category:** The Lab
**Created:** [February 8, 2013, 6:02pm UTC](https://discourse.cataclysmdda.org/t/on-tiles-and-why-we-dont-have-them-but-were-progressing-thanks-utunnels/197 "2013-02-08T18:02:45Z")
**Posts on this page:** 20
**Page:** 6

<div class="post-metadata">

### Author: ![rokomata](https://avatars.discourse-cdn.com/v4/letter/r/35a633/32.png) [@rokomata](https://discourse.cataclysmdda.org/u/rokomata)
#### Post date: [June 6, 2013, 2:47am UTC](https://discourse.cataclysmdda.org/t/on-tiles-and-why-we-dont-have-them-but-were-progressing-thanks-utunnels/197/101 "2013-06-06T02:47:21Z")

</div>

Got it. Thank you for the info and best of luck to you.

---

<div class="post-metadata">

### Author: ![utunnels](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.cataclysmdda.org/utunnels/32/81_2.png) [@utunnels](https://discourse.cataclysmdda.org/u/utunnels)
#### Post date: [June 6, 2013, 2:51am UTC](https://discourse.cataclysmdda.org/t/on-tiles-and-why-we-dont-have-them-but-were-progressing-thanks-utunnels/197/102 "2013-06-06T02:51:13Z")

</div>

Abandon the console based structure and it will be easier to implement any gui. 😉

You can also wrap something like mvwprintw with a generic DrawText function and implement that in both sdl and curses. Also I believe a constantly updating game loop can be simulated using timeout and time functions.

Currently curses functions just scatter everywhere, making it hard to write a second render logic without hard work. The most practicable way I can think is modify only that map window, but still it is a hard way to go.

Or perhaps various menus/guis can be abstracted to curses independent structures, so we only need to implement a render function for either mode (graphics or pure text). The game logic modules only need to update menu/gui status.

---

<div class="post-metadata">

### Author: ![Soron](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.cataclysmdda.org/soron/32/885_2.png) [@Soron](https://discourse.cataclysmdda.org/u/Soron)
#### Post date: [June 6, 2013, 2:57am UTC](https://discourse.cataclysmdda.org/t/on-tiles-and-why-we-dont-have-them-but-were-progressing-thanks-utunnels/197/103 "2013-06-06T02:57:14Z")

</div>

Yeah, that’s a pretty major impediment, to be honest. To do this right, we should really be doing all our I/O through a middle layer that abstracts the ncurses vs. graphics differences (and, ideally, that allows us to stop copy-pasting window handling code all over the place). Unfortunately, that’s a non-trivial task, and we currently have more things on our to-do list than we have programmer time.

---

<div class="post-metadata">

### Author: ![utunnels](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.cataclysmdda.org/utunnels/32/81_2.png) [@utunnels](https://discourse.cataclysmdda.org/u/utunnels)
#### Post date: [June 6, 2013, 3:12am UTC](https://discourse.cataclysmdda.org/t/on-tiles-and-why-we-dont-have-them-but-were-progressing-thanks-utunnels/197/104 "2013-06-06T03:12:09Z")

</div>

Yeah, that needs lots of labors and time.

A quicker approach, however, is making the game more modding friendly.

For example, add some function pointers, execute them when special events happen.

void (_OnGameStart)(game_ game); //initialize modding data  
void (_OnMapDraw)(game_ game); //when the map is being rendered  
void (_OnKeyPress)(game_ game); //optional  
void (_OnGameExit)(game_ game); //unload resources, etc

---

<div class="post-metadata">

### Author: ![Kaje](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.cataclysmdda.org/kaje/32/906_2.png) [@Kaje](https://discourse.cataclysmdda.org/u/Kaje)
#### Post date: [June 6, 2013, 10:40am UTC](https://discourse.cataclysmdda.org/t/on-tiles-and-why-we-dont-have-them-but-were-progressing-thanks-utunnels/197/105 "2013-06-06T10:40:23Z")

</div>

Are we any closer to a tileset yet? Do we have an ETA?

---

<div class="post-metadata">

### Author: ![rokomata](https://avatars.discourse-cdn.com/v4/letter/r/35a633/32.png) [@rokomata](https://discourse.cataclysmdda.org/u/rokomata)
#### Post date: [June 6, 2013, 11:00am UTC](https://discourse.cataclysmdda.org/t/on-tiles-and-why-we-dont-have-them-but-were-progressing-thanks-utunnels/197/106 "2013-06-06T11:00:59Z")

</div>

Frankly, I think they should focus on getting the support done instead of throwing out possible dates or estimates to satisfy our cravings. All it does is put extra pressure on them to no tangible effect in the way of making progress. It’ll be done when it’s done, right? Less pressure means more lenience and focus on the important task for the team.

---

<div class="post-metadata">

### Author: ![Soron](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.cataclysmdda.org/soron/32/885_2.png) [@Soron](https://discourse.cataclysmdda.org/u/Soron)
#### Post date: [June 6, 2013, 10:48pm UTC](https://discourse.cataclysmdda.org/t/on-tiles-and-why-we-dont-have-them-but-were-progressing-thanks-utunnels/197/107 "2013-06-06T22:48:38Z")

</div>

Well, we’ve taken the first small step (of many) towards tileset support. However, we still don’t really have an ETA. The closest we do have is still “whenever someone decides to set aside the time and do it. Also, not next release.”

---

<div class="post-metadata">

### Author: ![rokomata](https://avatars.discourse-cdn.com/v4/letter/r/35a633/32.png) [@rokomata](https://discourse.cataclysmdda.org/u/rokomata)
#### Post date: [June 7, 2013, 2:07pm UTC](https://discourse.cataclysmdda.org/t/on-tiles-and-why-we-dont-have-them-but-were-progressing-thanks-utunnels/197/108 "2013-06-07T14:07:48Z")

</div>

Boy, I wish I hadn’t read the line that says ‘not next release’. That’s really bad news.

---

<div class="post-metadata">

### Author: ![kevin.granade](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.cataclysmdda.org/kevin.granade/32/1316_2.png) [@kevin.granade](https://discourse.cataclysmdda.org/u/kevin.granade)
#### Post date: [June 7, 2013, 2:57pm UTC](https://discourse.cataclysmdda.org/t/on-tiles-and-why-we-dont-have-them-but-were-progressing-thanks-utunnels/197/109 "2013-06-07T14:57:48Z")

</div>

[quote=“utunnels, post:104, topic:197”]Yeah, that needs lots of labors and time.

A quicker approach, however, is making the game more modding friendly.

For example, add some function pointers, execute them when special events happen.

void (_OnGameStart)(game_ game); //initialize modding data  
void (_OnMapDraw)(game_ game); //when the map is being rendered  
void (_OnKeyPress)(game_ game); //optional  
void (_OnGameExit)(game_ game); //unload resources, etc[/quote]

We have a facility for this in “gamemode”. You can toggle a particular mode and it inserts various hooks.

Currently it has the following:  
init()  
per\_turn()  
pre\_action()  
post\_action()  
game\_over()

These can be expanded as needed.

---

<div class="post-metadata">

### Author: ![utunnels](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.cataclysmdda.org/utunnels/32/81_2.png) [@utunnels](https://discourse.cataclysmdda.org/u/utunnels)
#### Post date: [June 7, 2013, 11:55pm UTC](https://discourse.cataclysmdda.org/t/on-tiles-and-why-we-dont-have-them-but-were-progressing-thanks-utunnels/197/110 "2013-06-07T23:55:04Z")

</div>

Oh that is really cool. 🙂

---

<div class="post-metadata">

### Author: ![wad67](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.cataclysmdda.org/wad67/32/7_2.png) [@wad67](https://discourse.cataclysmdda.org/u/wad67)
#### Post date: [June 15, 2013, 1:33pm UTC](https://discourse.cataclysmdda.org/t/on-tiles-and-why-we-dont-have-them-but-were-progressing-thanks-utunnels/197/111 "2013-06-15T13:33:26Z")

</div>

If anyone needs some spriting done, I am more than happy to help, I have been spriting on and off for a few years and I would say my skills are passable.

I used to post on picturewars quite a bit, and I am still rather active in helping with armies.  
I don’t have much of a portfolio, as most of my efforts are now on a rather broken hardrive, however I will see what I can scrape up.  
 ![](http://filesmelt.com/dl/Edited1.png) I do recall having a few more files somewhere, but anyway, this is what I have for the time being.

---

<div class="post-metadata">

### Author: ![Stevensonz](https://avatars.discourse-cdn.com/v4/letter/s/8dc957/32.png) [@Stevensonz](https://discourse.cataclysmdda.org/u/Stevensonz)
#### Post date: [June 15, 2013, 2:42pm UTC](https://discourse.cataclysmdda.org/t/on-tiles-and-why-we-dont-have-them-but-were-progressing-thanks-utunnels/197/112 "2013-06-15T14:42:23Z")

</div>

wow when Cataclysm get’s awesome looking sprites that will be the day… (Though I worry about it making slower systems lag)

---

<div class="post-metadata">

### Author: ![bubbadoo14](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.cataclysmdda.org/bubbadoo14/32/2716_2.png) [@bubbadoo14](https://discourse.cataclysmdda.org/u/bubbadoo14)
#### Post date: [June 24, 2013, 6:28am UTC](https://discourse.cataclysmdda.org/t/on-tiles-and-why-we-dont-have-them-but-were-progressing-thanks-utunnels/197/113 "2013-06-24T06:28:19Z")

</div>

The announcement needs the link to be fixed to [this](http://smf.cataclysmdda.com/index.php?topic=202.0) instead of [this](http://en.cataclysmdda.com/smf/index.php?topic=202.0).

---

<div class="post-metadata">

### Author: ![placeybordeaux](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.cataclysmdda.org/placeybordeaux/32/904_2.png) [@placeybordeaux](https://discourse.cataclysmdda.org/u/placeybordeaux)
#### Post date: [June 28, 2013, 4:14am UTC](https://discourse.cataclysmdda.org/t/on-tiles-and-why-we-dont-have-them-but-were-progressing-thanks-utunnels/197/114 "2013-06-28T04:14:08Z")

</div>

> [@Soron](#):
>
> Well, we’ve taken the first small step (of many) towards tileset support. However, we still don’t really have an ETA. The closest we do have is still “whenever someone decides to set aside the time and do it. Also, not next release.”

Is there some write up on where this is happening and how I can help? I can take care of some files or two if someone has specificed an API to use.

Also if there is a branch where people are cleaning up the game loop I would be willing to help there, just not quite in sync with the dev team, just found this game a couple days ago.

---

<div class="post-metadata">

### Author: ![Stevensonz](https://avatars.discourse-cdn.com/v4/letter/s/8dc957/32.png) [@Stevensonz](https://discourse.cataclysmdda.org/u/Stevensonz)
#### Post date: [June 30, 2013, 3:56am UTC](https://discourse.cataclysmdda.org/t/on-tiles-and-why-we-dont-have-them-but-were-progressing-thanks-utunnels/197/115 "2013-06-30T03:56:28Z")

</div>

[http://smf.cataclysmdda.com/index.php?topic=421.15](http://smf.cataclysmdda.com/index.php?topic=421.15) this looked awesome but then I shed a single tear that it was on older versions only (Non-existent)… hoping new tilesets will be awesome that it can make me play for 2 days straight without sleep 🙂

---

<div class="post-metadata">

### Author: ![SKiPPY](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.cataclysmdda.org/skippy/32/123_2.png) [@SKiPPY](https://discourse.cataclysmdda.org/u/SKiPPY)
#### Post date: [July 6, 2013, 5:23am UTC](https://discourse.cataclysmdda.org/t/on-tiles-and-why-we-dont-have-them-but-were-progressing-thanks-utunnels/197/116 "2013-07-06T05:23:00Z")

</div>

I do love how the current graphics make the player use his or her imagination to create a better picture, so I wonder if a tile set would take away from that at all.

Oh well, back to making small 15x15 pictures in hopes that someone knows how to insert them into the game  
 ![](http://i.imgur.com/bhnFEhg.jpg) ![](http://i.imgur.com/pewZbDX.png)

by the way, check out the Tileset Project me and a few others are working on right now, it looks promising!  
The thread is probably being posted on right now, just search for “Tileset Project”.

---

<div class="post-metadata">

### Author: ![StopSignal](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.cataclysmdda.org/stopsignal/32/1923_2.png) [@StopSignal](https://discourse.cataclysmdda.org/u/StopSignal)
#### Post date: [July 6, 2013, 5:31am UTC](https://discourse.cataclysmdda.org/t/on-tiles-and-why-we-dont-have-them-but-were-progressing-thanks-utunnels/197/117 "2013-07-06T05:31:56Z")

</div>

> [@SKiPPY](#):
>
> Oh well, back to making small 15x15 pictures in hopes that someone knows how to insert them into the game

You made my day and also depressed me at the very same time, haha.

---

<div class="post-metadata">

### Author: ![jakobtawhoe](https://avatars.discourse-cdn.com/v4/letter/j/aeb1de/32.png) [@jakobtawhoe](https://discourse.cataclysmdda.org/u/jakobtawhoe)
#### Post date: [July 12, 2013, 7:48am UTC](https://discourse.cataclysmdda.org/t/on-tiles-and-why-we-dont-have-them-but-were-progressing-thanks-utunnels/197/118 "2013-07-12T07:48:30Z")

</div>

[quote=“utunnels, post:85, topic:197”][https://www.dropbox.com/s/r35pnekirwxy9m9/Cataclysm-DDA-sdltile.7z](https://www.dropbox.com/s/r35pnekirwxy9m9/Cataclysm-DDA-sdltile.7z)

I updated with my previous idea. Now every itype has an unique iid that can be used to map tile. Gfxwindow.cpp now uses a vector instead of map to store tileset infomation so it should be faster on rendering.

There isn’t much to do now I guess. Maybe a pixel artist will be wanted if this goes offical someday, because most of the pictures I’m using to test the code are taken from nethack and dwarf fortress.[/quote]

sorry! im a total noob! but id like to test this using he newest DDA build .6, how do I go about installing your tileset support into my base .6 game ??

im willing to create my own art work if you help me so i can get the word out!

i want to know does it support layered items like in THIS tileset?

[http://smf.cataclysmdda.com/index.php?topic=753.0](http://smf.cataclysmdda.com/index.php?topic=753.0)

any help is appreciated!!

---

<div class="post-metadata">

### Author: ![utunnels](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.cataclysmdda.org/utunnels/32/81_2.png) [@utunnels](https://discourse.cataclysmdda.org/u/utunnels)
#### Post date: [July 12, 2013, 8:00am UTC](https://discourse.cataclysmdda.org/t/on-tiles-and-why-we-dont-have-them-but-were-progressing-thanks-utunnels/197/119 "2013-07-12T08:00:33Z")

</div>

Well that was a quick hack on top of the display function.  
It seems to display normally, but lacks interaction to actual gameplay functions like firing weapons, explosion, looking around, etc

I abandoned the idea since it is one of the goal of the kickstarter project.

---

<div class="post-metadata">

### Author: ![jakobtawhoe](https://avatars.discourse-cdn.com/v4/letter/j/aeb1de/32.png) [@jakobtawhoe](https://discourse.cataclysmdda.org/u/jakobtawhoe)
#### Post date: [July 12, 2013, 8:43am UTC](https://discourse.cataclysmdda.org/t/on-tiles-and-why-we-dont-have-them-but-were-progressing-thanks-utunnels/197/120 "2013-07-12T08:43:08Z")

</div>

[quote=“utunnels, post:119, topic:197”]Well that was a quick hack on top of the display function.  
It seems to display normally, but lacks interaction to actual gameplay functions like firing weapons, explosion, looking around, etc

I abandoned the idea since it is one of the goal of the kickstarter project.[/quote]

ah so it can only display base entities and nothing else then?

i see. any idea how I get it working in .6? cuz it still helps being able to see buildings and windows vs grass and terrain.

[Previous page](https://discourse.cataclysmdda.org/t/on-tiles-and-why-we-dont-have-them-but-were-progressing-thanks-utunnels/197.md?page=5)

[Next page](https://discourse.cataclysmdda.org/t/on-tiles-and-why-we-dont-have-them-but-were-progressing-thanks-utunnels/197.md?page=7)
