Попробуем представить, сколько мы сэкономим уникальных тайлов, если разделим тайлы, основанные на marching squares (они же wang corner тайлы), на тайлы, основанные на парах из треугольников.
В случае, если в углах может быть всего два разных типа террейна, выигрыша нет, мы получаем 2^3*2(16) и 2^4(16) тайлов соответственно.
Но если мы начнём увеличивать наше число типов террейна в углах, преимущество подхода с разделением начнёт расти на глазах.
54 против 81 для трёх типов
128 против 256 для четырёх и так далее
если мы посмотрим, насколько меньше тайлов нужно рисовать в случае если мы имеем 10 разных типов террейна, мы получим разницу в 2000 против 10000 тайлов.
В случае, если в углах может быть всего два разных типа террейна, выигрыша нет, мы получаем 2^3*2(16) и 2^4(16) тайлов соответственно.
Но если мы начнём увеличивать наше число типов террейна в углах, преимущество подхода с разделением начнёт расти на глазах.
54 против 81 для трёх типов
128 против 256 для четырёх и так далее
если мы посмотрим, насколько меньше тайлов нужно рисовать в случае если мы имеем 10 разных типов террейна, мы получим разницу в 2000 против 10000 тайлов.
При этом, если нам не важно получить уникальный облик для графики отрисованной в треугольниках, мы могли бы просто флипать один единственный треугольник и уменьшать размер работы, которую необходимо проделать для получения искомого результата, вдвое. А если немного подумать, то и того меньше, так как многие комбинации углов нашего единственного треугольника так же будут зеркальными отражениями, то есть число тайлов можно уменьшить ещё почти в два раза (не у всех комбинаций будут доступны отражения). Итого, 10000 уникальных тайлов для 10 типов террейна превращаются чуть больше чем в 500.
Клепать такое количество тайлов будет всё ещё утомительно, но всегда можно придумать, как упростить себе жизнь. Так, например, можно принять за правило, что на карте может быть одновременно только 4 типа террейна, назвать это типом биома, и тогда для каждого такого биома придётся рисовать всего 128 тайлов в случае если трюк с симметрией невозможен, и всего ~32 тайла если симметрия возможна. В ближайшее время попробую соорудить что-то вроде демо того где это можно применить, думаю это будет интересно и познавательно
Клепать такое количество тайлов будет всё ещё утомительно, но всегда можно придумать, как упростить себе жизнь. Так, например, можно принять за правило, что на карте может быть одновременно только 4 типа террейна, назвать это типом биома, и тогда для каждого такого биома придётся рисовать всего 128 тайлов в случае если трюк с симметрией невозможен, и всего ~32 тайла если симметрия возможна. В ближайшее время попробую соорудить что-то вроде демо того где это можно применить, думаю это будет интересно и познавательно
🔥1
Обещанная демонстрация на примере тайлов с двумя типами террейна в углах. Здесь 16 "треугольных" тайлов нарисованы через симметричные пары, после чего продемонстрирован результат превращения этих тайлов в стандартные квадратные. Как можно заметить, по сути мы можем рисовать тайлы нашей новой раскладки так, как будто это просто 8 особых квадратных тайлов, далее, специальным шагом при загрузке текстуры террейна мы можем нагенерировать более каноничную раскладку.
https://youtu.be/MmC9Qy99Vns Очень интересный доклад. Если отбросить неприязнь к "русскоязычным языкам программирования", озвучены весьма интересные идеи. Идея минималистичного языка программирования, реализация которого занимает до 10К строк, мне очень импонирует, как минимум в качестве дидактического материала
YouTube
STEP14apr23AlexNedorya
Алексей Недоря: Интенсивное программирование: язык Тривиль
Аннотация: В докладе обсуждаются первые шаги перехода от экстенсивного к интенсивному программированию (см. https://digital-economy.ru/stati/интенсивное-программирование), а именно язык Тривиль, как…
Аннотация: В докладе обсуждаются первые шаги перехода от экстенсивного к интенсивному программированию (см. https://digital-economy.ru/stati/интенсивное-программирование), а именно язык Тривиль, как…
Forwarded from Nikolay V. Shilov
Наш семинар (потихоньку) возвращается с летних каникул. В четверг 10 августа выступит Алексей Недоря.
Тема: 5-й элемент. Опыт разработки и реализации языка Тривиль.
Аннотация: Расшифровка названия, краткая история разработки. Сравнение Тривиль компиляторов - на Го и на Тривиле. Интересные особенности языка на примерах работающего кода: что хорошо и что плохо. Выступление является продолжением выступления Интенсивное программирование: язык Тривиль (14 апреля 2023 г.)
Заседание пройдет онлайн в Skype (можно смотреть в браузере) с 10:00 до 11:30 московского времени (14:00-15:30 в Барнауле и Новосибирске).
Тема: 5-й элемент. Опыт разработки и реализации языка Тривиль.
Аннотация: Расшифровка названия, краткая история разработки. Сравнение Тривиль компиляторов - на Го и на Тривиле. Интересные особенности языка на примерах работающего кода: что хорошо и что плохо. Выступление является продолжением выступления Интенсивное программирование: язык Тривиль (14 апреля 2023 г.)
Заседание пройдет онлайн в Skype (можно смотреть в браузере) с 10:00 до 11:30 московского времени (14:00-15:30 в Барнауле и Новосибирске).
Долгое время не могу заставить себя делать петы. Решил попробовать делать их через двухнедельные джемы. Первый джем стартую с завтрашнего дня
https://itch.io/jam/a-jam-for-myself-1
https://itch.io/jam/a-jam-for-myself-1
🔥3
Когда слышу от кого-нибудь фразы по типу "чем учиться на своих ошибках, учитесь на чужих", у меня невольно возникает подозрение, что эти люди ничем в своей жизни серьёзно не занимались, не погружались ни в одну область. Объясню почему я так думаю.
Я считаю, что нет ничего лучше эмпирического метода для познания нового. Эмпирический подход подразумевает, что вы собираете факты и проверяете их на практике. Вы неминуемо столкнётесь с множеством граблей на своём пути. Но на самом деле грабли полезны. Очень полезны. Я бы даже сказал, архиполезны.
Идёт человек, не смотрит по сторонам, и тут наступил на граблю. И вот ему в лоб уже летит черенок, а через мгновение он преисполнится мудростью. Но почему бывают люди, наступающие на одну и ту же граблю раз за разом? Дело в том, что это одна и та же грабля только для наблюдателя. И лучше бы вместо грабли представить, что этот человек налетел на айсберг. Над толщей воды видна лишь маленькая вершина, именно её видит сторонний наблюдатель, в то время как в глубине скрываются тысячи скрытых деталей. И чем больше человек набивает шишек, тем многограннее его понимание проблемы.
Так что, если вы обладаете тридцатилетним стажем болельщика в боксе, вы, конечно, молодец, и вы явно смыслите в боксе больше чем я. Но вы явно не годитесь в тренеры для олимпийской сборной по боксу. Потому что дьявол кроется в деталях, и никаким образом, кроме как через кровь и пот, пролитые лично вами, вы эти детали не познаете.
Ну и когда в следующий раз увидите как ваш гипотетический однокурсник Ерохин наступил на граблю, задумайтесь, не было ли это мгновение точкой невозврата, на которой Ерохин оставил вас далеко позади
Я считаю, что нет ничего лучше эмпирического метода для познания нового. Эмпирический подход подразумевает, что вы собираете факты и проверяете их на практике. Вы неминуемо столкнётесь с множеством граблей на своём пути. Но на самом деле грабли полезны. Очень полезны. Я бы даже сказал, архиполезны.
Идёт человек, не смотрит по сторонам, и тут наступил на граблю. И вот ему в лоб уже летит черенок, а через мгновение он преисполнится мудростью. Но почему бывают люди, наступающие на одну и ту же граблю раз за разом? Дело в том, что это одна и та же грабля только для наблюдателя. И лучше бы вместо грабли представить, что этот человек налетел на айсберг. Над толщей воды видна лишь маленькая вершина, именно её видит сторонний наблюдатель, в то время как в глубине скрываются тысячи скрытых деталей. И чем больше человек набивает шишек, тем многограннее его понимание проблемы.
Так что, если вы обладаете тридцатилетним стажем болельщика в боксе, вы, конечно, молодец, и вы явно смыслите в боксе больше чем я. Но вы явно не годитесь в тренеры для олимпийской сборной по боксу. Потому что дьявол кроется в деталях, и никаким образом, кроме как через кровь и пот, пролитые лично вами, вы эти детали не познаете.
Ну и когда в следующий раз увидите как ваш гипотетический однокурсник Ерохин наступил на граблю, задумайтесь, не было ли это мгновение точкой невозврата, на которой Ерохин оставил вас далеко позади
👍4🔥1
Поучаствовал 10 августа в семинаре по языку Тривиль, помучал автора вопросами, мне было интересно, возможно, вам будет тоже.
Решил покопаться в языке поглубже. На мой взгляд, явно есть пути как сделать этот язык ещё "тривильнее". Всё ещё считаю, что хорошо иметь пример работающего компилятора в 10К строк. Думаю позаниматься разбором кода компилятора в серии заметок. Если вам интересно, ставьте лайки. Если нет, ну что же, вам придётся терпеть, ибо заметки всё равно появятся 🙂
https://youtu.be/gFQ0tiUA9Ns
Решил покопаться в языке поглубже. На мой взгляд, явно есть пути как сделать этот язык ещё "тривильнее". Всё ещё считаю, что хорошо иметь пример работающего компилятора в 10К строк. Думаю позаниматься разбором кода компилятора в серии заметок. Если вам интересно, ставьте лайки. Если нет, ну что же, вам придётся терпеть, ибо заметки всё равно появятся 🙂
https://youtu.be/gFQ0tiUA9Ns
YouTube
STEP10aug23AlexNedorya
Алексей Недоря: 5-й элемент. Опыт разработки и реализации языка Тривиль.
Аннотация: Расшифровка названия, краткая история разработки. Сравнение Тривиль компиляторов - на Го и на Тривиле. Интересные особенности языка на примерах работающего кода: что хорошо…
Аннотация: Расшифровка названия, краткая история разработки. Сравнение Тривиль компиляторов - на Го и на Тривиле. Интересные особенности языка на примерах работающего кода: что хорошо…
👍7
По инициативе с джемами имени себя для написания петов https://itch.io/jam/a-jam-for-myself-1
Ничего не сделано в срок, но пет начат. Надеюсь, что он доведётся до какой-то логически завершённой точки.
В данный момент я занят разбирательством с языком программирования тривиль и разработкой своего простенького динамически типизированного языка, который будет привязываться к моей библиотеке для написания ретроигр. В идеале ожидается штука уровня "как Blitz Basic, но без AOT-компиляции". Помимо всего прочего я подписался рассказать об этом проекте в конце сентября на питерском митапе. Так что придётся пилить 🙂
Ничего не сделано в срок, но пет начат. Надеюсь, что он доведётся до какой-то логически завершённой точки.
В данный момент я занят разбирательством с языком программирования тривиль и разработкой своего простенького динамически типизированного языка, который будет привязываться к моей библиотеке для написания ретроигр. В идеале ожидается штука уровня "как Blitz Basic, но без AOT-компиляции". Помимо всего прочего я подписался рассказать об этом проекте в конце сентября на питерском митапе. Так что придётся пилить 🙂
itch.io
A jam for myself I
A game jam from 2023-08-07 to 2023-08-21 hosted by Madware. The rules of a jam: Make something simple Enforce yourself to make reusable pieces of code suitable for following jams If you think you want to join...
👍2
Обратите внимание на интересный проект игры-сказки. Поиграли с женой в демку, остались очень довольны. В особенности радует звуковое сопровождение и необычный подход к славянскому бестиарию. Поддержали проект рублём. К сожалению, осталось всего 6 дней на сборы, хотелось бы, чтобы ребята успели собрать оставшиеся средства
https://boomstarter.ru/projects/BabaYaga_Games/videoigra_vasilisa_i_baba_yaga/
https://boomstarter.ru/projects/BabaYaga_Games/videoigra_vasilisa_i_baba_yaga/
Boomstarter
Видеоигра «Василиса и Баба Яга»
Приключенческая видеоигра по мотивам русской народной сказки «Василиса Прекрасная»
👍2
Пока у пользователей юнити разгорается драма вокруг новой политики платежей, у пользователей раста, привыкших к продукции JetBrains, судя по всему, назревает своя собственная. Новый плагин поддерживается только в платных версиях продукции JB, таких как IntelliJ IDEA Ultimate и CLion, а старый плагин объявили deprecated
😱4
Порассказывал про свой ретродвижок и язычок программирования на питерском митапе.
Ссылка с таймкодом для интересующихся тут 🙂
https://www.youtube.com/live/6mMXLCtHJuw?si=s4yI7f3jcFcutJU8&t=655
Ссылка с таймкодом для интересующихся тут 🙂
https://www.youtube.com/live/6mMXLCtHJuw?si=s4yI7f3jcFcutJU8&t=655
YouTube
Rust Community Meetup // 30.09.2023, Санкт-Петербург
Rust Lang Community и компания «Криптонит» приглашает разработчиков пообщаться в неформальной обстановке, послушать доклады и поделиться опытом в разных сферах разработки.
📅 30 сентября 2023 года (суббота)
🕑 14:00
Программа:
• 14:00 – Начало трансляции…
📅 30 сентября 2023 года (суббота)
🕑 14:00
Программа:
• 14:00 – Начало трансляции…
👍7
Для углубления понимания интерпретаторов решил начать читать книгу 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)
Описание книги можно почитать тут 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
Из того что можно выделить, авторы показали мне некий новый способ использования грамматик, и после этого ввели удобный формализм для использования таких грамматик для написания программ. Буду пробовать использовать это в повседневной практике, кажется это может быть полезно в очень широком круге задач
Оформил в виде gist на гитхабе: https://gist.github.com/madwareru/f8acf0df1d47b033d3ab9ce76ca3380a
Из того что можно выделить, авторы показали мне некий новый способ использования грамматик, и после этого ввели удобный формализм для использования таких грамматик для написания программ. Буду пробовать использовать это в повседневной практике, кажется это может быть полезно в очень широком круге задач
Gist
пост-отзыв по книге Essentials Of Programming Languages после первой неполной недели чтения
пост-отзыв по книге Essentials Of Programming Languages после первой неполной недели чтения - EOPL3_week_1.md
🔥4
По запросу желающих, пост для комментирования процесса чтения 2 главы #EOPL3 тут. Можно начинать писать свои подмечания насчёт прочитанного и всё такое прочее
🔥1
Немного аутизма pinned «Итак, пост-отзыв по #EOPL3 после первой неполной недели чтения Оформил в виде gist на гитхабе: https://gist.github.com/madwareru/f8acf0df1d47b033d3ab9ce76ca3380a Из того что можно выделить, авторы показали мне некий новый способ использования грамматик, и…»
Наконец-то дописал свой отзыв по второй главе #EOPL3, так же завёл отдельный репозиторий для решения упражнений, где прорешал на языке Kotlin ряд задач из главы, о чём, собственно, пост и вещает.
https://github.com/madwareru/eopl3_conspects/wiki/Отзыв-по-второй-главе
Чуть позже организуем так же созвон, на котором обсудим решения различных читателей, по времени созвона сделаю отдельный пост
https://github.com/madwareru/eopl3_conspects/wiki/Отзыв-по-второй-главе
Чуть позже организуем так же созвон, на котором обсудим решения различных читателей, по времени созвона сделаю отдельный пост
GitHub
Отзыв по второй главе
Прохождение книги Essentials Of Programming Languages 3rd Ed. Конспекты и решения задач на языке Kotlin - madwareru/eopl3_conspects
👍1
Судя по всему участников кружка по чтению #EOPL3 осталось двое, а раз так можно спокойно сделать пост о том, что неспешно начато чтение третьей главы книжки. Удивительно насколько больше времени усвоение материала первых двух глав заняло, чем было запланировано. Хотя последние две недели я скорее просто занимался переосмыслением и рефакторингом своих решений для упражнений второй главы. Но вечно топтаться на месте -- не дело, так что приступаю к самому интересному, написанию первых реальных интерпретаторов
🔥4