Шрифт
Вползаем в айти. Python для начинающих
Play

Вползаем в айти. Python для начинающих

Мы решили сделать серию постов про программирование (на примере языка Python). Нет, я не пообещаю вам трудоустройство через 3 месяца на зарплату в 100к. Я просто постараюсь немного вас развлечь и чему-то научить.

Я даже не буду пытаться давать задания, но, если вы действительно хотите чему-то научиться - старайтесь тренироваться самостоятельно.

Не имеет значения, какая у вас операционка. Для любой ОС можно найти все нужное. Я всегда буду делать оговорки для 3 основных - Windows, OS X (Mac) и Linux (тестирую на Ubuntu).

Для начала, нужно скачать и поставить все необходимое. Все бесплатное и легальное. Мелочь, а приятно.

Установка стандартная, но - ВАЖНО: при установке на винду нужно поставить галочку "Add Python to PATH".

Он классный. Я им часто пользуюсь просто так, для разных заметок. Для кода он просто замечательный. Из бесплатного - лучший. Кнопка на скачивание сразу под красивой гифкой.

Чтобы затестить, хорошо ли поставился наш питон, нужно открыть командную строку.

На винде нужно начать вбивать "командная строка" в поиск, в открывшемся черном окошке написать python (и нажать Enter, да-да). В ответ должно написаться несколько строчек, в конце будут стоять уголки.

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

В тех строчках, которые нам написали в ответ на слово "python", есть номер версии. Мы хотим использовать новый третий питон. На маках и в любом линуксе по умолчанию уже поставлен второй. И словом "python" вы могли вызвать тот, что стоял по умолчанию. Если так и произошло - попробуйте написать "python3", должно помочь.

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

Отдельный пост про различие 2 и 3 питона обязательно будет, но позже, когда уже будут понятны основные идеи.

Мы очень стараемся, параллельно с постами мы снимаем видео уроки. Тут наш канал:

Все видео я все равно буду дублировать длиннопостами на любимом Пикабу. :-)

Я могу вкратце рассказать о себе и своем опыте - напишите, пожалуйста, в комментариях, если это кому-то интересно. А то вдруг вы не захотите мне доверять.)

О, очередной урок по программированию для начинающих. Какой там, сотый уже?

Зарплата в 100к+ "за тыканье кнопок" - это то, почему большинство народа валом валит на компьютерные курсы. А вы прям вот так, с порога - хоп и по живому резанули. :)

1000 таких "уроков" заканчиваются все на "Hello World!", а дальше сами думайте.

Программирование это в первую очередь способность СОСТАВИТЬ АЛГОРИТМ для выполнения задачи. А учить: введите в IDE - print ("Hello world!") и разбирать сию "программу" по 2 часа - так этого валом на ютубах.

"Совершенный код" от Макконнелла 1993 года актуален до сих пор. Вот если будет что-то в этом роде, но унифицировано под Python, то тогда хорошо.

Хм, я немного сомневался, но всё таки сохранил в список того, что никогда не открою повторно.

Из бесплатного, лучший - PyCharm

Авторы и редакторы книги по Python оставили в бумажном издании гиперссылку:

Потому что Python - сверхязык

А вы знали что у NASA есть API?

Для использования API вам нужен специальный API ключ, который вы получите после заполнения короткой анкеты:

Сразу же я решил что-то интересное придумать с этим делом, и так как я довольно неплохо разбираюсь в Телеграм API, я решил сделать телеграм канал в который буду раз в сутки постить какое-то астрономическое фото с пояснением в красивом виде, как это сделать? сейчас поясню.

1 - Создаете бота, как создать телеграм бота почитайте тут

2 - Создайте телеграм канал, и добавьте ранее созданного бота в этот канал как администратора

3 - Теперь вы сможете отправлять в свой канал сообщения посредством создания POST запроса, например вот с использованием Python, например ниже отправка картинки с подписью:

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

Теперь про получения данных из NASA, там все просто, делаете GET запрос на то API которое вы выбрали (на том же сайте предоставляются линки, примерно в таком виде:

https://api.nasa.gov/planetary/earth/imagery?lon=100.75&. , вот DEMO_KEY нужно заменить на от ключ, который вы от NASA получили после заполенния анкеты)

То что я сделал, это канал, куда раз в сутки будет публиковаться красивое фото космоса, с описанием и автоматическим переводом на русский язык (после нажатия на ссылку под каждым постом идет переход на telegraph где описание доступно в дух языках, оригинала и русском) + добавлена возможность скачать эту картинку в HD качестве, ссылка на канал -> https://t.me/daily_nasa

Спасибо за внимание😁

Урок 5. Управление двигателем постоянного тока ESP32 и MicroPython

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

Прерывания на микроконтроллере ESP32 с помощью языка MycroPython.

В качестве примера напишем код включения встроенного светодиода при нажатии на кнопку «boot» по аналогии с примером из прошлого урока, но уже с использованием прерывания.

Управление двигателем постоянного тока с помощью ESP32 и MycroPython.

Схема подключения ESP32, драйвера L298n и двигателя постоянного тока.

Давайте применим на практике полученные значения. Для этого подключим к ESP32 драйвер L298n и двигатель. Я буду использовать мотор редуктор от машинки, которую собирал и программировал на MycroPython вот в этом проекте.

Скачать материалы из урока можно тут

Надеюсь моя информация будет полезной.

Спасибо! Всем добра!

Женщина-программист?

Хочется сказать - да это же я! Но нет. Пока нет)

