III Международный конкурс
научно-исследовательских и творческих работ учащихся
«СТАРТ В НАУКЕ»
 
     

ОСОБЕННОСТИ ПРОГРАММИРОВАНИЯ НА SCRATCH И UNITY
Романов М.И.
Автор работы награжден дипломом победителя второй степени
Диплом школьника      Диплом руководителя
Текст научной работы размещён без изображений и формул.
Полная версия научной работы доступна в формате PDF


Моя любимая игра – Лего. Когда я был ещё дошкольником, мой брат на скретче создавал для меня обучающие программы – «Найди букву», «Реши пример» и другие. Несколько лет я наблюдал, как он создаёт программы, мне было очень интересно, так как программирование в этой среде было очень похоже на конструирование в Лего – те же блоки, но я не мог даже предположить, что сам смогу программировать. Брат мне рассказал, как работает среда, как можно менять коды. Сначала, у меня получались совсем некрасивые, с маленьким количеством функций работы. В дальнейшем, я создал свой профиль в Скретче, разработал свои программы, а также начал осваивать программирование в Юнити. Мне стало интересно сравнить программирование на Скретче и на Юнити.

Гипотеза: проекты на Юнити работают лучше чем проекты на Скретче

Цель: сравнить игры, написанные на Скретче и на Юнити.

Задачи:

  1. Изучить программирование на Скретче и Юнити.

  2. Разработать игры на Скретче и Юнити.

  3. Разработать критерии для проведения сравнительной характеристики.

  4. Сравнить игры по критериям, сделать выводы.

Сравнительная характеристика программирования на Скретч и на Юнити.

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, который позволяет делать трёхмерные и двумерные игры практически для любой платформы. В отличие от Скретча, для работы в Юнити необходимо было изучить язык программирования С# (Си шарп). Для сравнения я разработал на Юнити аналогичную игру.

Рассмотрим критерии для сравнения:

  1. Качество рисунка.

  2. Качество анимации

  3. Скорость выполнения задачи.

  4. Сложность программирования.

Проведём сравнение по разработанным критериям:

  1. КАЧЕСТВО РИСУНКА.

В Scratch есть две графики для рисования: растровая и векторная. В растровой все получается немного пиксельным. (Рис. 3)

Рис.3 Пример рисунка в растровой графике.

А в векторной графике такого нет.

Рис. 4. Пример рисунка в векторной графике

В Юнити же только растровая, но пиксели не заметны. (Рис. 5)

Рис. 5. Пример рисунка в растровой графике на Юнити

  1. КАЧЕСТВО АНИМАЦИИ

Я бы хотел сказать, что на Scratch анимация хорошая, но она часто как будто притормаживает. А на Юнити она работает без остановок. Это связано с тем, что в Скретче объекты анимируются по кадрам, а переход к другому действию на Юнити происходит плавно

  1. СКОРОСТЬ ВЫПОЛНЕНИЯ ЗАДАЧИ.

На Скретч если проект большой , то плагин может зависнуть. Так, что наберитесь терпения. А в Юнити все загружается намного быстрее.

Для определения максимального количества объектов, я создал переменную, задал период появления объектов 0,01 с. В результате, за одно и

то же время в Юнити было создано почти 6800 объектов , а в Скретче -

Рис. 6. Создание объектов на время в Юнити.

около 5100, что означает, что Скретчу требуется больше времени для создания объектов.

Рис. 7 Создание объектов на время в Скретче.

  1. СЛОЖНОСТЬ ПРОГРАММИРОВАНИЯ.

В Скретче почти все программирование осуществляется блоками, на которых подробно все написано. Рис. 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 Первый уровень платформера.

Цель игры – пройти все уровни.

Используются клавиши «стрелка вверх», «стрелка вправо», «стрелка влево», «

Действие игры: ты играешь за героя. В игре 8 уровней и 2 бонусных. Все уровни разные. Герою нужно подпрыгивать и ходить направо и налево, преодолевая препятствия.

Рис. 8 Скрипт, который позволяет герою двигаться.

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

Игра вырабатывает хорошую реакцию и поднимает настроение.

Во всех играх рисунки мои.