Игры, в которых нужно писать код (часть 2)

Популярные языки для создания игр в GameDev

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

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

C++

  • Отличается многообразием и функциональностью, позволяет проводить операции по объектно-ориентированному, процедурному и обобщенному программированию.
  • Основное преимущество С++ — обширная стандартная библиотека, содержащая такие функции, как ввод/вывод и многопоточность и обеспечивающая возможность удобной алгоритмизации и контейнирования.
  • C++ одинаково эффективно применяется на самых различных платформах и успешно комбинируется с другими средствами создания игровых программ.
  • Изучение С++ — процесс достаточно сложный и требующий от начинающих программистов больших усилий.

C#

  • Язык пользуется популярностью в геймдеве благодаря своей полной объектной ориентированности.
  • Применяется для разработки игровых продуктов на ПК (в частности, на платформе .NET Framework).
  • Хорошо работает с движками и программами для создания графического и звукового оформления.
  • Обеспечивает поддержку полиморфизма, перезагрузки операторов и позволяет разработать все необходимые элементы, такие, как архитектура и логика, требуемые для создания полноценной игры.

Java

  • Язык используется для проработки логики и механики мобильных игр, особенно для продуктов, предназначенных для Android.
  • Популярность этого языка обусловлена его многопоточностью и возможностью беспрепятственного взаимодействия с памятью мобильных устройств.
  • Отличается хорошим взаимодействием с движками и программами графического и звукового оформления.
  • На Java часто реализуют серверную структуру для многопользовательских игр.

Специфика профессии

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

  • инструмент Unity и другие движки, которые необходимы для создания 2D и 3D игр;
  • объектно-ориентированное программирование;
  • изучение языка программирования C#, Ajax и других;
  • оптимизация 2D и 3D игр;
  • 3D редакторы;
  • этапы проектировки игрового процесса, прорисовки, визуализации, анимации, физики и других аспектов игры; 
  • основы разработки игр для мобильных устройств и многое другое.

Gamedev – универсальный специалист, который после обучения должен уметь создавать анимацию, визуальные эффекты, концепцию игры, дизайн, знать основы моделирования и юриспруденции. Да, разработчик, который работает сам на себя, должен уметь не только защищать, но и запатентовать разработанную игру или ПО для нее.

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

2D анимация

У вас есть два варианта для создания 2D анимации:

  • Кадр за кадром. Здесь вам придется рисовать каждый кадр анимации и затем соединять их воедино. Для этого вам следует использовать спрайт- листы вместе с TexturePacker (или, если вы используете Unity — Sprite Packer).
  • Скелетная анимация. Нарисуйте все нужные конечности объекта и затем анимируйте, меняя их положение относительно предыдущего состояния. Этот способ анимации быстрее, проще и сэкономит место на вашем жестком диске, по сравнению с анимацией «кадр за кадром». Если вы решили создать 2D анимацию и используете движок Unity — попробуйте начать с анимации спрайтов или Anima2D.

Насколько безопасна безопасность автономных автомобилей

Перевод

«Какого уровня безопасности будет достаточно?» Этот занудный вопрос возникает в любом обсуждении беспилотных транспортных средств. Многие автопроизводители отложили свои планы по освоению рынка беспилотного транспорта в долгий ящик, а вместе с ними и усилия по решению вопросов безопасности. Впрочем, в наши дни системы ADAS и их технологии становятся более популярными на рынке беспилотного транспорта, а значит автопроизводителям вновь придется задуматься о допустимом уровне безопасности транспортных средств. Американская автомобильная ассоциация (ААА) заявила, что индустрия настолько далека от безопасности использования ADAS, что OEM-производители тоже должны отложить все в сторону и направить все усилия в сторону этих систем.

Разработка hardware-продуктов — что и как устроено

Привет, меня зовут Дмитрий Каржицкий, я работаю QA Lead в белорусском hardware-стартапе Rozum Robotics. Недавно вместе с Университетом Иннополис мы провели митап, посвящённый разработке hardware-продуктов. По следам митапа хочу рассказать про специфику разработки и тестирования роботов и про особенности организации работы в hardware-стартапе.

