Если коротко: одна книга учит меня мыслить, а вторая — выживать.
1. Донелла Медоуз «Аааа, всё связанно!» (она же «Системное мышление»)
Что делает: Эта книга — фундамент. После неё мир делится на «до» и «после». Она учит не просто видеть части, а понимать, как они работают как единое целое. Чтобы игра была часами, а не мешком с глитчами.
Как я использую:
Как начинающий геймдизайнер, я пропускаю каждую главу через призму своей игры.
Хаос постепенно сменяется цельностью. От этого фея Порядка Солара в моей душе спокойна и торжествует.
Читать или не читать:
Сложность: Непросто. Требует осмысления, перечитывания абзацев. Это не лёгкое чтиво.
Стоит ли? Однозначно да. Это инвестиция в мышление, которая окупается всегда.
✨🧚🏼✨🧚🏼✨🧚🏼✨🧚🏼✨
2. Слава Грис «Сделай видеоигру один и не свихнись»
Что делает: Это первая помощь и психолог в одном флаконе. Проглотила 80 страниц в первый же день, настолько увлекательно и расслабляет.
Почему она мне жизненно необходима:
Я в этом проекте всё: программист, художник, дизайнер, маркетолог, менеджер и главный мотиватор самой себя. Это нереально тяжело. Каждый инди-разработчик проходит свой персональный ад.
Мой путь vs путь книги:
Я: Создаю сложный проект без Unity, пишу свои движки. Мой путь, как быть слепым котёнком в кромешной мгле.
Книга: Путь Автора кажется легче, но это не важно. Его книга для меня отдушина и разрешение не быть идеальной.
Главная ценность: Книга даёт ощущение «ТЫ НЕ ОДИН». Нас много, и мы все через это проходим. Она просто говорит: «Всё получится, просто не сдавайся». И это бесценно.🥰✨
✨🧚🏼✨🧚🏼✨🧚🏼✨
Эти две книги моя опора. Одна учит быть архитектором вселенных, а вторая напоминает, что я живой человек.
А что вас держит на плаву в ваших сложных проектах? Какие книги, методики или мантры помогают не сдаться? Делитесь в комментариях, поддержим друг друга! 👇
Привет! Мы разработчики из Беларуси, и сейчас делаем масштабный проект - LOST IN. Это игра про путешествие во времени, где вы стали его заложником: из прошлого в будущее и наоборот. И одна из локаций - Полоцкое княжество!
Также, мы решили добавить в игру нашу мифологию! Вы будете путешествовать по территориям Полоцкого княжества и, иногда, встречать нечисть, прямиком из книг Владимира Короткевича 🥶
Вот к примеру Ератник - злостное существо, что в попытках получить вечную жизни стало тем, чем вы его сейчас видите... И конечно, вы сразитесь с ним в нашей игре!
Если вам хочется знать больше о других проектах студии, вот наш тг - t.me/sector13_studio Мы будем очень рады вашей поддержке ❤️
Всем привет! Существует множество фреймворков для управления IT продуктами, по сравнению с которыми - физический продукт в инфополе обделен вниманием, что у нас, что за рубежом, но в меньшей мере. Поэтому я выделил немного времени, чтобы описать общий процесс разработки продукта на основе практик забугорных компаний, которые производят потребительскую электронику и авто (термины взяты у них же). Ничего революционного и нового в ней нету, это просто попытка систематизировать общую картину.
Путь от нуля до единицы, от концепции до готового продукта
Детали будут различаться в зависимости от отрасли, рынка, продукта, команды и т.д. По крайней мере в компании, в которой я работаю на данный момент все примерно так, за исключением пары этапов, к которым мы постепенно приходим.
Надеюсь кому-то будет полезно.
Зачем нужна эта схема?
В целом для наличия общего контекста. Потому что в интернете естественно существуют публикации, отвечающие на вопрос - как создать продукт, но посвящены одни только какой либо стороне вопроса (проектирование, производство, ценообразование, ца, рынки).
Для простоты оценки комплексной осуществимости проекта заранее.
Объяснение этапов
Этап 1. Концепция (PRFAQ)
Это этап формирования продуктовой идеи, лежащий на плечах продакт-менеджера, который формирует ответы на вопросы: что, почему и для кого. Это изучение рынка, конкурентов, тенденций и т.д. Цель состоит в том, чтобы найти баланс между пробелами на рынке, видением компании и проблемами пользователей. Тут же определяются цели по ценообразованию, выручке, прибыли и т.д.
В крупных зарубежных компаниях этот этап завершается подготовкой внутреннего пресс-релиза (PRFAQ) включающего помимо информации о продукте: вопросы которые могут потенциально могут возникнуть у клиентов с ответом на них и вопросы, которые потенциально могут возникнуть у команды - тоже с ответом на них. Пресс-релиз презентуется руководству, команде для заблаговременного обсуждения и утверждения идеи.
Этап 2. Определение (PRD)
Этап уточняет и детализирует то, для кого и почему продукт предназначен. Здесь продакт общается с клиентами, изучает отзывы на продукты конкурентов и выявляет проблемы которые вытекают в требования к продукту. По итогу получается PRD - документ с описанием характеристик продукта.
Этап 3. Разработка
Этап разработки делится на подэтапы ниже:
1) Прототип (PT). Дизайнеры начинают прорабатывать концепцию форм, цвет, материалы, упаковку. Инженерная команда тестирует первоначальную архитектуру. Отдел поставок способствует поиску поставщиков.
2) Тестирование прототипа (EVT). Тестирование функциональности прототипа в сборе, включая дизайн.
3) Тестирование перед масс. производством (DVT). Продолжается тестирование надежности, формируются конкретные спецификации, дорабатываются производственные процессы. Здесь же происходят сертификационные испытания.
4) Подготовка производства к объему (PVT) и начало масс. производства (MP). Этап наращивания производства и оценка его возможностей.
Во время EVT и PVT параллельно проводится пользовательское тестирование, как правило альфа - с участием сотрудников, а не реальных клиентов.
Между DVT и PVT параллельно начинается бета-тестирование с участием пользователей, которые будут тестировать продукт в реальных условиях. Требует детальной проработки со стороны продакт-менеджера.
Этап 4. Релиз и послепродажный период
Проводятся маркетинговые компании, готовятся каналы продаж и т.д. Продукт поступает в продажу. Касаемо его, команды продолжают следить за показателями удовлетворенности, лояльности (позже расскажу как мы их мерим), обратной связью. С технической точки зрения инженеры находятся в состоянии готовности решения проблем (FFA), которые могут возникнуть. Склад ведет учет запасов, а логистика их отслеживает.
Как-то так. Буду рад, если поделитесь своими мыслями) Также приглашаю всех в свой только-только созданный телеграм канал посвященный продакт-менеджменту физических продуктов, где буду делиться своим опытом и полезными материалами: t.me/physical_product
Давно, когда я еще учился в школе, зимним вечером, пройдя очередной уровень марио я загорелся идеей - сделать свой платформер для игровой приставки.
Примерно через полгода у меня появился персональный компьютер с операционной системой MS-DOS и средой программирования QBasic:
QBasic
Ну вот! Подумал я, настал мой час и сел писать игру в надежде что как-то придумаю как запихнуть эту игру потом в приставку денди.
Наивно, но тогда не было интернета и узнать, как вообще создавать игры и заливать их на картридж было довольно сложно.
Понятное дело, после некоторых попыток у меня толком ничего не вышло.
Да, у меня получилось сделать какой-то фон, персонажа и даже заставить его двигаться и на этом разработка игры была закончена.
Прошло почти 25 лет, у всех стало модно закрывать какие-то свои гештальты, решил закрыть и я.
Для начала нужно было ознакомиться с платформой и ее особенностями, а их как оказалось довольно много, как и у всей ретро-техники.
Железо
Знакомиться с платформой я начал буквально с "кишков микросхем, заказав плату, изучив схему и собрав это все чудо из рассыпухи, благо опыт работы с паяльником довольно неплохой.
Готовая приставка
Что мы имеем:
CPU - UA6527P/UA6527, Клон популярного в свое время 8-битного процессора 6502.
PPU - 6538/6528, Видеочип, аналог видеокарты.
RAM - 62256, 2 Кбайт оперативной памяти, которые позволяют использовать горизонтальный или вертикальный скролл по очереди, было бы 4 Кб можно было бы в теории и одновременно.
Звук - 2 прямоугольных канала, 1 треугольный, 1 шумовой и цифровой канал. Да-да, примитивная звуковая карта уже в те времена.
Микросхемы приставки
Разрешение экрана 256х240 и 54 цвета (Есть цвет чернее черного и еще некоторые цвета, которые лучше не использовать для избежания глюков на разных телевизорах).
Приставка Dendy она же NES
Инструментарий
Писать код для приставки можно на двух языках: на ассемблере и си.
Я решил использовать си для короткого и удобного вида кода, но некоторые вставки ассемблерного кода пришлось писать с нуля (так как скорости процессора в 5,37 МГц всегда не хватало).
Для компиляции кода я использовал компилятор cc65, с опцией --add-source (добавляет ассемблерный код, в котором уже можно найти не очевидные косяки).
Для графики, кроме фотошопа использовал программу YY-CHR:
YY-CHR
Для распиливания рома на прошивку, программу NRM.
Для статичных фонов есть очень удобная программа NES Screen Tool, которая позволяет нарисовать и выгрузить экран в массив байтов. Бонусом этом массив можно еще сжать RLE сжатием.
Для написания музыки и звуков я использовал FamiTracker и библиотеку FamiTone2.
Для создания уровней Tiled + самописный конвертер в встроенный формат карты.
Для схемы картриджа Sprint layout.
Для отладки лучше всего подходит эмулятор FCEUX:
FCEUX
Код игры
Но самая попаболь проблема, была в том, что я решил делать платформер а не статичную игру.
Сразу загрузить массив байтов на экран нельзя, потому что длинна уровня может быть от 3 до 256 экранов в длину.
Видеочип за один кадр успевает загрузить только 2 ряда блоков по 8 пикселей.
Еще за этот кадр нужно успеть прочитать состояние джойстиков, проиграть такт музыки, обработать коллизии, передвинуть спрайты на экране и т.п.
Для оптимизации я разработал такую структуру уровня. Где экран разбит на поле 16х16:
const unsigned char LEVEL1[] = {
...
0x75,
2,
ID_OBJECT,
...
};
Первый байт — координаты на экране x = 7, y = 5.
Второй байт — номер экрана уровня.
Третий байт — идентификатор объекта.
Структура объектов в игре
У каждого объекта есть атрибут коллизии, может игрок пройти через него или нет. На основе этих атрибутов строиться карта коллизии уровня.
unsigned char COLLISION[64];
Первые 32 байта, это первый экран NAMETABLE, вторые 32 байта для второго экрана NAMETABLE экрана.
Каждый бит, может быть, 0 если игрок может пройти и 1 если стена.
В итоге получаем два поля по 16х16 бит = 32+32 байта.
Картридж
Я не особо хороший художник, рисовать графику, уровни, спрайты, когда у тебя всего 4 цвета на плитку, уходит уж очень много времени.
Вид игры в эмуляторе
Было решено упростить задачу и запихать все в один банк памяти.
Это позволяет использовать картридж без маппера и не писать дополнительный код, который переключает эти банки.
Из приставки можно реально выжать намного больше и красивее, но по трудозатратам эта игра будет на уровне современной игры с красивой графикой, стоит ли оно того?
Возможно, кто-то захочет этим заняться, и я поделюсь с ним своими наработками.
В итоге схемотехника картриджа сводиться к плате с 2мя микросхемами памяти, у которой нужно просто подключить ноги к шине данных картриджа.
Схема в Sprint layout
Можно было бы, конечно, заказать у китайцев картриджи на каплях или флэш-памяти, но я хотел именно винтажного вида картриджа на DIP микросхемах (такие раньше попадались только в старых или дорогих картриджах)
Сами микросхемы найти не составило проблем, сначала я развел схему под w27c512, но как оказалось более объемная память w27c010 стоит дешевле и найти ее еще проще.
После того как пришли платы, я подготовил прошивку через NRM, прошил микросхемы в программаторе XGECU T48 и впаял их на место.
Готовый картридж для Денди
Распространение
Как продвигать игру, продавать картриджи и как их распространять: большой вопрос.
Также спрос на такие игры небольшой, даже если спрос и будет, то большую партию картриджей просто невозможно будет спаять.
Я крайне доволен своей работой, выпустить игру на физическом носителе для приставки 40-летней давности довольно крутая ачивка для разработчика игр.
Как в шахматах онлайн (подойдет любой сервис в данный момент играю на lichess.org), сделать так, чтобы подсвечивались все те клетки, которые ТЫ атакуешь? Не те, что атакует враг, а ТЫ! И не в моменте когда выбираешь фигуру, а всегда и у всех фигур одновременно. Есть ли такая возможность хоть какими угодно способами? Расширение для браузера, или другой сервис шахматный с этой функцией? Хоть что-нибудь! Спасибо! Фото добавлю в комментарии
В марте этого года компания 1С открыла свободный доступ к новой технологии для разработки приложений, что это за технология? Какова область применения? В чем отличие от 1С:Предприятие? Какие реальные проекты уже работают на ней? Попробую объяснить.
Прежде всего! Я не пытаюсь прорекламировать 1С или новую технологию, не говорю, что это супер-пупер ноу-хау и "аналогов нет". Я пытаюсь донести информацию до сообщества разработчиков 1С о новых возможностях и технологиях и пытаюсь привлечь разработчиков на 1С:Элемент к участию в конкурсе интерфейсов.
В посте будет много разных ссылок, их задача - дать вводную информацию интересующимся, привести примеры решений на 1С:Элемент, дать больше технических подробностей.
Что это за зверь - 1С:Элемент?
История
Компания 1С, решая внутренние вопросы автоматизации и управления облачными сервисами, службами, разработкой и тестированием много лет назад разработала собственный инструмент автоматизации (скриптовый язык + среда исполнения) Исполнитель. Постепенно развивая возможности языка и среды исполнения пришло понимание, что этот инструмент может быть полезен, как инструмент разработки web-приложений - так появился 1С:Элемент, который в 2023 году был выпущен в виде бета-версии и ушёл в закрытое бета-тестирование. С 2023 года мы участвуем в ЗБТ (с версии 1С:Элемент 5.0), а в настоящий момент 1С:Элемент выпущен официально и доступен всем желающим.
В чем "соль"?
1С:Элемент представляет собой комплекс из языка, среды разработки, сервера разработки и отладки, среды развертывания, исполнения и хостинга приложений. Разработчик, работая в облаке может за несколько минут создать простейшее приложение, развернуть его в продакшн и начать эксплуатацию приложения, не переживая о серверной части этого процесса.
Грубо говоря - как классическая платформа 1С:Предприятие позволяет быстро разработать простейшее приложение для учёта и начать в нём работу, условно не переживая о СУБД, ОС, оборудовании и прочим. Так и 1С:Элемент позволяет быстро разработать простейшее web-приложение и без "заморочек" с его развёртыванием и обеспечением серверной части начать использовать это приложение пользователями через браузер.
Ключевые отличия 1С:Элемент от 1С:Предприятие:
Бесплатная разработка
Свой язык разработки
Разработка web-приложений
Высокая производительность (по сравнению с классической 1С)
Использование приложений через браузер
Доступ к приложению без обязательных лицензий на клиента
Облачная среда разработки и исполнения
Тарификация за потребление облака, а не за лицензии на пользователя
И что с того?
На мой взгляд ключевой особенностью 1С:Элемент является то, что можно разрабатывать приложения для неограниченного круга пользователей:
мобильные приложения
headless-сервисы
публичные порталы и сайты
бэкенд
API и различные коннекторы к API
Ранее разработчик на 1С:Предприятии мог всё это делать, но упирался либо в пользовательские лицензии, либо в производительность платформы 1С, которая, будем честны, очень требовательна к ресурсам на пользователя.
Теперь, на 1С:Элемент, можно за пару дней сделать сервис, который легко, без затрат на лицензии справится с десятками тысяч посетителей.
Подробней про технологию 1С:Элемент
Больше информации по ссылкам
Сайт технологии, где можно почитать, что пишет сама 1С, а так же зарегистрироваться и попробовать разработку: https://1cmycloud.com/welcome/ (сделан на технологии 1С:Элемент)
Сайт языка, где есть подробности, а так же возможность скачать локальную версию: https://lang.1c.ru/ (сделан на технологии 1С:Элемент)
На технологии 1С:Элемент разработано уже много рабочих решений, которые используются при решении бизнес-задач. Я приведу различные примеры, от 1С и от других разработчиков.
Примеры от 1С (постарался подобрать примеры из самых разных областей):
Сайт с решениями для микробизнеса https://bizkub.ru/ - сам сайт, и частично представленные на нём сервисы сделаны на 1С:Элемент
1С:Шина - https://v8.1c.ru/static/1c-shina/ - интеграционное решение класса ESB, для организации обмена данными в сложных информационных ландшафтах
Примеры от других разработчиков:
Проект Промка24 - https://promka.sppkk.ru/ - система-витрина для подбора и согласования заявок на проведение промышленных экскурсий для учащихся на предприятия Красноярского края. Разработала моя компания по заказу Союза промышленников и предпринимателей Красноярского края
Книжный клуб - https://bclub.dev/ - личный кабинет и игровая механика. Разрабатывает моя компания. Открытый публичный проект - любой желающий может зарегистрироваться и принять участие игровом чтении.
Приведу набор скринов ещё одного приложения, которое мы разрабатываем, но пока не готовы показать публичную демку. Данное приложение наиболее близко по логике и по функциям к классическим учётным системам 1С и даёт хорошее представление о возможностях интерфейса.
1/11
Приложение b2b-кабинет для 1С
Заключение
На мой, наверное необъективный взгляд, 1С представила интересную технологию, которая даёт разработчику широкие возможности, ранее недоступные в экосистеме 1С.
По сути, 1С:Элемент для разработки бизнес-приложений делает то же самое, что ранее, в 90-е годы сделала платформа 1С:Предприятие. Позволяет быстро и просто разрабатывать сложные приложения не погружаясь в технологические аспекты развёртывания среды разработки и исполнения.
При этом 1С:Элемент, за счет интерфейсных компонент, модели данных, развитого языка существенно ускоряет не только развёртывание среды, но и саму разработку
Этой статьёй я хочу привлечь внимание разработчиков на 1С к новой технологии, а так же, хочу привлечь тех, кто уже ведёт разработку на 1С:Элемент, но кому не хватает информации, общения, сообщества - примкнуть к сообществу 1С:Элемент, показать свои работы, поучаствовать в конкурсе интерфейсов, разработанных на 1С:Элемент. Подробности конкурса в ТГ-канале - там же я рассказываю о практических примерах использования этой технологии, реальных кейсах и интересных моментах.
Прошу всех коллег, причастных к разработке на 1С - если знаете разработчиков на 1С:Элемент, или знаете коллег, кому интересна такая технология - поделитесь этим постом, пускай сообщество растёт, а технология идёт в массы!
Только что на Хабре вышел мой манифест про RJS — и там уже апокалипсис: сотни комментов, множество звёзд на гитхабе и священная война в комментах. Читать обязательно, пока модераторы не удалили за излишнюю правду: https://habr.com/ru/articles/966854/
Что там происходит сейчас:
Одни кричат «гениально, наконец-то для школьников, доставщиков еды и джунов!»
Другие орут «учите английский, бездари!»
Третьи уже форкают и пишут PR на поддержку пока и попытка/поймать
Пример кода, от которого хейтеры плачут
Пример кода, от которого англосаксы уже пишут в поддержку
Уже работает с React, Vue, NodeJs и даже 1С (скоро демка)
летопись.запись() — полностью суверенный лог, ЦРУ не прочитает
Плагин для VS Code в разработке (подсветка будет золотая с иконостасом)
Планируется версия на церковнославянском: аще бо возрастомъ довлѣетъ...
Планы на будущее
Друзья, пока Антанта зализывает раны после хабро-взрыва, вот что уже в работе и точно выйдет:
VS Code extension — уже на 80%. Подсветка, автодополнение, даже иконка с двуглавым орлом в статус-баре. Релиз — до конца декабря 2025.
Поддержка 1С:Предприятие 8.3.27+ — демка готова: встроенный модуль на чистом RJS внутри конфигурации. Скоро видео «Как писать обработчики на русском и не страдать».
Плагин для исконно русских сред разработки «Редактора Кузнечик» и «Рапиры» — для школьников и ностальгирующих. Уже договорился с учителями информатики, физруками и трудовиком.
RJS внутри среды Кумир (Кузнечик)
Поддержка российских процессоров «Эльбрус» и «Байкал» — уже компилируется и работает на 100 % нативно. Без единой строчки западного ассемблера. НАТО в панике: теперь даже железо молится на если/иначе ☠️
Специальная сборка RJS для ОС «Альт», «Роса» и «Астра Линукс» — без зависимостей от Intel/AMD
Версия на церковнославянском:
протестировано батюшкой-программистом
Межславянский диалект — чтобы все славяне от Польши до Болгарии писали на одном языке (уже 60% готово).
RJS в школах — готовый комплект «Информатика 7–9 класс на русском JavaScript». Минпрос уже смотрит с интересом.
Официальный стикерпак «Православный JS» для Telegram (летопись.запись, попытка/поймать, ошибка_грешника и т.д.).
Мерч: футболки «Мой код говорит по-русски», кружки «летопись.запись() или смерть», носки с надписью иначе.
Петиция
А теперь — главная новость: ЗАПУЩЕНА ГОСУДАРСТВЕННАЯ ПЕТИЦИЯ о признании русского языка обязательным в программировании! Подпиши прямо сейчас, пока серверы НАТО не упали от количества подписей: https://c.org/MR5Pkp26Rd
Бизнес кейс
На сайте Vc.Ru есть статья с детальным объяснением бизнес кейса и прочих аспектах связанных с практическим применением в компаниях .
Ставь плюс — получишь индульгенцию
Репост — плюс 40 дней без багов
Коммент «За межславянский вариант» — и я лично сделаю ветку на «єсли / инaчє»
Русский JavaScript — это не язык программирования. Это государственная идея.