Недавно на Пикабу был набор тестировщиков для курса по программированию. Я прошла первый отбор, и спустя 2 недели - второй.

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

Вкратце расскажу о себе. Женщина, 35 лет. По образованию - филолог. Опыт работы богатый, но никакой конкретики - тут немного 1с, тут реклама, тут продажи, тут клиентская служба, сейчас снабжение.

В общем, в последние годы меня стал конкретно мучить вопрос "А кто я вообще есть?".

Перебрала варианты развития - все указывало на IT. Престижно, перспективно, востребовано во всем мире, приличная ЗП. К декабрю 2021 я созрела до того, чтобы купить курсы по тестированию. Мне очень повезло с компанией, и деньги были явно потрачены не зря. Курс я закончила успешно, но восторга от ручного тестирования я не испытала. Ну не могу я себя представить в роли Годзиллы, который крушит и ломает ПО :) По природе все-таки хочется создавать, а не разрушать.

Вот хотя бы дерево из шишки, чем не творение?

В том курсе была часть по автоматизации. И там-то я впервые увидела язык программирования в действии. Это был Пайтон. И на удивление, мне понравилось решать задачки! Привлекла логичность, структурированность, а еще есть простор для творчества в каком-то смысле - ведь одну задачу можно решить разными вариантами. В конце концов, ты пишешь код - а значит, что-то создаешь.

Короче, долбила я этот курс и тут как раз увидела на Пикабу набор на бесплатное обучение. Я не знаю, как так звезды сошлись, но в общем я в команде)

На "пикабушном" курсе все уроки идут в формате текста с примерами и практикой внутри. Еще мы как тестировщики создаем баг-репорты и предлагаем улучшения.

На данный момент я прошла вводную часть обучения, первые 12 уроков. Решала разные задачки и сдала 3 проекта на проверку в качестве большой практики. Пока шли уроки на уже знакомые мне темы, все было довольно просто. Сложности начались с новых тем. Информация подается концентрировано. Каждый урок разбираю по часу и более. Непонятные моменты догугливаю. Вопросы можно задавать на самой платформе курса. Но то ли в силу бесплатности, то ли чего, мне как-то неудобно) Поэтому стараюсь разбираться сама.

Не хватает общей группы студентов, где можно было бы обмениваться мнениями и опытом. Ведь понять, что ты точно усвоил тему можно только объяснив ее кому-то другому.

Поэтому учишься фактически в одно лицо. И надо самому решать вопрос мотивации. Я видела в рекламе раскрученных курсов типа Гикбрэйнс или Скиллбокс, не помню точно, что они включают в план занятий работу с психологом, чтобы тебя пинали, мол, учись, не бросай)))

Мне для мотивации помогают разные видео. В том числе от лица женщин-программистов. Ведь на самом деле это миф - что женский разум принципиально отличается от мужского. Да, мужчинам может быть проще принимать логические вещи, чем женщинам. Но вывод один - программирование, как и любой другой навык, можно освоить. И сделать это может любой/любая, если приложит усилия.

Пока я себе пишу план обучения на неделю. Стараюсь, чтобы было порядка 20 часов. Честно - это сложно. Учиться после работы, плюс домашние дела, плюс спортзал и желание просто потупить - тяжко себя заставить. Если бы были дети, я бы чокнулась, точно!

Что еще мотивирует. Когда правильно решаешь задачу. Когда похвалили за практику. Когда думаешь, что многие люди начинают и бросают, а ты еще держишься :)))

И насчет вопроса - мне уже 35/40/45. Не поздно ли мне осваивать новую профессию? Ведь на это уйдет год-два минимум.

Я вам так скажу. Через год-два вы в любом случае будете старше. Только с новой профессией, или без нее.

Начинать никогда не поздно!

Передаю привет моим сокурсникам @Earl.Kutsakov и @KoTaJir! Давайте поддерживать друг друга на этом пути)

Знакомство с Raspberry Pi Pico (Микроконтроллер RP2040). Настройка PyCharm и Thonny IDE для работы c Micropython