Кажется, что сфера hardware менее заметна, чем software, как минимум по количеству упоминаний. У всех на слуху разработчики в области веб- и мобильных приложений, которые пишут код на макбуках, попивая смузи. А у hardware специалистов скорее образ классического бородатого инженера, который может и плату спаять, и код написать. Если с задачей на разработку софта верхнего уровня хороший Java-программист должен справиться, то в embedded без понимания железа не обойтись.

Разработку новых продуктов, в том числе и в hardware, можно разделить на два больших направления: коммерческие продукты (стартапы) и научно-исследовательская деятельность (R&D). Процессы и подходы к разработке и тестированию могут быть похожи, отличаются задачи и масштаб. Продукт разрабатывается для конкретных пользователей на основе идеи и исследования, что потенциальным клиентам нужна ваша разработка. В таком подходе больше рисков. Один из рисков — сложность масштабирования продукта. Выпустить новую версию приложения недорого, а создать копию робота всё ещё довольно сложно и дорого. О других рисках я расскажу ниже.

Примеры из процесса разработки будут на основе коллаборативного робота-манипулятора (кобота) PULSE. Это такая подвижная железная рука, которую можно запрограммировать под разные задачи.

Unity

Стоимость лицензии: Бесплатный стартовый пакет, 35 долларов в месяц за пакет Unity Plus, 125 долларов в месяц за пакет Unity Pro

Подойдёт для: практически любой инди-игры

Примеры игр: Ori and the Blind Forest, Galak-Z, West of Loathing, Cuphead

Unity – это одна из главных платформ для разработки популярных инди-игр, и хотя она имеет впечатляющие 3D-возможности, на ней было создано немало потрясающих 2D-игр. Unity более сложен в освоении, чем остальные движки из данного списка, однако обширное сообщество разработчиков и огромное количество обучающих гайдов, которые можно найти в сети, помогут вам приступить к работе.

На официальном сайте Unity можно найти и специальные дополнения, позволяющие кастомизировать движок для разработки 2D-игр. К примеру, бесплатное расширение 2D Platformer или инструменты вроде Corgi Engine и Rex Engine, предлагающие игровую физику, управление и особенности, заточенные специально под платформеры.

Мы поговорили с Джозефом Хамфри из inkle и Виктором Томпсоном из Asymmetric Publications, которые рассказали о своём опыте работы с Unity.

Плюсы

Томпсон, ранее создававший игры классическим способом, быстро стал поклонником Unity – движка, на котором была создана недавно вышедшая игра его компании под названием West of Loathing. «После 2-3 лет работы с движком больше всего меня радует то, насколько быстро можно совмещать концепты и прототипы», говорит он. «Я использовал множество различных движков – как небольшие для своих собственных проектов, так и крупные для разработки AAA-игр, однако Unity – это пока что лучший из всех движков, что я видел, так как он позволяет мне быть наиболее продуктивным».

Минусы

Впрочем, если вы собираетесь использовать одну платформу для всех своих разработок, вы столкнётесь с определёнными ограничениями. Если вы найдёте баг в Unity, вам придётся ждать, пока авторы движка его исправят, и это не всегда быстро. «Несмотря на то, что представители движка заявляют, что исправление багов является их важнейшим приоритетом, разработчики компании inkle по-прежнему считают стабильность дебаггинга одной из главных проблем движка», говорит Хамфри.

Чтобы сделать игру, вы должны пройти 6 этапов разработки: Разработка идеи. Арт. Программирование. Звук. Шлифовка. Публикация.

Каждый из этапов я структурировала следующим образом:

  • Совет. Здесь, я буду давать вам советы, основываясь на своем и чужом опыте.
  • Ресурсы. Также, я буду прикреплять ссылки на те или иные ресурсы, которые будут вам наиболее полезны.

Этап №1: Разработка идеи

Совет

У вас есть отличная идея! Как вы ее запишите?

Каждый рано или поздно найдет для себя наиболее подходящий способ записи: кто-то будет писать 60-страничные проекты и документы, а кто-то, как я — писать кучу заметок на одной странице, понятные мне одной. Я не знаю, какой способ вы выберете, но я могу дать вам несколько советов о том, что нужно прописывать:

