Uploaded by Alexey Maximuk

Otchyot (3)

advertisement
Министерство образования Республики Беларусь
Учреждение образования
БЕЛОРУССКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ИНФОРМАТИКИ
И РАДИОЭЛЕКТРОНИКИ
Кафедра вычислительных методов и программирования
Отчёт
по производственной практике
на предприятии ООО «Вайзор Геймз»
Выполнил:
студент гр. 724402
Н. Ю. Кушлеев
Руководитель от ВУЗа
Руководитель от предприятия
Д. В. Коршикова
А. В. Гремячкин
Минск 2020
СОДЕРЖАНИЕ
ВВЕДЕНИЕ ………………………………………………………………………..3
1 ХАРАКТЕРИСТИКА ПРЕДПРИЯТИЯ………………………………………..4
1.1 О предприятии……………………………………………………………………………..4
1.2 История развития компании ……………………………………………………………...4
1.3 Организационная структура ……………………………………………………………...4
2 ОБЗОР ИСПОЛЬЗУЕМЫХ НА ПРЕДПРИЯТИИ ТЕХНОЛОГИЙ………….6
2.1 Unreal Engine ……………………………………………………………………………....6
2.2 Jira ……………………………………………………………………………...................7
2.3 Git ……………………………………………………………………………...................9
2.4 Miro …………………………………………………………………………….................11
2.5 Notion……………………………………………………………………………...............11
2.6 Slack…………………………………………………………………………….................12
ЗАКЛЮЧЕНИЕ……………………………………………………………………………...14
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ ………………………………....15
2
ВВЕДЕНИЕ
Производственная практика – это обязательная составляющая
образовательного процесса, необходимая для подготовки квалифицированных
работников, хорошо ориентирующихся не только в профильной теории, но и
в реалиях трудовых будней. Этот этап обучения обычно осуществляется вне
стен вуза – на базе учреждений, соответствующих будущей специальности
студента.
Основная цель производственной практики – закрепление
теоретических знаний, отработка профессиональных навыков и умений в
условиях реальной рабочей деятельности. Нередко именно эта часть
обучения становится стартом будущей карьеры выпускника.
Условия производственной практики максимально приближены к
будущей профессиональной деятельности студентов. Практиканты чаще
всего выполняют функции дублеров на выделенном рабочем месте. Однако
иногда они могут быть зачислены на вакантные должности и получать
соответствующую заработную плату.
Главные задачи производственной практики:
● закрепление, обобщение и проверка полученных в вузе знаний;
● освоение технологии процессов, получение профессиональных
умений;
● знакомство с особенностями работы по специальности в
реальных условиях.
В течение 20 месяцев я в составе команды Playday (Плейдей) трудился
над гибридказуальными и казуальными проектами, занимался системным,
нарративным и другими видами дизайна. Последний год мы работаем над
неанонсированным проектом, разработку которого я вел на протяжении всех
его этапов.
3
1 ХАРАКТЕРИСТИКА ПРЕДПРИЯТИЯ
1.1 О предприятии
Компания Playday (Плейдей) является одним из ведущих
международных разработчиков мобильных игр, а также резидентом парка
высоких технологий. Помимо этого компания участвует в различных
мероприятиях в сфере видеоигр и занимается благотворительностью.
1.2 История развития компании
Компания была основана Александром Добровольским, работавшим до
этого в отечественной игровой индустрии в компании Steel Monkeys. Он и
несколько выходцев из Steel Monkeys разрабатывали собственные проекты
для мобильных устройств.
Было выпущено множество игр, таких как WIMP и Jelly Jump.
Затем большая команда распалась на две отдельные фирмы, та, чьим
руководителем является Александр, называется Playday (Плейдей) и уже
много лет ведет разработку мобильных хитов. Нашим издателем выступает
белорусская фирма SayGames, с которой мы плотно сотрудничаем.
Playday выпустила такие мобильные хиты как Rope Around, The Cook,
Drifty Race, Wobble.
Наша философия в том, что каждый следующий проект должен быть
более масштабный и амбициозный чем предыдущий. Мы редко идем по пути
упрощения, и наоборот стараемся делать более комплексные и смелые
проекты чем наши конкуренты по рынку. Именно поэтому все выпущенные
нами игры стали громкими хитами на мобильном рынке.
На момент моего прихода на предприятие в нем работало 3 человека.
На данный момент, спустя около 20 месяцев, штат сотрудников составляет
около 20 человек.
1.3 Организационная структура
Офисы Плейдей находятся в Минске и Киеве. Штат составляет около 20
человек. Различные команды как поддерживают уже выпущенные проекты,
так и разрабатывают новые, в том числе еще не анонсированную игру.
Штат Playday делится на команды. Каждая команда отвечает за свой
пласт проект. Мы выбрали движком игры Unity. Это самый эффективный и
удобный инструмент для разработки мобильных проектов на данный момент.
Также все наши разработчики имеют опыт работы именно с этим движком,
что ускоряет разработку.
4
На данный момент сформировано три команды разработки. Я нахожусь
в команде с самыми опытными и старыми сотрудниками Playday. На данный
момент наш проект самый большой и амбициозный, его разработка ведется
уже больше года. Планируемые сроки выхода в глобальный релиз - в
начале-середине осени.
Еще две команды работают над небольшими экспериментальными
проектами, которые однако в перспективе могут вырасти в нечто более
комплесное.
В каждой команде разработки обязательно есть гейм-дизайнер,
разработчик и художник. На более поздних этапах разработки к ним
подключается UI-художник, разрабатывающий интерфейс и улучшающий
пользовательский опыт. Кроме этого, дополнительные разработчики и
художники подключаются к разработке проекта, когда это необходимо. Мы не
привязываем людей к командам навсегда, ротации сотрудников между
командами - залог здоровой работы.
В разработке проектов также участвует продюссер, направляя ее в
нужное русло и консультируя дизайнера по различным вопросам. А также
директор предприятия непосредственно участвует в процессе разработки на
высоком уровне, то есть концептуально.
5
2 ОБЗОР ИСПОЛЬЗУЕМЫХ НА ПРЕДПРИЯТИИ
ТЕХНОЛОГИЙ
2.1 Unity
Среди игровых движков Unity занимает далеко не последнее место. Его
используют и крупные разработчики, и (гораздо чаще) небольшие
независимые студии.
Unity – больше, чем движок, это среда для разработки компьютерных
игр, в которой объединены различные программные средства, используемые
при создании ПО – текстовый редактор, компилятор, отладчик и так далее.
При этом, благодаря удобству использования, Unity делает создание игр
максимально простым и комфортным, а мультиплатформенность движка
позволяет игроделам охватить как можно большее количество игровых
платформ и операционных систем.
В первую очередь, движок Unity3D дает возможность разрабатывать
игры, не требуя для этого каких-то особых знаний. Здесь используется
компонентно-ориентированный подход, в рамках которого разработчик
создает объекты (например, главного героя) и к ним добавляет различные
компоненты (например, визуальное отображение персонажа и способы
управления им). Благодаря удобному Drag & Drop интерфейсу и
функциональному графическому редактору движок позволяет рисовать карты
и расставлять объекты в реальном времени и сразу же тестировать
получившийся результат.
Второе преимущество движка – наличие огромной библиотеки ассетов
и плагинов, с помощью которых можно значительно ускорить процесс
разработки игры. Их можно импортировать и экспортировать, добавлять в
игру целые заготовки – уровни, врагов, паттерны поведения ИИ и так далее.
Никакой возни с программированием. Многие ассеты доступны бесплатно,
другие предлагаются за небольшую сумму, и при желании можно создавать
собственный контент, публиковать его в Unity Asset Store и получать от этого
прибыль.
Третья сильная сторона Unity 3D – поддержка огромного количества
платформ, технологий, API. Созданные на движке игры можно легко
портировать между ОС Windows, Linux, OS X, Android, iOS, на консоли
семейств PlayStation, Xbox, Nintendo, на VR- и AR-устройства. Unity
поддерживает DirectX и OpenGL, работает со всеми современными
эффектами рендеринга, включая новейшую технологию трассировки лучей в
реальном времени.
Физика твердых тел, ragdoll и тканей, система Level of Detail, коллизии
между объектами, сложные анимации – все это можно реализовать силами
6
движка. Стереотипное мнение о том, что движок пригоден только для
небольших инди-игр и неспособен выдавать красивую картинку, давно уже не
актуально: достаточно посмотреть технодемо ADAM, The Blacksmith и Book
of the Dead от создателей среды Unity, чтобы убедиться в ее выдающихся
способностях.
Наконец, Unity доступен бесплатно, что открывает перед независимыми
разработчиками дверь в игровую индустрию. Конечно, существуют
ограничения: бесплатная версия движка демонстрирует лого Unity перед
запуском игры, а проект, созданный с ее помощью, не должен приносить
разработчику больше $100 тысяч в год. Впрочем, тарифы на подписку не
опустошат кошельки даже начинающей команды: Про-версия стоит $125 в
месяц, что не так уж много в сравнении с другими движками, причем базовая
версия содержит ровно тот же функционал, что и профессиональная.
При всех своих достоинствах, движок имеет и свои недостатки. Так,
если команда захочет разработать что-нибудь сложнее простого кликера или
платформера, то ей придется искать хорошего программиста на C#, который
напишет скрипты и компоненты, внедрит их в игру и заставит работать.
Из этого вытекает другая проблема движка Unity – медлительность.
Создание масштабных, сложных сцен с множеством компонентов может
негативно повлиять на производительность игры, в результате чего
разработчикам придется потратить дополнительное время и ресурсы на
оптимизацию, а возможно – и удаление некоторых элементов из проекта.
Кроме того, приложения, созданные на Unity, довольно «тяжеловесны»:
даже самая простая пиксельная игра может занимать несколько сотен
мегабайт на ПК. Да, для жесткого диска компьютеров это небольшой объем,
но, если проект разрабатывается и для мобильных платформ, следует
задуматься об оптимизации его размера.
2.2 Jira
Jira – коммерческая система отслеживания ошибок, предназначена для
организации взаимодействия с пользователями, хотя в некоторых случаях
используется и для управления проектами. Разработана компанией Atlassian,
является одним из ряда её продуктов (наряду с простой Agile Kanban
системой управления проектами Trello, вики-системой Confluence,
репозиторием и cистемой контроля версий Bitbucket и другими). Имеет
облачную и серверную версии.
Система основана на Java EE и работает на нескольких популярных
системах управления базами данных и операционных системах.
Основной элемент учёта в системе – задача (ticket). Задача содержит
название проекта, тему, тип, приоритет, компоненты и содержание. Задача
7
может быть расширена дополнительными полями (также и новые
пользовательские поля могут быть определены), приложениями (например,
фотографиями, скриншотами) или комментариями. Задача может
редактироваться или просто изменять статус, например, из «открыт» в
«закрыт». Какие переходы между состояниями возможны, определяется через
настраиваемый поток операций. Любые изменения в задаче протоколируются
в журнал.
Jira имеет большое количество возможностей конфигурации: для
каждого приложения может быть определён отдельный тип задачи с
собственным workflow, набором статусов, одним или несколькими видами
представления (screens). Кроме того, с помощью так называемых «схем»
можно определить для каждого индивидуального Jira-проекта собственные
права доступа, поведение и видимость полей и многое другое.
Суть работы с Jira во время практики заключалась в фиксировании
обнаруженных во время тестирования видеоигры недостатков визуального
или логического характера и занесении их в базу данных для последующего
изучения и обработки соответствующими специалистами. При создании
задачи необходимо соблюдать определённые требования оформления,
описывать шаги воспроизведения проблемы, а также прилагать графические
материалы.
Пример интерфейса вышеназванного программного средства
представлен на рисунке 2.1.
Рисунок 2.1 – Интерфейс Jira
2.3 Git
8
Git (произносится «гит») – распределённая система управления
версиями. Проект был создан Линусом Торвальдсом для управления
разработкой ядра Linux, первая версия выпущена 7 апреля 2005 года. На
сегодняшний день его поддерживает Джунио Хамано.
Среди проектов, использующих Git – ядро Linux, Swift, Android, Drupal,
Cairo, GNU Core Utilities, Mesa, Wine, Chromium, Compiz Fusion, FlightGear,
jQuery, PHP, NASM, MediaWiki, DokuWiki, Qt, ряд дистрибутивов Linux.
Программа является свободной и выпущена под лицензией GNU GPL
версии 2. По умолчанию используется TCP порт 9418.
Нижний уровень git является так называемой контентно-адресуемой
файловой системой. Инструмент командной строки git содержит ряд команд
по непосредственной манипуляции этим репозиторием на низком уровне. Эти
команды не нужны при нормальной работе с git как с системой контроля
версий, но нужны для реализации сложных операций (ремонт повреждённого
репозитория и так далее), а также дают возможность создать на базе
репозитория git своё приложение.
Для каждого объекта в репозитории вычисляется SHA-1-хеш, и именно
он становится именем файла, содержащего данный объект в каталоге
.git/objects. Для оптимизации работы с файловыми системами, не
использующими деревья для каталогов, первый байт хеша становится именем
подкаталога, а остальные – именем файла в нём, что снижает количество
файлов в одном каталоге (ограничивающий фактор производительности на
таких устаревших файловых системах).
Все ссылки на объекты репозитория, включая ссылки на один объект,
находящийся внутри другого объекта, являются SHA-1-хешами.
Кроме того, в репозитории существует каталог refs, который позволяет
задать читаемые человеком имена для каких-то объектов Git. В командах Git
оба вида ссылок – читаемые человеком из refs, и нижележащие SHA-1 –
полностью взаимозаменяемы.
В классическом обычном сценарии в репозитории git есть три типа
объектов – файл, дерево и commit (фиксация). Файл есть какая-то версия
какого-то пользовательского файла, дерево – совокупность файлов из разных
подкаталогов, commit – дерево и некая дополнительная информация
(например, родительские commit’ы, а также комментарий).
Практически все обычные операции с системой контроля версий, такие,
как коммит и слияние, производятся только с локальным репозиторием.
Удалённый репозиторий можно только синхронизировать с локальным как
«вверх» (push), так и «вниз» (pull).
Наличие полностью всего репозитория проекта локально у каждого
разработчика даёт Git ряд преимуществ перед SVN. Так, например, все
9
операции, кроме push и pull, можно осуществлять без наличия
интернет-соединения.
Команда push передаёт все новые данные (те, которых ещё нет в
удалённом репозитории) из локального репозитория в репозиторий
удалённый. Для исполнения этой команды необходимо, чтобы удалённый
репозиторий не имел новых коммитов в себя от других клиентов, иначе push
завершается ошибкой, и придётся делать pull и слияние.
Команда pull – обратна команде push. В случае, если одна и та же ветвь
имеет независимую историю в локальной и в удалённой копии, pull
немедленно переходит к слиянию.
Слияние в пределах разных файлов осуществляется автоматически (всё
это поведение настраивается), а в пределах одного файла – стандартным
трёхпанельным сравнением файлов. После слияния нужно объявить
конфликты как разрешённые.
Результатом всего этого является новое состояние в локальных файлах
у того разработчика, что осуществил слияние. Ему нужно немедленно
сделать коммит, при этом в данном объекте коммита в репозитории окажется
информация о том, что коммит есть результат слияния двух ветвей и имеет
два родительских коммита.
Имя ветви по умолчанию: master. Имя удалённого репозитория по
умолчанию, создаваемое git clone во время типичной операции «взять
имеющийся проект с сервера себе на машину»: origin.
Таким образом, в локальном репозитории всегда есть ветвь master,
которая есть последний локальный коммит, и ветвь origin/master, которая есть
последнее состояние удалённого репозитория на момент завершения
исполнения последней команды pull или push.
Команда fetch (частичный pull) — берёт с удалённого сервера все
изменения в origin/master, и переписывает их в локальный репозиторий,
продвигая метку origin/master.
Если после этого master и origin/master разошлись в стороны, то
необходимо сделать слияние, установив master на результат слияния (команда
pull есть fetch+merge). Далее возможно сделать push, отправив результат
слияния на сервер и установив на него origin/master.
2.4 Miro
10
Miro (до 2019 года — RealtimeBoard) — платформа для совместной
работы распределенных команд (в том числе при дистанционной работе
отдельных сотрудников), разработанная в России и вышедшая на
международный рынок.
Платформа используется как способ взаимодействия при создании новых
проектов, дизайна интерфейса и при других задачах. Предусмотрена
возможность настройки интеграции с другими инструментами совместной
работы, такими как Slack, Microsoft Teams, Zoom, Jira, Trello, Google Docs и
Concept. Также платформа имеет возможности взаимодействия со
сторонними сервисами и приложениями по API, с использованием SDK или
через iframe.
Платформу используют более 15 миллионов конечных пользователей (по
собственным данным компании на май 2021 года) и более 21 000
корпоративных клиентов, включая 80% списка Fortune 100 (по оценкам,
раскрытым при очередном раунде привлечения инвестиций), в том числе
такие компании, как Skyscanner, Autodesk, Netflix, Twitter и другие. За период
с 2018 по 2020 годы пользовательская база платформы выросла примерно в
2,5 раза (от оценок в рамкам инвестиционного раунда A).
2.5 Notion
Notion — приложение, которое предоставляет такие компоненты, как
базы данных, доски канбан, вики, календари и напоминания. Пользователи
могут подключать эти компоненты для создания собственных систем
управления знаниями, ведения заметок, управления данными, управления
проектами и другими. Эти компоненты и системы могут использоваться
индивидуально или совместно с другими.
Notion является совместной платформой с поддержкой разметки
Markdown, которая интегрирует канбан доски, задачи, вики и базы данных.
Компания заявляет о себе как о едином рабочем пространстве для ведения
заметок, управления знаниями и данными, управления проектами и
задачами[8]. Программное обеспечение описывается как инструмент
управления файлами, предлагающий единое рабочее пространство,
позволяющее пользователям комментировать текущие проекты, участвовать в
обсуждениях и получать отзывы от других. В дополнение к
кроссплатформенным приложениям к нему можно получить доступ через
большинство веб-браузеров. Оно имеет веб-клиппер.
Инструмент компании помогает пользователям планировать задачи,
управлять файлами, сохранять документы и устанавливать напоминания для
11
еженедельной повестки дня, позволяя пользователям организовывать свою
работу. Это позволяет пользователям встраивать любой онлайн-контент в
страницы Notion, используя Embed.ly.
Notion имеет четырехуровневую модель подписки: бесплатная,
персональная, коллективная и корпоративная. Приложение предлагает
кредитную систему аккаунта и может зарабатывать кредит с помощью
рефералов. Пользователи не будут платить, если они имеют остаток на своих
счетах.
По состоянию на май 2020 года компания обновила Персональный
план, разрешив неограниченное количество блоков, в отличие от такого
ограничения до этого. Это позволило пользователям иметь неограниченное
хранилище.
Notion позволяет пользователям подключаться к Slack. Можно писать
уравнения, например, в формате LaTeX. Имеется возможность импортировать
данные в Notion из других приложений, например, таких как Trello.
2.6 Slack
Slack — корпоративный мессенджер. Запущен в тестовом режиме в
августе 2013 года, публичный выпуск состоялся 12 февраля 2014 года. В
первый день тестирования зарегистрировались 8 тысяч компаний. По данным
компании на июнь 2015 года, Slack ежедневно используют 1,1 миллиона
пользователей. Slack стал самым быстрорастущим бизнес-приложением в
истории.
Slack собирает в одном окне обсуждения в общих темах (каналах),
приватных группах и личных сообщениях; имеет собственный хостинг,
режим предпросмотра изображений и позволяет искать среди всех
сообщений сразу. Кроме того, Slack поддерживает интеграцию с почти 100
сторонними сервисами, такими как Dropbox, Google Drive, GitHub, Google
Docs, Google Hangouts, Twitter, Trello, MailChimp, Heroku, Jira. По данным
компании, за первый год существования сервиса пользователями установлено
800 тысяч таких интеграций, которые генерируют более 3 миллионов
сообщений в день.
В бесплатной версии Slack поддерживает неограниченное число
пользователей, интеграцию с 10 внешними сервисами и поиск в архиве до 10
тысяч сообщений. В платных тарифах — 6,67 USD (Standard) и 12,5 USD
(Plus) за пользователя в месяц — снимаются ограничения и появляются
дополнительные возможности для управления правами доступа. По данным
компании, на конец июня 2015 года у Slack более 300 тысяч платящих
клиентов и 25 миллионов долларов годовой выручки. Среди платных
клиентов сервиса многие медиа-издания и IT-компании: Vox Media, Buzzfeed,
12
Medium, Expedia, Intuit , Dow Jones, eBay, Pikabu, PayPal, Wall Street Journal,
Rdio, Pandora, GoDaddy, Sony, Dell, AOL, Lonely Planet, Stripe, Airbnb, Adobe,
Behance.
Ожидается, что благодаря наработкам компании Screenhero, купленной
в начале 2015 года, в перспективе в Slack появятся видеозвонки. Баттерфилд
озвучивал планы к концу 2015 года расширить команду до 250 человек,
открыть офис в Дублине, ввести поддержку мультикоманд для больших
компаний и выпустить приложения для Windows.
13
ЗАКЛЮЧЕНИЕ
Объект работы – ООО «Плейдей»
Плейдей обеспечивает полный цикл разработки, начиная с рыночной
аналитики, полного производственного цикла до операций после активного
производства.
Во время прохождения учебной практики было изучено общее
состояние организации. Разобран и исследован общий состав предприятия,
иерархия управления и список отделов и команд, работающих над
различными проектами на основе разных технологий.
Особое внимание было уделено финансовому анализу деятельности
компании. В рамках данного анализа были исследованы финансовые отчеты
компании за 2018 и 2019 г., выявлены определенные тенденции.
При написании отчета использовалась бухгалтерская отчетность
предприятия и информация о компании, которую можно найти в открытых
источниках.
14
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
[1].
Playday
на
сайте
ПВТ.
О
компании.
https://www.park.by/residents/pleydey/?special_version=Y
[2]. Unity документация на русском. https://docs.unity3d.com/ru/530/Manual/
[3]. Atlassian. Jira Software. https://www.atlassian.com/ru/software/jira
15
Download