Несколько лет назад изучал python. Сейчас редко приходится применять. Но тут узнал о существовании Micropython. Ранее сталкивался только с ассемблером и с Си для микроконтроллеров. Захотелось Micropython изучить. Совершенно случайно попалась на глаза перед новым годом микроконтроллерная плата Raspberry Pi Pico в наличии в интернет магазине. С учетом стоимости меньше тысячи рублей, решил купить.

Оказалось, что с помощью этой платы можно решить довольно много задач и для этого не нужна дорогостоящий компьютер Raspberry Pi 4.

Ниже табличка сравнения с конкурентами в той же ценовой категории.

Минус у этой платы - отсутствие стека сети. В частности WiFi модуля.

Однако это дает преимущество в виде низкого электропотребления в 18 мА.

Входное напряжение может быть от 1.8 до 5 В. Встроенный преобразователь напряжения превратит это в 3.3 В.

Плату можно купить с ногами или без. С ногами редко встречаются. Но всегда можно взять и припаять ноги самостоятельно.

А вот такой размер плата имеет по сравнению с Raspberry Pi 4

При подключении к компьютеру появляется съемный диск. Размер показывает 127 МБ. Однако на плате Raspberry Pi Pico память всего 2 МБ. Т.е. программу можно записать размером 2 МБ. Этого вполне достаточно.

Для того чтобы начать работу с Raspberry Pi Pico.

1. Нажимаем и держим единственную кнопку на плате Bootsel.

2. Не отпуская кнопки, подключаем с помощью USB micro шнурка к компьютеру.

3. Появляется съемный диск.

файл прошивки uf2

5. Кидаем файл на флешку.

И пункты 3-5 не нужны, если используем среду Thonny IDE. Но об этом чуть позже.

Сначала пару слов про настройку профессиональной среды Pycharm IDE. Которая имеет бесплатную версию для Windows, Linux и Mac.

Для того чтобы начать работать с Micropython в Pycharm IDE, достаточно

1. Установить плагин Micropython, он там один.

2. Включить поддержку Micropython, выбрать плату и com порт. Раздел Settings -> Language and Frameworks -> Micropython

Теперь можно приступать к творчеству.

Радует, что микроконтроллер RP2040 и плата Raspberry Pi Pico сопровождается хорошей документацией.

Постоянная ссылка на SDK с примерами

Примеры кода удобнее всего брать с официального github чем из pdf.

Пока я попробовал работу со встроенным светодиодом. В режиме простого мигания и затухания. В чем плюс этой IDE. Что она подсказывает какие еще могут быть параметры того или иного модуля.

Pycharm поддерживает так же интерактивный режим REPL.

Но мне показался неудобным для дебага.

Слишком много кнопок нужно нажимать.

Куда проще начать работу с Thonny IDE.

Это легковесная программа, которая ставится на любую Windows или Linux машину. А так же входит в дистрибутив Rasbian.

Как раз задействовал в качестве компьютера Raspberry Pi 4.

Здесь все проще

1. Нажимаем и держим единственную кнопку на плате Bootsel.

2. Не отпуская кнопки, подключаем с помощью USB micro шнурка к компьютеру.

3. Открываем Thonny IDE

4. В углу меняем интерпритатор

5. Дальше программа скачает свежую прошивку и зальет на плату за нас.

6. Плата автоматически перезапустится и все готово к работе.

Плюс в Thonny IDE - это объединённый интерактивный и скриптовый режимы.

В заключении хочу написать, что плата мне понравилась, возможно так как с остальными я еще не работал.

Raspberry Pi Pico подойдет для прототипов и единичных проектов.

Для серийного производства своих продуктов чип RP2040 и плата дорогие.

Буду пробовать делать схожие макеты на Raspberry Pi 4 и Raspberry Pi Pico чтобы понять целесообразности Raspberry Pi 4 для автоматизации.

Ниже видео с первыми экспериментами.

Урок 3. Переменные и математические операции в MicroPython

Сегодня в уроке рассмотрим переменные и математические операции в MicroPython. Научимся попеременно включать 2 светодиода, написав всего 14 строчек кода.

Переменные в MicroPython.

MicroPython основан на Python 3, поэтому типы данных и работа с переменными будет точно такой же, как и в Python.

Типы данных в Python.

Давайте рассмотрим основные типы данных Python.

Математические операции в MicroPython.

Математических операций в Python много, поэтому рассмотрим только основные.

Мигание светодиодом. Оптимизируем код.

Давайте оптимизируем код «мигание светодиодом», используя полученные знания в данном уроке.

Мигание двумя светодиодами на ESP32 и MicroPython.

Скачать материалы из урока можно тут

Надеюсь моя информация будет полезной.

Спасибо! Всем добра!

Разработчик предложил устроить коммунистическую революцию в Python, объединив все классы и сделать их равными

