Как стать автором
Обновить
101
0.1
Константин Китманов @k12th

JS

Отправить сообщение

Godot и сферический диаблоид в вакууме

Время на прочтение12 мин
Количество просмотров8.5K

О том как устроен прототип arpg Spheramyd и практиках использования игрового движка.

Читать далее
Всего голосов 11: ↑11 и ↓0+11
Комментарии0

Flutter Flame: подходы к оптимизации

Время на прочтение11 мин
Количество просмотров2.6K

В предыдущей статье я разбирал проблемы Bonfire и причины, по которым он не очень подходит для сложных игр. Несмотря на то, что чистый Flame намного легче, там тоже не всё так гладко. В этой статье я поделюсь своими рецептами увеличения производительности игры и распишу причины, почему это работает. Хочу сразу заметить, что среди этих рецептов нет серебряных пуль, и маловероятно получить существенный буст, применив только что-то одно. Однако в комплексе они достаточно эффективно работают – проверено часами медитации над CPU-профайлером.

Читать далее
Всего голосов 5: ↑5 и ↓0+5
Комментарии5

Эволюция игрового фреймворка. Клиент 3. Слои логики

Время на прочтение14 мин
Количество просмотров2.4K

Прежде мы рассмотрели отделение логики отображения от графики, а также разные вспомогательные классы и менеджеры. Все вместе они образуют каркас наших приложений и были вынесены в отдельную библиотеку — Core Framework. Осталось еще разработать методику по написанию остальной логики. В нее входит бизнес-логики и правила игры, данные и их обработка, а также взаимодействие с сервером.

Вся логика будет разбита на слои. Основной смысл слоев тот, что классы одного слоя максимально независимы от классов с соседних слоев и абсолютно независимы от остальных. Все это уже относится не к основному фреймворку (Core Framework), а к фреймворкам для разных групп жанров (Base Game Frameworks) и для каждого отдельного жанра (Game Frameworks).

Читать далее
Всего голосов 3: ↑3 и ↓0+3
Комментарии0

Как я Markdown парсер выбирал

Время на прочтение18 мин
Количество просмотров21K

Недавно я решил создать свой сайт, и мне понадобилось выбрать парсер Markdown для отрисовки статей в блоге.

То, что начиналось как: «Окей, гугл, какой парсер выбрать?», – вылилось в полноценное исследование существующих реализаций парсеров.

О том, какие открытия меня ждали на этом пути, и будет данная статья.

Читать далее
Всего голосов 54: ↑54 и ↓0+54
Комментарии29

Когда в Unity нужно MVC, как сделать Binding визуальных контроллов с методом

Время на прочтение4 мин
Количество просмотров4.6K

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

По ссылке "Когда нужно MVC, как сделать Binding визуальных контроллов с методом (UNITY, C#, Разработка игр)" вы можете послушать меня, а кто хочет почитать прошу подкат.

Читать далее
Всего голосов 6: ↑2 и ↓4-2
Комментарии17

Ренессанс Quake: краткая история 25 лет моддинга игры

Время на прочтение9 мин
Количество просмотров9.3K
image

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

Казалось, что такая же смерть уготована и моддингу Quake 1. Однако несколько лет назад Quake начал активно развиваться. Сегодня заново отмоделенный монастырь Quake привлекает тысячи новых членов, поддерживающих жизнь этого учения. В этой статье мы расскажем краткую историю ренессанса Quake, внезапного возрождения сообщества моддеров игры, которой исполнилось 25 лет.
Читать дальше →
Всего голосов 23: ↑23 и ↓0+23
Комментарии4

Bitsy. Make games, without operations

Время на прочтение14 мин
Количество просмотров6.8K

Если вы давно хотели научиться делать игры, но не знали с чего начать, то рекомендуем попробовать Bitsy.

Это редактор полного цикла для создания простых игр и маленьких миров на основе html. Это значит, что ваша игра максимально доступна и не требовательна, ее легко можно опубликовать на Itch.io или любой другой бесплатной платформе и делиться с широким кругом игроков. По словам создателя движка, Адама Леду, цель Битси – “предоставить простой способ делать игры, в которых можно ходить, общаться с людьми и просто пребывать”. За пять лет существования движка вокруг него выросло живое и дружное сообщество. Было создано более 4000 игр. С помощью них люди рассказывали личные истории, создавали сложные фантастические миры, высказывались об актуальных событиях и делали многое другое. Вот далеко не исчерпывающий список наиболее интересных и необычных из этих игр. Подробней узнать об истории создания Битси можно здесь.

Битси очень дружелюбен для новичков. Этот движок разрабатывается для людей, не умеющих программировать или использовать сложный софт. Ваш персонаж может ходить, общаться с другими персонажами, поднимать условный ключ и открывать им  условную дверь – вот, пожалуй, и всё. Как видите, всё простенько, но в данном случае простота – это сила. Сила Битси – в его ограничениях: каждый пиксель, слово, цвет имеют большой вес. Нет ничего лишнего. С его помощью вы можете создать короткие сюжетные игры или маленькие приключения. Рассказать свою историю или поделиться важной идеей в интерактивной форме – избежав долгой и трудоемкой разработки. При этом многие умельцы делают с Битси невероятные вещи. В общем, главное ограничение разработчика игр – его фантазия.

