Написал некоторый разбор того, как внутренне устроена конкретная игра для джема на движке Godot.
Пользователь
Кроссплатформенный мультиплеер на Godot без боли
Недавно я начала заниматься разработкой игр на Godot и столкнулась с проблемой - мне понадобилась возможность реализовать мультиплеер с независимым сервером, при этом ещё и с возможностью игры из браузера. В Godot уже есть разные варианты реализации мультиплеера - но для ускорения разработки и во избежание ошибок при ручной сериализации/десериализации я решила попробовать связать клиент на Godot и сервер на Kotlin через вебсокеты и описывать их взаимодействие в формате protobuf.
Всех, кому интересна эта тема, прошу под кат.
Совмещаем «детский» микроконтроллер и настольные игры
Я сам автор «настолок», их фанат. И наличие достаточно дружелюбной среды программирования (изначально плата программируется на Python и Java, но есть блочная среда с симулятором) заставило попробовать реализовать эту идею.
Сразу предупрежу — я не программист! И это хорошо, так как мои изыскания сможет повторить даже школьник младших классов и любой из вас. И сделать себе «кастомное» устройство, помогающее и упрощающее жизнь с настольными играми.
Ещё одна фитолампа на Arduino
Пришла зима, короткий день, домашней пальме мало света. Нужно организовать подсветку. Готовую лампу покупать как-то неловко, да и надо ж чем-то заняться долгими зимними вечерами. Поехали ;)
Молодежный родстер «Крым» — новые горизонты. Часть вторая
Первый прототип родстера Крым
ASCII игра — компромисс аутентичности и удобства
Автоматический вечный календарь с подсветкой
Статья с сайта Instructables на конкурс самоделок с применением станков с ЧПУ
Как по мне, самыми часто используемыми объектами в нашей жизни служат часы и календари. Течение времени всегда было одной из главных тем в жизни людей. И я такой же – думаю, что это можно понять по количеству моих проектов, связанных с часами. А теперь я хочу показать вам один из моих проектов с календарём.
Проектов календарей существуют тысячи, но мне всегда нравились вечные календари. Мне всегда была близка идея календаря, который можно использовать повторно, чтобы не менять офисный календарь каждый год. Минус таких календарей в том, что многие из них большие, отнимающие пространство штуковины, которые сложно читать и интерпретировать. Или бывают ещё кубики с днями недели, или кубики с месяцами, которые надо постоянно обновлять. Ещё бывают календари из кусочков (деревянных, металлических, магнитных) с числами от 1 до 31, которые нужно подбирать и размещать на специальной панели.
Zip-файлы: история, объяснение и реализация
Мне давно было интересно, как сжимаются данные, в том числе в Zip-файлах. Однажды я решил удовлетворить своё любопытство: узнать, как работает сжатие, и написать собственную Zip-программу. Реализация превратилась в захватывающее упражнение в программировании. Получаешь огромное удовольствие от создания отлаженной машины, которая берёт данные, перекладывает их биты в более эффективное представление, а затем собирает обратно. Надеюсь, вам тоже будет интересно об этом читать.
В статье очень подробно объясняется, как работают Zip-файлы и схема сжатия: LZ77-сжатие, алгоритм Хаффмана, алгоритм Deflate и прочее. Вы узнаете историю развития технологии и посмотрите довольно эффективные примеры реализации, написанные с нуля на С. Исходный код лежит тут: hwzip-1.0.zip.
Ультразвуковая ванна. Часть 1
Сегодняшний пост будет посвящен созданию ультразвуковой очистительной ванны в основе которой лежит пьезокерамический излучатель Ланжевена мощностью 60 Вт. В процессе мы рассмотрим из чего состоит устройство, как его настроить чтобы ничего не сгорело и в конце лицезреем очистительные способности, которые по своему действию превосходят Мистера Пропера и всех его знакомых. Ультразвуковая ванна имеет много сфер применения и перечислить все практически невозможно, так как большинство из них будет зависеть только от вашего воображения.
Прежде чем начать растворять свои пальцы в ультразвуковой ванне, давайте разберем как же возникают механические колебания на более простых системах. Одним из примеров таких колебательных механизмов являются магнитострикторы, которые под воздействием магнитного поля могут сжиматься или растягиваться. Такими параметрами обладает обыкновенный феррит от старого дедовского приемника, который наверняка у каждого валяется где-то в гараже.
Жизнь на частицах
Классический пример системы с простыми правилами и сложным поведением — клеточные автоматы, именно на них я и ориентировался, пытаясь подобрать правила. Конечно же, для клеточных автоматов правила будут в большинстве случаев проще. Но частицы могут быть красивее!
Под катом много мегабайт гифок.
Модель атак: где в основном злоупотребляют на электронных закупках и как с этим борются
Я продолжаю рассказывать про то, как устроены электронные торги и вообще закупки в нашей прекрасной стране.
Сегодня поговорим не про хищения (про них уже говорили вот здесь), а про другие изобретательные нарушения.
Сначала надо понять концепцию того, что нужно участникам:
- Поставщики хотят продать свой товар. Лучше — дороже, но если дороже не выходит, то хотя бы по цене, позволяющей заработать.
- Государственные заказчики 44-ФЗ хотят купить что им нужно, а не что можно им продать, творчески интерпретируя ТЗ. И при этом не сесть.
- Корпоративные заказчики 223-ФЗ хотят показать эффективность снижения цены от среднерыночной (у нас средний показатель — около 15 %, но бывает и 30 % снижения по ряду закупок).
Эти конфликты порождают ряд атак участников друг на друга. Давайте разберём некоторые из них.
Вышел Orange Pi 3 — полноценный мини-пк за 30$ на Linux
Вышла новая версия всем известного клона Raspberry Pi. Форм фактор тот же если не учитывать PCI-E.
Из нового:
PCIE
- Supports RC mode
- Supports x1 Gen2(5.0Gbps) lane
- Complies with PCI Express Base 2.0 Specification
WIFI+BT
AP6256, IEEE 802.11 a/b/g/n/ac, BT5.0
Разработка ИИ на примере игры Dicey Dungeons
Примерно в течение месяца я решал одну из самых сложных технических проблем моей новой игры Dicey Dungeons — совершенствол ИИ для финального релиза игры. Это была довольно интересная работа, и многое в ней стало для меня новым, поэтому я решил немного о ней написать.
Для начала объясню: я не специалист в теории вычислительных машин, а просто один из тех, кто достаточно изучил программирование, чтобы создавать видеоигры, после чего закончил обучение, ухватив только то, что мне было необходимо. Обычно я могу решать свои задачи самостоятельно, но настоящий программист скорее всего не одобрил бы мои решения.
Я постарался написать статью на достаточно высоком уровне абстракции, чтобы основные идеи были понятны даже непрограммистам. Но я не эксперт в таких вещах, поэтому мои объяснения теории могут быть ошибочными. Напишите мне об этом в комментариях к оригиналу, я с радостью внесу изменения!
Ну, давайте начнём с объяснения задачи!
Github + Markdown = Viewdocs
Когда я перерос README на Github, я рассматривал только 2 варианта для документации: Github Pages и Read the Docs. К сожалению, у меня возникли проблемы с обоими. Главным образом, Read the Docs заставляет меня использовать reStructured Text, а Github Pages подразумевает поддержку отдельной ветки и использование генератора статичных страниц.
История переезда системного администратора в Германию. Часть вторая: переезд и первые шаги
Я наконец-то изыскал время и написал вторую часть своей истории об IT-эмиграции. Первую часть можно прочитать тут — История переезда системного администратора в Германию. Часть первая: поиск работы и виза. В этой части я опишу подробно, как мы с сестрой обустраивались на новом месте, какие ошибки при этом допускали и сколько нам эти ошибки стоили.
Итак, поехали.
У нас было два загранпаспорта, национальная виза, контракт на работу, договор на учебу и целое множество вещей всех сортов и расцветок, а также лысый кот, длинный список дел, норовящая развалиться машина и несколько тысяч евро. Не то чтобы всё это было так уж необходимо для переезда в Германию, но если уж начал эмигрировать из России, то становится трудно остановиться. Единственное, что вызывало у меня опасение — это жилье. Ничто в мире не бывает более беспомощным, безответственным и порочным, чем поиск квартиры во Франкфурте. Я знал, что рано или поздно мы столкнемся и с этим.
Raspberry Pi в картридже от NES
Здравствуйте! Это ретро игровая приставка на базе Raspberry Pi. В картридже от игровой приставки NES. Для игры может использоваться интегрированный экран. При выводе же видео по HDMI он показывает изображение обложки игры, а также температуру ядра, см. фото. Предлагаю немного понастальгировать и почитать про сборку и настройку такого устройства. Осторожно, далее много трафика и фото.
Где мои деньги, чувак: о чем молчит Steam
Мы много будем говорить о Steam, самой крупной открытой платформе для игр, потом посмотрим на 3rd-party дистрибуцию и альтернативные варианты продаж. До того, как вы найдете свои собственные ответы — давайте трезво посмотрим на то, как маховик издания игр работает сейчас.
Простите, ребята, но это будет очень меркантильная статья с цифрами и процентами — я считаю, что если создание игр ваша страсть и ремесло, без них сложно уверенно идти вперёд. Начнём с цен, скидок и того, как работает список желаемого в Steam.
Процедурная генерация уровней
Работы по программированию, графике и звукам в некой новой игрухе закончены — остались только уровни. Лёгкая и приятная работа, но почему-то идёт с большим трудом. Возможно, сказывается общая усталость.
Думая, как бы упростить себе жизнь, в голову пришла идея о процедурной генерации. Ясное дело, её тоже надо будет писать, но как говорилось в одном известном произведении, "лучше день потерять, потом за пять минут долететь".
Внимание! Под катом много текста и "жирных" гифок.
Создание «искусственной жизни» на компьютере
Как это выглядит?
картинка кликабельна
На компьютере создаётся виртуальная среда со своими правилами и выпускается первая простейшая живность. Буду называть их ботами. Боты могут погибнуть или выжить и дать потомство. Потомок может слегка отличаться от предка.
Ну а дальше за работу принимается эволюция и естественный отбор.
А мне остаётся только наблюдать за развитием мира.
Чем неожиданнее для создателя и многообразней будут варианты развития мира, тем более удачным можно считать эксперимент.
Поведением ботов управляет код, записанный в них.
Именно код и является геномом, который отвечает за поведение бота и который будет изменяться в процессе эволюции.
Внутреннее устройство кода — это самое интересное в проекте.
Код должен быть простым и выдерживать различные модификации (случайное изменение любого элемента в коде) над собой без синтаксических ошибок.
Создание игры на Lua и LÖVE — 5
Оглавление
- Статья 1
- Часть 1. Игровой цикл
- Часть 2. Библиотеки
- Часть 3. Комнаты и области
- Часть 4. Упражнения
- Статья 2
- Часть 5. Основы игры
- Часть 6. Основы класса Player
- Статья 3
- Часть 7. Параметры и атаки игрока
- Часть 8. Враги
- Статья 4
- Часть 9. Режиссёр и игровой цикл
- Часть 10. Практики написания кода
- Часть 11. Пассивные навыки
- Статья 5
- Часть 12. Другие пассивные навыки
13. Skill Tree
14. Console
15. Final
Часть 12: Другие пассивные навыки
Залп
Мы начнём с реализации оставшихся атак. Первой будет атака Blast, которая выглядит так:
Выстреливается несколько снарядов с разной скоростью, как из дробовика, которые потом быстро исчезают. Все цвета берутся из таблицы
negative_colors
и каждый снаряд наносит меньше урона, чем обычно.Информация
- В рейтинге
- Не участвует
- Откуда
- США
- Зарегистрирован
- Активность