вторник, 26 декабря 2017 г.

Об игровых движках в 2017

Вот тут Jeff Preshing пишет о том, зачем может понадобиться писать свой игровой движок. Тут довольно классические причины: вам нравится, вам хочется контроля за тем, что в движке делается (это обо мне), ну и, обучение само собой, куда без него.

Далее  описывается разработка очень специфичного движка, заточенного под специфичную задачу, что, как я считаю и может являться основной причиной разработки нового движка. По идее, только за счет минимализма в движке можно выиграть у монстров типа того же Unity или UE.

Что отметил для себя: я как-бы сторонник обобщения до предела, но тут как раз в статье постулируется подход "наоборот", что порой, не всё стоит обобщать и выделять в абстракции и пример с умными указателями действительно хорош.

Также сериализация в статье декларируется как сложная и серьёзная проблема, с которой лучше не заморачиваться и делать как можно проще. Не знаю, у меня как-то относительно просто вышло, несмотря на присутствие графовых структур. Правда работает медленновато.

Приятно, что Unity и Unreal не полностью убили разработку игровых движков (особенно на плюсах).

четверг, 14 декабря 2017 г.

Мои итоги года (часть 1 или метапост)

В начале этого года я поставил себе  в рамках развития нехитрую цель: писать по одному посту в месяц. В новом году я скорее всего отойду от этой идеи и вот почему.

В целом, формально мне удалось выполнить это условие. Но качество постов, на мой взгляд, упало до плинтуса. Я подумал над этим и нашел тому три причины.

суббота, 11 ноября 2017 г.

Ubuntu 17.10, VNC и автологин

Неожиданно в новой убунте перестал работать tightvncserver, который дает возможность . Тупо падает с "No VNC extension on ..." и всё. Правки из гугла не помогли, более того - непонятно почему раньше этой проблемы не было.

Перестал работать автологин в LightDM. При этом, как узнал потом, теперь, вместо единого файла /etc/lightdm/lightdm.conf, есть целых три файла:
  • /etc/lightdm/lightdm.conf
  • /etc/lightdm/lightdm.conf.d/
  • /usr/share/lightdm/lightdm.conf.d/
В сумме там 10 замечательных файлов, каждый из которых может поменять конфигурацию, при этом у трех в одной папке ещё и приоритеты совпадают. Отладить это немыслимо. Хорошо хоть логи есть. У меня такое ощущение, что я пропустил момент, когда такой бардак стал нормой. Раньше был едва-едва один файл конфигурации у приложения и админить такой зоопарк было как-то проще. И автологин работал.

В итоге, к черту выпилил стандартный greeter, заменив его на тупейший скрипт - и, о чудо, всё заработало, автологин пошел. tightvncserver тупо заменил на Vino в автозагрузке, который заработал сразу.

Обидно как-то, 2017-й год на дворе, а апдейты софта в Linux как были русской рулеткой с пятью патронами, так и остались.

среда, 8 ноября 2017 г.

Курс по программированию GPU и рендерингу

Вот тут (предыдущий год тут) нашел очень крутой и современный курс по программированию на GPU и рендерингу.  Демки студентов выглядят круто, в заданиях(помимо возни с CUDA, OpenGL) есть даже рендер травы на Vulkan .

пятница, 13 октября 2017 г.

libclipboard и буфер обмена


Недавно у меня возникла задача: встроить в свой плюсовый движок работу со стандартным буфером обмена системы (в моем случае - Windows и Linux (X11)) для получения и копирования туда текста.  Задача, скажем честно, хотя и тривиальная на первый взгляд, но, вообще, довольно нетривиальная в реализации из-за отвратительной реализации работы с буфером обмена в X11.

пятница, 8 сентября 2017 г.

AppVeyor и Qt

Вот на первый взгляд у первого всё хорошо со вторым, вроде бы всё поддерживается.
Но нет, то x86 не поддерживается в сборке, то Qt Script почему-то уберут (последнее вообще непонятно, сколько ни ставил, всегда был в сборке)

Сама сборка тоже ведёт себя почему-то странно: то не подгружаются пути, то ещё что-то. Хоть самому делай свои образы и  CI.

суббота, 12 августа 2017 г.

Список ссылок на открытые коллекции ассетов

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