Изюминка. Почему вы считаете идею своей игры превосходной? Для меня это наиболее важный пункт в проекте. Как только вы определитесь с «изюминкой» вашей игры — прописать оставшиеся пункты проекта не составит вам большого труда! Ваша игра заставляет над чем-то задуматься? Может быть она скандальна? Или же это ремейк классики прошлого? Или это нечто новое, что никто и никогда не разрабатывал?

Механика. Что, как и с какой целью делает ваш игрок — это и есть геймплей вашей игры. Например: клавиши QWOP могут использоваться для простого перемещения или общения в «мистическом чате» игры, но также они могут быть использованы для составления множества боевых комбинаций, как в игре «Dwarf Fortress».

Сюжет. Какую историю вы хотите рассказать всем тем, кто будет играть в вашу игру? Какие эмоции они будут испытывать? У каждой игры есть своя история. Если сюжет вашей игры не так очевиден — придумать ее сможет и сам игрок. История может быть придумана в игре про числа «2048». Игрок, играя в популярную стратегию «Civilization», может сам придумать историю становления своего государства. Даже в игре «Monument Valley», с ее безмолвием, каждый додумывает свою историю. Подумайте, какую историю расскажет ваша игра?

Настроение

Какое впечатление окажет ваша игра на игроков? Каково будет ее графическое оформление? Какой звук? Первое впечатление об игре очень важно — игра может «зацепить» пользователя с первых минут и в итоге он будет играть в нее и дальше. Возможно вы сделаете вашу игру в стиле ретро: с пиксельной графикой и музыкой в стиле ретро-вейв

А возможно, вы выберете ультра-современный дизайн, с плоской геометрией объектов, «чистыми» текстурами и инструментальной музыкой.

*Сложно придумать хорошую идею для игры? На этом этапе всем нам бывает очень сложно что-то придумать. Что же делать?

  • Присоединяйтесь к игре hackathon/jam. Вам и другим участникам будет поручено сделать игру за короткий промежуток времени. Во время участия в хакатоне вы встретите единомышленников, которые будут поддерживать и помогать вам. А что насчет творческого волнения и конкуренции во время работы? Все это благоприятно скажется на вас и на ваших навыках! Не знаете с какой площадки начать? Рекомендую попробовать Ludum Dare — одну из самых больших площадок для разработчиков!
  • Записывайте все свои идеи! Я и многие другие разработчики, которых я знаю, записываем все свои идеи. Таким образом, когда вы не сможете ничего придумать, вы сможете вернуться к своим старым идеям и мыслям и что-то из них почерпнуть!

Когда вас неожиданно посещает муза или появляется вдохновение — отложите свои дела и запишите все мысли и идеи! И когда вы впадете в творческий ступор, вам не придется высасывать идеи из пальца.

Code.org

Платформа: WebРусский язык: ЕстьВозраст: 4+

Именно на основе этих игровых курсов от Microsoft проводятся большинство занятий ежегодной акции «Час Кода». Курсы разбиты на множество уроков разного уровня сложности, охватывающих базовые концепции программирования. Визуальный язык Scratch позволяет сфокусироваться на главном — структуре кода, вместо особенностей синтаксиса того или иного «настоящего» языка программирования. Интересно, что каждый год проект выпускает новые курсы, стилизованные под популярные детские игры и фильмы: от Minecraft и Angry Birds до Frozen и Звездных Войн. Если нужен более или менее академический и систематизированный подход к обучению — вам сюда.

CodeFights

https://codefights.com/
Язык: множество языков

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

Наиболее известные игры для программистов

Бои в памяти

  • Дарвин — компьютерная игра для программистов, в которой сражались несколько ассемблерных программ до момента, пока одна из программ не захватит всю память.
  • Бой в памяти — разновидность компьютерной игры «Дарвин», где программы написаны на язык Redcode и работают под управлением Memory Array Redcode Simulator.

Управление боевыми роботами

  • C Robots
  • Pascal Robots
  • Robocode — битва роботов-танков. Программы можно писать на Java или .NET.
  • Robot Battle
  • Robotwar
  • Robot Warfare 1 — битва роботов на 2D поле.
  • Scalatron — соревнование роботов на арене. Сражение роботов предусмотрено, но для победы сражаться не обязательно. Программы пишутся на Scala или Java.
  • Grobots — игра-стратегия, в которой пишутся программы для управления командами роботов. Программы управления роботами пишутся на диалекте языка программирования Forth. Игра может быть использована для обучения и изучения Forth.

