Статьи для родителей
Содержание:
- Идея
- Пример – разработка игры Snake с использованием Pygame
- Какие игры проще создавать
- Альтернативные движки
- Топ ошибок начинающих разработчиков игр
- Внутриигровые настройки
- Начало
- Как работает 2D-конструктор Clickteam Fusion 2.5
- Пример разработки простой 2D-игрушки Андроид
- Параметры запуска в приложениях онлайн-магазинов
- Как придумать задания, квесты и события для настольной игры
- Советы для новичков
- Производство игры
Идея
Путешествия остановились, мы мгновенно лишились всех доходов и в марте наивно полагали, что летом всё будет хорошо. Оказавшись взаперти, у члена нашей команды, Стаса Рабунского, появилась идея создать настольную игру о путешествиях, пока в реальной жизни делать этого нельзя.
В этой статье мы хотим подробно рассказать о том, как всё начиналось, и как в итоге превратилось в живые коробки с игрой.
Началось всё с очень простеньких прототипов, которые сегодня лишь отдаленно напоминают финальный результат:
Распечатанные на обычном чёрно-белом принтере листы бумаги, склеенное игровое поле, и вырезанные ножницами карточки.
Идея настолки достаточна проста — путешествовать по странам Европы и ближнего зарубежья. Делать это нужно, конечно же, максимально бюджетно и наиболее выгодно. Показалось странным, что подобных проектов практически нет.
Вся механика — максимально приближена к реальной жизни. Игрокам нужно оформлять загранпаспорта и визы, выбирать наиболее удобный вид транспорта, простраивать маршруты и логистику, чтобы за минимально возможный бюджет и время посетить как можно больше самых классных и интересных стран.
Пример – разработка игры Snake с использованием Pygame
Программа –
# Snake Tutorial Using Pygame import math import random import pygame import tkinter as tk from tkinter import messagebox class cube(object): rows = 20 w = 500 def __init__(self, start, dirnx=1, dirny=0, color=(255, 0, 0)): self.pos = start self.dirnx = 1 self.dirny = 0 self.color = color def move(self, dirnx, dirny): self.dirnx = dirnx self.dirny = dirny self.pos =(self.pos + self.dirnx, self.pos + self.dirny) def draw(self, surface, eyes=False): dis = self.w // self.rows i = self.pos j = self.pos pygame.draw.rect(surface, self.color,(i * dis + 1, j * dis + 1, dis - 2, dis - 2)) if eyes: centre = dis // 2 radius = 3 circleMiddle =(i * dis + centre - radius, j * dis + 8) circleMiddle2 =(i * dis + dis - radius * 2, j * dis + 8) pygame.draw.circle(surface,(0, 0, 0), circleMiddle, radius) pygame.draw.circle(surface,(0, 0, 0), circleMiddle2, radius) # This class is defined for snake design and its movement class snake(object): body = [] turns = {} def __init__(self, color, pos): self.color = color self.head = cube(pos) self.body.append(self.head) self.dirnx = 0 self.dirny = 1 def move(self): for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit() keys = pygame.key.get_pressed() # It will manage the keys movement for the snake for key in keys: if keys: self.dirnx = -1 self.dirny = 0 self.turns] = elif keys: self.dirnx = 1 self.dirny = 0 self.turns] = elif keys: self.dirnx = 0 self.dirny = -1 self.turns] = elif keys: self.dirnx = 0 self.dirny = 1 self.turns] = # Snake when hit the boundary wall for i, c in enumerate(self.body): p = c.pos if p in self.turns: turn = self.turns c.move(turn, turn) if i == len(self.body) - 1: self.turns.pop(p) else: if c.dirnx == -1 and c.pos = c.rows - 1: c.pos =(0, c.pos) elif c.dirny == 1 and c.pos >= c.rows - 1: c.pos =(c.pos, 0) elif c.dirny == -1 and c.pos 0: continue else: break return(x, y) # Using Tkinter function to display message def message_box(subject, content): root = tk.Tk() root.attributes("-topmost", True) root.withdraw() messagebox.showinfo(subject, content) try: root.destroy() except: pass # main() function def main(): global width, rows, s, snack width = 500 rows = 20 win = pygame.display.set_mode((width, width)) s = snake((255, 0, 0),(10, 10)) snack = cube(randomSnack(rows, s), color=(0, 255, 0)) flag = True clock = pygame.time.Clock() while flag: pygame.time.delay(50) clock.tick(10) s.move() if s.body.pos == snack.pos: s.addCube() snack = cube(randomSnack(rows, s), color=(0, 255, 0)) for x in range(len(s.body)): if s.body.pos in list(map(lambda z: z.pos, s.body)): print('Score: \n', len(s.body)) message_box('You Lost!\n', 'Play again...\n') s.reset((10, 10)) break redrawWindow(win) pass main()
Выход:
Если змея коснется себя, она завершит игру и отобразит следующее сообщение.
Мы можем играть снова, нажав кнопку ОК. Мы можем увидеть наш результат в терминале Pycharm(мы использовали Pycharm IDE; вы можете использовать любую Python IDE).
Скопируйте приведенный выше код и вставьте его в свою среду IDE и получайте удовольствие. Чтобы понять концепции Pygame, посетите наш полный учебник по Pygame.
Изучаю Python вместе с вами, читаю, собираю и записываю информацию опытных программистов.
Какие игры проще создавать
Новичкам в программировании игр рекомендуется пробовать себя в создании различных платформеров. Это могут быть простые игры, в которых персонаж бродит по незамысловатому лабиринту, или же небольшая драка с вором или злодеем. Для многих такие игры могут показаться максимально типичными, однако именно такой сюжет идеально подходит для начала. Более того, неопытный в сфере программирования пользователь точно сможет создать подобную игру, используя лишь бесплатный конструктор в интернете.
Кроме того, карточные игры также не нуждаются в высоком качестве графики, максимальной прорисовки и большом количестве действий. Все действия в подобных приложениях, начиная от тасовки карт и заканчивая последним ходом, отличаются от прочих жанров игр своей однотипностью. Более того, карточные игры также отличаются простым интерфейсом, в который входит простое меню.
Альтернативные движки
Я понимаю, что в настоящее время существуют инди-игры всех жанров на любой вкус (и это на самом деле хорошо), но мы под инди-играми в данном контексте подразумеваем маленькие, двумерные, ориентированные на мобильные устройства, созданные соло-разработчиком творения (которых преобладающее большинство), поэтому использовать Unity, UE4 для создания прототипов будет неоправданно сложно. Существует широкий выбор альтернативных движков, они проще в использовании и позволяют достигать впечатляющих результатов за меньший срок, минус спецэффекты, которые инди бы все равно не стал помещать в свою игру. Порой для создания полноценной игры под все платформы эти движки не требуют написания кода. Особенно меня продвинуло на тему альтернативных движков после участия в московской конференции разработчиков видеоигр White Nights 2017, прошедшей в октябре. Я подходил к инди-разработчикам, демонстрирующим свои проекты, и расспрашивал об используемом инструментарии. Во многих случаях они называли вовсе не Unity, а Construct 2 или GameMaker Studio.
Оба продукта представляют собой конструкторы двумерных игр, не требующие умения программировать (!). В Construct 2 игру создаешь, определяя игровые события и реакцию на них. Итоговые игры портируются под все распространенные платформы. Прога идет с подробной документацией, большим количеством примеров и теймплейтов, так что освоить ее несложно. Покупать советую в Steam, там ее стоимость за персональную версию составляет 6399 рублей.
Как самому создать игру. Construct 2 с открытым проектом
GameMaker Studio представляет собой популярный конструктор игр с двумя возможностями построения игры (подобно UE4): первая — методом drag and drop, вторая — писать код на собственном языке системы. В зависимости от целевой платформы игры, созданные с помощью GameMaker Studio, визуализируются с помощью OpenGL или DirectX с использованием соответствующих шейдерных технологий. Для обработки физики есть поддержка движка Box2D. Поддерживается широкий ряд устройств ввода. Десктопная версия в Steam стоит 1599 рублей, экспортеры для других платформ надо докупать: так, экспортер для web стоит 2579 рублей, для UWP — 6396 и столько же для мобильных систем.
Как создать игру самому. GameMaker Studio
Третий заслуживающий внимания альтернативный движок — AppGameKit. В отличие от двух предыдущих, разрабатывая с его помощью игры, надо писать код на скриптовом языке. Во многом благодаря этому он меня заинтересовал больше остальных. Стоимость этого движка в Steam составляет 2059 рублей, включая экспортеры под все поддерживаемые платформы. Хорошее вложение. За более подробным описанием архитектурной составляющей движка отсылаю тебя к упомянутой статье.
Раньше я надменно смотрел на эти тулзы, но теперь вижу в них силу, которая может сравниться с топовыми движками
Настало время обратить на них внимание и взять в комплект игродела
Где взять арт и прочий стафф?
В случае если ты программист и плоховато рисуешь/моделишь самостоятельно, весь необходимый для прототипа стафф можно купить в сторах топовых и альтернативных движков (например). Арт, звуки, шейдеры и другой стафф также можно найти в Steam. Они стоят не так дорого. Изображений в одном комплекте может быть несколько тысяч, но все они для разных игр, поэтому на прототип тебе их, может быть, и хватит, а вот для полноценного релиза — вряд ли. И тогда, возможно, ты найдешь свободных художников, на которых произведет впечатление твоя игра. И это правильно, ведь, работая с покупным артом, ты вынужден подгонять свой сюжет под имеющийся арт, а не наоборот.
Топ ошибок начинающих разработчиков игр
Нужно быть дальновидным и внимательным, чтобы избежать ошибокВзято с ресурса www.igromania.ru/
Все делают ошибки, когда только погружаются в мир разработки видеоигр. Но зачастую их можно избежать, если знать о них заранее. Вот некоторые самые распространенные ошибки, которые допускают команды при разработке игр:
Создают игру, которая интересна только разработчикам. Нет смысла создавать игру и стараться для десяти человек. Поэтому перед тем как приступить к разработке, нужно исследовать свою целевую аудиторию и иметь в голове четкий портрет этих людей. Если ваша игра будет продаваться в Steam, воспользуйтесь SteamSpy, чтобы узнать, сколько людей владеют похожими играми и играют в них.
Не занимаются маркетингом игры. Недостаточно просто добавить свою игру на платформу и ждать, когда все сработает само. Нужно заниматься продвижением своего проекта. Например, следите за сезоном распродаж в Steam и делайте скидки на игру, используйте купоны сообществ и в целом не забывайте обновлять страницу в магазине.
Разрабатывают технологии для поддержки большого количества игроков. Во-первых, это дорого и долго. Во-вторых, неизвестно сколько пользователей в итоге заинтересуется вашим проектом. Для начала лучше сосредоточиться на создании минимально жизнеспособного продукта. После релиза уже можно масштабировать проект хоть для миллиона пользователей, если ваша игра вызовет ажиотаж.
Внутриигровые настройки
Этот способ чуть дольше предыдущего, но тоже простой. В большинстве игр, даже собранных на непопулярных движках, в настройках графики есть возможность выбрать режим запуска в окне или в полном экране (full screen). Иногда даже встречается вариант: «В окне без рамок».
Где-то поменять эту настройку можно в разделе «Графика» или «Изображение», но также она может быть вынесена в отдельный пункт «Экран».
Чтобы выбрать полноэкранный режим, зайдите в настройки («Preference» или «Settings» в английском варианте), перейдите в раздел графики и установите «Полный экран» в соответствующем меню.
Если после этого игра осталась в окне, вероятнее всего полноэкранный режим не доступен. И тогда только переустановка поможет решить эту проблему. Но это справедливо только для современных игр, купленных в официальных магазинах. Старые игры или пиратские репаки могут иметь проблемы в самих установочных файлах. Попробуйте скачать другой. Но учтите, что пиратство противозаконно.
Начало
Пользователи среды могут программировать на языках Java, C++ и Kotlin. Планируется, что последний со временем полностью заменит привычный Java, который пока остается основным. Для работы потребуется от 3 (минимум) до 8 Гб (желательно) оперативной памяти плюс дополнительный гигабайт для Android Emulator. Свободного места на жестком диске должно быть не меньше, чем 2 Гб.
Процесс установки Андроид Студио мало чем отличается от других программ
Если используется Microsoft Windows, подойдут версии 2003, Vista, 7–10. Для OS X нужен Mac от 10.8.5 до 10.13 / 10.14 (High Sierra/Mojave). Для Linux – KDE или GNOME. Изготовление приложения проходит в несколько этапов:
- создаем новый проект;
- разрабатываем пользовательский интерфейс;
- добавляем навигацию, действия, дополнительные опции;
- тестируем программу в эмуляторе.
Если собираетесь работать с Java, обязательно установите последнюю версию JDK. Скачать ее можно на официальном сайте. Помимо главной программы, для работы также потребуются элементы Андроид SDK – скрипты, библиотеки, документы, файлы. Эти компоненты будут скачаны автоматически. В установочный комплект также входит Андроид Emulator.
Проверяйте количество свободного места на диске
Следующим шагом станет определение адресов Студио и СДК. Их предлагается установить в отдельные папки. Перед началом инсталляции стоит убедиться, что на выбранном диске достаточно места. Сама Studio требует не так много свободного пространства, а вот элементы SDK занимают больше 3 Гб. Это минимум, так как затем потребуется дополнительная площадь для обновлений.
Каждое приложение, сделанное под Андроид, должно состоять из четырех точек входа:
- Service. Компонент, обеспечивающий работу в фоновом режиме. Он отвечает за выполнение удаленных и длительных операций при выключенном визуальном интерфейсе.
- Activity. Элементы интерактивного управления. Через класс Intent передается информация о намерениях пользователя. Активности устроены по подобию веб-страниц. Intent выполняет функцию ссылок между ними. Запускается приложение посредством activity Main.
- Broadcast receiver. «Широковещательный приемник» передает намерения одновременно разным участникам.
- Content provider. «Поставщик содержимого» передает нужную информацию из БД SQLite, файловой системы и других хранилищ.
Разработка приложения начинается с нового проекта. В меню последовательно выбираем Tools, Android, SDK Manager. В нашем примере последней версией является Андроид API 26. Выбирайте новейшую версию, поставив напротив нее галочку, и приступайте к скачиванию.
Выбирайте новейшую версию Андроид SDK
После нажатия New project появится форма нового проекта. В поле Application name выбираем FirstGame, Company domain – оставим без изменения. Путь к проекту Project location должен быть целиком на английском языке. В следующем окне оставьте галочку только напротив Phone and Tablet.
В этом окне определяется версия ОС для мобильных и планшетов
Теперь выберем версию ОС, с которой сможет запускаться игра. Чем ниже она будет, тем больше пользователей получат доступ к приложению. С другой стороны, разработчику тогда доступно меньше опций. Поочередно выбираем Empty Activity, Next, Next, Finish. Проект готов к работе.
С каждым запуском Студио открывается вкладка «Совет дня» (Tip of the day). Для начинающих программистов от этой опции мало толку, но по мере знакомства со средой рекомендации начнут казаться интересными и полезными. Вообще, для новичков многое будет выглядеть таинственно и даже страшновато. Не стоит бояться трудностей. Накапливайте опыт и непонятное быстро станет простым и ясным. В конце концов, это не изучение языка программирования.
Как работает 2D-конструктор Clickteam Fusion 2.5
Clickteam Fusion 2.5 — это простая в использовании программа разработки игр на основе Flash. Для создания игры с его помощью вам не придется писать код. Вообще.
Эта программа позволяет начинающим разработчикам игр создавать простые 2D-игры за пару кликов, используя готовые объекты, анимации и фоны.
Лучше один раз увидеть, чем сто раз услышать, поэтому вот небольшое видео, где в Clickteam Fusion 2.5 создают хорошо знакомую всем игру Змейка.
Игры, созданные с помощью Clickteam Fusion 2.5
Доказываем, что создавать популярные и хорошие игры можно и без знаний программирования на примере этих проектов:
Five Nights at Freddy’s. Пожалуй, эта игра не нуждается в представлении. Популярный survival horror был сделан именно на движке Clickteam Fusion 2.5. Хотя 3D модели создавали и анимировали в Autodesk 3Ds Max, основу геймплея создавали именно в Clickteam.
Baba Is You. Инди-головоломка, которая получила несколько наград, в том числе стала инди-игрой года, лучшей независимой игрой и отличилась превосходным дизайном. Также она стала одной из самых продаваемых игр месяца в Steam.
Spark the Electric Jester. Платформер, разработанный бразильской студией Feperd Games. Игра была тепло принята аудиторией и в итоге получила продолжение в виде еще двух частей.
Пример разработки простой 2D-игрушки Андроид
Наша игра Android Studio развивается по известному сюжету. Пользователь управляет космическим кораблем, уворачивающимся от метеоритов (астероидов). Последние падают с верхней части экрана, корабль – движется внизу вправо или влево, в зависимости от решений участника. При столкновении аппарата с космическим объектом объявляется Game Over.
Начнем с открытия проекта. Для этого последовательно выберем в меню программы File, New, New Project. Придумываем проекту название, вводим домен и место, где будет храниться папка. Окно, появившееся после нажатия Next, лучше оставить без изменений. В следующем выбираем Empty Activity и движемся дальше. Кликнув по клавише Finish, мы получим готовый проект.
Следующим шагом станет скачивание необходимых картинок и копирование их в папку drawable. Это изображения корабля и метеоров. После этого нужно создать layout. Открываем Text в activity_main.xml и вставляем следующий код:
Код для layout
MainActivity, GameView, SpaceBody
Для редактирования класса MainActivity меняем определение, придав ему следующий вид: public class MainActivity extends AppCompatActivity implements View.OnTouchListener {. После этого нужно задать перемены для нажатия левой (public static boolean isLeftPressed = false) и правой (public static boolean isRightPressed = false) кнопок. Следующие действия мы расписывать не будем. В итоге MainActivity должен принять следующий вид:
Код для MainActivity
Разобравшись с классом MainActivity, переходим к GameView. В определение добавляем extends SurfaceView implements Runnable. Теперь нужно задать разрешение. У современных гаджетов разные параметры. Дисплей старого мобильника не может сравниться с новым большим планшетом.
Чтобы добиться одинакового изображения на любом устройстве, поделим монитор на одинаковые «клетки» 20х28 (первый показатель – горизонталь). Если эти части будут распределены неравномерно, картинка получится сжатой или растянутой. Задаем переменные:
Переменные для «уравнивания» графики
Для метода run() устанавливается бесконечный цикл, стартующий с update(). Задачей последнего является вычисление новых координат космического корабля. По окончании расчетов на экране будет сформирован сам аппарат (draw()). Control() завершает цикл, обеспечивая паузу на 17 миллисекунд. Затем снова запускается run(). Выглядеть это будет так:
Бесконечный цикл для run()
Чтобы появился сам корабль и астероиды, нужен родительский class SpaceBody. Зададим переменные и методы:
Код для родительского класса SpaceBody
Теперь отдельный класс Ship для корабля:
Код космического корабля
После этого останется произвести компиляцию и запуск программы. На дисплее Android Studio должен возникнуть корабль, который можно кнопками перемещать вправо и влево. Следующим шагом станет добавление астероидов. Для этого разработаем class Asteroid, тоже являющийся дочерним для SpaceBody. Зададим переменные:
Код для метеоров
Суть в том, чтобы астероиды произвольно возникали в разных точках «потолка» экрана и двигались с непредсказуемой скоростью. Мы задали код, определяющий столкновение метеоров с кораблем. Добавим астероиды в GameView:
Вписываем астероиды в GameView
На этом изготовление элементарной 2D-игры можно считать завершенным. Остается скомпилировать и запустить программу. Ничто не мешает добавлять в нее новые опции. Например, стрельбу по метеорам или постоянное ускорение их движения. Но это уже тема отдельного разговора.
Параметры запуска в приложениях онлайн-магазинов
В свойствах ярлыка игр, установленных через Steam и Epic Game Store, вместо вкладки «Ярлык» вы встретите только ссылку.
Соответственно прописывание дополнительных параметров только испортит веб-адрес и приведет к тому, что программа вообще перестанет запускаться. Однако есть способ прописать необходимый параметр для игры через утилиту магазина.
Steam
Стим намного популярнее Эпика, с него и начнем. Чтобы добавить параметр «-fullscreen» в приложении Steam выполните следующие действия:
- Запустите приложение.
- Перейдите в раздел «Библиотека».
- Найдите в списке интересующую игру и кликните по ней правой клавишей мыши.
- Впишите в поле «Параметры запуска» значение «-fullscreen».
После этого просто закройте окно. Параметр сохранится и никаких дополнительных подтверждений не потребуется.
Epic Game
В приложении Эпика принцип прописывания параметра аналогичен Стиму. Чтобы настроить запуск в полноэкранном режиме сделайте следующее:
- Откройте окно приложения и перейдите в настройки.
- Пролистайте меню вниз, пока не увидите список установленных игр и выберите нужную.
- Кликните по названию левой клавишей мыши и поставьте галочку напротив пункта меню «Дополнительные параметры командной строки». А затем в появившемся поле пропишите параметр «-fullscreen».
Так же, как и в Стиме, просто выходите из настроек, параметр сохранится автоматически.
Как придумать задания, квесты и события для настольной игры
В зависимости от жанра настольной игры, которую вы разрабатываете, вам могут понадобиться разные виды заданий, специальных условий и квестов. Часть из них будут двигать сюжет вперёд, часть из них будут запутывать игроков, а часть – приносить особое удовольствие своим юмором, кажущейся простотой, неочевидной сложностью и т.д. Постарайтесь соблюсти здравый баланс для того, чтобы игроки не скучали на протяжении всей игры.
Кроме того, для повышения реиграбельности, вы можете добавить в ваши квесты определенные условия. Например, часть карт в Манчкине не сражается с игроками меньше определенного уровня, либо не применяет к ним непотребство при проваленной смывке, поэтому таких монстров можно спокойно вытянуть в начале игры, а в середине и в конце партии, наоборот, с ними придётся повозиться. В ужасе аркхема есть монстры, которые появляются по выполнении определенных условий, выполнить которые теоретически можно и в самом начале игры, но это довольно проблематично. В общем, примеров реиграбельности в дизайне хороших настолок довольно много, поэтому настоятельно рекомендую задуматься и об этом.
Разумеется, лишним не будет напомнить, что определенная логика, тем не менее, в заданиях должна быть – нельзя сначала побеждать главного монстра в игре, а только потом выполнять задания на поиск брони и оружия, которым можно этого монстра победить. Поэтому если сюжетно важные квесты будут лежать у вас в общей стопочке с обычными квестами, придётся изголяться в тексте и механике этих квестов таким образом, чтобы игроки поняли «Прямо сейчас я это не сделаю, но в итоге делать это мне придётся, иначе проиграем».
В ряде настолок квесты и задания распределены по категориям сложности и очередности разыгрывания таким образом, чтобы у игроков была возможность выбора либо предсказуемого решения того или иного вопроса. До того как сваливать все квесты в одну кучку попробуйте их всё-таки разделить. При этом слово «кучка» – весьма условное. Если у вас линейная бродилка, то в начале игры у вас должны быть задания, тормозящие игроков не очень сильно, либо требующие небольших денег для откупа, а в середине и конце настолки, соответственно, требующие большего.
Советы для новичков
Если это первый опыт, ставьте перед собой реалистичные планы. Глупо рассчитывать, что дебютная вещь, кое-как собранная на конструкторе, сразу вызовет ажиотаж среди игроков. Как ни смешно, но многие забывают мудрую поговорку – «первый блин комом». Потерпев пару неизбежных неудач, они сразу отказываются от затеи и переключаются на другие «надежные» способы самореализации.
Даже для элементарной пиксельной «чепухи» поначалу не хватит знаний. Глупо замахиваться на масштабную историю без серьезной теоретической подготовки и практического опыта. Вы же не станете участвовать в чемпионате страны, едва научившись плавать? Попробовать, конечно, можно, но история успеха оборвется на первом квалификационном заплыве, если туда ещё допустят.
Главная задача начинающего – получить представление о процессе и освоить инструментарий. Первым делом составьте простой и конкретный план. Лучше разбить его на несколько этапов, указав сроки выполнения для каждого. Старайтесь укладываться в дедлайн, но ничего страшного, если будут просрочки. Учеба в этой ситуации важнее, чем результат.
Если освоение какого-то приема занимает много времени, сразу обращайтесь за советами на форумах. Служба поддержки движка, с помощью которого вы создаете игру, тоже отвечает на технические вопросы достаточно оперативно.
- Регистрируйте достижения и неудачи документально. Фиксируйте и сравнивайте результаты за разные периоды. Это дисциплинирует и позволяет видеть, какой путь уже пройден с момента «ничего».
- Не концентрируйтесь на графике и звуке. Если не собираетесь становиться художником или композитором, осваивайте эти навыки только в свободные часы. Без качественного геймплея они не имеют значения. В истории полно примеров, когда интерес игроков вызывал банальный «набор движущихся пикселей».
- Избегайте долгих пауз. Длительный простой (больше недели) может «обнулить» полученные знания. Многое придется вспоминать заново. К тому же после возвращения к недоработанным вещам у человека часто возникает впечатление, что у него ничего не получается. Людям свойственно желать мгновенных результатов.
- Не бойтесь начинать заново. На каком-то этапе может прийти понимание, что продукт получается не таким, каким виделся сначала. Смело заканчивайте работу и начинайте реализовывать идею по-новому, используя полученные знания и навыки.
- Интересуйтесь чужим мнением. Если человек решил заняться этим делом всерьез, он хочет добиться результата. Какой смысл мучиться, делая игру для собственного удовольствия, при таком обилии готовых предложений? Если боитесь слишком резкой критики, для начала покажите приложения родным и друзьям.
- Закончили работу — сразу начинайте заниматься следующей идеей. Чтобы выйти на высокий уровень, нужно постоянно совершенствоваться. Даже ведущие мастера никогда не останавливаются на достигнутом. У человека, только запускающего карьеру, нет времени долго отдыхать.
Компьютерное творчество – это упорный труд
Производство игры
В середине августа завершился краудфандинговый проект. Мы рассчитывали, что финальная подготовка всех макетов, согласования и вся бюрократия к этому моменту будет завершена, и нам останется только оплатить производство, а через месяц начать выдавать игры спонсорам проекта.
Как же мы ошибались.
К этому моменту мы только заканчивали внесение финальных правок и иллюстрации, когда на этом этапе уже должны были быть готовы абсолютно все макеты и файлы по требованиям производства для запуска в тираж, а также напечатан сигнальный образец.
В итоге мы потратили ещё целый месяц, в процессе которого:
- закончили все иллюстрации и внесли правки в игру;
- привели все макеты и файлы в соответствие требованиям типографии;
- решали проблемы с нестандартными элементами игры и увеличением бюджета.
Даже в случае, когда первые два пункта были готовы, задержки было не избежать. В нашей игре было два нестандартных компонента, по которым пришлось решать проблему с типографией до запуска в тираж.
Большое поле, состоящее из шести частей. Нужно было добиться результата, в котором оно при раскладывании на столе не шло «волной» и выглядело цельным. Помимо времени, это увеличило изначально запланированный бюджет.
Флаги стран оказались настолько маленькими, что при их вырубке было очень сложно добиться точности, при которой они оставались выглядеть цельными.
Также нам пришлось перерабатывать размер карточек, паспортов, виз и вообще практически всех элементов игры под существующие размеры штампов и ножей для вырубки, чтобы не увеличивать стоимость и сроки производства.
В итоге, заключение договора и оплата случились только ближе к концу сентября. Сам процесс производства на типографии занял чуть больше месяца, и в ноябре мы получили первую партию нашего тиража в 1300 коробок с игрой. Прямо со склада типографии первая партия отправилась в пункт выдачи, где мы начали раздавать комплекты в тот же вечер.