# SDL vs Curses

**URL:** <https://discourse.cataclysmdda.org/t/sdl-vs-curses/1716>\
**Category:** Основное обсуждение "Катаклизма"\
**Created:** [June 11, 2013, 7:05am UTC](https://discourse.cataclysmdda.org/t/sdl-vs-curses/1716 "2013-06-11T07:05:45Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![aiwant2tc](https://avatars.discourse-cdn.com/v4/letter/a/7cd45c/32.png) [@aiwant2tc](https://discourse.cataclysmdda.org/u/aiwant2tc)\
**Post date:** [June 11, 2013, 7:05am UTC](https://discourse.cataclysmdda.org/t/sdl-vs-curses/1716/1 "2013-06-11T07:05:45Z")

</div>

Собственно, тема для тех, кто хочет хочет отписаться о разнице между SDL и Curses версиями Катаклизма, но не знает, как это так выразиться на английском 🙂 .  
Пишите сюда, я переведу и направлю оО.

p.s. От себя скажу, что производительность у SDL сборки… ну просто улёт 🙂 (Я ещё до публикации собирал). Но мне было лень разбираться, как сделать full-screen оО.

//  
Для тех, кто хочет свои шрифты. Кидаем копию их в data/font  
В файле data/FONTDATA прописываем название шрифта (без .ttf и т.п.)  
И три цифры:  
Ширина  
Высота (до которых нужно растянуть шрифт)  
Размер шрифта. (обычно равно предыдущему значению, ибо мы растягиваем высоту и ширину до этого значения)  
Во всяком случае, я так понял значение цифр оО .

---

<div class="post-metadata">

**Author:** ![Reaper](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.cataclysmdda.org/reaper/32/74_2.png) [@Reaper](https://discourse.cataclysmdda.org/u/Reaper)\
**Post date:** [June 11, 2013, 8:46am UTC](https://discourse.cataclysmdda.org/t/sdl-vs-curses/1716/2 "2013-06-11T08:46:54Z")

</div>

SDL работает на низком уровне с графикой, аудио и др, правильно понимаю?  
Это значит в перспективе можно будет легко прикрутить тайлы?

---

<div class="post-metadata">

**Author:** ![aiwant2tc](https://avatars.discourse-cdn.com/v4/letter/a/7cd45c/32.png) [@aiwant2tc](https://discourse.cataclysmdda.org/u/aiwant2tc)\
**Post date:** [June 11, 2013, 8:58am UTC](https://discourse.cataclysmdda.org/t/sdl-vs-curses/1716/3 "2013-06-11T08:58:49Z")

</div>

Я упустил один момент. Если действительно нужно перевести и направить, сообщите, а пока так 🙂 :

Переведу вот это.

> The SDL build may eventually become more full-featured than the GDI build (especially when we eventually get tiles support - that will be SDL-based), but for now, I mainly expect performance differences.

“SDL сборка в определённый момент станет более функциональной, чем GDI сборка (особенное, когда мы введём поддержку тайлов: она будет основана на SDL), а пока я ожидаю в основном разницы в производительности”

---

<div class="post-metadata">

**Author:** ![aiwant2tc](https://avatars.discourse-cdn.com/v4/letter/a/7cd45c/32.png) [@aiwant2tc](https://discourse.cataclysmdda.org/u/aiwant2tc)\
**Post date:** [June 11, 2013, 9:09am UTC](https://discourse.cataclysmdda.org/t/sdl-vs-curses/1716/4 "2013-06-11T09:09:02Z")

</div>

А, да. Ещё. Для тех, кто хочет скомпилировать под никсами SDL версию.  
Нужно компилировать не обычной make командой, а  
make RELEASE=1 TILES=1 . Во всяком случае, разрабы так посоветовали оО .

Первая отвечает за то, чтоб это была не DEBUG сборка, а RELEASE… Ну, скомпилированная таким образом игра будет оптимизированней и меньше в разы.  
Второй параметр отвечает за SDL сборку (собственно, только он и нужен). Причём, символический такой параметр. В тему о тайлах.

---

<div class="post-metadata">

**Author:** ![Ratinod](https://avatars.discourse-cdn.com/v4/letter/r/6a8cbe/32.png) [@Ratinod](https://discourse.cataclysmdda.org/u/Ratinod)\
**Post date:** [June 11, 2013, 9:59am UTC](https://discourse.cataclysmdda.org/t/sdl-vs-curses/1716/5 "2013-06-11T09:59:55Z")

</div>

В плане скорости SDL выигрывает однозначно. Но шрифты становятся ужасными :\ . Видно SDL чисто для графики будет хорош.

* * *

![](https://us1.discourse-cdn.com/flex016/uploads/cataclysmdda/original/1X/61faab2827977d7b7ecd65ed0692a9c2639afbc2.jpg)

---

<div class="post-metadata">

**Author:** ![aiwant2tc](https://avatars.discourse-cdn.com/v4/letter/a/7cd45c/32.png) [@aiwant2tc](https://discourse.cataclysmdda.org/u/aiwant2tc)\
**Post date:** [June 11, 2013, 10:53am UTC](https://discourse.cataclysmdda.org/t/sdl-vs-curses/1716/6 "2013-06-11T10:53:03Z")

</div>

Мне кажется, SDL версия сейчас просто не работает с кастомными фонтами, по крайне мере даже на твоём скрине видно, что это уже не наш cootue 🙂 . Можешь в fontdata прописать размер 8x16, и заметишь, что это какой-то другой шрифт… Да и cootue вряд ли можно изменять в пропорциях оО  
Возможно, потом подправят.

p.s. Так что шрифты не становятся ужасными… Они вообще не становятся 🙂 .

// Позже…  
Хотя стоп… Нужно кинуть шрифты в ./data/fonts .  
И… Если поставить размер шрифта 12x12, то выглядит… нормально… почти 🙂 . За исключением мелких деталей…многих оО.  
Как будто обсосали.  
[http://imageshack.us/a/img15/9653/78999468.png](http://imageshack.us/a/img15/9653/78999468.png)  
[http://imageshack.us/a/img541/4215/20012554.png](http://imageshack.us/a/img541/4215/20012554.png)  
[http://imageshack.us/a/img515/1704/99813671.png](http://imageshack.us/a/img515/1704/99813671.png)

Поиду, поищу подходящий по размерам шрифт что-ли, ибо растягивает он их нехорошо…

---

<div class="post-metadata">

**Author:** ![aiwant2tc](https://avatars.discourse-cdn.com/v4/letter/a/7cd45c/32.png) [@aiwant2tc](https://discourse.cataclysmdda.org/u/aiwant2tc)\
**Post date:** [June 12, 2013, 7:41am UTC](https://discourse.cataclysmdda.org/t/sdl-vs-curses/1716/7 "2013-06-12T07:41:04Z")

</div>

В файл FONTDATA нужно дописать третье число! 🙂 И тогда всё становится намного приятнее оО .

---

<div class="post-metadata">

**Author:** ![Savidiy](https://avatars.discourse-cdn.com/v4/letter/s/a183cd/32.png) [@Savidiy](https://discourse.cataclysmdda.org/u/Savidiy)\
**Post date:** [June 12, 2013, 7:43am UTC](https://discourse.cataclysmdda.org/t/sdl-vs-curses/1716/8 "2013-06-12T07:43:59Z")

</div>

> [@aiwant2tc](#):
>
> В файл FONTDATA нужно дописать третье число! 🙂 И тогда всё становится намного приятнее оО .

А какое именно число. Могу предположить, что к ширине и высоте добавилась глубина, и шрифт стал трехмерным=)

---

<div class="post-metadata">

**Author:** ![aiwant2tc](https://avatars.discourse-cdn.com/v4/letter/a/7cd45c/32.png) [@aiwant2tc](https://discourse.cataclysmdda.org/u/aiwant2tc)\
**Post date:** [June 12, 2013, 7:50am UTC](https://discourse.cataclysmdda.org/t/sdl-vs-curses/1716/9 "2013-06-12T07:50:14Z")

</div>

Я ставлю одинаковое число оО . Говорят, это размер шрифта - “вообще” оО .  
А первые два, выходит, отвечают за scale.

Но в результате шрифт становится намного приятнее. Единственное может оказаться непривычным, что шрифты как бы сглаживаются (не помню название этого эффекта). Если и останется эффект обсосанности, то незаметно в общем-то оО .  
Люди играющие с неквадратными шрифтами ставят эту величину равно, или на одну единицу меньше самой большой величины (высоты шрифта).

В общем, у меня так:  
cootuecursessquare16x16  
12  
12  
12

Собственно, только потому что я заставляю шрифт уменьшаться до 12x12 там и есть минимальный эффект. При цифрах 16x16x16 всё выглядит вообще идеально

---

<div class="post-metadata">

**Author:** ![Ratinod](https://avatars.discourse-cdn.com/v4/letter/r/6a8cbe/32.png) [@Ratinod](https://discourse.cataclysmdda.org/u/Ratinod)\
**Post date:** [June 12, 2013, 10:45am UTC](https://discourse.cataclysmdda.org/t/sdl-vs-curses/1716/10 "2013-06-12T10:45:58Z")

</div>

А чего делать с “застыванием” текста в некоторых местах? Верхушки символов застывают и получается такая глазовыдирающая картина как на скриншоте:

* * *

![](https://us1.discourse-cdn.com/flex016/uploads/cataclysmdda/original/1X/38c51d9aa6dc05d309158d4b0510931407b4d6be.jpg)

---

<div class="post-metadata">

**Author:** ![aiwant2tc](https://avatars.discourse-cdn.com/v4/letter/a/7cd45c/32.png) [@aiwant2tc](https://discourse.cataclysmdda.org/u/aiwant2tc)\
**Post date:** [June 12, 2013, 10:52am UTC](https://discourse.cataclysmdda.org/t/sdl-vs-curses/1716/11 "2013-06-12T10:52:14Z")

</div>

У меня такое было даже при Curses версии оО .

---

<div class="post-metadata">

**Author:** ![aiwant2tc](https://avatars.discourse-cdn.com/v4/letter/a/7cd45c/32.png) [@aiwant2tc](https://discourse.cataclysmdda.org/u/aiwant2tc)\
**Post date:** [June 12, 2013, 11:00am UTC](https://discourse.cataclysmdda.org/t/sdl-vs-curses/1716/12 "2013-06-12T11:00:30Z")

</div>

В общем. Либо менять, либо редактировать шрифт. У него базовая линия (baseline) слишком высоко. Слово должно целиком оставаться в синей рамке. (Fast Reader)

Если я быстро научусь редактировать, я выложу исправленный шрифт 🙂

---

<div class="post-metadata">

**Author:** ![Ratinod](https://avatars.discourse-cdn.com/v4/letter/r/6a8cbe/32.png) [@Ratinod](https://discourse.cataclysmdda.org/u/Ratinod)\
**Post date:** [June 12, 2013, 2:14pm UTC](https://discourse.cataclysmdda.org/t/sdl-vs-curses/1716/13 "2013-06-12T14:14:35Z")

</div>

Поправил шрифт, теперь “застываний” нет. Если кому нужен, берите во вложениях.  
П.С: Если какой символ будет глючить, пишите, попытаюсь исправить.

* * *

[cootue\_curses\_square\_16x16\_forSDL.ttf](https://us1.discourse-cdn.com/flex016/uploads/cataclysmdda/original/1X/5ec586c368636365e499f33b5402b88ffcec25c6.ttf) (61.6 KB)

---

<div class="post-metadata">

**Author:** ![aiwant2tc](https://avatars.discourse-cdn.com/v4/letter/a/7cd45c/32.png) [@aiwant2tc](https://discourse.cataclysmdda.org/u/aiwant2tc)\
**Post date:** [June 12, 2013, 2:38pm UTC](https://discourse.cataclysmdda.org/t/sdl-vs-curses/1716/14 "2013-06-12T14:38:09Z")

</div>

Спасибо оО.

p.s. Шрифт должен исправлять застывания не только в SDL, но и в curses версии оО .

p.p.s. Как исправил ? 🙂

---

<div class="post-metadata">

**Author:** ![Ratinod](https://avatars.discourse-cdn.com/v4/letter/r/6a8cbe/32.png) [@Ratinod](https://discourse.cataclysmdda.org/u/Ratinod)\
**Post date:** [June 12, 2013, 2:57pm UTC](https://discourse.cataclysmdda.org/t/sdl-vs-curses/1716/15 "2013-06-12T14:57:43Z")

</div>

С помощью программы Type light передвинул все буквы на 125 (чего-то там) ниже. Некоторые (Q например) пришлось приплюснуть, вместо сдвигания.  
П.С: С её помощью можно например сделать как на скрине XD

* * *

![](https://us1.discourse-cdn.com/flex016/uploads/cataclysmdda/original/1X/a8aaa2d80e5af256ae2d649a78704ab5dff2a2ba.png)

---

<div class="post-metadata">

**Author:** ![aiwant2tc](https://avatars.discourse-cdn.com/v4/letter/a/7cd45c/32.png) [@aiwant2tc](https://discourse.cataclysmdda.org/u/aiwant2tc)\
**Post date:** [June 12, 2013, 3:14pm UTC](https://discourse.cataclysmdda.org/t/sdl-vs-curses/1716/16 "2013-06-12T15:14:57Z")

</div>

Ага 🙂 . Я что-то в fontforge копался… Да не докапался оО .

---

<div class="post-metadata">

**Author:** ![Savidiy](https://avatars.discourse-cdn.com/v4/letter/s/a183cd/32.png) [@Savidiy](https://discourse.cataclysmdda.org/u/Savidiy)\
**Post date:** [June 12, 2013, 4:34pm UTC](https://discourse.cataclysmdda.org/t/sdl-vs-curses/1716/17 "2013-06-12T16:34:33Z")

</div>

А я вот такую версию для SDL сделал на основе Lucida Console, специально для версии c маленькими квадратами:

`.\data\font\CatConWide.ttf
12
12
12`  
[http://smf.cataclysmdda.com/index.php?topic=2337.0](http://smf.cataclysmdda.com/index.php?topic=2337.0)

---

<div class="post-metadata">

**Author:** ![aiwant2tc](https://avatars.discourse-cdn.com/v4/letter/a/7cd45c/32.png) [@aiwant2tc](https://discourse.cataclysmdda.org/u/aiwant2tc)\
**Post date:** [June 12, 2013, 5:53pm UTC](https://discourse.cataclysmdda.org/t/sdl-vs-curses/1716/18 "2013-06-12T17:53:08Z")

</div>

Этот я тоже прихвачу оО. Он лучше рендерится 🙂 .

---

<div class="post-metadata">

**Author:** ![x0m9k](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.cataclysmdda.org/x0m9k/32/939_2.png) [@x0m9k](https://discourse.cataclysmdda.org/u/x0m9k)\
**Post date:** [June 13, 2013, 2:33am UTC](https://discourse.cataclysmdda.org/t/sdl-vs-curses/1716/19 "2013-06-13T02:33:33Z")

</div>

А разница будет видна только вендоводам? Ибо в линуксе катаклизм осуществляет вывод напрямую через терминал (можно даже выделять и копировать), что на самом деле весьма удобно.

---

<div class="post-metadata">

**Author:** ![Savidiy](https://avatars.discourse-cdn.com/v4/letter/s/a183cd/32.png) [@Savidiy](https://discourse.cataclysmdda.org/u/Savidiy)\
**Post date:** [June 13, 2013, 6:31am UTC](https://discourse.cataclysmdda.org/t/sdl-vs-curses/1716/20 "2013-06-13T06:31:43Z")

</div>

> А разница будет видна только вендоводам? Ибо в линуксе катаклизм осуществляет вывод напрямую через терминал (можно даже выделять и копировать), что на самом деле весьма удобно.

Разве нельзя выбрать шрифт для терминала в Линуксе? Не могу сказать, как он будет масштабироваться, так что интересно сравнить будет.

[Next page](https://discourse.cataclysmdda.org/t/sdl-vs-curses/1716.md?page=2)
