Как добавить карты в навигатор навител андроид. Устанавливаем приложение Navitel на смартфон c Android. Установка карты с помощью ПК

Новости 25.02.2019
Новости

RPG за неделю? С нуля? Это вообще возможно?
Я рискнул, и я сделал это.

В интернете полно информационных ресурсов, доступных мелким, независимым (indi) разработчикам игр. На одном таком общественном форуме, в процессе спора, я имел неосторожность ляпнуть, что, если мне дадут неделю времени, компьютер со свежеустановленной Windows, и хорошее соединение с Интернет, я смогу создать достойную игру, не потратив на это ни цента. Нет, она конечно же не сможет конкурировать с Halo 2 или чем-то такого же уровня(если бы я мог создать такую игру за неделю, я бы давно бросил работу), но она будет достаточно интересной и играбельной.

Tom Bampton, автор ежемесячных обзоров игр в номинации «Игра на день» (www.gameinaday.com), сказал: "Дерзай!" Затем он добавил дополнительное условие - я должен сделать это, не используя существующие игровые движки. Мне можно использовать только основные библиотеки / API.

Сначала я отказался от этой идеи. У меня не было лишнего времени, чтобы на неделю отстранится от разработки текущего игрового проекта на работе. Но потом я подумал: да черт с ним, ведь что такое неделя? В типичной компании, например в Е.А., рабочая неделя составляет 40 часов. Так почему бы не сделать игру не за календарную неделю, а за 40 чистых часов? Это уже реальнее, - но я не хотел создавать очередной тетрис или арканоид. А как насчет ролевой игры - одного из самых сложных игровых жанров? Это возможно?

Я знал, что это будет чрезвычайно трудно. Но я принял вызов.

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

Так вот, как я создал игру в течение одной недели с нуля, и без бюджета. Если вам лень читать, и вы хотите побыстрее заглянуть в конец повествования, чтобы узнать, как выглядит конечный продукт, посмотреть все его баги, вы можете скачать версию игры для Windows здесь: http://www.rampantgames.com/hackenslash.html

ПЛАНИРОВАНИЕ
Цель
Создать олдскульную RPG в стиле старых игр начала 80-х, с видом "сверху вниз", например как The Temple of Apshai, Ultima III, и Telengard. Игрок будет двигаться через комнаты в типичном подземелье, сражаясь с различными монстрами с помощью «меча и магии». Постепенно он будет совершенствовать свои возможности получая опыт, повышая уровень, приобретая магическое снаряжение.

Однако, игра будет состоять не только из самого ведение боевых действий. Игрок также будет иметь возможность прокрасться мимо монстров, или вступить с ними в переговоры. Будут запертые двери и сундуки, и уникальные особенности подземелья, имеющие неожиданные эффекты. В игре не будет длинных описаний или диалогов, - в основном это будет типичный hack & slash. Вы будете двигаться по пути, пока не станете достаточно сильным, чтобы встретится лицом к лицу с финальным боссом, выполнить квест, и благополучно вернуться домой (в вашу стартовую комнату).

Правила разработки

Правило № 1: Время разработки ограничено одной неделей (включающей 40 часов)
На разработку игры должно быть потрачено в сумме не более 40 часов. Они будут включать время, потраченное на непосредственную работу над игрой и на ее обдумывание. Перерывы в разработке больше, чем десять минут, не будут учитываться. Это будет "идеальная" рабочая неделя из 40 высокопроизводительных часов.

За 40 часов будет сделана полнофункциональная альфа-версия. Дальнейшее допиливание, такое как окончательная отладка игры, создание инсталятора для распространения в общее время учитываться не будут, никакой новый функционал на этом этапе добавлен не будет. Документирование процесса разработки также не учитывается.

Правило № 2: Использовать только бесплатные инструменты
За исключением программного обеспечения, которое поставляется с установкой Windows, используется только свободный софт, по возможности с открытым исходным кодом. Смысл этого - показать, что не нужны дорогие (или пусть даже дешевые) инструменты для разработки игры. На оборудование, такое как сканер, микрофон и цифровая фотокамера, данное правило не действует - если у вас их нет, будем считать, что их можно у кого-то одолжить.

Правило № 3: Нет движкам, только стандартные библиотеки / API
Игра должна быть создана "с нуля" без использования существующих игровых движков. Никакого обмана, и создания игры или каких-то ее частей с помощью конструкторов игр или использования подобного программного обеспечения.