Микроконтроллер ESP32 MicroPython. Пример первой программы

Сегодня в уроке разберём пример «мигание встроенным светодиодом» на плате ESP32.

Рассмотрим распиновку микроконтроллера ESP32 DEVKIT V1.

Более подробную информацию о назначении GPIO ESP32 DEVKIT V1 читайте тут.

Рассмотрим, как можно с помощью консоли REPL проводить отладку кода без загрузки в микроконтроллер.

Определимся с очерёдностью выполнения файлов интерпретатором MicroPython.

И напишем пример «мигание встроенным светодиодом».

Боле подробное описание и исходные материалы к уроку можно посмотреть тут.

Надеюсь моя информация будет полезной.

Спасибо! Всем добра!

Каждый питонист в душе 2Д тян

Урок 1. MicroPython ESP32. Установка и настройка IDE

В этом уроке поговорим о том, с чего начать работу с MicroPython. Установим необходимое программное обеспечение.

Если вы считаете этот учебный курс полезным, пожалуйста, поделитесь им! Чтобы он мог охватить больше людей, которым это может быть интересно.

1. Установка Thonny Python IDE.

Скачать Thonny IDE можно на официальном сайте thonny.org

2. USB-драйвер для ESP8266 и ESP32.

Скачать драйвера можно внизу статье в разделе «файлы для скачивания».

3. Загрузите прошивку MicroPython.

Сейчас прошивку для ESP8266 или ESP32 можно с официального сайта.

Установка прошивки для ESP32 с помощью Thonny Python.

Подробное описание читайте тут.

Надеюсь моя информация будет полезной.

Спасибо! Всем добра!

Уроки Arduino. Строки, стринги и парсинг

Два близких по теме урока - работа с текстом (String и массив символов) и парсинг этого текста, содержащего численные значения.

С чего начать делать игру? Твои первые шаги!

Это статья для тех, кто хочет сделать игру, но не знает с чего начать.

Я постараюсь, по шагам, объяснить весь процесс от желания до релиза. Погнали!

Меня зовут Александр Дударев. Я гейм-дизайнер с 10-летним стажем. Работал в многих компаниях, например в Playgendary. Делал разное: и казуалки для мобилок, и танковый шутер для PC.

Теперь я инди-разработчик. Живу за счёт продажи своих игр. Выпустили 4 игры для PC и Консолей. Сейчас разрабатываю игру They Are Here: Alien Abduction Horror — хоррор от 1-го лица, про похищение пришельцами.

Шаг 1. Запасись энтузиазмом

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

Как пополнять запас энтузиазма? Смотри документалки, читай истории успеха разработчиков. Это мотивирует!

Например, вот классная документалка о инди-играх Indie Game: The Movie

Смотри по сторонам: на другие игры, фильмы, кино, на новые технологии. Желание изучить что-то новое или сделать что-то похожее — это то, что нужно.

Шаг 2. Собери команду или сделай всё сам!

Одному — проще. Проще придумать идею и принимать решения. Не надо спорить и описывать задачи. Сделать игру одному — возможно. Я например сделал 4 игры один.

С командой — лучше. Лучше получается качество. Твои решения критикуются, и результат улучшается. Можно распределить обязанности и сделать игру быстрее. Последнюю игру я делаю в команде со своей женой. Она отвечает за историю, критикует мои решения, помогает с артом, ищет стримеров.

Короче - есть команда, круто! Нет команды — делай всё сам, это не трудно.

Шаг 3. Сформулируй цель разработки

Очень важно понять — для чего тебе всё это?

1. Трудоустройство в геймдев компанию.

Продукт — портфолио. Приоритет - качество исполнения.

Вопросы: На какую должность хотим устроиться? В какую компанию(и)? Какими играми занимается компания(и)? Чему нужно научиться?

2. Научиться делать игры, освоить навык.

Продукт — опытный образец. Приоритет- новые знания.

Вопросы: Какой навык освоить? Как сделать какую-то конкретную штуку?

3. Рассказать о чём то важном.

Продукт — манифест. Приоритет - донести идею до масс.

Вопросы: Поймут ли мою идею? Как сделать продукт более массовым?

4. Сделать игру о которой мечтал.

Продукт — мечта. Приоритет — воплотить своё видение.

Вопросы: Что я хочу видеть? Чем можно пренебречь? Как закончить проект?

5. Построить свой бизнес.

Продукт — актив. Приоритет - получить доход.

Вопросы: Какие игры лучше продаются? Сколько времени займет разработка? Как сократить это время?

Цель может быть не одна. Цели могут меняться от игры к игре.

Короче - ты должен ответить на вопрос — зачем я делаю эту игру?

Шаг 4. Вспомни, что ты умеешь или любишь

