Pull to refresh
0
0
Send message

Основы многопользовательской игры на Unity3D

Reading time11 min
Views157K


Привет, Хабрахабр!

Я, как и многие из вас, большой поклонник многопользовательских игр. В них меня прельщает в основном дух соревнования и возможность приобретать улучшения, накапливая достижения. Да и сама идея выхода в свет все большего количества игр данного типа побуждает к действию.
С недавнего времени я и сам взялся за разработку собственного проекта. И поскольку на Хабрахабре статей на эту тематику не нашел – решил поделиться своим опытом написания многопользовательской игры на движке Unity3D. Также хочу рассказать о компонентах Network и NetworkView, атрибуте RPC и встроенных методах-ивентах. В конце статьи подан пример игры и, разумеется, сам проект для Unity. Итак…
Читать дальше →
Total votes 49: ↑39 and ↓10+29
Comments24

Разработка одной игры — новый заход, Ч2

Reading time14 min
Views10K
Skippy's photoВот и пришло время продолжить рассказ об увлекательном хобби — геймдеве — разработке казуальных игр.
Ранее в статье я рассказал о первой своей игре под Андроид, которая подтолкнула меня пересмотреть подход в этапах создания и продвижения мобильного приложения. Сегодня я хочу поделится тем, к чему же я все-таки пришел после своего первого опыта и рассказать о создании новой, кросспалтформенной игры под Android и iOs, так же по дороге была сделана html5 и Tizen версия, но обо всем по порядку…
Читать дальше →
Total votes 31: ↑24 and ↓7+17
Comments3

Выбор направления бизнеса или как выиграть холивар

Reading time12 min
Views13K

Итак, решение заняться своим делом принято и одобрено хабрасообществом, за что ему огромное спасибо! Очевидно, в первую очередь следует понять, чем я буду заниматься. Решение серьезное – судьбоносное. Вспомним тот же эпичный анекдот:
Встречаются два друга:
— Как дела?
— Да вот, основал новый стартап, очень быстро растём, развиваемся.
— Круто! А в чём суть стартапа?
— Я провёл исследование рынка и решил публичный дом открыть.
— Ого, интересно, и какие цены?
— Анал — $100, орал — $50.
— А классический секс?
— Понимаешь, это ж стартап. В общем, я пока один работаю…

Я тоже один работаю и у меня тоже стартап, так что надо быть предельно осторожным и бдительным при принятии решения.
В данном посте я проиллюстрирую процесс принятия решения. Чтобы процесс был наиболее нагляден, я для каждой идеи ментально рожу своего персонального виртуального апологета, и решение приму учитывая весь этот разброд идей. Заодно покажу, как можно утихомирить такое полчище, коими наполнены переговорные комнаты во множестве больших организаций, и настроить его на конструктивный лад. Итак:
Поехали!
Total votes 43: ↑29 and ↓14+15
Comments67

Обновление сертификатов на билд сервере

Reading time2 min
Views5.7K

Во многих компаниях используют Continuous Integration.
Например, в Git может быть три ветки: customer, master, test.
Пуш в customer или test инициирует создание сборки, а также ее доставку на устройства заказчика или тестировщиков.

Для распространения тестовых сборок на iOS, используются Ad Hoc профайлы. Суть в том, что сборка должна быть подписана профайлом, в котором указан UUID устройств на которых она может быть установлена.

Процедура добавления/удаления устройства в Ad Hoc профайл требует его пересоздания. После того как профайл обновлен, он должен быть установлен на сборочный нод (компьютер на котором собирается сборка). Обычно процедура обновления профайла выполняется через Xcode, что требует доступ к сборочному ноду через VNC и непосредственного участия человека.

К счастью, все можно автоматизировать, в том числе и процесс обновления профайлов при запуске сборки.
Подробности
Total votes 25: ↑22 and ↓3+19
Comments6

Качественная локализация мобильного приложения. 5 простых советов и 12 ссылок

Reading time4 min
Views13K
На Хабре уже неоднократно писали о локализации игр и сложностях, с которыми могут столкнуться разработчики в процессе интеграции локалей в приложение.


Хочешь вовлечь пользователя? Общайся с ним на его языке!

Хотя вопросы «состыковки» текста с кодом, несомненно, важны, один момент – очень деликатный! – часто остается без внимания, и это – качество перевода. Почему? Для этого есть объективные причины.

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

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