Прочие

  • Colobot — трёхмерная обучающая стратегическая игра, в которой можно запрограммировать роботов на встроенном языке.
  • Ceebot — серия трёхмерных обучающих игр для детей, созданных на основе игры Colobot и ориентированных на использование в школах.
  • Robot Auto Racing Simulator или RARS — трёхмерный симулятор гонок между запрограммированными гоночными автомобилями.
  • TORCS — автосимулятор, основанный на RARS, и пригодный как для обычной езды, так и для соревнования между запрограммированными гоночными автомобилями.
  • Snake Battle — «визуальное» программирование боевых змеек.
  • Война вирусов — игра, имитирующая развитие двух колоний вирусов, которые развиваются сами и уничтожают друг друга.
  •  — командные соревнования, целью которых является оценка умения участников атаковать и защищать компьютерные системы.

Издатель/подписчик для распределённых отказоустойчивых бортовых систем реального времени в 1500 строк кода

Сап, котятки.

Я пришёл рассказать о проекте UAVCAN — новом сетевом стандарте для организации взаимодействия узлов и компонентов современных транспортных средств с высоким уровнем автономности/автоматизации. Название является акронимом от Uncomplicated Application-level Vehicular Communication And Networking (несложные бортовые сети и коммуникации уровня приложения).

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

Конъюнктура

Мы наблюдаем быстрый рост сложности бортовых систем, связанный с развитием функциональных возможностей транспортных средств (особенно беспилотных) в целом, и систем автоматического управления в частности.

Robotino

Robotino — робот, созданный Festo Didactic для обучения робототехнике. Для программирования робота требуется программа Robotino View. На сайте Festo доступен симулятор робота для Windows — Robotino SIM (есть профессиональная и бесплатная версия, бесплатная — немного урезанная по функциональности).

Немного о роботе, который встроен в симулятор. В его состав входят три двигателя, которые позволяют перемещаться роботу по плоскости в любом направлении. Сенсорная система робота включает девять инфракрасных сенсоров расстояния, два цифровых оптических сенсора и камеру. Программировать робота можно с помощью C/C++, Java, .NET.

Вообще, способности бесплатного симулятора удручают. Но! Если хорошенько поискать в интернете, то можно найти версии данного симулятора, заточенные под разные задачи. Да будет тебе известно, что компания Festo Didactic выступает одним из спонсоров RoboCup. Поэтому здесь goo.gl/Wtle15 и здесь goo.gl/pHA2oL ты сможешь найти версии этого симулятора, использовавшиеся в соревнованиях.

Что мне потребуется?

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

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

Я в ужасе и собираюсь передумать. Нельзя попроще?

Можно. Специально для тех, кто никогда не держал в руках паяльник, но очень хочет попробовать себя в робототехнике, существуют специальные наборы-конструкторы, позволяющие сделать всё то же самое, но быстрее. Самый известный и популярный — Arduino. Его главное преимущество в том, что это не просто игрушка, а целая экосистема: множество обучающих материалов и инструкций, видеокурсы, огромное пользовательское комьюнити — можно задать любой вопрос от новичкового до самого продвинутого. Есть и другие платформы — например, совсем простой конструктор Mindstorms от Lego.

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

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

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

У нас было десять разбитых дронов за год, тестовые полеты два раза в день, три кандидата технических наук в команде, прототип из палочек для суши и желание найти способ больше не бить дроны.
Очень спорно, очень необычно, очень странно, но работает! На стыке архитектуры, коллаборативной робототехники и беспилотных летательных аппаратов. Представляем: Tensodrone.
Tensodrone (Тенсодрон) — беспилотный летательный аппарат (БПЛА) мультироторного типа новой конструкции с защитой от столкновений, сделанный по принципу тенсегрити. Такой подход позволяет повысить устойчивость к ударам при меньшей массе, совместив защитную клетку и конструкцию несущей рамы.
Проект является ярким примером взаимодействия различных команд Центра компетенций НТИ по направлению «Технологии компонентов робототехники и мехатроники» на базе Университета Иннополис.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector