Новости

Игровая логика «Памяти»

2024-05-03 00:00

Игровая логика «Памяти»

В апреле реализовал игровую логику игры «Память» на Python в виде модели ограниченного языка и успешно перевёл её инструментом в C++.

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

  1. контекст состояния
  2. чистые функции без побочных эффектов, работающие лишь с контекстом

Контекст состояния игровой логики на Python получился следующим (C++):

```python class memory_Context: def init(self): self.hiddenItems = [] self.mismatchedItems = []. . .

Первый пример портируемого кода

2024-04-11 00:00

Выбор платформ для портирования

Для подтверждения портируемости кода я выбрал следующие платформы и языки:

  • C++: Linux, macOS, OpenWrt, Windows
  • JavaScript: Chrome, Firefox, Safari
  • Kotlin: Android
  • Python: Linux, macOS, Windows
  • Swift: iOS, macOS

На указанных языках я сделал простейший аналог «Hello World», тем самым изучив требования каждой из платформ.

Отдельно отмечу, что самой сложной для обуздания платформой оказалась OpenWrt, т.к. поддержка моего маршрутизатора TP-Link TL-MR3020 r1 закончилась в 2018-м году. Пришлось ставить старую версию OpenWrt, что заняло три недели.. . .

Шина-iOS

2024-03-10 00:00

Первая реализация Шины для iOS

За январь и февраль довёл реализацию шаблона Шина на Swift до хорошего состояния для iOS.

Провёл нагрузочное тестирование. Оказалось, что общение элементов приложения через Шину примерно в 92 раза медленнее обычного вызова функции. И это говорит не о том, что Шина плоха. Наоборот, это говорит о том, что Шина должна использоваться в архитектурных склейках кода, что позволяет сократить такой код примерно на 30%.

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

Шина-01

2024-01-04 00:00

На пути к портируемому коду

Для достижения портируемости кода необходимо разделить весь код на две части:

  • повторяющееся: логика
  • уникальное: взаимодействие с окружением

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

Шина-01

На текущий момент получился следующий результат:. . .

Изменение целей проекта

2023-12-25 00:00

Конец мечты об открытой РПГ

В далёком 2005-м году проект Opensource Game Studio начался под названием Opensource RPG, т.к. целью было создание «первой открытой конкуретноспособной бесплатной игры». В чуть менее далёком 2011-м после выпуска OGS Mahjong 0.7 мы уже подсчитывали, что для создания РПГ в одиночку потребуется 540 лет.

В том 2011-м у нас теплилась надежда об увеличении команды, что могло бы уменьшить этот срок. Однако, сегодня в конце 2023-го очевидно, что создать РПГ в одиночку невозможно.. . .

Как я создаю приложения для браузера прямо в браузере

2021-01-28 00:00

GitJS

В этой статье Михаил поделится опытом создания доступных долговечных приложений.

В 2013 году компания Canonical пыталась собрать средства на выпуск смартфона Ubuntu Edge. Особенностью продукта должна была стать возможность преобразовывать смартфон в полноценный ПК. Увы, необходимую сумму собрать не удалось, поэтому мечта создать универсальное устройство так и осталась мечтой.

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

Почему я сделал личный проект учёта трат на Git+JS

2020-05-03 00:00

ГитБюджет

В этой статье Михаил поделится опытом использования Git+JS.

Здравствуйте, господа, в этой статье я поделюсь опытом создания приложения учёта трат, в частности отвечу на следующие вопросы:

  1. Зачем мне приложение учёта трат?
  2. Почему это личный проект?
  3. Почему проект на Git+JS?

1. Зачем мне приложение учёта трат?

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

Обучение программированию 2019, или в поисках идеальной программы: Последовательность

2020-02-12 00:00

МУРОМ

В этой статье Михаил расскажет об обучении ребят программированию в 2019-м году.

Предисловие

Осенью 2019-го я в третий раз участвовал в курсе обучения ребят 10-15 лет программированию в качестве одного из преподавателей. Наши курсы проходили с середины сентября по середину декабря. Каждое занятие было в субботу с 10:00 до 12:00. Подробнее о структуре каждого урока и деталях создаваемой на курсе игры можно узнать из статьи за 2018-й год.

Лично для себя я выделил две основные цели, к которым иду с помощью курсов:. . .

Минусы и плюсы начинания с начала

2020-01-01 00:00

Happy 2020

Любой, кто следит за нашим прогрессом достаточно долго, может сказать, что мы много раз перезапускали разработку с нуля.

Еще до выпуска "OGS Mahjong" мы несколько раз меняли технологии "под капотом". После релиза мы неоднократно делали это снова, отбрасывая уже готовые решения. Может показаться, что сейчас у нас меньше готового, чем перед выходом "OGS Mahjong". Это правда, но не совсем.

Когда вышел "OGS Mahjong", у нас была приятно выглядящая (на тот момент) игра с открытым исходным кодом, которая работала под Windows и Linux. С некоторой удачей и усилием в нее можно поиграть и сегодня, но уже не "из коробки".. . .

Страница 1 из 7

Старее »