Немного аутизма
113 subscribers
62 photos
32 videos
2 files
72 links
Творческая студия, с разговорами о разработке игр и языков программированя, а также о всяком около Computer Science

https://github.com/madwareru

https://twitter.com/madware_ru

https://mastodon.gamedev.place/@madware

https://gamedev.ru/users/?id=41788
Download Telegram
Попробуем представить, сколько мы сэкономим уникальных тайлов, если разделим тайлы, основанные на marching squares (они же wang corner тайлы), на тайлы, основанные на парах из треугольников.

В случае, если в углах может быть всего два разных типа террейна, выигрыша нет, мы получаем 2^3*2(16) и 2^4(16) тайлов соответственно.

Но если мы начнём увеличивать наше число типов террейна в углах, преимущество подхода с разделением начнёт расти на глазах.

54 против 81 для трёх типов
128 против 256 для четырёх и так далее

если мы посмотрим, насколько меньше тайлов нужно рисовать в случае если мы имеем 10 разных типов террейна, мы получим разницу в 2000 против 10000 тайлов.
При этом, если нам не важно получить уникальный облик для графики отрисованной в треугольниках, мы могли бы просто флипать один единственный треугольник и уменьшать размер работы, которую необходимо проделать для получения искомого результата, вдвое. А если немного подумать, то и того меньше, так как многие комбинации углов нашего единственного треугольника так же будут зеркальными отражениями, то есть число тайлов можно уменьшить ещё почти в два раза (не у всех комбинаций будут доступны отражения). Итого, 10000 уникальных тайлов для 10 типов террейна превращаются чуть больше чем в 500.

Клепать такое количество тайлов будет всё ещё утомительно, но всегда можно придумать, как упростить себе жизнь. Так, например, можно принять за правило, что на карте может быть одновременно только 4 типа террейна, назвать это типом биома, и тогда для каждого такого биома придётся рисовать всего 128 тайлов в случае если трюк с симметрией невозможен, и всего ~32 тайла если симметрия возможна. В ближайшее время попробую соорудить что-то вроде демо того где это можно применить, думаю это будет интересно и познавательно
🔥1
Обещанная демонстрация на примере тайлов с двумя типами террейна в углах. Здесь 16 "треугольных" тайлов нарисованы через симметричные пары, после чего продемонстрирован результат превращения этих тайлов в стандартные квадратные. Как можно заметить, по сути мы можем рисовать тайлы нашей новой раскладки так, как будто это просто 8 особых квадратных тайлов, далее, специальным шагом при загрузке текстуры террейна мы можем нагенерировать более каноничную раскладку.
https://youtu.be/MmC9Qy99Vns Очень интересный доклад. Если отбросить неприязнь к "русскоязычным языкам программирования", озвучены весьма интересные идеи. Идея минималистичного языка программирования, реализация которого занимает до 10К строк, мне очень импонирует, как минимум в качестве дидактического материала
В продолжение предыдущего поста, для тех кому понравится материал
Forwarded from Nikolay V. Shilov
Наш семинар (потихоньку) возвращается с летних каникул. В четверг 10 августа выступит Алексей Недоря.

Тема: 5-й элемент. Опыт разработки и реализации языка Тривиль.

Аннотация: Расшифровка названия, краткая история разработки. Сравнение Тривиль компиляторов - на Го и на Тривиле. Интересные особенности языка на примерах работающего кода: что хорошо и что плохо. Выступление является продолжением выступления Интенсивное программирование: язык Тривиль (14 апреля 2023 г.)

Заседание пройдет онлайн в Skype (можно смотреть в браузере)​​ с 10:00 до 11:30 московского времени (14:00-15:30 в Барнауле и Новосибирске).
Долгое время не могу заставить себя делать петы. Решил попробовать делать их через двухнедельные джемы. Первый джем стартую с завтрашнего дня
https://itch.io/jam/a-jam-for-myself-1
🔥3
Когда слышу от кого-нибудь фразы по типу "чем учиться на своих ошибках, учитесь на чужих", у меня невольно возникает подозрение, что эти люди ничем в своей жизни серьёзно не занимались, не погружались ни в одну область. Объясню почему я так думаю.

Я считаю, что нет ничего лучше эмпирического метода для познания нового. Эмпирический подход подразумевает, что вы собираете факты и проверяете их на практике. Вы неминуемо столкнётесь с множеством граблей на своём пути. Но на самом деле грабли полезны. Очень полезны. Я бы даже сказал, архиполезны.

Идёт человек, не смотрит по сторонам, и тут наступил на граблю. И вот ему в лоб уже летит черенок, а через мгновение он преисполнится мудростью. Но почему бывают люди, наступающие на одну и ту же граблю раз за разом? Дело в том, что это одна и та же грабля только для наблюдателя. И лучше бы вместо грабли представить, что этот человек налетел на айсберг. Над толщей воды видна лишь маленькая вершина, именно её видит сторонний наблюдатель, в то время как в глубине скрываются тысячи скрытых деталей. И чем больше человек набивает шишек, тем многограннее его понимание проблемы.

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