Вторая причина – приоритет кода перед текстом. Логично, что юзабилити, монетизация и графика ставятся во главу угла. В конце концов, пользователь приходит в игру не для того, чтобы читать! Да на буквы эти и внимания никто не обратит! (Возьмите конфетку если вы разработчик, и такие мысли никогда не приходили вам в голову – значит, вы на самом деле исключение из правил).

В эту ловушку попадаются многие – задачи по подготовке локализации и ее тестированию часто откладываются на самый последний момент.

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

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

Как же добиться того, чтобы локализация не просто налезла на приложение, но и сидела на нем, как влитая?
Читать дальше →
Total votes 13: ↑12 and ↓1+11
Comments8

Настройка TeamCity для новичков

Reading time9 min
Views159K
Эта статья в первую очередь пригодится тем, кто использует тот же стек технологий, что и наша команда, а именно: ASP.NET, C#, NUnit, Selenium 2, git, MSBuild. Будут рассмотрены такие задачи, как интеграция с git, сборка C#-проектов, NUnit-тесты (как модульные, так и тесты UI), а также деплой на сервер. Впрочем, наверняка найдётся интересное и для других пользователей, кроме разве что съевших на этом вопросе собаку. Но они опять же смогут обратить внимание на ошибки в статье или что-то посоветовать: например, как оптимизировать фазу деплоя.
Читать дальше →
Total votes 39: ↑35 and ↓4+31
Comments12

Подарки от гиков родным и близким

Reading time5 min
Views63K


Вновь приветствуем вас этим погожим, теперь уже официально зимним днём. На календаре декабрь, а значит мы вышли на финишную прямую в подготовке к Новому Году. В нашем прошлом посте мы предложили вам несколько идей подарков для гиков. Однако гики не сферические кони в вакууме, у них есть матери, жёны, дочери, любовницы. Все эти милые родственники и им сочувствующие тоже любят получать подарки. Нам, мужчинам, выбор подарка для женщины традиционно даётся непросто. Поэтому сегодня мы хотели бы оказать помощь гикам в подборе подарков для своих родных и близких женщин.
Читать дальше →
Total votes 88: ↑73 and ↓15+58
Comments64

Направленное освещение и затенение в 2D-пространстве

Reading time8 min
Views48K

Добрый день, Хабравчане!
Хотелось бы рассказать об одном из способов отрисовки освещения и затенения в 2D-пространстве с учетом геометрии сцены. Мне очень нравится реализация освещения в Gish и Super MeatBoy, хотя в митбое его можно разглядеть только на динамичных уровнях с разрушающимися или перемещающимися платформами, а в Гише оно повсеместно. Освещение в таких играх мне кажется таким «тёплым», ламповым, что непременно хотелось нечто подобное реализовать самому. И вот, что из этого вышло.
Читать дальше →
Total votes 95: ↑94 and ↓1+93
Comments39

Fukami, ч. 1: репа с тентаклями

Reading time8 min
Views24K

Посадил дед репку… а из нее поползли тентакли.
UPD: Господа, отпишитесь пожалуйста, что со статьей не так и чем обидел может кого-то. А то в карму плевки полетели, а исправлять не понятно что. Не кОрысти ради, а дела благого для пишу...
Upd 2: забыл предупредить… В режиме дебага UnityEditor выводит в консоль сотнями сообщения о невалидных значениях кватернионов (ненормализованные они видимо). Из-за этого в дебаге начиная с некоторого момента начинает тормозить. Я пока не понял моя ли в том вина или бага.фича в релизе Unity. Руки не дойдут никак запостать вопрос на форуме Unity3D.
Читать дальше →
Total votes 77: ↑62 and ↓15+47
Comments16

Hot Dot Parallax Engine под лицензией MIT

Reading time2 min
Views30K
image
Более 300 сайтов использовали движок до публикации.

Девять месяцев назад мы запустили сайт студии. Он быстро набрал популярность, мы получили несколько наград, о нас написали профильные СМИ.

Сайт так же быстро оброс клонами. Некоторые скопировали нас полностью. Попадались и подобные забавные вещи. Сайт на нашем движке попал на One Page Love, а после выявления воровства был удален из рейтинга. Когда количество клонов превысило три сотни, мы решили сделать исходный код движка открытым.
Читать дальше →
Total votes 61: ↑57 and ↓4+53
Comments26