Например, я и моя жена — фанаты фильмов ужасов про пришельцев. Типа «Знаки», «Мрачные небеса», «Секретные материалы». Поэтому нам проще работать над идеями и сценарием для They Are Here

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

Короче - твои умения и увлечения — это твои преимущества. Учитывай их при выборе платформы, движка, жанра игры. А пока, просто подумай над этим.

Шаг 5. Выбери платформу

Если просто, то есть 2 пути: Мобилки или ПК + Консоли.

Исходя из целей и умений нужно будет выбрать что-то одно. Это разные платформы, с разными играми, аудиторией и монетизацией.

Путь 1. Мобилки

- Массовая аудитория. Дети, пенсионеры, скучающие продавщицы. Это не геймеры. Всё должно быть очень понятно и просто.

- Играют по 1 — 5 минут. В перерывах, в очередях, на работе. Чтобы «убить время».

- Ценится простая яркая графика.

- Упор на простой, но залипательный кор-геймплей.

- Некоторые жанры (головоломки, аркады) — наиболее просты в разработке. Можно сделать небольшой прототип (1-5 уровней) и показать его работодателю, например.

- Не требуется красивая или сложная графика. Главное — чтобы было понятно.

- Простой геймплей и гейм-дизайн.

- Будет плюсом, если сам привык к мобильным девайсам и играм.

- Очень. Высокая. Конкуренция. Игр миллионы и почти все они — бесплатные. Игроки приходят только с рекламы. Нет рекламы — нет игроков. Нет денег.

- Монетизация. Нужно встраивать рекламу или внутри-игровые покупки в игру. Знать куда и как. Тестировать чтобы всё это работало.

- Аналитика. Нужно понимать что такое LTV. Почему он должен быть > чем CPI. Встраивать аналитику в игру.

- Будь готов делать по 20 прототипов или улучшать продукт, пока LTV не станет > CPI.

- Заработать денег небольшой команде, можно только с издателем. Я лично не знаю других путей.

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

Если решишься, узнай подробнее про:

- Гипер-казуальные игры (всё по теме гейм-дизайна и производства).

- Как найти издателя гипер-казуальных игр.

- Казуальные игроки (сложность казуальных игр и туториалы).

- Аналитика мобильных игр (CPI, LTV, Retention).

- Монетизация мобильных игр.

- Оптимизация мобильных игр.

- Google Play и App Store. Регистрация аккаунта разработчика. Правила и рекомендации. SEO.

- Рекламные медиаторы и сети (Iron Source, AdMob и т.п.).

- Сервисы рыночной аналитики мобильных игр (Sensor Tower, App Annie).

Путь 2. ПК + Консоли

- Играют по несколько часов. Дома. Чтобы погрузиться в игру.

- Ценится реалистичная или стильная графика.

- Упор на интересную историю или глубокий геймплей.

- Меньше конкуренция, чем на мобилках. Особенно на консолях.

- Легче получить игроков и отзывы.

- Можно хорошо заработать портировав игру на консоли, с помощью издателя.

- Не надо возится с аналитикой и монетизацией.

- С детства понятная платформа (ПК / Консоль) и аудитория (Геймеры).

- Аудитория любит авторские, творческие, интересные игры.

- Будет плюсом, если сам играешь на компе или приставке.

- Плохо заходят простенькие игры (головоломки, аркады). Геймеры хотят получить опыт, вжиться в роль. Залипнуть надолго. Игра не должна выглядеть как что-то на пару минут.

- Игры дольше в производстве. Но можно хитрить — делать маленькие игры, которые выглядят как большие, а также использовать готовые ассеты.

- Нужно поработать над интересной идеей. Найти отличительные черты (USP), которые выделят проект.

- Нужно продумать интересную историю или геймплей.

- Более сложный геймдизайн.

- Большая требовательность к качеству графики.

Короче - ПК, а особенно Консоли это элитный бутик. На полке лежит то, что хорошо сделано. Это конкуренция качества. Если хочешь заработать, то сделай интересную игру, и обязательно портируй её на консоли (через издателя). Подумай как сэкономить на производстве!

Если решишься, узнай подробнее про:

- Геймдизайн компьютерных игр.

- Как питчить игры.

- Что такое вертикальный срез.

- Steam. Регистрация аккаунта разработчика. Оформление страницы. Тэги. Правила и рекомендации.