Ну и когда в следующий раз увидите как ваш гипотетический однокурсник Ерохин наступил на граблю, задумайтесь, не было ли это мгновение точкой невозврата, на которой Ерохин оставил вас далеко позади
👍4🔥1
Поучаствовал 10 августа в семинаре по языку Тривиль, помучал автора вопросами, мне было интересно, возможно, вам будет тоже.
Решил покопаться в языке поглубже. На мой взгляд, явно есть пути как сделать этот язык ещё "тривильнее". Всё ещё считаю, что хорошо иметь пример работающего компилятора в 10К строк. Думаю позаниматься разбором кода компилятора в серии заметок. Если вам интересно, ставьте лайки. Если нет, ну что же, вам придётся терпеть, ибо заметки всё равно появятся 🙂

https://youtu.be/gFQ0tiUA9Ns
👍7
По инициативе с джемами имени себя для написания петов https://itch.io/jam/a-jam-for-myself-1
Ничего не сделано в срок, но пет начат. Надеюсь, что он доведётся до какой-то логически завершённой точки.
В данный момент я занят разбирательством с языком программирования тривиль и разработкой своего простенького динамически типизированного языка, который будет привязываться к моей библиотеке для написания ретроигр. В идеале ожидается штука уровня "как Blitz Basic, но без AOT-компиляции". Помимо всего прочего я подписался рассказать об этом проекте в конце сентября на питерском митапе. Так что придётся пилить 🙂
👍2
Обратите внимание на интересный проект игры-сказки. Поиграли с женой в демку, остались очень довольны. В особенности радует звуковое сопровождение и необычный подход к славянскому бестиарию. Поддержали проект рублём. К сожалению, осталось всего 6 дней на сборы, хотелось бы, чтобы ребята успели собрать оставшиеся средства
https://boomstarter.ru/projects/BabaYaga_Games/videoigra_vasilisa_i_baba_yaga/
👍2
Пока у пользователей юнити разгорается драма вокруг новой политики платежей, у пользователей раста, привыкших к продукции JetBrains, судя по всему, назревает своя собственная. Новый плагин поддерживается только в платных версиях продукции JB, таких как IntelliJ IDEA Ultimate и CLion, а старый плагин объявили deprecated
😱4
Для углубления понимания интерпретаторов решил начать читать книгу Friedman, D., Wand, M. Essentials of Programming Languages

Описание книги можно почитать тут https://github.com/true-grue/Compiler-Development/blob/master/docs/plt.md

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

Первый пост-отзыв по книге напишу 4 ноября в 19:00 по московскому времени. Начинаю с прочтения первых двух глав (Inductive Sets Of Data, Data Abstraction)
👍5🔥5
Так. Кажется, моя вера в подсветку телеграма была преждевременная. (Вы не видели этот позор (пост-отзыв на книжку в процессе написания, stay tuned))
Итак, пост-отзыв по #EOPL3 после первой неполной недели чтения
Оформил в виде gist на гитхабе: https://gist.github.com/madwareru/f8acf0df1d47b033d3ab9ce76ca3380a

Из того что можно выделить, авторы показали мне некий новый способ использования грамматик, и после этого ввели удобный формализм для использования таких грамматик для написания программ. Буду пробовать использовать это в повседневной практике, кажется это может быть полезно в очень широком круге задач
🔥4
По запросу желающих, пост для комментирования процесса чтения 2 главы #EOPL3 тут. Можно начинать писать свои подмечания насчёт прочитанного и всё такое прочее
🔥1
Немного аутизма pinned «Итак, пост-отзыв по #EOPL3 после первой неполной недели чтения Оформил в виде gist на гитхабе: https://gist.github.com/madwareru/f8acf0df1d47b033d3ab9ce76ca3380a Из того что можно выделить, авторы показали мне некий новый способ использования грамматик, и…»
Наконец-то дописал свой отзыв по второй главе #EOPL3, так же завёл отдельный репозиторий для решения упражнений, где прорешал на языке Kotlin ряд задач из главы, о чём, собственно, пост и вещает.

https://github.com/madwareru/eopl3_conspects/wiki/Отзыв-по-второй-главе

Чуть позже организуем так же созвон, на котором обсудим решения различных читателей, по времени созвона сделаю отдельный пост
👍1
Судя по всему участников кружка по чтению #EOPL3 осталось двое, а раз так можно спокойно сделать пост о том, что неспешно начато чтение третьей главы книжки. Удивительно насколько больше времени усвоение материала первых двух глав заняло, чем было запланировано. Хотя последние две недели я скорее просто занимался переосмыслением и рефакторингом своих решений для упражнений второй главы. Но вечно топтаться на месте -- не дело, так что приступаю к самому интересному, написанию первых реальных интерпретаторов
🔥4