Для работы с проектами существует куча редакторов кода и IDE (VSCode, NeoVim, SublimeText, WebStorm и т.д.). В данный момент наиболее популярны VSCode и Webstorm и у каждого есть свои плюсы и минусы. Webstorm является примером прекрасного IDE от компании JetBrains, где многие вспомогательные модули идут “из коробки”. К сожалению, сейчас нет возможности легально получить доступ к этому продукту гражданам России, поэтому многим приходится искать альтернативу. Такой альтернативой вполне может стать Visual Studio Code от компании Microsoft, который имеет открытую кодовую базу, полностью бесплатный и гибко настраиваемый под ваши нужды. В данной статье мы рассмотрим пример настройки рабочего пространства VSCode для комфортной работы с нашими проектами. Я покажу вам, какими расширениями я пользуюсь для лучшего удобства и продуктивности. Эти расширения я использую давно и они хорошо зарекомендовали себя, но возможно некоторые из них могут не подойти под ваш стиль работы и написания кода. Итак, начнем!
Web-разработчик
Курс Молодого Геймдизайнера 2: баланс прогрессии и динамики без математики
Предыдущая статья про баланс персонажей и снаряжения собрала много отзывов и я решил не тянуть с продолжением.
Тогда мы разобрали самую основу — как посчитать абстрактную силу сущности и как эта сила меняется по ходу ее жизни. Сегодня увеличим масштаб и посмотрим, как баланс зависит не от конкретных ситуаций, а от фундаментальных правил или динамики развития игры.
Бонусом в конце — несколько ссылок по теме.
Курс Молодого Геймдизайнера: как считать баланс персонажей и снаряжения без математики
По опыту, многие начинающие геймдизайнеры избегают работы с балансом, словно это черная магия или нужно иметь серьезное математическое образование. Специалисты поопытней уже авторитетно заявляют, что математика не нужна.
В первую очередь надо разбираться в самих играх, а потом уже уметь что-то считать. Поэтому я расскажу о работе с балансом без использования математики — на палках урона посмотрим, как уравновесить силу оружия, чем танк отличается от разбойника, и как точки спавна влияют на винрейт.
Статья будет полезна тем, кому надо заняться балансом, но не знает с чего начать, а также начинающим геймдизайнерам, которые будут выбирать специализацию. Ну и всем, кто просто интересуется, чем занимаются ГД
Да хватит уже писать эти регулярки
Здравствуйте, меня зовут Дмитрий Карловский и раньше я тоже использовал Perl для разработки фронтенда. Только гляньте, каким лаконичным кодом можно распарсить, например, имейл:
/^(?:((?:[\w!#\$%&'\*\+\/=\?\^`\{\|\}~-]){1,}(?:\.(?:[\w!#\$%&'\*\+\/=\?\^`\{\|\}~-]){1,}){0,})|("(?:((?:(?:([\u{1}-\u{8}\u{b}\u{c}\u{e}-\u{1f}\u{21}\u{23}-\u{5b}\u{5d}-\u{7f}])|(\\[\u{1}-\u{9}\u{b}\u{c}\u{e}-\u{7f}]))){0,}))"))@(?:((?:[\w!#\$%&'\*\+\/=\?\^`\{\|\}~-]){1,}(?:\.(?:[\w!#\$%&'\*\+\/=\?\^`\{\|\}~-]){1,}){0,}))$/gsu
Тут, правда, закралось несколько ошибок. Ну ничего, пофиксим в следующем релизе!
GitHub Flow
Увидев в очередной раз базворд GitFlow я психанул и решил перевести описание более простой и менее проблемной схемы работы с ветками под названием GitHub Flow. Именно её имеет смысл использовать по умолчанию, переходя к какой-то другой лишь в случае непреодолимых обстоятельств.
Создайте ветвь
Пока вы работаете над одним проектом, у вас может быть куча различных реализуемых параллельно улучшений. Некоторые из них готовы к работе, а другие — нет. Ветвление позволяет вам управлять этим рабочим процессом.
Фальшивые криптокошельки в официальном каталоге Ubuntu — индикатор более серьёзной угрозы
Через официальный каталог приложений Ubuntu Snap некоторое время распространялся фейковый криптокошелёк, средства с которых сразу переводились на сторонний адрес. У одного из пользователей удалось увести 9,84 BTC.
Это типичная supply chain attack, один из самых опасных видов атак. Он предполагает внедрение зловредов в официальные каналы поставки ПО. Например, в прошивки от производителя оборудования, официальные обновления программ, которые распространяются через официальные сайты, и т д.
Супер-эффективная архивация — сжимаем все что угодно до 32 байт
Будем разрабатывать архиватор, который может сжимать данные любого размера и типа до 32 (38 с метаданными) байт. Рассмотрим достоинства и недостатки данного алгоритма, возможные способы улучшения его работы.
Декомпозиция программных компонент
Здравствуйте, меня зовут Дмитрий Карловский и я.. люблю власть. Когда я берусь за клавиатуру, каждый байтик начинает плясать под мою дудку. Но когда этих байтиков становится по настоящему много, уследить за всеми становится сложно. Поэтому давайте сравним популярные паттерны проектирования, позволяющие разделить большое приложение на компоненты, чтобы властвовать над ними максимально эффективно и независимо.
Так как одна и та же прикладная сущность встречается в приложении во многих местах, в разных контекстах, и должна иметь разное представление, то базовая декомпозиция заключается в выделении модели предметной области, которая является источником истины для всех мест её отображения.
Typescript Generics
Javascript - крутой язык со своими преимуществами и недостатками. И одно из его свойств - это динамическая типизация, которая одновременно может быть как преимуществом, так и недостатком. Очень много холиварных тредов на этот счет, но по мне так все просто. Для небольших и простых проектов динамическая типизация - это очевидный плюс, так как сильно ускоряет разработку. Однако, когда речь идет о сложных системах, над которыми работает не один человек, сложно отрицать преимущество статической типизации. Ведь статические типы не только регламентируют систему, но и при больших размерах системы начинают ускорять разработку.
Как же это возможно? Ведь приходится постоянно тратить лишнее время на описание, импорт и применение типов. Все дело в размере, хотя многие утверждают, что он не важен. Логику небольшого приложения можно держать в уме, а вот с большим вряд ли это получится. Тут нам типы и помогут, подскажут, что из себя представляет тот или иной объект без необходимости перехода к нему, подсветят ошибку, если мы передали неправильный аргумент в функцию и т.д.
При этом написание типов бывает действительно утомительным, но Typescript предоставляет возможности ускорить и этот процесс. Здесь нам на помощь придут дженерики.
Прежде чем начать, сразу отмечу, что примеры, которые я буду использовать доступны в песочнице, где собран лайтовый проект. Некоторые решения в этом проекте созданы только для демонстрации темы и их не стоит применять в реальных проектах.
Использование кастомных шаблонов и конфигов для swagger-typescript-api
swagger-typescript-api - это мощный инструмент для генерации кода на основе OpenApi-контактов, о процессе работы с которым я рассказывал в предыдущей статье. Там же я упомянул, что его можно кастомизировать под нужды конкретного проекта с помощью своих шаблонов.
Именно кастомные шаблоны и бонусом, кастомная конфигурация, будут раскрыты в текущей статье. Поехали!
Проектирование боевых систем в играх: с чего начать
Большинство игровых продуктов в том или ином виде сталкиваются с боёвкой. Где-то это эпический кошмар уровня Dark Souls, где-то полуавтоматический бой между группами чибиков в мобильном батлере. В этой статье я покажу один из подходов, используемый геймдизайнерами при проектировании боевой системы для конкретной игры.
Редактор персонажа
Сегодня на Godot 4.1 создадим простой редактор персонажа, как в старых рпг, когда ты выбираешь внешний вид персонажа из уже нарисованных ассетов.
Zustand.js: современный, невесомый, производительный и очень гибкий state manager
Zustand существует и развивается уже несколько лет, но многие разработчики до сих пор либо не знают о нем либо имеют не достаточно информации для того, что бы перейти к его использованию.
В статье я расскажу:
о простом интерфейсе Zustand
о его внутреннем устройстве
о производительности без усилий: 3 простых способа оптимизаций
о производительности на максималках: не всегда нужно использовать длинный цикл рендера React, чтобы достичь максимальной производительности - Zustand может быстрее!
о применении на практике: советы и рекомендации по интеграции Zustand в ваши проекты для достижения масштабируемости и удобства поддержки.
Начните активно использовать Zustand в своих проектах - вы будете приятно удивлены простотой и удобством работы с ним.
Как мы Steam Deck Verified получали
Это небольшой рассказ о том, как мы получили заветную плашечку Steam Deck Verified для нашей игры The Unexpected Quest. Причем, никто из нас даже в руках не держал этот ваш Steam Deck.
πfs — революционная файловая система без хранения данных
Что это?
πfs это революционная файловая система, которая вместо того, чтобы тратить место на вашем жестком диске, хранит все данные в π. Вам никогда больше не придется заботится о свободном месте! Вам говорили, что 100% сжатие невозможно? Да вот же оно!
Как собрать?
πfs собирается элементарно:
./configure
make
Да и использовать его не сложнее:
πfs -o mdd=<metadata directory> <mountpoint>
Где metadata directory — каталог с метаданными (названия файлов, смещение в π), а mountpoint — каталог монтирования.
Что же π делает с моими данными?
π — одна из самых важных констант математики, и у нее есть куча интересных свойств (о которых можно прочесть в статье на википедии)
Одним из таких свойств числа π предположительно является нормальность, что означает, что все его числа распределяются равномерно, при условии, что это дизъюнктивная последовательность, т.е. все конечные числовые последовательности находятся внутри него. Если мы рассмотрим число π по основанию 16 (HEX), то это предположение верно. Первая запись об этом была в 2001 году.
Ну а если так, то зачем нам хранить все эти эксабайты данных на винчестерах, если мы можем найти их в π?
Сжатие целых чисел
Цель статьи осветить state of the art методы сжатия целых чисел, чтобы сэкономить в будущем время исследования алгоритмов и терминологии. При этом описание части алгоритмов может быть упрощено для понимания. Сравнение алгоритмов тоже находится вне рамках этой статьи. Подробнее можно почитать в ссылках.
Многие из упомянутых ниже алгоритмов используются в прикладных задачах: сжатие битмап, обратных индексов, просто массивов данных.
Организация развития видеоигровой индустрии: как все начиналось и что мы имеем
Всем привет! Ровно год назад мы с другими предпринимателями из видеоигровой (или около нее) индустрии со второй попытки создали первую российскую ассоциацию видеоигровых разработчиков и назвали ее – Организация развития видеоигровой индустрии (РВИ) в форме АНО. Хотя фактически объединяться стали еще раньше — в 2021 году, когда понадобилось выступить совместными усилиями и добиться признания геймдева частью IT, чтобы иметь возможность доступа ко льготам. После решили не расходиться, реализовывать разные проекты на благо индустрии и в итоге пришли к официальной регистрации. Активную деятельность начали, мягко скажем, не в самое спокойное время, было непонятно примерно ничего. Массовые отъезды студий и релокации сотрудников, закрытие многих крупных индустриальных компаний, отключение от площадок дистрибуции и многие другое – все это не вселяло особой надежды не то чтобы на развитие отечественного геймдева, а хотя бы на его сохранение. Но мы решили рискнуть и последовать совету классика: «Делай, что можешь, с тем, что имеешь, там, где ты есть». Давайте посмотрим, что из этого вышло.
Пришлось несколько раз переформатировать наши основные цели и задачи по ходу изменения внешних факторов. Но в итоге вышло это: «Цель организации — развитие индустрии видеоигр путем поддержки значимых проектов и полезных инициатив, их продвижения и обсуждения. РВИ содействует созданию положительного образа геймдева и игровой культуры в обществе, а также координации взаимодействия между инвесторами, паблишерами, научно-образовательными сообществами и корпорациями. Организация хочет добиться значимого повышения привлекательности инвестиций в видеоигровые проекты и найти решения для их продвижения на глобальном рынке с учетом новых реалий». В целом все сходится ?
Hyper: Chance. Этап 0. Знакомство
Hyper Chance: Этап 0. Знакомство
Hyper Chance - бесплатный технический акселератор коммерческих проектов от Hyper Dev Guild для разработчиков на основе фреймворка $mol
Обратная связь приветствуется! ^-^
Фонетический словарь. Пет-проект в полезное приложение
У меня есть хобби — изучение английского языка, и последнее время я увлекся фонетикой британского английского языка, но почти все словари дают транскрипцию «Королевского английского», на котором говорят, по данным Гугла, около 3 процентов жителей Соединённого Королевства. А найденный в интернете словарь http://www.cubedictionary.org/ хоть и дает нужную мне транскрипцию, но имеет ряд недостатков.
Натальная травматология фронтенда S1 E1-14
Здравствуйте, меня зовут Дмитрий Карловский, и меня хлебом не корми, а дай поиздеваться над хайповыми технологиями. И сейчас я расскажу вам, как я провёл лето.
В этом сезоне ко мне на операционный стол попались разные JS, CSS и тест фреймворки да методологии, менеджеры состояний и потоков исполнения, коллекции виджетов и даже приложений. Приготовьтесь, далее вас ждёт целых 32 часа отборного кринжа!
Информация
- В рейтинге
- 5 453-й
- Откуда
- Алексин, Тульская обл., Россия
- Дата рождения
- Зарегистрирован
- Активность