- Маркетинг и продвижение инди-игр на Steam (рекомендую http://howtomarketagame.com/ ) Как сделать крутой постер, трейлер, скриншоты, ГИФки.

- Портирование игр на консоли.

- Издатели игр на консолях.

- Конкурсы и фестивали инди-игр.

- Работа с инфлюенсерами (ютуберами, стримерами).

- Сервисы аналитики тэгов и жанров (SteamDB, Steamspy, SteamCharts, Game Data Crunch).

- Сервисы рассылки ключей (Keymailer, Woovit)

Шаг 6. Узнай про производство игр в целом

Не важно какую платформу ты выберешь. Интересуйся тем Как Делают Игры

Рекомендую погуглить про:

- Игровые механики, жанры и сеттинги.

- Геймдизайн. Есть книга Джесси Шелла, она хорошая, но большая. Можешь гуглить про конкретный жанр.

- Кор-геймплей и Мета-геймплей.

- Левел-дизайн. Лучше гуглить про отдельный жанр.

- Пользовательский интерфейс (UI) в играх.

- Ассеты и маркетплейсы.

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

Шаг 7. Выбери движок и глянь уроки

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

Про выбор движка написано много статей — погугли.

Если ты один, и не знаешь языков программирования, рекомендую Unreal Engine 4. Почему?

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

Во-вторых, куча плюсов:

- Красивая графика «из коробки».

- Есть большой маркетплейс с гововыми ассетами

- Это популярный коммерчесский движок, на котором сделано очень много игр.

- Можно сделать игру под все платформы. Можно встроить рекламу, инапы, аналитику.

- Много уровков. Рекомендую канал "Unreal Engine Rus"

- Куча встроенных функций.

- Бесплатный до ляма баксов дохода.

Перед началом работы над игрой, сделай пару очень простых подделок «в стол».

Сделай змейку, пинг-понг и т.п. Пофиг на качество, пофиг на геймдизайн. Главное — попрактиковаться «на кошках», пощупать функции движка.

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

Короче - почитай про выбор движка. Потрать время на его изучие.

Шаг 8. Выбери жанр

Жанр — это твоя ниша. Жанр — это очень важно. Есть жанры, в которые никто не играет. А для некоторых нужно изучить много дополнительного материала.

Лучше выбрать жанр который:

- Популярен на платформе. Игры этого жанра часто покупают или скачивают. Используй сайты для аналитики жанров. Например, для Steam: "steamdb.info", "gamedatacrunch.com", "steamspy.com".

- Не слишком сложен в производстве. MMORPG — не твой выбор!

- Нравится тебе или команде. Ты разбираешься в нём или много играл в детстве.

Как только ты определилися с жанром — гугли всё по производству игр в этом жанре. Геймдизайн, графика, уровни, звуки. На что сделать акцент? Поиграй в лучшие игры в этом жанре. Посмотри видео об этом жанре.

Короче - выбери жанр и узнай про него всё что можешь!

Шаг 9. Придумай идею, концепцию, USP

Идея — ядро твоей игры. Зерно, из которого вырастет проект.

Какая идея хорошая?

- Понятная. Должна быть понятна каждому. Например, твоей маме.

Интересная. Уже хочется поиграть в это! Люди любят риск и новый опыт, который хотят, но не могут пережить в реальной жизни. Например GTA — это симулятор крутого парня, которым все хотят быть, но не могут.

- Популярная. Это не артхаус, не что-то странное или специфичное. Идея обращается к понятным образам из жизни или массовой культуры.

- Выделяющаяся. Такого раньше не было. Или было, но давно. Или в другом жанре. Или в другом стиле. Или плохо сделано.

Что поможет тебе в выборе идеи?

- Каталог игр на твоей платформе. Смотри что популярно. Думай как это изменить, подать под другим углом. Хмм…игра про постройку железной дороги в топе. А что если, мы играем за машиниста?

- Сайты-сервисы с аналитикой тэгов и жанров на платформе. Можно отследить популярность жанра, количество игр в нем. Можно скрестить отдельные тэги между собой.

- Массовая культура. Фильмы, книги, комиксы, короткометражки, гифки, картинки из интернета.

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

Идея может казаться масштабной. Но она должна умещаться в Питч, чтобы быть понятной игрокам, прессе и твоей маме.

Питч — короткое предложение, описывающее идею. Например, They Are Here — ужастик про похищение пришельцами. Почитай подробнее про то "Как питчить игры".

На основе Питча, описываем концепт игры. Более развернутое описание игры на одну страничку. За кого мы играем? В чем цель? Что можно делать? Какие эмоции вызываем?

Продумай отличительные черты — USP, которые будут наглядно "продавать" твой проект.

USP вытекают из твоей идеи. Например, идея Панка — издевательство над культурой. USP Панка: вызывающее поведение, агрессивная музыка и странные прически.

Показывай свои USP везде — в трейлере, скриншотах, постере, описании игры. Говори про них общении с прессой и издателями.Тычь ими в лицо!

Например, у They Are Here — это пришельцы, кукурузные поля и огни в небе.

Кароче - почитай про идею, концепцию, питч, USP игры. Сформулируй чёткое видение твоего проекта и доноси это видение до всех. Без него — всё развалится и поплывет.

Шаг 10. Составь список ассетов и задач

Ассеты — это кирпичики, из которых состоят игры.

Составь список того, что нужно сделать. Хотя-бы крупными мазками. Сделать уровнь, найти музыку, вставить персонажа. А еще надо 20 видов мечей.

Оцени время, а потом умножь его на 2. Даже если тебе кажется это глупым. Умножь его в 2 раза!

Если видишь, что проект большой — отрезай всё ненужное. Ненужное — всё, что не показывает идею. Или редко появляется на экране.

Например, если идея игры — ультра-насилие, то можно не делать 20 видов мечей, а лучше проработать физику расчленения тела.

Прикинь, что для мобильных гипер-казуалок нужно сделать минимум 30 минут геймплея. А для ПК и Консолей, лучше сделать игру на 2 часа. Если можешь больше — круто!

Настоятельно рекомендую!

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

Шаг 11. Организуй процесс

Записывай, всё что надо сделать. Каждую мелочь. Иначе — забудешь.

Ставь задачи. Себе и команде. Рекомендую Trello (проще) или Asana (функциональнее).

Cобирай инфу по проекту в одном месте. Можно юзать доски типа “Miro” или вики типа Notion.

Если ты один, или у вас небольшая команда, не парься над большой и красивой документацией. Лучше покажи пример, начерти схему, объясни на пальцах ЧЁ НАДО сделать.

Референс — лучшее описание задачи для художника! Например, я сказал жене — хочу обложку как у Слендера, но с пришельцем. Этого — достаточно!

Собирай и храни нужную инфу. Ссылки на классные статьи. Контакты возможных партнёров. Скриншоты багов. И т.п.

Шаг 12. Сделай демку

Демо-версия / Вертикальный срез / MVP — очень близкие по смыслу понятия. Это маленький кусочек игры финального качества.

Демо-версия решает множество задач:

- Поможет записать видео, скриншоты, гифки

- Покажет окупаемость мобильной игры

- Поможет устроиться на работу

- Ускорит набор вишлсистов в Steam

- Получит отзывы от игроков и стримеров

- Можно участвовать в фестивалях и конкурсах

-Только с ней можно найти издателя.

Короче - сделай демонстрационную версию игры. Это твоя визитная карточка. Показывай её всем. Говори — я сделаю так-же, только больше.

Шаг 13. Не ленись! Работай!

Пара советов, как дожить до релиза:

- Не меняй идею на ходу. Сильно. По чуть-чуть можно.

- Не начинай другие проекты. Не распыляйся. Делай, что запланировал.

- Составь график работы. Работай над игрой постоянно. Хотя бы по 3 дня в неделю, по 2 часа в день. Больше — быстрее!

- Надоела разработка? Поиграй в похожие игры. Посмотри похожие фильмы. Найди, что было бы круто сделать.

- Всё равно надоела? Мечтай о релизе. Представь как это будет здорово и вечно!

- Показывай свою работу — пиши посты, пости гифки, давай поиграть стримерам. Твоя цель — получить позитивную обратную связь. Ну или отрицательную.

- Узнавай что-то новое про производство игр. Слушай подкасты, смотри доклады. Это мотивирует, помогает в производстве.

Спасибо, что дочитал!

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

Короче - ты можешь сделать это! Реально!

Asus Rog Fron Base

Всем доброго времени суток, чукча особо не писатель, но я решил сделать этот пост, если кто-то имеет подобный реобас от Asus, но страдает ибо в Linux не подключить, особенно если нету разъема ROG_EXT.

На попытки обращения в асус за помощью, получил отказ, поэтому потратил 2 дня на разбор.

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

PS: админы, если ссылку на гит нельзя, то удалите.UPD я доломал ее и нашел все остальные параметры, скоро будет обнова!

Продолжение про самолет из потолочной плитки

Схема подключения приемника:

Здесь к blue pill подключается радиомодуль, контроллер двигателя и две сервомашинки. Аккумулятор подключается к контроллеру управления двигателя, на нем стоит стабилизатор на 5 вольт, с которого берется питание для управляющей электроники. Сервомашинки также запитываются с этих 5 вольт. Радиомодуль питается от +3,3 вольт со стабилизатора blue pill. Здесь имеется делитель напряжения, который подключен к аккумулятору, для контроля его напряжения. Информация шлется на пульт управления.

Программа для приемника: тут

Схема подключения пульта управления:

Здесь чуть побольше компонентов. Аккумулятор подключается на порт +5 вольт blue pill. Для зарядки аккумулятора к нему подключен модуль зарядки. С blue pill при помощи 3,3 вольт запитывется экран, радиомодуль, джойстики. Потенциометры джойстиков подключены к каналам АЦП blue pill, их тактовые кнопки и остальные две подключены на остальные порты в режиме вход.

Пульт управления внутри:

Программа для пульта управления: тут

Пульт в собранном виде:

В меню пульта 4 строки: 1 строка - это режим полета, во 2 строке просто отображаются данные АЦП и т.д. в 3 строке настраиваются чувствительность рулей и субтример (начальное положение элевонов), в 4 строке ничего нет (можно добавить).

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

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

Расскомментировав эти строчки в main.c (до надпсиси END OF DEBUG_RC OUT):

пульт можно подключить по USB к ПК при помощи любой Terminal программы (я пользовался CoolTerm), в которой нужно выбрать COM порт и присоединится к blue pill:

и в окне получить информацию о подключении радиомодуля:

Считывая установочные данные, записанные в регистры радиомодуля, можно убедиться, что модуль работает и данные совпадают с установленными. В данном случае я получил статус работы радиомодуля, его мощность передачи (максимальная), номер канала (11), скорость передачи (1 Мбит в секунду), размер передаваемого пакета (32 байта - максимальный) и количество бит контрольной суммы (в моем случае 16 бит). Если модуль не подключен или неисправен в терминал выводит такое сообщение:

Зайдя сюда в подменю Settings:

в терминал посыпятся такие строчки:

Здесь данные в таком порядке: X1: значение c АЦП правого джойстика по вертикали, Y1: значение c АЦП правого джойстика по горизонтали, значение с АЦП левого джойстика, которым управляется двигатель, значения только по вертикали, далее напряжения аккумулятора пульта, напряжения аккумулятора на приемнике, значение кнопки правого джойстика, значение кнопки левого джойстика, значения кнопок что находятся справа на пульте, субтример, чувствительность 1 и 2 (2 не используется), а также статус связи с приемником.

Как видно сигнала нет, так как примник был отключен. Также я зажал кнопку правого джойстика и просто левую кнопку, они выдают "1".

Включаю приемник и перевожу правый джойстик в правый верхний угол:

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

АЦП на Blue Pill имеет разрешение 12 бит, максимальное значение котрого 4095, но в терминале видно, что оно 255, все потому что я 12 бит перевел в 8 бит (1 байт), так как один элемент массива передоваемого пакета равен 1 байту, чтобы одним байтом можно было слать значения одной из осей джойстика.

Аналогичным образом можно подключить приемник к ПК, узнать статус радиомодуля и получаемые данные с пульта, в main.c расскомментировав эти строчки:

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

Крыло сложно в управлении (по-моему мнению) по сравнению с моделями, имеющими хвост со стабилизатором и килем.

И наконец, то, чего мы так долго ждали. Видео полетов. К сожалению, видео очень короткое, так как полет был недолгий.

В ВИДЕО ПРИСУТСТВУЕТ ПАРУ ПЛОХИХ СЛОВ!

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

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

Ссылки на товары которые я использовал:

Отладочная плата Blue Pill

Набор из контроллера, двигателя винта и сервомашинок

Стики от FlySky

Экран от Nokia 5110

Уроки Ардуино. Прерывания таймера

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

Python для новичков

Переведено с reddit

Большой урок по цифровой фильтрации данных

В уроке разобраны самые простые и популярные цифровые фильтры данных применительно к C++ и Ардуино:

- Линеаризация наименьшими квадратами

Фильтры протестированы на синтетическом "шумном" сигнале

Не сегодня.

Попытался как-то вчера почитать про программирование и.

Никакой документации, только интуиция

Rabbit Hole - последние новости разработки

Привет всем, кто следит за нашей игрой и тем кто случайно наткнулся на мой пост.

Rabbit Hole - это наш с другом проект в жанре survival horror, который мы делаем уже на протяжении года. В данный момент завершаем работу над первыми двумя сценами из 4х запланированных.

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

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

Работы еще предстоит много и мы все непременно постараемся довести до ума. Свет, шейдеры и эффекты на камере еще не настроены. Это будем подкручивать на финальной стадии разработки. Если кому то интересно, можно ознакомится с трейлерам игры. Из за смены названия проекта, пришлось перезолить его заново на Youtube и теперь он не доступен в моем предыдущим посту.

Зарегистрируйтесь, чтобы:

👀 Скрывать просмотренные посты

💬 Общаться в комментариях

👍 Голосовать за лучший контент

📝 Делать собственные посты

💌 Подписываться на интересные темы

🔥 Получить стартовые 100 рейтинга

Если у вас возникли сложности с восстановлением пароля, то прочитайте эту статью. Или напишите в службу поддержки на [email protected] .

В письме укажите данные вашего профиля: никнейм, почта, номер телефона, какие посты вы оценивали. Это ускорит восстановление пароля :)

📎📎📎📎📎📎📎📎📎📎