Читать далее
Всего голосов 22: ↑22 и ↓0+22
Комментарии9

Использование NavMesh для навигации ИИ в Unity

Время на прочтение12 мин
Количество просмотров39K

Система навигации NavMesh позволяет объяснить игровым персонажам, как добраться до определённой точки уровня, избегая всевозможные препятствия и используя созданные игроком механики. Для работы с ней Unity предлагает следующие четыре компонента в работе которых мы попытаемся разобраться.

Читать далее
Всего голосов 4: ↑4 и ↓0+4
Комментарии9

Statoscope: курс интенсивной терапии для вашего бандла

Время на прочтение17 мин
Количество просмотров6.4K

Statoscope — это инструмент для анализа webpack-бандлов, а я его автор и мейнтейнер. Он зародился в далеком 2016 году как эксперимент, а теперь это полноценный тулкит для просмотра, анализа и валидации сборки.



В ноябре на конференции HolyJS я выступил с докладом о Statoscope и провёл воркшоп по его использованию. Зрителям понравилось, так что мы с организаторами HolyJS решили, что доклад может пригодиться и читателям Хабра — поэтому сделали текстовую версию. Видеозапись тоже прилагаем.

Читать дальше →
Всего голосов 24: ↑24 и ↓0+24
Комментарии1

Prisma: Полноценный ORM для Node.js и TypeScript

Время на прочтение10 мин
Количество просмотров20K
Prisma — это ORM нового поколения для Node.js и TypeScript. После более чем двух лет разработки мы рады сообщить, что все инструменты Prisma готовы к эксплуатации в production!



Содержание





Новая парадигма для объектно-реляционного отображения



Prisma — это ORM нового поколения с открытым исходным кодом для Node.js и TypeScript. Она состоит из следующих инструментов:

  • Prisma Client: Автогенерируемый и типобезопасный клиент базы данных
  • Prisma Migrate: Декларативное моделирование данных и миграции с возможностью пользовательского редактирования
  • Prisma Studio: Современный пользовательский интерфейс для просмотра и редактирования данных


Эти инструменты можно использовать вместе или по отдельности в любом проекте на Node.js или TypeScript. В настоящее время Prisma поддерживает PostgreSQL, MySQL, SQLite, SQL Server, MongoDB.
Перевод блога из prisma.io. Читать далее
Всего голосов 11: ↑6 и ↓5+1
Комментарии20

Old Skull — фронтенд-фреймворк из альтернативной вселенной

Время на прочтение8 мин
Количество просмотров6.7K


Около десяти лет назад сообщество веб-разработчиков впервые начало обсуждать концепцию "Single-Page Application" и искать способы ее реализации. К тому моменту разработка графических интерфейсов уже не являлась чем-то новым и поэтому многие вещи заимствовались у существующих решений и немного адаптировались под специфику браузеров.


Наиболее успешным результатом подобной работы оказался Backbone.js — объектно-ориентированный MVC-фреймворк, который в свое время использовался в BitBucket, Basecamp, Stripe, Airbnb и Trello. Со временем он был полностью вытеснен следующим поколением фреймворков, но...


Что если бы этого не случилось? Как бы тогда выглядела современная разработка веб-интерфейсов?

Читать дальше →
Всего голосов 18: ↑18 и ↓0+18
Комментарии13

Современная архитектура Electron приложений в 2021

Время на прочтение6 мин
Количество просмотров13K

Я хочу рассказать об архитектуре приложений на Electron: из чего они состоят как работают, какие имеют ограничения и требования.

Читать далее
Всего голосов 18: ↑18 и ↓0+18
Комментарии6

Делаем сервер из Android-телефона

Время на прочтение8 мин
Количество просмотров117K

Некоторое время назад мне пришла в голову интересная идея — превратить свои старые телефоны (их скопилось немало за десять лет) в серверы, в качестве альтернативы покупке Raspberry Pi.


image


На то было несколько причин: во-первых, у телефонов есть батарея, что для сервера практически бесплатный мини-UPS, во-вторых, внутренняя память смартфона (UFS) работает быстрее и надёжнее, чем SD-карта. В-третьих, у телефонов имеется экран, по которому можно отслеживать состояние сервера.


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


TL;DR: в этом посте будут разобраны вопросы установки PostmarketOS на смартфон,
поднятия на нём в качестве примера Docker и веб-приложения в нём.

За длинной версией под кат
Всего голосов 130: ↑129 и ↓1+128
Комментарии97

Что делать с антинаучными теориями в интернете? Деплатформинг и гуманная цензура

Время на прочтение7 мин
Количество просмотров14K