Инструменты
Код:

Python 2,3 (http://www.python.org/)
PythonWin
PyGame (http://www.pygame.org/)
Py2exe – чтобы собрать что получится в исполняемый файл для распространения. (http://starship.python.net/crew/theller/py2exe/)

Gimp 2,0 (http://gimp-win.sourceforge.net/)
MS Paint (тот что идет с Windows) - для вставки скриншотов, захваченных клавишей PrintScreen (GIMP почему-то отказался это делать)
Бесплатные текстуры были взяты (http://www.textureartist.net/textures/index.htm) и (http://www.mayang.com/textures/)

Audacity (http://audacity.sourceforge.net/) плюс мой микрофон или бесплатные.

Расписание (План) работ
Расписания составляют, чтобы их потом нарушать, но все же они нужны, чтобы контролировать прогресс и строки, и вносить коррективы по мере необходимости.

Час 1-10: Базовая архитектура
Проектирование движка и основных компонентов. Получить отображения мира на экране. Я должен реализовать возможность перемещать тестового игрока по всему миру, и смотреть на вещи, а затем превратить то, что получится, в игровой редактор.

Час 11-20: Возможности игрока
Реализация всех основных возможностей для игрока - перемещение, атака, открытие дверей, смерть, подбор вещей и использование инвентаря. Создать каркас представления всех объектов в окружающей среде, для тестирования возможностей игрока во взаимодействии с миром.

Час 21-30: Оживление мира
Добавить искусственный интеллект, игровые события, ловушки, спецэффекты. К концу этого периода я должен иметь достаточно полное техно-демо, включающее все основные особенности игры.

Час 31-40: Добавление контента и правил
Получить из техно-демки полноценную игру. Добавить все дополнительное содержимое. Добиться завершенности и баланса игровой механики. Отшлифовать все, на что хватит времени, добавить спецэффекты, анимацию и т.д.

После 40 часов: Тестирование и релиз игры
Протестировать, и устранить найденные ошибки (не добавляя новые возможности!) Собрать все в кучу, и выложить в интернете. Завершить документацию.

Дневник разработчика Hackenslash: Игра за неделю

Час 1 – Дикое проектирование и базовые классы
Этот час был проведен за созданием некоторых базовых классов для игры - и использования их в дальнейшем проектировании. Мир будет представлен в виде последовательности комнат, соединенных порталом. Все в мире базируется на комнатах, подобно тому, как это было в старых адвенчурах или MUDах. Большинство объектов в игре представлены как " GameObject ", который имеет позицию и содержимое (в том числе может содержать и другие объекты - карта может содержать комнаты, в комнате может быть сундук, в сундуке - меч... и, я думаю, меч может содержать несколько комнат, но мы так делать не будем.)

Я создаю объекты creature (существо) и player (Игрок)
Я генерирую набор атрибутов для существ, и внедряю их в класс. Видимо я задрот, который играет слишком много в РПГ игры. Я пока еще не знаю точно, как будет выглядеть и работать игровая механика.
Я делаю объект room (комната), наследуемый от GameObject. У комнаты есть ширина, высота, и стены - и на текущий момент больше ничего.

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

Час 2 - PyGame 101
Цель этого часа - инициализация PyGame, ну и начать хоть что-нибудь рисовать на экране. На самом деле, я провожу большую часть времени за чтением документации PyGame, пытаясь выяснить что там и как, поскольку у меня почти нет опыта использования PyGame или SDL.

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

Час 3 - Если бы стены имели уши, я б их сильно отругал.
Цель этой часа – обозначить контуры комнаты стенами, и отобразить это на все еще черном экране. Чтобы сделать это, мне нужна комната, и мне нужна графика. Приходится много сидеть над GIMPом, правя загруженные из интернета текстуры, так чтобы они превратились в подходящие тайлы. Я создаю класс менеджера текстур. И я заполняю структуру образца комнаты. Я также потратил немного больше времени, просматривая документацию PyGame, чтобы найти что-нибудь еще, что можно использовать, дабы сделать работу легче.

Час прошел. А у меня все тот же черный экран. Стен как не было, так и нет.

Часа 4 – В гостинице появился свободный номер
После борьбы с некоторыми синтаксическими ошибками, я, наконец-то смог добиться появления стен на экране. Правда отображаются они неправильно, находятся не в указанном месте, да еще и со щелями между сегментами. Это ужасно. Но немного настройки и правки, и я получил на экране что-то похожее на комнату, размером 10 на 10 квадратов.

Не имея подробного плана проекта, действительно довольно легко запутаться, когда выполнив определенную работу Вы задаетесь вопросом "Что дальше?" Я решил, что если рисунок одной комнаты хорошо, то нарисовать две – вдвойне лучше.

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

Час 5 - Hackenslash получает больше комнат

Я изменил название окна на "Hackenslash!". Просто потому, что это круто.
Я создал карту объектов для хранения комнат, и класс MapMaster содержащий несколько карт.
Я добавил вторую комнату и подключил к первой через портал.
Соседние комнаты подключены к текущей через порталы, и теперь отображаются на экране.
Я исправил некоторые ошибки отсечения, чтобы правильно отображались стены, частично выходящие за пределы окна.

Час 6 - за который мы улучшаем скил рисования

Добавил класс дверей, а также настроил карты для размещения двери (дверь должна быть общей для двух комнат). (Правка: Жаль, что я никогда это так и не использовал!)
Я создал еще 3 тайла стен, объединил их в одно изображение.
Графический вид стен изменяется в зависимости от типа.
Я делаю простую графику для вида сверху вниз.

Часы 7-8 – Вращения и восклицания!

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

Часы 9-11 – Елементы - бррр!

И вот опять, мне нужно решить вопрос "Что дальше?".

Комнатам нужно больше интересных элементов, поэтому нужно составить их список. Я не знаю, как их систематизировать, поэтому решил начать с общих. Я ввел три статических элемента, которые можно найти в типичной комнате в подземелье: ковер, колона(блок с той же функциональностью что и у стен), и лестница (позволяет переносится на новое место)

Я решил, что элементы могут занимать больше, чем один тайл, и могут быть повернуты на любой градус. (Правка: В ретроспективе, очень тупое решение - я провел слишком много времени на его реализацию, но оно оказалось почти бесполезным.)

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

Часы 12 - 13 - Нам нужен Лут!

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

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

Час 14 - Ковры

Я сильно отстаю от графика, что же мне делать?
Черный фон кажется слишком уродливым, поэтому я замостил полы внутри комнаты коврами - отдельными тайлами.

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

Зато уровень теперь выглядит круто. Ну, по крайней мере круче, чем черный.

Часы 15-16 - Click! Click!

Я занялся управлением мышью и обработкой событий.
Добавил управление персонажем мышью. Движение пока происходит рывками, нет плавной прокрутки уровня.
Игрок может выйти за пределы комнаты, отсутствует проверка столкновений.
Я исправил несколько ошибок.
Помучил GIMP и создал красивые лестницы.
.
На разработку уже затрачено почти 17 часов, так что я начинаю немного нервничать. Я прошел 2/5 пути создания игры, - закончился второй "рабочий день" разработки. То, что у меня уже сделано впечатляет, но я понимаю, что сделать осталось много больше. У меня есть еще четыре часа, чтобы закончить основные возможности игрока, и вложится в график. Это будет трудно... но я все равно не жалею, что потратил лишнее время на рисование графики!

Час 17 – Плавно перемещаемся, пока не стукнемся лбом о стену

Большинство времени потрачено на доводку графики и исправление ошибок.
Добавлено обнаружения столкновений и плавная прокрутка, при движении игрока.
Игрок теперь может делать несколько шагов (оборотов) в ответ на действие мыши.

Час 18 - Переступаем пороги

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

Час 19 - Лестница в небо, Адское меню

Мой брат вызвался сделать музыку для игры. Он сделал музыку для Void War, и получилось довольно хорошо. Это напомнило мне, что нужно сделать воспроизведение звука (и музыки). Вроде бы в PyGame это сделать довольно просто, поэтому оно не должно занять слишком много времени. (Правка:. Я так и не нашел для этого времени, к сожалению в Hackenslash вы не услышите ни единого звука.)

Моя следующая цель состоит в обработке взаимодействия с существами и предметами. Мне очень нравится, как это сделано в The Sims и Neverwinter Nights, когда вы хотите взаимодействовать с игровым объектом, появляется контекстное меню. Я планирую реализовать что-то похожее.

Учу лестницы перемещать игрока в новую комнату.
Я немного проштудировал Интернет и документацию PyGame, ища, нет ли где открытых исходных кодов подобного меню на PyGame. И не нашел ничего.
Я начал делать собственное меню.

Часы 20 - 21 - Что там с меню?

Я продолжаю работать над меню. Меню может быть легко подключено к объекту, точнее объект как бы порождает меню, что позволило легко реализовать обратную связь для обработки выбора игрока.
Я начал работать над меню вещей. Оно уже появляется в нужном месте, и позволяет выбирать какой-нибудь пункт, но при нажатии пока ничего не делает, работает только кнопка закрытия меню.

Час 22 – Заснуть в процессе

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

Я замечаю, что уже поздно, и что вышел далеко за пределы отведенного на эту работу часа. Если бы я не обращал внимания на общее время разработки – просидел бы, наверное, до утра. Но поскольку я ограничен во времени, потраченный практически впустую час - действительно плохие новости. Интересно, как сдвигаются приоритеты, когда не хватает времени. В общем, я ложусь спать.

Час 23 - Боевые параметры!

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

Час 24 - Меню игрока

Я завершил оптимизации для окна параметров.
Создал всплывающее меню, которое появляется, когда игрок кликнет на персонажа.
Я создал быстрое меню для использования зелий, кастования заклинаний и т. д.
Я исправил некоторые ошибки в работе меню.

Час 25 – До(раз)пиливаю полы и стены

Сегодня утром у меня в мозгу появилась идея (неужто у меня такой большой мозг, что в него вмещается столько идей?) как устранить проблему перекрытия стен в смежных комнатах (см. описание восемнадцатого часа). Что, если я буду рисовать только половинки стен? Таким образом перекрытия не будет вообще, и не нужно добавлять сложную логику для определения и исправления перекрытий.

Я начинаю работу над реализацией этой идеи. К сожалению, на самом деле придуманное упрощение еще больше усложняет отрисовку комнаты (в частности полов), и реализовать его можно не так быстро, как я надеялся. На создание и отлаживание этой системы было потрачено около часа. Но оно того стоило.

Отлаживая код, я обнаружил еще несколько ошибок, связанных с переходом между комнатами.

ПЕРЕРЫВ - Кризис!

Я только что осознал, что прошло больше чем 3/5 отведенного на разработку времени, и что осталось меньше пятнадцати часов, чтобы закончить игру. Посмотрев расписание необходимых функций игры, и прикинув, что на реализацию каждой нужно в среднем час, я понял, что на реализацию всего мне нужно около двадцати пяти часов. На десять часов больше, чем есть. Проект официально под угрозой срыва.

Выйти за пределы лимита времени мне нельзя. Также нельзя привлечь помощника или купить код/ресурсы, поскольку предусмотрено, что игру за 40 часов сделаю я один. Нужно придумать, как работать еще более эффективно – но я и так уже вкалываю на максимуме производительности. Похоже, у меня нет другого выбора, придется пересмотреть функционал, и решить, какие возможности выбросить из игры.

Двери: Вырезано! Я очень хочу сделать двери в игре. Жалко расставаться с этой функцией - тем более, что я уже некоторое время работал на ней. Но остается еще слишком много работ, например искусственный интеллект. И, наверное, понадобится 2-3 часа, чтобы заставить их работать, а их у меня нет.
Инвентарь: упростить! Забудьте о дополнительном инвентаре, и возможности смены оружия по желанию. Все, что подобрано и не стало текущим оснащением, будет сразу пересчитано в деньги.
Ловушки: упростить! Я хотел бы иметь множество ловушек с интересными и разнообразными последствиями их активации. Не судьба. Ловушки будет иметь простой визуальный эффект, наносить урон и временно увеличивать вероятность нарваться на случайного монстра
Луки (стрелковое оружие): Вырезано! В игре будет только оружие ближнего боя, на расстоянии можно атаковать заклинаниями.
Сохранение / загрузка игры: упростить! Сохранить можно только персонажа, а не состояние мира. (ПРАВКА: Я и этого не сделал!)
Система частиц: Отложить! Создание системы частиц перемещено в самый низ списка приоритетов. Я сомневаюсь, что придется их делать. Хотелось бы сделать впечатляющие визуальные эффекты с помощью частиц для заклинаний... но, скорее всего, этого никогда не будет.
Заклинания: упростить! У меня была серьезная концепция о заклинаниях: их можно было бы найти в виде свитков, и количество более десятка. Это грустно, но будет всего несколько заклинаний: Лечение, Урон, Ослабление, Усиление, и Восстановление. При повышении уровня, можно позволить игроку усилить заклинания за счет увеличения числа магических очков.
Анимация монстров и игроков: Вырезано! Я никудышный художник, чтобы сделать это достаточно быстро.

Принимая решение, что я не буду делать (или то, что отложу на после), не менее важно решить, что нужно сделать в первую очередь.

Есть много вещей, которые запланированные в игре, и которые я считаю очень важным – поиск ловушек, секретных дверей (ну теперь секретных проходов), и взлом сундуков. Но все же основой игры является бой. Поэтому я решил сосредоточится именно на нем, сделать его главным приоритетом. Я поставил перед собой цель, через полтора чала мои монстры оживут настолько, что их можно будет убить.

Отлично, с приоритетами разобрались, продолжаем разработку.

Час 26 - Бросим кости

Я работаю над механикой «игральных костей», - механизма, с помощью которого в игру будет внесен элемент случайности. Поскольку у нас нет ограничения реальных костей, мы можем получать случайное число любого желаемого диапазона. Например от 1 до 33, или от 6 до 17. Так что я могу бросить кости, сравнить то, что выпало со своей атакой и защитой врага. Если выпавшее число выше защиты, атака удалась.

Например, предположим, что у меня общее значение атаки 15. Я атакую монстра, у которого 10 защиты. Мои шансы 15 из 25 (25 =15 +10), или 3 из 5. Так игра будет генерировать случайное число между 1 и 25, и если оно выше десяти, я выиграю.

Для вычисления нанесенного урона используется немного другой способ. Я добавил защищающемуся параметр «броня», а атакующему "урон". Я генерирую случайное число от 1 до их суммы, а затем вычитаю броню. Если результат меньше единицы, урон не наносится. В противном случае, он равен полученному результату. Таким образом, если монстр, с уроном равным 10 атакует игрока с 5 очками брони, игра будет генерировать число от 1 до 15, из которого вычтет 5, то, что получится, и есть нанесенный урон.

Это объяснение и описание заняло больше времени, чем его реализация.

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

Опыт создателя игры «Обмани меня».

В закладки

Разработчик мобильной викторины «Обмани меня» Артём Собянин почти не знал языков программирования и не имел опыта в создании игр. Вместе с тем, его первый же проект стал достаточно популярным. В колонке для DTF он рассказал о своём опыте создания игры и поделился советами с теми, кто ещё планирует заняться разработкой, но не знает, за что взяться в первую очередь.

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

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

Это история создания моей первой игры, «Обмани меня» .

Предыстория

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

У нас появилась идея механики для викторины, которая лежала на поверхности, но до нас её в AppStore никто не реализовал. Да, в магазине приложений полным-полно викторин, но ни одна не способствует объединению людей и созданию здоровой дружеской атмосферы. Мы же задались целью создать игру, в которую бы хотелось играть как в компании, так и соревноваться со случайными соперниками онлайн.

Что же нас отличает

Механика. На каждый вопрос предлагается несколько вариантов ответа, но правильный только один. В начале раунда игроку предлагается ввести свой «обман». Именно из этих обманов, которые придумал ты и твои соперники, и состоит список предложенных вариантов ответов. Если соперник ошибается и выбирает один из обманов, то игрок, который его придумал, получает дополнительные очки.

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

Юмор. Для себя мы выделяем два типа тем: смешные и на проверку знаний. Смешные - это вопросы, которые сделаны нарочито смешными, обычно о каких-либо малоизвестных забавных фактах («Знали ли вы о таком великолепном виде спорта как экстремальная глажка?»), либо цитаты с пропущенным словом («_____ фотошопом не подправишь - Джоан Роулинг. Гадкую натуру? Отсутствие таланта?»).

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

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

Количество игроков. У нас в каждой игре участвуют до четырёх игроков, и игра проходит синхронно для всех. Никаких длительных ожиданий ответов, только быстрые игры, где сразу узнаёшь победителя. Это также удобно для быстрых сессий, когда надо скоротать пять минут в ожидании кофе или автобуса.

Первые шаги

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

Если вы делаете приложение или игру командой, то в ней обязательно должен быть главный - он берёт на себя ответственность за принятие решений, и его голос решающий.

Даже если изначально у вас одинаковое видение проекта, ваши мнения когда-нибудь обязательно разойдутся, а решение разногласий займёт уйму времени. Так мы потратили два месяца, потому что наши голоса разделились поровну и принять «демократичное» решение было невозможно. В итоге, я взял на себя всю работу по подготовке, как самый ярый сторонник реализации нашей идеи.

Составление ТЗ и выбор подрядчика

В разработке существует понятие MVP - Minimum Viable Product (Минимально жизнеспособный продукт). Жаль, что на этапе создания технического задания мы о нём не знали. Изначально мы планировали затратить минимум ресурсов и проверить, будет ли наш проект интересен пользователям, стоит ли его развивать.

Однако мы хотели, чтобы игра была максимально «укомплектована», то есть имела большую часть из тех фишек, которые мы задумали. Благо, после получения первых оценок стоимости, мы поняли, что слишком завысили свои желания и нам пришлось убрать некоторые функции, чтобы вписаться в бюджет. Из этого следует второй совет:

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

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

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

Несмотря на то, что разработка фрилансерами дешевле, с самого начала мы решили, что будем работать со студией по нескольким причинам:

    Студия предполагает комплексную разработку. Это команда из менеджера, дизайнера и разработчика. В случае с фрилансерами роль менеджера приходится играть самому, а разработчика и дизайнера искать по-отдельности.

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

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

Обратился бы я сейчас в студию? Маловероятно, потому что сейчас я чувствую себя увереннее, ведь я получил опыт: научился разговаривать и точно формулировать задачи; узнал, как работают те или иные сервисы; посмотрел, как происходит контроль за работой и как устроена коммуникация в команде. Более того, сразу после первого релиза я перешёл на работу с фрилансером.

Разработка

Всю мою работу можно разделить на две части: разработку и создание контента.

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

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

Отдельно отмечу важность комментариев в коде. Это позволит вам, даже с минимальными знаниями языков программирования, разобраться в нём и облегчит переход к другому разработчику в случае необходимости.

Второй половиной работы стало создание контента, а именно написание вопросов и тем. Это занимает намного больше времени, чем может показаться, ведь в нашем случае нужно продумать не только вопрос и четыре варианта ответа, но и все возможные варианты написания правильного (чтобы игрок, даже если захотел, не смог ввести в поле «лжи» правильный ответ), а также написать запасные неверные варианты ответов (для тех, кто не хочет самостоятельно придумывать «ложь»). Ещё какое-то время у меня отняла подготовка звуков, которые я брал из бесплатных библиотек freesound.org и diforb.com.

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

Несмотря на то, что наша игра не требует физики или 3D-моделей, выбор пал на Unity. Да, мы понимали, что нативная разработка лучше и проще (особенно что касается iOS). Но главным аргументом в пользу выбора универсального движка стала цена.

Поскольку мы отдавали всю работу на аутсорс, а его оплату производили из своих накоплений, то нам было важно максимально сократить расходы. Билд Unity легко переносится на другие платформы, а мы, на момент начала разработки, хотели сразу после полноценного релиза на iOS сделать порт на Android (и всё ещё собираемся этим заняться).

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

Серверной частью мы выбрали не очень популярный в России, но достаточно известный облачный сервис Gamesparks. По словам нашего разработчика, платформа очень удобная, а мы отметили хорошее соотношение цена/качество. Для инди-разработчиков они предлагают бесплатное обслуживание до тех пор, пока ваш MAU меньше 100 тысяч пользователей.

Что касается графики и дизайна, то уже после релиза мы поняли, что наш интерфейс не адаптивный и, по какой-то причине, не растягивается даже под iPad (работает только в режиме х2). На это также рекомендуем обратить внимание при разработке вашего дизайна.

Первый релиз

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

Мы не проводили даже первичное ASO (оптимизация для магазина): описание из одного предложения, отсутствие ключевых слов, неотредактированные скриншоты. «Там тысячи приложений каждый день появляются, так что нас никто и не заметит», - подумали мы и разослали ссылку 10-15 людям.

В магазине первая версия появилась 16 августа. К вечеру 17 августа количество показов достигло почти 5 тысяч, а скачали нас 66 раз. 18 августа еще 38 раз. Откуда пошли все эти показы и скачивания, нам до сих пор неизвестно (учитывая, что ссылкой мы больше не делились). К вечеру следующего дня количество показов нашего приложения составило 38 тысяч.

Обычно в такие моменты разработчики ликуют и ждут высоких показателей конверсии. Я же в панике начал скрывать приложение в магазине, чтобы его больше не видели. Всего мы получили около 200 скачиваний и можно сказать, что мы легко отделались - всего лишь тремя негативными отзывами. Спасибо отсутствию ASO, которое оттолкнуло пользователей от скачивания. Лишь спустя несколько дней я узнал, что наше приложение заняло 70-е место в категории «Викторины». Вероятно, это и стало причиной такого количества показов.

Было жутко обидно получить столько показов и не воспользоваться этим, ведь игра ещё была не готова.

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

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

Бета-тест

Сразу после доработок мы решили провести открытое тестирование. Как показала практика, Apple уменьшила сроки проверки приложений: если раньше на это требовалось от трёх дней до недели, то теперь, даже в праздники (в США), у меня на проверку ушло два дня. В этом релизе я также предпринял попытки сделать ASO (азы которого я, опять же, черпал в статьях различных изданий).

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

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

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

Несмотря на это, в данный момент проект заморожен, поскольку мы ищем команду, которая бы, как и мы, поверила в игру и была готова сотрудничать с нами в её разработке и развитии.

На сегодняшний день на «Обмани меня» ушло восемь месяцев. Из них: два - на написание ТЗ, четыре - на первую версию и ещё два - на доработки. Последние полгода почти без выходных шла работа над увеличением числа вопросов. Сейчас их более 2,5 тысячи, и мы стараемся добавлять новые вопросы и темы каждую неделю. Уточню, что добавление вопросов не требует обновления через AppStore, поэтому следите за понравившимися вам темами.

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

Если у Вас появились вопросы - пожалуйста, не стесняйтесь пишите их в комментариях или задавайте мне лично на

Здравствуйте читатели нашего портала GadgetMir. Сегодня мы раскажем немного о GPS навигаторе Navitel, который можно скачать с официального сайта , а для Android устройств с Google Play Market . Navitel – один из самых популярных навигаторов, его можно установить практически на любое устройство и на любую операционную систему. На Android устройствах количество установок составляет примерно 20 000 000. В отличии от большинства навигационных систем, данный навигатор может работать без доступа к сети интернет, то есть, достаточно один раз скачать и установить на устройство.

Как-то раз один из наших знакомых спросил меня, как можно добавить карту в GPS навигатор Navitel? Ну что ж, давайте попытаемся разобраться с данным вопросом.

В каких случаях нужно добавлять карту в GPS навигатор Navitel?

Только что установленная программа не имеет в комплекте никаких карт, Вам нужно самостоятельно загрузить карту в GPS навигатор Navitel, и это правильно. Карты занимают много места, поэтому нет необходимости все карты, Вы устанавливаете только ту, которая Вам нужна.

Другой случай, это когда Вы надумали поехать в путешествие за границу, вот тогда Вам понадобиться добавить карту в GPS навигатор Navitel.

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

Способы добавления карты в GPS навигатор Navitel

Способ 1. Ну что ж, Вы установили навигатор, и собираетесь добавить карту в GPS навигатор Navitel. Перед тем как добавить карту, нужно сначала запустить навигатор, он создаст на памяти устройства все необходимые ему папки. После запуска он сразу попросит указать путь к папке с лежащей в ней картой. Но для того, чтобы случайно не удалить карту я предлагаю поместить ее в папку навигатора, поэтому нажимаем кнопку «Выход».

Далее с помощью файлового менеджера берем нужную карту и подсовываем ее программе по следующему адресу: Память устройства(Phone storage)/NavitelContent/Maps. Бывают случаи когд памать телефона разбита на две части: внутренняя и sdcard0. В таком случае адрес будет немножко другим: Память устройства/sdcard0/NavitelContent/Maps. Теперь запускам свой Navitel и радуемся приложению, он уже не будет запрашивать путь к папке.

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

А Вы это знали?

Способ 2. В случаях, когда не достаточно места в памяти устройства для установки карт, тогда нужно карту поместить в любой каталог (так, что б вы помнили и не удалили его). Затем запустить приложение и начать добавление карты в GPS навигатор Navitel. Если навигатор еще не имеет карт, то при запуске откроется окно, изображенное на рисунке 1, и нажимаем кнопку «Добавить атлас». Но если у Вас есть подключенная, то данное окно не появится. В любом случае нужно добавить карту в GPS навигатор Navitel, для этого заходим в настройки приложения.

— В нижнем левом углу окна нажимаем кнопку «Меню»

— Затем нажимаем на кнопку «Настройки»

— Выбираем «Другие карты»

— Вы попали в список подключенных карт. Теперь чтобы добавить карту в GPS навигатор Navitel нужно тапнуть по кнопке «Добавить атлас»

Здесь нужно указать полный путь к карте. GPS навигатор Navitel видит всю память устройства, включая системную, поэтому у некоторых не опытных пользователей могут возникнуть трудности, из-за непонимания как выбрать память смартфона или карту памяти. Как только Вы нажали кнопку «Добавить атлас» у Вас откроется большой список папок в системной памяти устройства. Для того, что бы попасть в память телефона или на флеш накопитель Вам следует открыть папку «mnt» там Вы найдете память устройства и флешкарту.

Встречались случаи, когда в этой папке не отображалась флешкарта, в таких случаях следует вернуть на уровень вверх и войти в папку «storage». В папке «storage» отображается только память устройства и карта памяти.

Вот собственно и все, что касается добавления карт в GPS навигатор Navitel. Если возникнут вопросы – пишите в комментариях.

Оставайтесь с нами, впереди еще много интересного.

Навител навигатор GPS - одно из самых продвинутых и развитых приложений для работы с навигацией. С его помощью вы сможете добраться до нужной точки как в онлайн-режиме через мобильный интернет, так и в офлайн, предварительно установив определенные карты.

Устанавливаем карты на Навител Навигатор

Шаг 1: Установка приложения

Перед установкой удостоверьтесь, что в телефоне имеется не менее 200 мегабайт доступной памяти. После этого перейдите по ссылке ниже и нажмите на кнопку «Установить ».

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

Шаг 2: Загрузка в приложении

Так как в навигаторе не предусмотрен начальный пакет карт, то при первом запуске приложение предложит бесплатно загрузить их из предложенного списка.

1. Нажмите на «Загрузить карты »

2. Найдите и выберите страну, город или округ для точного отображения вашего местонахождения.

3. Следом откроется информационное окно, в котором нажмите на кнопку «Загрузить ». После этого начнется скачивание и следом установка, по окончании которой откроется карта с вашим местоположением.

4. Если вам понадобится дополнительно загрузить соседний округ или страну к уже имеющимся, то перейдите в «Главное меню », нажав на зеленую кнопку с тремя полосками внутри в левом нижнем углу экрана.

5. Следом перейдите во вкладку «Мой Навител ».

Если вы пользуетесь лицензионной версией приложения, то нажмите «Купить карты », а если скачали Навигатор для пользования в бесплатный 6-дневный период, то выберите «Карты для пробного периода ».

Шаг 3: Установка с официального сайта

Если по какой-то причине у вас нет доступа к интернет-подключению на смартфоне, то необходимые карты можно скачать на ПК с официального сайта Navitel, после чего следует переместить их на устройство.

2. Выберите необходимую, нажмите на нее, в этот момент начнется загрузка на ваш компьютер. По окончании файл карты NM7-формата будет находиться в папке «Загрузки ».

3. Подключите смартфон к персональному компьютеру в режиме USB-флеш-накопителя. Перейдите во внутреннюю память, следом в папку «NavitelContent », а далее в «Maps ».

4. Перенесите в эту папку загруженный ранее файл, после чего отключите телефон от компьютера и зайдите в Навител Навигатор на смартфоне.

5. Чтобы удостовериться, что карты были корректно загружены, зайдите во вкладку «Карты для пробного периода » и найдите в списке те, которые перенесли с ПК. Если справа от их названия есть значок корзины, значит, они готовы к работе.

На этом варианты установки карт в Навител Навигатор заканчиваются.

Если вы часто пользуетесь навигатором или рабочая занятость подразумевает наличие качественной GPS-навигации, то Navitel Navigator - достойный помощник в этом деле. А если же вы решитесь приобрести лицензию со всеми необходимыми картами, то в последующем приятно удивитесь работой приложения.





Рекомендуем почитать

Наверх