Локализация приложений для iPhone: как получить на 767% больше загрузок с помощью перевода ключевых слов

Reading time11 min
Views26K
Все разработчики для iOS мечтают попасть в Топ-10 App Store. Профессиональная локализация — путь к успеху. Проблемы, которые могут повстречаться на пути, самые разнообразные — забытая на старте проекта локализуемость, плохой переводчик, “кривое" тестирование локализации.

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

Переведено в Alconost.


Читать дальше →
Total votes 38: ↑35 and ↓3+32
Comments1

Опыт создания кроссплатформенной игры (iOS/Android)

Reading time6 min
Views84K

  Данный пост будет полезен разработчикам, которые только встали на радужный путь геймдева. В нашем недавнем посте уже было рассказано о первоначальных шагах нашей dream team в сфере игройстроя. Как и обещали, работаем в этом направлении дальше и решили попробовать себя в другом жанре игр. Далее будут кратко освещены некоторые моменты создания и публикации игры на двух платформах iOS и android.

Дать посту шанс...
Total votes 65: ↑60 and ↓5+55
Comments17

Постмортем: как умудриться совершить 14 ошибок, разработав одну социальную игру

Reading time9 min
Views73K
В феврале 2012 года было принято решение сделать компьютерную игру самостоятельно. Исходя из смешанного опыта, замахиваться на величайшие вершины геймдева я не стал, сконцентрировавшись на достижимых целях: небольшая социальная игра на паре крупнейших российских платформ. Все условия этому способствовали: желание разрабатывать игры, опыт ведения проекта от идеи до релиза и поддержки, знание специфики социалок, опыт работы с инвесторами, хорошие знакомые, у которых всегда можно спросить если и не помощи, то хотя бы совета.

image

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

КДПВ: текущее распределение проектов в геймдеве, одна Белоснежка и семь гномов.
Читать дальше →
Total votes 133: ↑127 and ↓6+121
Comments34

Создаем платформер за 30 минут

Reading time15 min
Views163K
Здравствуйте! Сегодня мы будем писать платформер, используя C++, Box2D и SFML, а также редактор 2D карт для игр Tiled Map Editor.

image

Вот результат (карта создавалась 5 минут + во время сьемки игра тормозила + экран не так растянут — дефект Bandicam):



Исходники и exe — внизу статьи.
Читать дальше →
Total votes 88: ↑84 and ↓4+80
Comments14

Вопросы на собеседование middle/senior iOS Developer

Reading time4 min
Views128K
Все мы ходили/ходим на собеседования. Каждый раз при подготовке к очередному собеседованию просматриваем основные темы, вспоминаем вопросы, которые нам задавали в предыдущие разы, или вопросы, которые сами задавали. Ниже хочу представить основные вопросы, которые часто (основано на личном опыте) можно получить на собеседовании на должность middle/senior iOS Developer. Так сказать, шпаргалка. Заодно можно проверить свой уровень знания платформы.
Список вопросов
Total votes 45: ↑34 and ↓11+23
Comments60

Почему мы не тестируем. Практика проведения технического интервью

Reading time5 min
Views52K
Я руковожу разработкой ПО уже достаточно много лет. За эти годы мне пришлось провести более тысячи интервью и посчастливилось захантить больше сотни классных программистов. Естественно, у меня сложилась определенная практика проведения технических собеседований, которой я собираюсь поделиться. Возможно, это окажется кому-то полезным.

Ставим задачу
Кого ищем? Ищем эффективных бойцов. Известно, что эффективность программистов со схожим опытом может отличаться в 10 раз (Ф. Брукс) или даже в 27 раз (Р. Гласс). Сразу, оговорюсь, эффективность это не только количество трупов врагов реализованных требований к ПО на единицу трудозатрат, но и умение результативно взаимодействовать с окружающими. Это важно, потому что по моим наблюдениям 50% проектных человеко-часов тратится на коммуникации. У нас это называется «синхронизация ментальных моделей».

Поэтому задача, которую ставим себе при проведении технического собеседования это постараться оценить эффективность бойца.