К сожалению, сознанием легко манипулировать. Люди предсказуемо боятся неизвестного, соглашаются с мнением большинства, верят часто повторяемой лжи, считают себя лучше среднего и думают, что окружающий мир действительно такой, каким выглядит (наивный реализм). На данный момент у сапиенсов классифицировано более 175 когнитивных искажений. Что характерно, люди замечают проявление когнитивных искажений у других, но не у себя (это эффект слепого пятна, он чаще встречается у людей с высоким IQ).
Читать дальше →
Всего голосов 50: ↑32 и ↓18+14
Комментарии458

Как удалить «неудаляемые» приложения со смартфона

Время на прочтение5 мин
Количество просмотров250K


Чтобы увеличить привлекательность смартфонов, производители ставят на них как можно больше разных программ. Это понятно. Просто берём и удаляем ненужное… Стоп.

Оказывается, некоторые программы невозможно удалить. Например, на отдельных моделях Samsung невозможно удалить Facebook (есть только опция 'disable'). Говорят, на Samsung S9 вдобавок предустановлены «неудаляемые» приложения Microsoft.

Эти смартфоны приведены для примера. Такая же проблема и на других моделях. На многих есть неудаляемые программы от самого производителя.

Всё это надо зачистить.
Читать дальше →
Всего голосов 190: ↑179 и ↓11+168
Комментарии203

Фронтендер пишет нейронки. Уровень сложности «хочу на ручки»

Время на прочтение13 мин
Количество просмотров17K

Рано или поздно, фронтенд - разработчик устает играть со своими фреймворками, устает докучать коллегам - бэкендерам, устает играть в девопс и начинает смотреть в сторону машинного обучения, дата - саенс и вот это вот все. Благо, каждый второй курс для тех кто хочет войти вайти способствует этому, крича на всех платформах, как это легко. Я тоже, насытившись перекладыванием данных из базы в API, а потом из API в таблицы и формы, решил взять небольшой отпуск и попробовать применить свои скилы фронтендера в машинном обучении. Благо, существуют такие люди как Daniel Shiffman и Charlie Gerard, которые своим примером помогают не бросить начатое, увидев первые страницы с математическими формулами.

Читать далее
Всего голосов 20: ↑20 и ↓0+20
Комментарии13

Как мощность влияет на геймплей: численный подход к дизайну игры для достижения ее честности

Время на прочтение13 мин
Количество просмотров7.7K

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

Стоит заметить, что термин «честность» здесь более уместен, чем «баланс», ведь последний чаще можно истолковать неверно. Честность подразумевается в том смысле, что опыт игроков должен быть выдержанным и правдоподобным. Честный геймплей должен быть приятным и увлекательным, даже если он не совсем четко сбалансирован. Идеальный баланс, в свою очередь, может сделать игру более скучной. По словам ведущего дизайнера Overwatch Джеффа Каплана:

Восприятие баланса гораздо важнее, чем сам баланс.

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

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

Во всех описанных случаях могут быть разные стратегии и отправные точки, которые можно использовать для достижения этой самой честности. Одна из них, на которой мы и сфокусируемся в данной статье, — мощность (Power).

Читать далее
Всего голосов 28: ↑27 и ↓1+26
Комментарии12

Реализация паттерна проектирования

Время на прочтение11 мин
Количество просмотров14K

В этом туториале мы освоим паттерн проектирования “Команда” (Command) и реализуем его в Unity в рамках системы перемещения игрового объекта.

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

Читать далее
Всего голосов 11: ↑8 и ↓3+5
Комментарии2

Четыре приема быстрой разработки на Unity3D

Время на прочтение7 мин
Количество просмотров7.8K

Уже долгое время Unity3D — мой любимый инструмент разработки игр, которым я пользуюсь уже более 8 лет — и для профессиональных продуктов, и для личных проектов, и при обучении программированию и гейм-дизайну. Более того, я писал на Unity почти на всех гейм-джемах, в которых участвовал, благодаря чему получалось создавать основу игры всего за несколько часов.

Как вы, наверное, знаете, гейм-джем — это конкурс разработчиков игр, участники которого делают игру с нуля за короткий период времени. Гейм-джем обычно идет от 24 до 72 часов, но бывают и более длительные — например, GitHub Game Off, который длится весь ноябрь.

После участия в различных гейм-джемах, в том числе и с самодельным движком моей группы на C++ (к сожалению, он только на португальском языке), я составил список правил быстрого прототипирования, которые вскоре превратились в мой основной принцип разработки ПО: меньше кода — быстрее работа.

Основная идея — писать меньше кода (или, иначе говоря, держать меньшую кодовую базу) — решает две задачи:

Защита от ошибок: чем меньше размер кода, тем меньше вероятность сделать ошибку.

Экономия времени: при каждом изменении кода нужны обновления и тесты, что требует времени.

А для Unity есть и третья причина: каждое изменение в коде запускает обновление Unity, на что регулярно тратится некоторое количество времени.

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

Читать далее
Всего голосов 13: ↑11 и ↓2+9
Комментарии2

Информация

В рейтинге
3 295-й
Откуда
Красногорск, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность

Специализация

Frontend Developer
Senior