Моя любимая игра – Лего. Когда я был ещё дошкольником, мой брат на скретче создавал для меня обучающие программы – «Найди букву», «Реши пример» и другие. Несколько лет я наблюдал, как он создаёт программы, мне было очень интересно, так как программирование в этой среде было очень похоже на конструирование в Лего – те же блоки, но я не мог даже предположить, что сам смогу программировать. Брат мне рассказал, как работает среда, как можно менять коды. Сначала, у меня получались совсем некрасивые, с маленьким количеством функций работы. В дальнейшем, я создал свой профиль в Скретче, разработал свои программы, а также начал осваивать программирование в Юнити. Мне стало интересно сравнить программирование на Скретче и на Юнити.
Гипотеза: проекты на Юнити работают лучше чем проекты на Скретче
Цель: сравнить игры, написанные на Скретче и на Юнити.
Задачи:
Изучить программирование на Скретче и Юнити.
Разработать игры на Скретче и Юнити.
Разработать критерии для проведения сравнительной характеристики.
Сравнить игры по критериям, сделать выводы.
Scratch – это язык программирования, который доступен всем возрастам.
На Scratch можно программировать истории, игры и анимацию, общаться с людьми со всего мира. Scratch сейчас работает онлайн и написан на Flash. Также есть приложение Scratch которое можно скачать с интернета. А Flash – популярная мультимедийная платформа для создания веб-приложений или мультимедийных презентаций. Scratch содержит несколько графических закладок – скрипты, костюмы, звуки. В этих закладках выбираются нужные команды, действия, отображение, звуковое оформление и другие параметры. Результат готового проекта показывается в общем окне.
Мне очень нравится программировать в Scratch еще и потому, что эта среда – продолжение идей моего любимого конструктора Лего, так как программирование тоже происходит блоками. (Рис. 1)
Рис. 1. Пример кодов для программирования
(Ссылка на проект: https://scratch.mit.edu/projects/108341035/#editor)
Сегодня завершена работа над следующими играми «3D платформер», «Дракон против инопланетян» (см. Приложение) и «Smiles and Spikes Game» .Но за время подготовки я создал свой профиль (AllSeek) (рис. 2) и работаю и над другими проектами. Игры вырабатывают хорошую реакцию и поднимают настроение. Первые завершённые мои программы-игры «3D платформер» и «Дракон против инопланетян» были отмечены жюри на конкурсе «Мастер IT-2016», где я стал призёром. У меня уже есть подписчики и отзывы в моём профиле.
Рис. 2 Страница моего профиля в Scratch
(Ссылка: https://scratch.mit.edu/mystuff/)
Также я изучаю движок Unity, который позволяет делать трёхмерные и двумерные игры практически для любой платформы. В отличие от Скретча, для работы в Юнити необходимо было изучить язык программирования С# (Си шарп). Для сравнения я разработал на Юнити аналогичную игру.
Рассмотрим критерии для сравнения:
Качество рисунка.
Качество анимации
Скорость выполнения задачи.
Сложность программирования.
Проведём сравнение по разработанным критериям:
КАЧЕСТВО РИСУНКА.
В Scratch есть две графики для рисования: растровая и векторная. В растровой все получается немного пиксельным. (Рис. 3)
Рис.3 Пример рисунка в растровой графике.
А в векторной графике такого нет.
Рис. 4. Пример рисунка в векторной графике
В Юнити же только растровая, но пиксели не заметны. (Рис. 5)
Рис. 5. Пример рисунка в растровой графике на Юнити
КАЧЕСТВО АНИМАЦИИ
Я бы хотел сказать, что на Scratch анимация хорошая, но она часто как будто притормаживает. А на Юнити она работает без остановок. Это связано с тем, что в Скретче объекты анимируются по кадрам, а переход к другому действию на Юнити происходит плавно
СКОРОСТЬ ВЫПОЛНЕНИЯ ЗАДАЧИ.
На Скретч если проект большой , то плагин может зависнуть. Так, что наберитесь терпения. А в Юнити все загружается намного быстрее.
Для определения максимального количества объектов, я создал переменную, задал период появления объектов 0,01 с. В результате, за одно и
то же время в Юнити было создано почти 6800 объектов , а в Скретче -
Рис. 6. Создание объектов на время в Юнити.
около 5100, что означает, что Скретчу требуется больше времени для создания объектов.
Рис. 7 Создание объектов на время в Скретче.
СЛОЖНОСТЬ ПРОГРАММИРОВАНИЯ.
В Скретче почти все программирование осуществляется блоками, на которых подробно все написано. Рис. 8. Программирование блоками в Скретче.
А в Юнити вся программа состоит из команд языка С# (си шарп)
Рис. 9. Пример программы на Юнити
Заключение.Таким образом, сравнив возможности программирования на Скретче и Юнити, я подтвердил свою гипотезу, что проекты на Юнити работают лучше, чем на Скретче, возможностей программирования у Юнити больше. Таким образом, можно рекомендовать тем, кто только начинает программировать, освоить Скретч, а затем перейти на Юнити.
Я планирую продолжить программирование на Юнити, в разработке ещё одна программа, пока не всё задуманное получается, поэтому стараюсь изучить особенности языка С# (си шарп).
Глоссарий:Скретч— визуальная объектно-ориентированная среда программирования для обучения школьников младших и средних классов.
Unity — это инструмент для разработки двух- и трёхмерных приложений и игр, работающий под операционными системами Windows, Linux и OS X.
Компьютерная анимация — последовательный показ (слайд-шоу) заранее подготовленных графических файлов, а также компьютерная имитация движения с помощью изменения (и перерисовки) формы объектов или показа последовательных изображений с фазами движения.
Ве́кторная гра́фика — является набором объектов, которые описываются формулами: точки, линии, круги и окружности, многоугольники.
Растровое изображение — изображение, представляющее собой сетку пикселей — цветных точек (обычно прямоугольных) на мониторе, бумаге и других отображающих устройствах.
Пиксель представляет собой неделимый объект прямоугольной или круглой формы, характеризуемый определённым цветом
Flash– популярная мультимедийная платформа для создания веб-приложений или мультимедийных презентаций
Список литературы.Е.Д. Патаракин. Учимся готовить в среде Скретч. Придумай — Запрограммируй — Поделись
В.Г Рындак, В.О. Дженжер, Л.В. Денисова. Проектная деятельность школьника в среде программирования Scratch. Учебно-методическое пособие / Оренбургский государственный институт менеджмента. — Оренбург, 2009.
Д.В. Голиков, А.Д. Голиков. Книга юных программистов на Scratch. — SmashWords, 2013. — ISBN 978-1310227554.
Создание игр на движке Unity http://lazer.marialazareva.com/lessons/lesson1/index.html
ОПИСАНИЕ ИГР, РАЗРАБОТАННЫХ АВТОРОМ НА СКРЕТЧЕ
Игра «Дракон против инопланетян» создавалась очень долго.
Рис. 1. Главная страница игры «Дракон против инопланетян»
(Ссылка на проект: https://scratch.mit.edu/projects/69127108)
Сам дракон у меня получался в плохом качестве, так как я его рисовал в растровой графике. После того, как мне удалось освоить векторную графику, дракон стал выглядеть намного симпатичнее.
Рис. 2. Графика для главного героя игры
Цель игры – пройти все уровни, сохранить при этом здоровье.
В игре используются клавиши «Пробел», «0» и мышь.
Действие игры: ты играешь за дракона. Дракон следует за мышкой.
Алгоритм программирования можно посмотреть в скриптах.
Рис. 3 Пример алгоритма, используемого в программе.
Например, вот блок, который отвечает за вход и выход дракона из жилища и его движения за мышкой.
Изначально у дракона 100 здоровья, а энергии и скорости перестрельности – ноль.
Рис. 4 Скрипт, который отвечает за потерю здоровья дракона.
Здоровье теряется в том случае, когда на дракона нападает инопланетянин. Дракон может стрелять огнём. Блок, который отвечает за функцию стрельбы огнём, представлен на слайде. Каждая победа над инопланетянином прибавляет энергию.
Рис. 5 Скрипт для увеличения ресурса скорострельности.
Если дракон набирает достаточно энергии:
во-первых, он может подойти к Главному дракону, отдать ему энергию, взамен увеличить скорость перестрельности;
во-вторых, он может подойти к колодцу жизни, обменять энергию на здоровье (блок, в котором я программировал колодец почти такой же, как и для Главного дракона).
Игра заканчивается либо когда пройдёшь все уровни, либо когда потеряешь всё здоровье.
Инопланетяне разные:
обычные (фиолетовые) – движутся за драконом, при соприкосновении у дракона теряется здоровье. Победить его можно огнём;
красный – его нельзя победить огнём, только налететь на него, иначе он отнимает энергию;
невидимый – на определенном расстоянии от дракона становится невидимым, если подходит близко к дракону – отнимает здоровье и появляется. Победить его можно огнём;
инопланетянин-клон – создаёт свои копии, прячется за ними. Победить его можно огнём, но только тогда, когда он не создаёт копии, в это время при соприкосновении может теряться здоровье;
метеор – отскакивает от стен. Победить можно после того, как одержишь победу над всеми другими инопланетянами, в этом случае он сам убежит;
зелёный – раздувается и прикрывает собой других инопланетян. Победить можно огнём.
летающая тарелка – может телепортироваться, таранить дракона, который при этом теряет здоровье. Летающая тарелка стреляет лазером и выпускает ракеты, которые можно уничтожить огнём.
Рис. 6 Пример одного из уровней. Летающая тарелка и ракеты.
Игра может понравиться и детям и взрослым.
Вторая игра «3D платформер». Ссылка на проект: https://scratch.mit.edu/projects/73321654/
Рис. 7 Первый уровень платформера.
Цель игры – пройти все уровни.
Используются клавиши «стрелка вверх», «стрелка вправо», «стрелка влево», «R»
Действие игры: ты играешь за героя. В игре 8 уровней и 2 бонусных. Все уровни разные. Герою нужно подпрыгивать и ходить направо и налево, преодолевая препятствия.
Рис. 8 Скрипт, который позволяет герою двигаться.
Весь огромный представленный на рисунке 10 скрипт позволяет персонажу идти и подпрыгивать. Этот разработанный мной блок я и использовал для сравнительной игры.
Игра вырабатывает хорошую реакцию и поднимает настроение.
Во всех играх рисунки мои.