Если на заводы людей нанимают за умения и обучают нужному отношению к делу, то в разработке ПО, следует поступать наоборот. Нанимать за нужное отношение к делу и учить необходимым умениям. Не следует брать людей, которые знают и умеют, а потом заниматься промыванием их мозгов и пытаться мотивировать их на эффективную работу. Их знания и умения ничего не будут стоить уже через полгода или год.
В идеале, конечно, следует стараться привлечь и знающих, и умеющих, и подходящих по своим жизненным позициям. Но если приходится выбирать, то правильнее выбрать жизненную позицию. Ищем тех, кто хочет развиться и расти, а затем, если необходимо, помогаем им получить требуемые технические навыки. Предлагаем не работу, а возможности.
Почему не тестируем
Total votes 151: ↑125 and ↓26+99
Comments220

Timers in .Net

Reading time3 min
Views58K
В последнее время не в первый раз сталкиваюсь с тем, что разработчики не до конца понимают как работает один из стандартных таймеров в .NET — System.Threading.Timer.
Т.е. в общем-то они вроде понимают что таймер что-то выполняет, скорее всего в ThreadPool — и если его использовать для периодического выполнения чего-либо, то он вполне подойдет. Но вот если вам надо создать не один таймер, а положим 1000, то тут люди начинают волноваться: а вдруг вот что-то там не так, а вдруг это все-таки 1000 потоков и даже боятся использовать их в таких случаях.

Хотелось бы пролить немного света на этот «таинственный» System.Threading.Timer.
Читать дальше →
Total votes 31: ↑30 and ↓1+29
Comments23

Как выбрать издателя для вашей мобильной игры, или 5 правильных вопросов от разработчиков

Reading time6 min
Views26K
Команда KamaGames Studio с помощью друзей из KamaGames решила подумать над вопросом выбора издателя для мобильных игр. Этот вопрос актуален для многих инди-разработчиков, и рано или поздно приходится его решить.

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

image

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

Читать дальше →
Total votes 30: ↑23 and ↓7+16
Comments20

Развитие таксономии творческого самовыражения через понятийный аппарат математической теории игр

Reading time5 min
Views24K
Данная статья является логическим продолжением предыдущей.

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

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

  1. Наличие нескольких участников игры.
  2. Неопределенность поведения участников, связанная с наличием у каждого из них нескольких вариантов действий.
  3. Различие (несовпадение) интересов участников
  4. Взаимосвязанное поведение участников, поскольку результат получаемый каждым из них, зависит от поведения всех участников.
  5. Наличие правил поведения, известных всем участникам.

Как мы видим, уже первый признак игры пересекается с вопросом-разветвителем таксономии Кроуфорда — «Наличие соперника», что переносит математические игры в категорию "Конфликт".
Второй признак дополняет данный вывод заявляя, что соперник должен быть действующим агентом, т.к. алгоритмы искусственного интеллекта рано или поздно можно просчитать.
Третий и четвертый признаки не позволяют выйти нам за пределы данной категории, т.к. они одновременно удовлетворяют требованиям категории "Соревнование" и категории "Игра".
Пятый признак соответствует категории "Забава", но т.к. у нас есть признаки категории более низкого класса "Конфликт", то для развития мы выберем именно её.

Типы игр в математической теории игр

— Кооперативные, некооперативные и гибридные игры


Кооперативные или коалиционные игры в теории игр — игры, в которых игроки могут объединяться в группы, взяв на себя некоторые обязательства перед другими игроками и координируя свои действия.
Некооперативные игры — игры, в которых каждый игрок должен играть за себя.
image
Слева направо: 1. Настольная игра Dungeons&Dragons 2. Настольная игра Монополия 3. Шутер от первого лица Halo 4. Файтинг Mortal Kombat

Гибридные игры — игры, которые включают в себя элементы кооперативных и некооперативных игр. В таких играх игроки могут образовывать группы, но игра может вестись в некооперативном стиле (к примеру kill stealing в League of Legends).
image
Скриншот из игры League of Legends

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

Читать дальше →
Total votes 26: ↑18 and ↓8+10
Comments8

Правильная аналитика в мобильном приложении

Reading time6 min
Views64K
Подавляющее большинство мобильных приложений выходит в свет без интегрированных фреймворков аналитики и без правильной их настройки. Это очень печально, приложение не веб-сайт, где можно воткнуть Google Analytics за 10 минут и собирать статистику.

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

Под катом набор инструментов для аналитики и рекомендации по их настройке принятые в Touch Instinct и ценные комментарии от LinguaLeo и агентства мобильной рекламы Mobio.


Читать дальше →
Total votes 43: ↑38 and ↓5+33
Comments28

Information

Rating
Does not participate
Registered
Activity