Как выйти из хаоса и начать работать / Хабр
Вот и настал этот день, когда мы представляем последнюю статью из цикла «GameDev с нуля». В ней тимлид и геймдизайнер из OVIVO рассказывает о структурном подходе к разработке игрового проекта.
Цикл статей «GameDev с нуля»
1. От хакатона до собственной студии разработки игр:
часть 1,
часть 2.
2.
Unity3D и векторная графика.
3.
Как общаться с игроком без слов.
4.
Как выйти из хаоса и начать работать.
Всем, привет! Меня зовут Александр, я тимлид и геймдизайнер в OVIVO. Сегодня я хотел бы рассказать о своем опыте руководства небольшой командой и поделиться мыслями о структуре разработки инди-игры: планирования работы команды, когда нужно задумываться о маркетинге, почему полезно использовать методологии и таск менеджеры, а диздок лучше в топку. Надеюсь, начинающим игроделам будет интересно почитать о нашем опыте, и он поможет им не потеряться в своих начинаниях.
Когда мы организовались как студия и начали разрабатывать OVIVO уже не для конкурса, а для реальных игроков, то я столкнулся с тем, что совершенно не знаю из чего состоит разработка игр. Подходящих статей на эту тему я не нашел, а те, что удалось найти, были слишком обобщенные. Я решил не запариваться этим вопросом, а зря. Следующие полгода разработки стали для нас хаосом: мы срывали сроки, писали какие-то заплатки вместо стабильного кода, делали кривые ролики для конференций. В общем, необходимо было структурировать процесс, и тут помогло мат-меховское образование и то, что я, оказывается, не всегда спал на лекциях. Мы подобрали для себя подходящие инструменты менеджмента, выработали свою структуру разработки и стало намного легче работать. Предлагаю к ознакомлению этапы разработки игры для небольших команд или соло разработчиков. Очень жду комментарии, дабы это дело доработать.
Этапы инди-разработки
Прототипирование
Многие пишут, что первый этап разработки — это создание концепт-документа.
К этому этапу важно приступить как можно скорее, чтобы опробовать идею на реальном игроке, получить фидбек и понять, разрабатывать игру дальше или остановиться. Многие могут зацикливаться на обдумывании своих идей, месяцами ждут, пока придет подходящая мысль, но в итоге ничего не создается и время проходит впустую. А ведь сейчас игровая индустрия развивается очень стремительно, количество контента значительно превышает спрос, и поэтому важно как можно быстрее наделить «оболочкой» свою идею.
Маркетинг
Возможно, это звучит бредово, но следующий этап после создания прототипа — это маркетинг. Я думаю, что многие разработчики неосознанно переходят к этому этапу или не задумываются о нем вовсе, а потом теряются в своих мыслях.
Маркетинг задает крайне важные вопросы для разработчика, ответы на которые облегчат ему дальнейшую жизнь и определят конечную цель. Первые два важных вопроса — это зачем делать игру, и для кого.
Этот этап можно пропустить, если игра создается для себя. Но не стоит потом удивляться, что никто не захочет покупать вашу игру, ведь главная цель, побуждающая играть в нее, понятна только вам. Если хочется какую-то денежку получить, то уже стоит определиться с аудиторией, примириться с некоторыми потребностями ваших игроков и научиться доносить до них тот опыт, который хочется передать. Получив на начальном этапе разработки ответы на вопросы, которые задает маркетинг, вам будет проще осуществлять дальнейшее планирование самой разработки.
Что же касается самого продвижения игры, то многие думают, что этот этап будет в самом конце разработки или можно вовсе обойтись без него. Так делают многие, так сделали мы, и это было ошибкой, потому что эффективное продвижение должно происходить на протяжении всех этапов разработки. О своей игре стоит говорить и набирать коммьюнити. Чем больше вы наберете потенциальных игроков до релиза, тем больше шансов, что о вас будут говорить. Вы привлечете внимание прессы и ютуберов, а в итоге получите больше шансов на успех игры.
Подготовка к работе
На этом этапе происходят брейншторминги, определение основных фич, создание концепт-артов, подготовка необходимых инструментов и хотя бы приблизительная оценка времени разработки.
Самое важное — определиться с общим видением игры и добиться того, чтобы это видение совпадало у всех участников проекта. Бытует мнение, что для этого надо заводить дизайн-документ, но для маленькой команды это бесполезная и устаревшая штука. В процессе разработки игра будет не один раз видоизменяться, а перечитывать каждый раз 20 страниц документации на новые изменения никто не будет. Вместо этого можно завести небольшой концепт-документ, описывающий основные идеи и фичи, а более детальное описание раскидать по таск-менеджерам и небольшим заметкам.
Стоит сразу определиться с теми инструментами, которыми вы будете пользоваться в процессе разработки, и не раскидывать рабочую переписку по всем имеющимся мессенджерам. Задуматься об инструментах контроля версий. Существует вероятность того, что работа будет происходить удалённо. В этом случае советую хранить проект на удаленном репозитории, а не на жестком диске. А время, потраченное на изучение работы с удаленным репозиторием гарантированно окупится в будущем и обезопасит проект от непредвиденных обстоятельств.
Разработка самой игры
Казалось бы, если есть четко построенный план, то нужно просто следовать ему и будет все окей. Но всегда может произойти форс-мажор, и к этому надо привыкнуть. Например, пришла в голову классная идея и, для того, чтобы ее реализовать, надо переписать всю имеющуюся архитектуру.
Эти и многие другие ситуации обязательно будут появляться в процессе разработки и оттягивать дату релиза. Минимизировать энтропию можно, если научиться дисциплинированно вести разработку. В этом помогает изучение методологий разработки проектов.
Для нас хорошо сработала методология Scrum. Был список задач, раскиданных на спринты, и каждый день мы проводили митинг, обсуждали текущие задачи, потом хлопали, и по традиции ели бананы. Это было странно, но мы так учились, и нам это нравилось. Потом многие элементы Scrum мы отсеяли за ненадобностью, и тем самым выработали для себя подходящий темп работы. Программисту и художнику достаточно открыть список задач и решать их по степени приоритета. Если есть вопросы или задача требует общего сбора, то вызываем групповой чатик. На момент написания этой статьи наша команда находится на разных материках, но каждый знает какие задачи необходимо решить, и для согласования действий достаточно одного созвона.
Во время разработки не нужно бояться давать тестировать игру сторонним людям. Когда тестированием занимаются только разработчики, очень легко замылить взгляд и забыть про то, какой опыт должен получить игрок. Во многом нам помогли поездки на разные конференции, где люди пробовали нашу игру и рассказывали нам свои ощущения. На определенном этапе мы поняли, что игра выходит чересчур хардкорной и непонятной. Тогда мы избавились от некоторых сложных механик на уровнях и значительно доработали интерфейс.
Подготовка к релизу
Как я уже говорил, маркетинг — это то, что будет сопровождать вашу игру от начала до конца. Начать работать над активным пиаром своей игры и вести переговоры с прессой и летсплеерами стоит за несколько месяцев до релиза.
Разработчику необходимо научиться кратко и доходчиво рассказывать об игре. Это нужно чтобы человек, которому направлено письмо с предложением сделать обзор на игру, сразу понял о чем идет речь. Это целая наука и об этом очень хорошо написано в книге «Маркетинг игр» от известного своими игровым подкастами Сергея Галенкина. Это отличный справочник для начинающих разработчиков. В ней простым и понятным языком рассказывается о маркетинге игр на всех этапах разработки.
В предрелизное время, кроме работы с прессой, стоит уделить особое внимание подготовке финального билда для продажи на площадках. У каждой площадки есть свои правила, SDK и список требований к вашей игре. Нужно принять несколько лицензионных соглашений, получить доступ к аккаунту разработчика, подготовить страницу на площадке, перевести ее на несколько языков, отправить билд на проверку, получить возрастной рейтинг и так далее. Все это занимает от нескольких недель до месяцев, в зависимости от того, на какой площадке вы выпускаете игру.
Релиз
На этом этапе будет важно осуществлять поддержку вашего продукта — игры без багов не выходят. Важно не только быстро исправлять баги, но еще и своевременно отвечать на вопросы игроков и отписываться о результатах работы над ошибками. Игроки ждут быстрого ответа, как от службы поддержки.
Стоит задуматься наперед о грядущих распродажах и скидках. Есть такая практика, что многие игроки пиратят вашу игру, а потом, для очистки совести, покупают ее с большой скидкой. С пиратством бороться нет особого смысла, да и не особо нужно, ведь это тоже своеобразный вид маркетинга.
Эпилог
Надеюсь, этот небольшой гайд поможет тем, кто так же, как и мы, столкнулся с вопросом: «Как правильно подойти к разработке игры?». Многие вещи приходят с опытом и набитыми шишками, но базовая теория всегда облегчает процесс познания.
Спасибо читателям и всем, кто следил за нашей разработкой и оказывал нам поддержку. Это заключительная статья в цикле «GameDev с нуля» и своеобразный эпилог к нашей разработке. Для нас этот путь был долгий и нелегкий, но чертовски увлекательный и незабываемый.
Очень жду ваших комментарий.
The circle is now complete. (с)
P.S. Сегодня у нас релиз,
ссылка на страницу игры в Steam.
Habrahabr.ru | Oct 13 | |
Уроки по SDL 2: Урок 14 Таймер и FPS http://habr.com/ru/p/583358 #C #C++ #Разработка_игр #sdl2 #gamedev #gamedevelopment | ||
Habrahabr.ru | Oct 05 | |
Уроки по SDL 2: Урок 13 ввод текста и прокрутка экрана http://habr.com/ru/p/581790 #C #C++ #Разработка_игр #sdl2 #gamedev #gamedevelopment | ||
Habrahabr.ru | Sep 30 | |
Уроки по SDL 2: Урок 12 Музыка и мышь http://habr.com/ru/p/580858 #C++ #Разработка_игр #C #sdl2 #gamedev #gamedevelopment | ||
Habrahabr.ru | Sep 28 | |
Уроки по SDL 2: Урок 11 Текст и Вращение http://habr.com/ru/p/580378 #C++ #Разработка_игр #C #sdl2 #gamedev #gamedevelopment | ||
Habrahabr. ru | Sep 23 | |
Уроки по SDL 2: Урок 9 — Отрисовка части изображений http://habr.com/ru/p/579682 #C++ #Разработка_игр #C #sdl2 #gamedev #gamedevelopment | ||
Habrahabr.ru | Sep 13 | |
Java. Adapter Pattern in Game Server http://habr.com/ru/p/577220 #Java #Разработка_игр #API #Дизайн_игр #Софт #gamedev #gamedevelopment | ||
Habrahabr.ru | Jul 03 | |
Chronicles of cyberpunk — Deep sleep http://habr.com/ru/p/565940 #Разработка_игр #Продвижение_игр #gamedev #gamedevelopment #unrealengine | ||
Habrahabr.ru | Apr 01 | |
Процедурная генерация карты http://habr.com/ru/p/550184 #Unreal_Engine #unrealengine #blueprint #gamedev #gamedevelopment #game_engine |
bsivko [licensed for non-commercial use only] / Gamedev
Организация геймплея:
http://inwebwetrust. org/trust/Game_Development_Dynamics_Playdeck.html
Зависимость игрока от игры:
http://habrahabr.ru/blogs/Game-Dev/88161/
http://bsivko.pbworks.com/f/gamedev_psi_5ways.rar
http://www.computerra.ru/magazine/360108/ — о транзитивных системах
http://www.rsdn.ru/article/philosophy/languages.xml — экзотические языки программирования
http://intellect-video.com/1537/Gordon-Programmirovanie-nedeterminirovannykh-igr-online/ — программирование недетерминированных игр
предыдущая ссылка сбилась. здесь обновленная. если собьется ещё раз, то искать через гугл.
Манифестгеймеров
Искусственный интеллект в играх — Алена С++
В дополнение об AI:
Вопросы из собеседования по ИИ в играх — обзор нескольких игровых понятий распространенных практических AI
Сид Мейер о цивилизации на GDC
Стрельба 3D-Action, экстраполяции во времени — http://habrahabr.ru/post/135306/
Three Keys to Mobile Application Design – Part 3 Gaming and Entertainment
http://noise. podst.ru/
core gameplay loop
http://gameprogrammingpatterns.com/
http://www.dataorienteddesign.com/dodmain/dodmain.html
http://inwebwetrust.org/trust/Indie_Game_Design_Manifesto.html
http://habrahabr.ru/post/225101/
http://habrahabr.ru/post/119711/
Procedural Content Generation Wiki
Red Blob Games
An Empirical Evaluation of TCP Performance in Online Games (Анализ пригодности TCP для многопользовательских игр)
С виду годные туториалы по OpenGL, не знаю, насколько устарели
http://eax.me/opengl-simple-project/ — Простой кроссплатформенный OpenGL-проект на C++
http://eax.me/links-issue-31/
http://eax.me/opengl-vbo-vao-shaders/
http://eax.me/opengl-model-view-projection/
http://eax.me/opengl-textures/
http://eax.me/opengl-models/
http://eax.me/opengl-lighting/
http://www.hvsc. c64.org/ — sid music
https://castbox.fm/channel/id25342?utm_campaign=i_share_ch&utm_medium=dlink&utm_source=i_share&country=en
Habrahabr.ru | Oct 13 | |
Недельный геймдев: #39 — 10 октября, 2021 http://habr.com/ru/p/583336 #Разработка_игр #разработка_игр #gamedev #gamedevnews #unity #godot | ||
Habrahabr.ru | Oct 13 | |
[Перевод] Оптимизация игр на Unity: проверенный в деле план http://habr.com/ru/p/582950 #Блог_компании_Playgendary #Разработка_игр #Unity | ||
Habrahabr.ru | Oct 12 | |
Освоение GitHub на примере Unity проекта. Часть 1 http://habr.com/ru/p/582940 #Git #GitHub #Unity #Удалённая_работа #git #unity #unity3d | ||
Habrahabr. ru | Oct 10 | |
Шейдера — это не сложно. Часть 1 — Вступление http://habr.com/ru/p/582678 #Unity #Разработка_игр #unity #шейдеры #shaders #glsl | ||
Habrahabr.ru | Oct 09 | |
Serialize Reference в Unity http://habr.com/ru/p/582574 #Unity #unity #c# #serialization #serializereference | ||
Habrahabr.ru | Oct 05 | |
Разработка Unity плагинов для iOS и Android http://habr.com/ru/p/581160 #Разработка_под_iOS #Разработка_под_Android #C# #Unity #unity | ||
Habrahabr.ru | Oct 03 | |
Подготовка 2д арта для игр http://habr.com/ru/p/581244 #Разработка_игр #Unity #Дизайн_игр #art #2d_art_optimization #unity #unity3d | ||
Habrahabr.ru | Sep 21 | |
Разработка игр Unity под Android http://habr. com/ru/p/579124 #Блог_компании_OTUS #Разработка_игр #Unity #unity #game_dev | ||
Habrahabr.ru | Sep 15 | |
Создание шутера с LeoECS. Часть 2 http://habr.com/ru/p/578054 #Разработка_игр #C# #Unity #unity #ecs #leoecs #c# #net #разработка_игр | ||
Habrahabr.ru | Sep 13 | |
Спрайты http://habr.com/ru/p/577696 #Блог_компании_OTUS #Unity #unity #разработка_игра_на_unity #спрайты #Гексагональная_карта | ||
Habrahabr.ru | Sep 08 | |
Аим-ассист в мультиплеерном шутере — как сделать правильно http://habr.com/ru/p/576812 #Блог_компании_Lightmap #Разработка_игр #Unity | ||
Habrahabr.ru | Sep 07 | |
Недельный геймдев: #34 — 5 сентября, 2021 http://habr. com/ru/p/576788 #Разработка_игр #gamedev #gamedevnews #разработка_игр #unity | ||
Habrahabr.ru | Sep 06 | |
Первые шаги в Unity http://habr.com/ru/p/576434 #Блог_компании_OTUS #Unity #разработка_игр #разработка_игр_на_unity #unity #gamedev | ||
Habrahabr.ru | Aug 31 | |
Недельный геймдев: #33 — 29 августа, 2021 http://habr.com/ru/p/575618 #Разработка_игр #gamedev #разработка_игр #unity #новости #дайджест | ||
Habrahabr.ru | Jul 13 | |
Недельный геймдев: #26 — 11 июля, 2021 http://habr.com/ru/p/567598 #Разработка_игр #дайджест #gamedevnews #новости #unity #unity3d #gamedev | ||
Habrahabr.ru | Jul 11 | |
Брэнсон первым слетал туристом на космоплане Unity http://habr. com/ru/p/567136 #Научно-популярное #Космонавтика #Будущее_здесь #Unity | ||
Habrahabr.ru | Jul 10 | |
Фильтр Калмана: разбор навигационной системы БПЛА + исходный код http://habr.com/ru/p/567042 #C++ #Алгоритмы #Математика #Unity | ||
Habrahabr.ru | Jun 27 | |
Поговорим о шейдерах, их проектировании и Unity http://habr.com/ru/p/564892 #Разработка_игр #Unity #CGI_(графика) #Разработка_под_AR_и_VR | ||
Типичный программист | Jun 21 | |
Интенсив «Диалоговая система, инвентарь и квесты в Unity» https://tproger.ru/?p=164554 #Level_Up #Unity #Для_продвинутых | ||
Habrahabr.ru | Jun 19 | |
Обзор технологий трекинга: AR маркеры http://habr. com/ru/p/563666 #Unity #Разработка_под_AR_и_VR #AR_и_VR #трекинг #Технологии_трекинга | ||
Habrahabr.ru | Jun 16 | |
Подпишись, чтобы не пропустить — События http://habr.com/ru/p/563158 #Программирование #Проектирование_и_рефакторинг #Разработка_игр #Unity | ||
Habrahabr.ru | Jun 15 | |
Недельный геймдев: #22 — 13 июня, 2021 http://habr.com/ru/p/562934 #Разработка_игр #unreal_engine #разработка_игр #blender #unity | ||
Habrahabr.ru | Jun 04 | |
No-code — смерть программистов http://habr.com/ru/p/561040 #CMS #Java #HTML #Разработка_под_Android #Unity #no-code #android_studio #unity | ||
Habrahabr.ru | Jun 03 | |
[Перевод] Пулинг объектов в Unity 2021+ http://habr. com/ru/p/560880 #Блог_компании_OTUS #Unity #unity #пулинг #пул #game_development | ||
Habrahabr.ru | May 30 | |
Как обновить все сцены Unity-проекта в один клик http://habr.com/ru/p/559958 #Habr #Программирование #Разработка_игр #C# #Unity | ||
Habrahabr.ru | May 22 | |
Unity от Virgin Galactic слетал в космос третий раз http://habr.com/ru/p/558808 #Научно-популярное #Космонавтика #Будущее_здесь #Unity | ||
Habrahabr.ru | May 08 | |
Ускоряем ваш Unity проект. ECS для MonoBehavior разработчиков http://habr.com/ru/p/556370 #Я_пиарюсь #Unity #unity #ecs #DOTS | ||
Habrahabr.ru | May 06 | |
Тир. Стрельба рейкастами на Unity 3D http://habr. com/ru/p/556176 #Разработка_игр #C# #Unity #разработка_игр #курсы_программирования #unity | ||
Habrahabr.ru | May 02 | |
Спасибо хабравчанам за участие в Онлайнстрации http://habr.com/ru/p/555504 #Разработка_игр #Node_JS #Unity #Игры_и_игровые_приставки #1_мая | ||
Habrahabr.ru | May 01 | |
Монстрация-онлайнстрация http://habr.com/ru/p/555398 #Разработка_игр #Node_JS #Unity #Игры_и_игровые_приставки #1_мая #онлайнстрация | ||
Habrahabr.ru | Apr 27 | |
Недельный геймдев: #15 — 25 апреля, 2021 http://habr.com/ru/p/554788 #Разработка_игр #разработка_игр #gamedev #unity #unty3d #дайджест | ||
Habrahabr.ru | Apr 26 | |
Немного о графиках, сплайнах и генерации ландшафта http://habr. com/ru/p/554484 #Программирование #C# #Unity #C# #Unity #алгоритмы | ||
Habrahabr.ru | Apr 21 | |
Недельный геймдев: #14 — 18 апреля, 2021 http://habr.com/ru/p/553678 #Разработка_игр #разработка_игр #gamedev #unity #unty3d #дайджест | ||
Habrahabr.ru | Apr 21 | |
Как проходить собеседования на Unity разработчика http://habr.com/ru/p/553548 #NET #C# #Unity #Игры_и_игровые_приставки #Интервью | ||
Habrahabr.ru | Apr 20 | |
[Перевод] Как мы взломали шифрование пакетов в BattlEye http://habr.com/ru/p/553210 #Блог_компании_SkillFactory #C# #Unity | ||
Habrahabr.ru | Apr 20 | |
Игровые механики на уроке геометрии или векторы на Unity 3D http://habr. com/ru/p/553420 #Разработка_игр #C# #Unity #unity #unity3d | ||
Habrahabr.ru | Apr 18 | |
[Перевод] Создаём 2,5D-игру жанра Dungeon Crawling в Unity http://habr.com/ru/p/476036 #Разработка_игр #Unity #Дизайн_игр #dungeon_crawlers | ||
Habrahabr.ru | Apr 16 | |
Регдоллы на Unity 3D http://habr.com/ru/p/552840 #Разработка_игр #C# #Unity #разработка_игр #unity #unity3d #уроки_программирования | ||
Habrahabr.ru | Apr 16 | |
Судно на воздушной подушке на Unity 3D http://habr.com/ru/p/552834 #Разработка_игр #C# #Unity #разработка_игр #unity #unity3d | ||
Habrahabr.ru | Apr 16 | |
Разработка своей Just Shapes & Beats. Канвас и немного об оптимизации http://habr. com/ru/p/552296 #Разработка_игр #C# #Unity #jsab #jsb | ||
Habrahabr.ru | Apr 11 | |
Разработка своей Just Shapes & Beats и как всё началось http://habr.com/ru/p/551888 #Разработка_игр #C# #Unity #JSAB #JSB #Unity | ||
Habrahabr.ru | Apr 09 | |
Синтезатор на Unity 3D http://habr.com/ru/p/551516 #Разработка_игр #C# #Unity #unity #unity3d #unity_уроки #unity_туториал | ||
Habrahabr.ru | Apr 04 | |
Как стать разработчиком игр имея за пазухой только здравый смысл? http://habr.com/ru/p/550666 #Unity #Unreal_Engine #GTD | ||
Habrahabr.ru | Mar 25 | |
Основы Unity + Mirror http://habr.com/ru/p/549018 #C# #Unity #unity #mirror #synclist #syncvar #network | ||
Habrahabr. ru | Mar 19 | |
Игровые локации, или как сюжет раскрывается через окружение в современных играх http://habr.com/ru/p/548034 #Unity #Unreal_Engine | ||
Habrahabr.ru | Feb 24 | |
Менять одежду на персонажах из MakeHuman в Unity3d http://habr.com/ru/p/544048 #Unity #unity3d #gamedev | ||
Habrahabr.ru | Feb 11 | |
Унификация поиска пути вместо различной логики ИИ http://habr.com/ru/p/541928 #Программирование #Разработка_игр #Unity #unity #pathfinding | ||
Habrahabr.ru | Feb 10 | |
Стики и работа с Event System в Unity 3D http://habr.com/ru/p/541868 #Разработка_игр #C# #Unity #unity #unity3d #tutorial #разработка_игр | ||
Habrahabr.ru | Feb 06 | |
A bit about our currently nameless game company, and what we’re working on at the moment http://habr. com/ru/p/541178 #Разработка_игр #Unity | ||
Habrahabr.ru | Feb 04 | |
Жидкий персонаж на Unity 3D http://habr.com/ru/p/540274 #Разработка_игр #C# #Unity #Дизайн_игр #unity #unity3d #rigid_body #2d-физика | ||
Habrahabr.ru | Feb 02 | |
Почему мы трансформируем трёхмерные векторы матрицами 4х4? http://habr.com/ru/p/540632 #Математика #Unity #WebGL #матрицы | ||
Habrahabr.ru | Feb 01 | |
[Перевод] Вычисляем баллистические траектории в играх http://habr.com/ru/p/538952 #Разработка_игр #Алгоритмы #Математика #Unity #баллистика | ||
Habrahabr.ru | Feb 01 | |
Обзор технологии трекинга: AR Маски http://habr.com/ru/p/540440 #Разработка_игр #Unity #Разработка_под_AR_и_VR #AR_и_VR #технологии_трекинга | ||
Habrahabr. ru | Jan 31 | |
Бильярд на Unity 3D http://habr.com/ru/p/540186 #Разработка_игр #Unity #Дизайн_игр #unity #unity3d #разработка_игр #уроки_программирования | ||
Habrahabr.ru | Jan 31 | |
Немного о нашей безымянной студии и о том, что мы делаем http://habr.com/ru/p/540174 #Разработка_игр #Unity #Тестирование_игр | ||
Habrahabr.ru | Jan 31 | |
Эффект дождя. Частицы в Unity 3D http://habr.com/ru/p/540146 #Разработка_игр #C# #Unity #Дизайн_игр #unity #unity3d #курсы_программирования | ||
Habrahabr.ru | Jan 29 | |
Подводные камни — Анимация травы (Unity3d) http://habr.com/ru/p/539928 #Unity #unity #unity3d #animation | ||
Habrahabr.ru | Jan 25 | |
Дом в лесу. Работа с освещением в Unity 3D http://habr.com/ru/p/538910 #Разработка_игр #Unity #Дизайн_игр #unity #unity3d | ||
Habrahabr.ru | Jan 23 | |
Моделирование дома в SketchUp и перенос его в Unity 3D http://habr.com/ru/p/538878 #Работа_с_3D-графикой #Разработка_игр #C# #Unity | ||
Habrahabr.ru | Jan 23 | |
Деревья (плагин SpeedTree) на Unity 3D http://habr.com/ru/p/538874 #Разработка_игр #C# #Unity #Дизайн_игр #unity #unity3d | ||
Habrahabr.ru | Jan 17 | |
Платформер от первого лица на Unity3D http://habr.com/ru/p/537586 #Разработка_игр #C #Unity #Дизайн_игр #unity #unity3d #школа #курсы | ||
Habrahabr.ru | Jan 13 | |
Поговорим про градиенты в Unity http://habr.com/ru/p/537256 #NET #Разработка_игр #Unity #CGI_(графика) #AR_и_VR #figma #unity #unity3d | ||
Habrahabr.ru | Jan 10 | |
Flappy Bird на Unity 3D http://habr.com/ru/p/536658 #Разработка_игр #C# #Unity #Дизайн_игр #разработка_игр #unity #unity_3d | ||
Habrahabr.ru | Jan 09 | |
Мой топ полезных инструментов для Unity разработчика http://habr.com/ru/p/536546 #Разработка_игр #Unity #Разработка_под_AR_и_VR #unity | ||
Habrahabr.ru | Dec 11 | |
Перестаньте использовать UnityEngine.Random http://habr.com/ru/p/531042 #Unity #алгоритм #генерация_случайных_чисел #random #unity #unity3d | ||
Habrahabr.ru | Dec 04 | |
Представляем Owlcat Mono Profiler для Unity http://habr.com/ru/p/531248 #Программирование #Разработка_игр #Unity #Unity #Mono #Profiler | ||
Habrahabr.ru | Nov 29 | |
Сильные стороны трассировки лучей с непрямым освещением http://habr.com/ru/p/530408 #Работа_с_видео #Работа_с_3D-графикой #Unity | ||
drudge_report | Nov 25 | |
#Biden #appeals for #unity in holiday address… https://apnews.com/article/joe-biden-thanksgiving-address-unity-8505863d752f9de4dea59b4076a | ||
Habrahabr.ru | Nov 23 | |
Math Invasion. Мой долгострой http://habr.com/ru/p/529446 #Delphi #Разработка_игр #Unity #mathinvasion #math #математика #игра #android | ||
Habrahabr.ru | Nov 23 | |
Why China is Desperate for International Games http://habr.com/ru/p/529402 #Разработка_игр #Разработка_под_Android #Unity #Продвижение_игр | ||
Habrahabr.ru | Oct 29 | |
[Из песочницы] Разработка инди-киберпанка http://habr.com/ru/p/525584 #Разработка_игр #Разработка_под_Android #Unity #киберпанк #игра | ||
Habrahabr.ru | Oct 26 | |
[Из песочницы] Что такое Unity Asset Store и как на нем зарабатывать? http://habr.com/ru/p/525050 #Разработка_игр #Unity #unity #asset_store | ||
Habrahabr.ru | Oct 17 | |
Как мы переосмыслили работу со сценами в Unity http://habr.com/ru/p/523860 #Unity #C# #Разработка_игр #unity #unity3d #csharp #gamedev | ||
Habrahabr.ru | Oct 14, 2020 | |
[Из песочницы] Sheduler удобный расспорядок вызова функций, моя система кондиций http://habr.com/ru/p/523420 #NET #Visual_Studio #Unity | ||
Типичный программист | Oct 12, 2020 | |
Онлайн, курс: «Обучение разработке игр с нуля до первой зарплаты» https://tproger.ru/?p=135208 #Level_Up #C# #Game #Unity #Для_начинающих | ||
Habrahabr.ru | Oct 09, 2020 | |
[Перевод] Database using ScriptableObjects with save/load system http://habr.com/ru/p/522834 #Unity #Разработка_игр #scriptableobject | ||
Habrahabr.ru | Oct 09, 2020 | |
Оптимизация 3D-графики под WebGL (опыт PLANT-SIM) http://habr.com/ru/p/522704 #Блог_компании_IT-центр_МАИ #CGI_(графика) #Unity #WebGL | ||
Типичный программист | Nov 13, 2019 | |
23 ноября, Минск: конференция Talents in Games 2019 https://tproger.ru/?p=121979 #Level_Up #Unity #Разработка_игр | ||
Типичный программист | Oct 30, 2019 | |
Интеграция своей игры в Steam: работа с лобби в Steamworks.NET https://tproger.ru/?p=121363 #Статьи #Unity #Разработка_игр | ||
Сёма Мрачный | Jun 17, 2017 | |
#today Asgardia [celebrates](https://asgardia.space/en/page/chronicles/asgardia-celebrates-its-first-unity-day) its first #unity day. | ||
NXTer Magazine | Mar 01, 2015 | |
SuperNET Newsletter #14 ⌘ http://nxter.org/?p=6793 #announcements #assets #development #instantdex #nxt #opalcoin #ramchains #skynet #unity | ||
D | Nov 04, 2014 | |
Celebrating #GuyFawkes day, by watching #VforVendetta — #Strength thru #Unity; Unity thru #Faith |
К десятилетию Хабрахабр: 10 статей, которые помогли начать воплощать игру
В этом году юбилей у замечательного сайта Хабрахабр, ему исполнилось 10 лет.
Увидев предложение написать к десятилетию Хабрахабр свою историю, я понял, что такая история у меня есть. Это очень личная история, про воплощение Мечты. Все началось в моей юности, в 90-е годы, в те времена мониторы были кубические, как микроволновки, а интернет – редкой и непонятной штукой.
Я работал в госконторе под названием «Подросток», она объединяла подростковые клубы города (такие есть и сейчас, в них как правило кружки по вязанию, рисованию и т.д.). К работе прилагалась зарплата размера «радость бомжа», помещение модели «полуподвал» и полная свобода действий. Там мы играли в стратегическую игру. Сейчас я понимаю, что это была пошаговая онлайн-стратегия с тактическими боями в реальном времени, хотя ни одного компьютера не использовалось. Роль центрального сервера выполнял я. Клиентам (игрокам) предоставлялся стартовый информационный пакет в виде нарисованной от руки карты (лист А4), вики с правилами и формулами (4 листа А4) и начальная вводная (60-120 минут голосового трафика). Клиенты формировали информационный пакет в виде листочка в клеточку с рукописной информацией. Пакет коммутировался до центрального сервера и сохранялся в папку (из картона белого цвета, с веревочками для завязывания). В определенный момент сервер переставал принимать пакеты и запускал обработчик событий. Результаты обработки сохранялись в базе (велась в тетрадке, с соблюдением правил транзакционности). После обработки сервер проверял наличие клиентов (визуально, кто есть в комнате) и последовательно инициировал сеанс синхронизации данных клиента с данными сервера. В процессе синхронизации могли быть уточнения в данных сервера, что в свою очередь логировалось и вызывало внеочередные краткосрочные сеансы синхронизации с уже обработанными клиентами.
Иногда возникало событие «Битва», основной процесс игры останавливался и начинался тактический бой в реальном времени. Он происходил с помощью листочка с изображением схемы местности где рисовались построения войск, стрелками указывались их перемещения, а при соприкосновении высчитывался и применялся урон. Именно там я научился делать в уме подряд несколько арифметических действий с 3-4-значными числами, используя плавающую точку. Результат битвы имплементировался в основную игру. А результат мог быть значительным, например переход области под контроль другого игрока, что требовало синхронизации стартовых информационных пакетов игроков. Эта синхронизация обычно происходила отправкой широковещательного пакета с дальней p2p-передачей (Слушайте все! И передайте остальным …).
В игре участвовало 30-50 человек и длилась она 3-4 года. Эмоций и драйва было столько, что у меня появилась Мечта! Сделать такую же игру, но на новом уровне качества.
С тех пор прошло много времени, я успел сделать карьеру в ИТ, приобрести множество полезных бизнес-скиллов, завести семью, детей и долларовую ипотеку (только не смейтесь!), поиграть в два десятка онлайн-стратегий. И все это время, я (в глубине души) понимал, что все это только подготовка к реализации Мечты.
2015 год, я понял: пора. Собрал команду единомышленников, и мы начали делать командную стратегическую онлайн-игру. Будучи человеком системным и обладающим опытом реализации проектов, я начал со сбора практической информации о том как создаются игры. Найденные ссылки я сохранял в отдельный текстовый файл, группировал их по рубрикам, снабжал краткой аннотацией. Периодически этот файл подвергался ревизии, среди одинаковых (похожих) ссылок выбирались более полезные, малополезные удалялись. Таким образом, сформировалась моя личная база знаний по предмету. Удивительно (а может и не удивительно), чаще всего там встречались ссылки на Хабрахабр.
Итак, к десятилетию Хабрахабр я хочу перечислить 10 статей опубликованных на Хабре, которые помогли мне начать реализовывать данный проект. Мою мечту.
Статья первая. С чего начать?
Дано крупными мазками описал как делается игра, что такое идея, сюжет, дизайн, геймплей, интерфейс, монетизация. Для опытного человека, который понимает, что такое бизнес вообще, и IT в частности, самый раз чтобы начать изучать новую тему.
https://habrahabr.ru/post/188372/
Вторая статья. Бизнес и цифры.
Создание игры – профессиональная деятельность, а любая профессиональная деятельность обладает своими измеряемыми параметрами. Подборку показателей с объяснениями «на пальцах» я нашел в блоге Майл.Ру «Численные характеристики онлайн-игр» https://habrahabr.ru/company/mailru/blog/258463/
Конечно это далеко не все, статья дала общее понимание куда копать. В результате я узнал очень многое про анализ игр, как его делать и как посчитать.
Статья третья. Как и что делать?
Инструкция начинающего разработчика игр. Грамотная и толковая https://habrahabr.ru/post/153933/
А еще прямо и открыто указано на проблемные моменты.
Четвертая. Магия «Free to PAY»
В наше время онлайн-игра и free to pay стали практически синонимами. А любой мало-мальски подкованный в бизнесе вам скажет: не вздумайте переть против тренда! Надорветесь, если вы конечно не Intel. Стало быть, мне понадобилось изучить все что касается этого самого фри ту плей, и я нашел подборку интересных статей:
https://habrahabr.ru/company/anvilgames/blog/286640/
https://habrahabr.ru/company/anvilgames/blog/289754/
https://habrahabr.ru/company/anvilgames/blog/293822/
Эта серия из трех последовательных статей наглядно демонстрирует, что компании типа Майл.Ру с точки зрения бизнеса делают правильную монетизацию. Хотя игроки их зачастую ругают за это. А еще интересны статьи про маркетинг из этого блога: конкретные цифры на конкретном предмете.
Пятая статья. Что делает хорошую игру успешной игрой?
Три вещи: маркетинг, маркетинг и маркетинг https://habrahabr.ru/post/249993/
Эту статью я изучал буквально под микроскопом, отличный разбор рекламных каналов с конкретными цифрами и рецептами. Покупка фото на Авито особенно порадовала!
Шестая, о том как сделать игру без значительных затрат
https://habrahabr.ru/post/205312/
Это как мой случай! Поэтому изучал внимательно статью и ее продолжения. Спасибо @brntsrs за то что поделился опытом и граблями.
Седьмая статья
О распространении игр без издателя https://habrahabr.ru/post/147534/
Восьмая
Список ангелов и венчуров, для чего они нужны надеюсь и так понятно https://habrahabr.ru/post/164689/
Статья девять. Издатели игр
Про издателей все говорят, что скоро-скоро они вымрут как динозавры (см. статью №7). Однако они есть и тема требует изучения, поэтому вот статья со списком издателей https://habrahabr.ru/post/242797/
И десятая статья это весь блог компании Мосигра
…где неизменно позитивный @Milfgard показывает, как надо правильно жить… Прислали спам? Ответь, и получи пару клиентов. Купили игру? Подари паяльник. Делай добро, твори фигню. Главное искренне, и люди оценят. А вот в этой статье отличная подборка статей и переводов про GameDev https://habrahabr.ru/company/mosigra/blog/274077/
Игра успешно делается, мы уверенно движемся к появлению альфа-версии, в которую можно будет поиграть. А ведь прошло менее года с момента активного начала! И в этом есть заслуга Хабра, именно он помог мне достаточно быстро освежить и переосмыслить большой массив информации, помог сфокусироваться на проекте.
Спасибо, Хабр. С днем рождения!
Полезные ресурсы для разработчиков игр
Мы подготовили для вас подборку полезных материалов для разработчиков игр. Обращаем ваше внимание, что у нас в Центр развития компетенций в бизнес-информатике Высшей школы бизнеса НИУ ВШЭ сейчас идет набор на программу профессиональной переподготовки Менеджмент игровых проектов, и программы повышения квалификации: Основы создания гиперказуальных игр, Создание своей игровой студии и Основы создания игр.
Здесь Вы можете найти ответы на вопросы: с чего начать, и как начинать не стоит.
- В. Уточкин, К. Сахнов. «Хочу в геймдев! Основы игровой разработки для начинающих».
- Максим Михеенко, Майкл Касалино. «Миллионы миллиардов. Как стартовать в игровой индустрии, работая удаленно, заработать денег и создать игру мечты»
- Алексей Савченко. Игра как бизнес.
- А. В. Цыганов. «Теория игр»
- Джесси Шелл. «Искусство геймдизайна»
- Пименов Михаил, Токарев Павел. «Наша игра. История. Бизнес. Возможности»
- Роджерс Скотт. «Новый Уровень! Руководство по геймдизайну»
- Э. Роллингз, Д. Моррис. «Проектирование и архитектура игр»
- Сергей Галёнкин. «Маркетинг Игр»
- Блейка Харрис. «Консольные войны. Sega, Nintendo и битва определившая целое поколение»
- Саймона Паркин. «Самые знаменитые компьютерные игры»
- Дэвид Шефф. «Game Over. Как Nintendo завоевала мир»
- Алексей Редозубов. «Логика мышления»
- Михай Чиксентмихайи. «Поток: психология оптимального переживания»
- Джона Лерер. «Как мы принимаем решения»
- Дэвид Кушнер. «Властелины Doom. Как двое парней создали игровую индустрию и воспитали целое поколение геймеров»
- Тристан Донован. «Играй!»
- Николя Курсье, Мейди Эль Канафи. «Zelda. Хроника легендарной саги»
- Джейсон Шрейер. «Кровь, пот и пиксели»
- Алекс Дж. Шампандар. «Искусственный интеллект в компьютерных играх. Как обучить виртуальные персонажи реагировать на внешние воздействия»
- Рэф Костер. «Разработка игр и теория развлечений»
- Вулф Терри. «Кодзима — гений. История разработчика, перевернувшего индустрию видеоигр»
- Джереми Гибсон Бонд. «Unity и C#. Геймдев от идеи до реализации»
- Дэвид Кушнер. «Потрачено»
- Василий Сабиров. «Игра в цифры»
Обучение
Программирование
Визуал
Создание своей игры
Программы для таскооборота и документооборта разработки
- Трелло Облачная программа для управления проектами небольших групп, разработанная Fog Creek Software. До 10 пользователей бесплатно
- Confluence Тиражируемая вики-система для внутреннего использования организациями с целью создания единой базы знаний. До 10 пользователей бесплатно
- Jira Коммерческая система отслеживания ошибок, предназначена для организации взаимодействия с пользователями, хотя в некоторых случаях используется и для управления проектами. До 10 пользователей бесплатно
- ONLYOFFICE представляет собой модульное решение, состоящее из онлайн-редакторов документов, системы управления документами и проектами, CRM, корпоративной социальной сети, календаря и почтового сервера.
- Asana — мобильное и веб-приложение для управления проектами в командах.
Два основных игровых движка
- Unity Межплатформенная среда разработки компьютерных игр. Есть платная и бесплатная версии. Процент с доходов не берется.
- Unreal Engine 4 Игровой движок. Оплата доли с доходов игры после достижения определенного уровня доходов.
Ресурсы для продвижения
- Игровой писатель: что скрывается за буквами
- Чем занимается игровой писатель?
- Кто такой нарративный дизайнер?
- Как работает нелинейность. Выбор без выбора
- Иллюзия Выбора В Играх
- Игры с иллюзией выбор
- Писарь популярный бесплатный плагин к Microsoft Word, который предназначен только для форматирования и разметки.
- Pago шаблоны для текстовых процессоров, облегчающие форматирование.
- КИТ Сценарист Бесплатная программа для написания сценариев для Win, Lin, Mac, Android, ios (для мобильных платформ платно)
- The Scriptwriters’ Toolkit шаблоны для текстовых процессоров, облегчающие форматирование.
- Causality Story Sequencer Бесплатная программа для написания сценариев для Win, Lin, Mac
- «Стандартизатор» шаблоны для текстовых процессоров, облегчающие форматирование.
- Celtx Платная программа для написания сценариев
- DubScript Бесплатная программа для написания сценариев для Android
- Fade In Бесплатная программа для написания сценариев для Win, Lin, Mac, Android, ios
- Final Draft Платная программа для написания сценариев
- Movie Magic Screenwriter Платная программа для написания сценариев для Win и Mac
- Slugline Бесплатная программа, облегчающие форматирование, но не являющиеся надстройками над текстовыми процессорами. Для Mac
- Movie Outline Платная программа для написания сценариев для Win и Mac
- Trelby Бесплатная программа, облегчающие форматирование, но не являющиеся надстройками над текстовыми процессорами. Для Windows и Linux
- Afterwriting Бесплатный Веб-редактор для Win, Lin, Mac
- Atom Кросс-платформенный редактор, опенсорс для Win, Lin, Mac
- Editorial Платная программа редактор для ios
- Write for Mac Платная программа редактор для Mac
- WriterDuet Бесплатный Веб-редактор для Win, Lin, Mac
- Action Guides Платные гайды по созданию структуры истории с шаблонами для быстрого вбивания туда нужных текстов
- Articy: draft Платный Mind Map для геймдизайнеров и сценаристов
- Auroraroguelike dialog editor Редактор разветвленных диалогов с открытым кодом на битбакет. Есть статья от авторов рогалика для которого редактор делался.
- Dialogue Designer Платный редактор ветвящихся диалогов и сюжетных линий для разработчиков игр.
- Narrator Платный надиктовщик диалогов
- Persona Платная программа для проработки персонажей.
- Twine Опенсорсная тулза типа визио, можно использовать для записи интерактивных историй, ветвящихся диалогов и т.п. На сайте есть вики по программе.
- QSP (Quest Soft Player) Редактор и плеер для создания текстовых игр, русскоязычное комьюнити
- Сокращение бюджетов при работе с движками и 3D-графикой игрового проекта
- Pixabay Бесплатный ресурс изображений и видео
- FINDAPHOTO На сайте представлены как бесплатные так и платные ресурсы с изображениями
- STOCKSNAP Бесплатный ресурс изображений
- GAME-ICONS Бесплатный ресурс иконок
- KENNEY Бесплатные тематические паки
- OPENGAMEART Библиотека бесплатной графики с упором на пиксель-арт
- REINER’S TILESETS Бесплатные тайлы
- CRAFTPIX Платные и бесплатные спрайты и ассеты для 2d игр
- СREATIVECOMMONS Возможность поиска изображений с заданным типом лицензии распространения
- Envato market Покупка лицензии для использования готовых ассетов
- Graphicriver Ресурс с материалами: шрифты, изображения, паки с готовыми UI элементами и другие графические элементы
- Gamedevmarket Платные и бесплатные паки
- Хороший календарь событий игровой индустрии: https://vk.com/gamedev_calendar
- И еще один календарь: https://ru.ingamejob.com/ru/events
- И еще: https://ict2go.ru/themes/gamedev/
- DevGAMM — крупнейшая конференция для профессионалов игровой индустрии в России, Беларуси и Европе. Преимущества DevGAMM: качественный контент на тему разработки игр, низкий порог входа для начинающих разработчиков и серия мероприятий, нацеленных на продуктивное времяпровождение и эффективный нетворкинг.
- White Nights Conference — крутая международная бизнес конференция, посвященная разработке и продвижению игр на всех платформах.
- Мероприятия по игровой индустрии в ВШБИ НИУ ВШЭ
Random Gamedev Coffee – бот, раз в неделю выбирающий случайным образом людей из геймдева для общения между собой.
ВК:
- vk.com/hsbi_games – группа разработчиков игр ВШБИ
- vk.com/virtualnaya_realnost_segodnya – Про разработку игр в виртуальной реальности
- vk.com/rabota_v_gamedeve – Сообщество о вакансиях и соискателях работы в игровой индустрии
- vk.com/gdcuffs – коллективный блог гейм-дизайнеров всех мастей о том, как устроены игры и разработка.
- vk.com/indieonline – Индикатор Онлайн | Помощь начинающим разработчикам в геймдеве.
- vk.com/russiangameindustry – НАША ИГРА. Всё, что ты хочешь знать об отечественном игрострое
- vk.com/gameinstitute – DirectX, OpenGL, Ogre3D, Unity, Udk и прочие игровые технологии. Туториалы, статьи, конкурсы, уроки.
- vk.com/androiddevelopers – Разработка приложений для платформы Google Android
- vk.com/gamedev_ru – Создание игр, проекты игр, новости индустрии, поиск работы. Как сделать игру.
- vk.com/unicrydk – Публикации материалов о создании игр
- vk.com/gdacademy – Пошаговый алгоритм создания своей игры с нуля
- vk.com/gamedev_group – Группа посвящена всему что касается индустрии разработки видео игр. Новости, технические статьи, учебные материалы, игровая индустрия, игровые проекты и т.д.
- vk.com/devsgo – МитАпы представителей игровой индустрии
- vk.com/loftblog – Бесплатные видеоуроки по HTML5, CSS3, JAVASCRIPT, PHP, C++, PYTHON, RUBY, JAVA и др.
- vk.com/tindie – Здесь вы сможете узнать много интересной и полезной информации по разработке игр
- vk.com/gdevs – Все об игровой индустрии и разработке игр
- vk.com/over720 – Материалы о создании игр, а также о разных интересных технологиях
- vk.com/gamedesignation – Геймдизайн с нуля
- vk.com/mistle_gamer – Сообщество будет интересно тем, кто занимается геймдизайном, или косвенно связанной деятельностью
- vk.com/world_of_indie – Одно из самых больших сообществ об инди играх релизом. Много полезных материалов о разработке
- vk.com/last_indie_standing – Инди-игры и истории их разработки, геймдизайн, нарратив и визуальное повествование
- vk.com/gameru.indie – про инди-игры
- vk.com/gamedev_group – группа посвящена всему, что касается разработки игр
- https://vk.com/coremission — геймдев, инди игры, разработка игр
Группы по Unreal и Unity:
FB:
- Хочу в геймдев. Наш подкаст для тех, кто хочет в геймдев. Рассказываем о разных профессиях в игровой индустрии, как туда попасть, даем примеры тестовых заданий и многое другое.
- Как делают игры — научно-популярный известный подкаст о создании игр.
- Жиза ГД — об игровой индустрии от тех, кто любит и делает игры.
- НАША ИГРА. Подкаст об отечественной игровой индустрии, видеоиграх и около того. Ведущие – Михаил Пименов, Всеволод Уваров
- TheGameDev. Интервью с разработчиками игр. Ведущие – Алексей Мельников (CGSpeak) и Алиса Хуснутдинова
- Коткаст. Подкаст про игры. Интересные темы, гости из игровой индустрии и журналисты. Много-много диванной аналитики и смешных шуток.
- ИнФакт. Ежедневные игровые видео новости от StopGame.ru
- AppZor. Дайджест мобильных игр 2 раза в месяц поведает вам о наиболее достойных игровых приложения для iOS и Android.
- Disgusting Men – старый известный подкаст о разном, включая и игры.
- Список игровых компаний России и СНГ
- Конспекты лекций и мастер-классов
- habrahabr.ru — Огромный портал с материалами по программированию, ресурсам и полезным статьям о разработке ПО и игр.
- app2top.ru — b2b-портал, посвященный всем аспектам индустрии мобильных игр
- gdcuffs.com — портал, преимущественно о геймдизайне
- dtf.ru — Один из самых старых порталов о разработке и индустрии геймдева. В данный момент перенесен на новый движок и возрожден ИД „Комитет“
- http://ggmarketing.io/ — Блог Екатерины Приходько с полезными статьями про маркетинг игр.
- igromania.ru — Сайт ИД „Игромания“. Регулярно публикуют новости и статьи об играх со всех платформ
- kanobu.ru — Крупнейший портал об играх и игровой индустрии
- progamedev.net — Блог о геймдеве от Александра Штаченко. Регулярно размещается ключевая аналитика по рынку.
- torick.ru — Блог о геймдеве от Святослава Торика
- gamedev.ru — Старейший портал для разработчиков.
- aushestov.ru — Качественный блог про геймдизайн от Анатолия Шестова.
- gamesisart.ru — Полезные статьи и ресурсы о разработке игр
- gcup.ru — Портал посвящён созданию игр, в том числе и без программирования.
- www.ant-karlov.ru — Авторский блог о создании игр
- gamesjam.org — Площадка, где проходят геймджемы различных тематик и направлений
- www.progamer.ru/dev — Есть хорошие материалы о разработке игр
- core-rpg.net — Основное направление сайта — разработка RPG
- gopractice.ru — Блог Олега Якубенкова. Публикуются материалы про создание, аналитику и маркетинг мобильных приложений и веб сервисов
- http://narratorika.com/ — Ресурс для игровых сценаристов
- http://www.goha.ru — Место тусовки любителей MMO
- http://www.igdc.ru/ — Конкурсы молодых разработчиков игр и живой форум для общения
- http://vr-today.ru/ — Каталог компаний, занимающихся виртуальной реальностью
Надеемся, что наша подборка будет для вас полезной. Обращаем ваше внимание на то, что собирали именно русскоязычные ресурсы.
Авторы: Кирченкова Карина, Михаил Пименов, Беглов Александр
GameDev для викторин — я принёс вам кучу бесполезных фактов и немного ветвэра @habrahabr
Итак, вводная: обычные викторины скучны.
В топике много вопросов, поэтому заходите поиграть, проверить знания, почитать про ещё один прекрасную уязвимость человеческого разума и просто посмотреть на механики викторины.
Давайте сделаем другую викторину, которая использует потребности основных типов игроков:
- «Киллеров» — тех, кто охотится за сложными вопросами и получает от этого удовольствие.
- «Манчкинов» — этот подтип игроков нуждается в признании крутости социальными путями. Очки важнее вопросов.
- «Ачиверов» — этим парням важно перебрать все квесты игры. В викторине они хотят перебрать все вопросы и узнать на них ответы из любопытства. Для них — специальная категория вопросов.
- «Приключенцев» — тех, кто ищет социальных взаимодействий, и, скорее всего, не умеет отвечать на вопросы. Для них мы приготовим блеф.
Правила простые. Нужно отвечать на вопросы числами, стараясь попасть точнее. Читаете вопросы, думаете не больше минуты, открываете спойлер проверять ответ. Вот так:
Если масса человека на Земле равна 100 кг, какова будет его масса на Юпитере?100 килограмм. Если вы не понимаете почему, стоит повторить школьный курс физики.
На какое наибольшее количество фрагментов поделят круг 4 прямые линии?
На 11 фрагментов
Какова вероятность того, что в группе из 60 человек у двух из них совпадут число и месяц рождения (в процентах)?
~99% (замечательный пример того, как неинтуитивно воспринимается дискретная математика)
В каком году появился первый компьютерный вирус?
Рабочие примеры программ-вирусов появились в 1961 году, через 10 лет после теории о принципах их работы. Первые вирусы не были зловредами, а просто доказывали свою возможность размножаться внутри системы — McIlroy et al. Darwin, a Game of Survival of the Fittest among Programs. Первые же ПК-совместимые вирусы появились 1981 для платформы Apple II
Читать дальше →
via Хабрахабр / Захабренные / Тематические / Посты http://ift.tt/Vv0bW8
Как локализовать мобильную игру для азиатского рынка / Хабр
В условиях быстрого роста азиатского рынка почти каждый амбициозный ИТ-продукт рано или поздно сталкивается с проблемой локализации для этого региона. А без знания всех его аспектов любой проект по локализации обречен на провал. Вот почему мы в Alconost решили перевести и поделиться с вами статьей о локализации игр для Азии от Plarium, глобального разработчика игр с солидным опытом в локализации игр.Мы нашли здесь несколько полезных подходов, которые также применимы к нашим проектам локализации, и надеемся, что вам тоже понравится это чтение.
Для западных разработчиков выход на азиатский рынок — это выход в космос, только на 30 мегабайт тяжелее. Локализация игр на японский, китайский и корейский языки требует титанических усилий. Вам необходимо учитывать определенные технические требования и тщательно исследовать рынок и менталитет целевой аудитории. Но если это ваша мечта, продолжайте читать — наш опыт сослужит вам хорошую службу.
A Smooth Operation
В Plarium игры переведены на 12 языков. А у отдела локализации есть 4 разных направления:
- Мобильные игры
- Браузерные игры
- Социальные игры
- Неигровые тексты (перевод и адаптация внутренних документов компании)
Отдел состоит из трех мини-команд от трех до четырех человек, каждая из которых занимается всем языковым пакетом.Каждый товарищ по команде владеет до трех языков. Все редакторы и переводчики являются носителями целевого языка и работают с разными командами.
Наш собственный опыт убедил нас в том, что колесо нужно изобретать каждый раз заново — универсального алгоритма локализации не существует.
Каждый проект уникален не только своим жанром, сеттингом и механикой, но и особенностями локализации игр для различных платформ.
Тонкая настройка двигателей
По статистике американской аналитической компании Superdata, мобильный сегмент составляет 59% азиатского игрового рынка и оценивается в 20 миллиардов долларов.
Общие ключевые этапы локализации
Исследования. Изучите рынок и исследуйте игровые сообщества. При работе с азиатским рынком языковой барьер ощущается особенно остро — азиатские геймеры обычно недостаточно хорошо владеют английским языком, чтобы играть на нем. С Китаем все становится еще сложнее, потому что у китайцев есть собственная версия Интернета с ограниченным доступом, которую люди в других странах не могут использовать.
Культура. Краеугольным камнем локализации является внимание к уникальным культурным и историческим особенностям стран и мировосприятию игроков. В игре Pirates: Tides of Fortune, например, главный антагонист — король Испании. Мы не изменили национальность большого злодея в испанской локализации, и геймеры восприняли это как часть вымышленного сеттинга, не более того. Однако в китайскоязычном сегменте рынка подобная ситуация точно не повлияет на привлечение пользователей.
Другой пример — осторожность, которую необходимо проявлять с лозунгами и призывами к действию. Например, для Германии мы рекламируем наши стратегические игры без использования немецких слов, означающих «вести войну», «атаковать» или «строить империю», несмотря на то, что эти действия являются неотъемлемой частью игр Plarium. За несколько лет работы с переводчиками мы разработали специальные методы, позволяющие избавиться от этих резких фраз.Отзывы о локализации конкретного языка собираются постепенно из множества источников.Лучше всего узнать мнения экспертов по маркетингу, аналитиков, социологов, переводчиков и игроков, говорящих на родном языке.
Логика и гибкость . У каждого языка своя гибкость и логика. Например, если вы свободно говорите по-русски, вы легко можете приспособиться к требованиям программного обеспечения. Однако русский язык не такой компактный и лаконичный, как английский. А у немецкого, например, фиксированный наряд.
Уникальность .Новая локализация требует максимально возможной адаптации к существующему интерфейсу и коду. Задача состоит в том, чтобы учесть уникальные характеристики всех поддерживаемых языков. Вы можете попытаться создать универсальный интерфейс, но вам все равно придется настраивать его, чтобы он соответствовал грамматической структуре языка.
История . В мобильной версии нет описания агрегатов. Этот факт не влияет на сюжет, но все же влияет на глубину и сложность игрового мира.Таким образом, при переходе от социальных и браузерных сегментов к мобильному, возникает большой соблазн делать тексты максимально краткими и функциональными. Это происходит из-за широко распространенного мнения, что люди приходят в мобильные игры, чтобы играть, а не читать. Тем не менее, мы не хотим полностью терять богатый опыт, который мы разработали, поэтому мы стараемся использовать квесты, временные рамки и побочные квесты, чтобы представить новых персонажей и погрузиться в историю вселенной. Мы стараемся найти баланс между сюжетом, атмосферой и максимально функциональными текстами.
Подготовка к запуску — проверка совместимости
Табу и предпочтения . Япония имеет свое отношение к игровой культуре в целом — она более фанатична и в то же время более банальна. Видеоигры — неотъемлемая часть японской жизни. Японцы в основном играют в игры по дороге на работу или домой, поскольку их поездка на работу часто занимает от двух до трех часов в день. Японцы склонны полностью увлекаться одной тенденцией.У них даже есть целый телеканал, посвященный исключительно видеоиграм. Однако лидирующие игры могут очень быстро измениться. Для стратегических игр, в которые люди играют годами, это интересная задача.
В Корее в игровом дизайне благоприятны яркие неоновые цвета (особенно розовый). Все должно быть красочным и броским.
Работая с китайским рынком, не увлекайтесь нереальными, бросающимися в глаза фантомами. И избегайте использования того же оттенка красного, что и на китайском флаге.Просто правда, просто хардкор . Игры на английском популярны в Азии, несмотря на то, что большинство пользователей, в том числе молодежь, не очень хорошо владеют иностранными языками. Локализация очень важна для азиатского рынка, но есть одно предостережение: если ваша игра выглядит явно западной, не пытайтесь прыгнуть выше восходящего солнца и превратить приложение во что-то вроде азиатского насквозь. Вы можете попробовать изменить игру, пока она не станет неузнаваемой, поменяв все, включая механику, и притвориться, что приложение было сделано в Китае, но, вероятно, это не сработает.Как бы вы ни старались копировать азиатский стиль, азиатские игроки почувствуют запах крысы. Геймеры не любят, когда их обманывают, поэтому избегайте диссонанса между дизайном игры и ее текстом.
Постарайтесь быть максимально честным и не выдавайте игру за азиатский продукт, когда это не так. Локализация должна быть профессиональной, с использованием живого, естественного языка. Геймерская культура очень восприимчива к экспериментам. Нет ничего плохого в том, чтобы оставить западную игру такой, какая она есть, и сохранить ее терминологию.Заимствовать концепции из англоязычных игр — это нормально. Например, нет необходимости искать японский или корейский эквивалент слова «квест», поскольку этот термин знаком азиатским игрокам. Более того, волну глобализации еще предстоит остановить, и нет закона, запрещающего сосредоточение внимания на мировой поп-культуре в играх. В целом пользователи из Азии интересуются уникальной природой западной культуры — это считается прогрессивным трендом.Технические требования .Азиатские символы тяжелые. В латинских алфавитах каждый символ равен одному байту. В кириллице (используется в русском, болгарском и т. Д.) Каждый символ равен до двух байтов. Но каждый традиционный японский символ может весить до четырех байтов. Полный набор традиционных китайских иероглифов весит около 30 мегабайт. Добавление этого набора в игру сделает приложение немного больше. Мы используем шрифты с упрощенным набором китайских иероглифов, которые весят всего около 18 мегабайт.
В рамках реформы китайской образовательной системы в середине 20 века внешний вид многих иероглифов был изменен, чтобы их было легче запомнить.В настоящее время Китай почти полностью перешел на упрощенную версию, но в Гонконге по-прежнему используется традиционный набор символов. В Stormfall: Rise of Balur мы подготовили две версии локализации игры, которые, разумеется, повлияли на размер приложения: около 36 мегабайт. Позже мы собираемся проверить реакцию публики на обе локации и решить, оставить ли в игре оба набора персонажей. С корейским все немного проще — его система письма представляет собой просто алфавит, маскирующийся под логограммы.Как найти редакторов и переводчиков . Требования к выбору переводчиков и редакторов для азиатских рынков намного жестче. Для перевода на западные языки кандидату достаточно иметь минимальный уровень локализации и игровой опыт. Что касается азиатского рынка, нам нужны переводчики с особым опытом локализации западных игр и, желательно, мобильных стратегических игр.
Сначала наши переводы редактировали носители языка, которые играют в наши игры на Facebook.Время от времени мы получали от них обратную связь, например: «Это хороший перевод, но на этом все». Геймеры сказали бы, что атмосфера была передана неточно или что термин был использован неправильно. Например, в казуальных играх есть «жизни», но игроки в стратегии привыкли говорить об «энергии».
Мы получили отзывы о наших переводах не только от игроков, но и от журналистов и писателей, которые оценили грамотность и качество перевода, а также чистоту языка и баланс между заимствованными терминами и концепциями из целевого языка.В совокупности эти отзывы помогли нам найти подходящих переводчиков и редакторов.Специальные испытания . Чтобы оценить удобство использования, мы сняли видеоролики наших японских тестеров, играющих в игру. Такой подход оказался более эффективным, чем получение письменного или устного обзора игры. Вежливость имеет первостепенное значение в японской культуре, поэтому японцы часто чувствуют себя некомфортно, давая кому-то объективную оценку или признавая, что есть определенные аспекты игры, которые они не понимают или не любят.Японские тестировщики с большей вероятностью дадут обобщенный, но совершенно бесполезный обзор. Однако на видео все предельно ясно, даже без слов. Наблюдая за движениями пальцев игрока по экрану, вы можете увидеть, как он проходил обучение, какие реакции и эмоции испытывали во время игры и чем они были вызваны.
And We’re Off
Локализация игры для азиатского рынка — долгий и трудоемкий процесс, требующий больших усилий.Но если подойти к этому ответственно и сделать качественный перевод, пользователи это оценят.
О переводчике
Alconost — глобальный поставщик услуг по локализации приложений, игр, видео и веб-сайтов на более чем 70 языков.
Мы предлагаем переводы носителями языка, лингвистическое тестирование, облачный рабочий процесс, непрерывную локализацию, круглосуточное управление проектами и работу со строковыми ресурсами любого формата.
Мы также делаем рекламные и обучающие видео и изображения, тизеры, пояснительные ролики и трейлеры для Google Play и App Store.
Как графика убивает игровой процесс
Я довольно давно обдумывал идею этой статьи. Все началось с того, что я понял, что даже в среде разработки игр люди, как правило, гораздо больше заботятся о визуальном оформлении игры, чем о том, как вы на самом деле в нее играете. Когда у вас есть игровая сборка или прототип с графикой-заполнителем, вряд ли кто-то захочет в нее играть. Только после добавления значительного количества готовых графических ресурсов, таких как персонажи, окружающая среда или анимация захваченного движения, вы начинаете привлекать внимание.В каком-то смысле игроки склонны относиться к играм так, как будто мужчины относятся к незнакомцам женского пола — их всех привлекают самые привлекательные визуально.
Затем приходит разочарование — почему что-то настолько мелкое? Потому что может! Выбор женщин по их внешнему виду означает, что они сбиты с толку, когда дело доходит до интеллектуального взаимодействия. То же самое и с играми. Более того, если вы относитесь к тем людям, которые проклинают такое положение вещей, вы в меньшинстве. Дело в том…. большинство парней ожидают, что их девушки будут в основном красивыми. Большинство игроков ожидают, что их игры будут в основном красивыми. Глубина персонажа или игрового процесса, будучи коммерчески менее привлекательной, упускается из виду. Так работают оба рынка.
Поскольку мы находимся в смешанной теме игры и девушки, и до большого открытия осталось всего несколько мгновений, мы можем взглянуть на всеобщую любимицу, Лару Крофт. Давайте сосредоточимся, сравним Tomb Raider (1996) и Tomb Raider (2013). Нет сомнений в том, что новый намного красивее старого.Не только в плане графики. История намного лучше, намного разнообразнее. Темп невероятный, звучит кинематографично — все на высшем уровне, и я не сомневаюсь, что даже хардкорным и олдскульным игрокам новый Tomb Raider понравится больше. Но я все равно продолжу свои придирки.
Взгляните на механику прыжков в обоих Tomb Raiders. В 1996 году мир выглядел не намного лучше, чем Minecraft. Он был построен из кубов. Даже если они пытались скрыть это полукубами или треугольными наклонами, все сводилось к тому, что большие кубы были немного выше Лары.Но эти кубики не только построили мир. Строили механику движения. Нажав вперед один раз, мы могли заставить Лару пробежать ровно на 1 куб. Она могла прыгнуть на 2 куба в высоту, чтобы ухватиться за уступ. Она могла прыгнуть на 2 кубика вперед, чтобы приземлиться на куб перед собой, или на 3 куба вперед, чтобы поймать выступ перед собой. Она могла прыгнуть на 1 или 2 кубика в стороны, прыгнуть на 1 кубик назад или перевернуть 2 куба. Эти цифры могут быть неточными здесь и там, поскольку я действительно не знаю наизусть каждую игру 17-летней давности, но вы должны уловить суть.Куб был линейной мерой. Это помогло игровой команде построить целые уровни. Они разработали лабиринты и серию труднопроходимых уступов, чтобы добавить к основной эстетике игры — стать Индианой Джонсом в обтягивающих шортах, решающей головоломки. И игроки, поскольку они действительно могли видеть эти кубики, также могли довольно легко оценить, как далеко они могут прыгнуть. Прыжки были навыком.
В 2013 году для прыжка нужно нажать X. Лара перепрыгнет через любую щель между двумя платформами. Вам не о чем беспокоиться.Пока игра говорит вам «X», вы знаете, что прыгнете, если нажмете на нее. На самом деле это может быть хорошо, потому что новый Tomb Raider не о прыжках с платформы на платформу, но я чувствую себя лишенным возможности думать самостоятельно, прыгну я или нет. Дизайнеры уровней также лишились этой возможности, поскольку им нужно было проектировать уровни только с визуальной точки зрения, а игровой процесс был второстепенным элементом. New Tomb Raider — это движение вперед. Прыгать, когда тебе говорят.Стрельба по выходу на арену. Нажатие на то, что вам говорят. Почему? Потому что для того, чтобы игра выглядела великолепно, дизайнерам нужно было ограничить ваши возможности.
Печальная правда прекрасно раскрывается в этой статье. Еще одна большая франшиза, Final Fantasy. Большой номер VII был выпущен в 1997 году, а самые новые части, XIII и XIII-2, пришли к нам в 2009-2011 годах. Как вы можете прочитать в связанной статье, для изготовления числа VII с качеством XIII потребуется в 3-5 раз больше, чем для изготовления XIII-2.Это означает от 6 до 10 лет. Я не знаю, кто из вас играл в обе игры, поэтому постараюсь избегать спойлеров. Я остановлюсь на простых фактах. В XIII вы бежите вперед через туннели на протяжении 90% игры. Эти туннели красивы, но по-прежнему представляют собой туннели, в которых нечего исследовать и нечего смотреть, кроме красиво прорисованной задницы главной героини. Даже башня, которая на первый взгляд выглядит как головоломка, представляет собой не что иное, как прямую линию, протянутую через несколько этажей. В VII многие части также были туннелями, но вам были даны уровни головоломки, такие как штаб Шинра или кладбище поездов.И в VII, и в XIII-2 у вас было казино. В VII вы можете играть в сноуборд, байк-энд-слэш, армрестлинг, бокс, шутер, симулятор подводной лодки, мог тамагочи, гонки чокобо, сражаться на арене. В XIII-2 вы можете участвовать в гонках на чокобо, играть в однорукого бандита и в покер (если вы купили DLC). Один только сноуборд в VII доставил вам гораздо больше удовольствия, чем все игры в XIII-2 вместе взятые. Так что это было намного уродливее. Чтобы сделать свои игры визуально ошеломляющими, Square пришлось сделать их просто менее увлекательными.
Игровая индустрия, особенно ее AAA-часть, работает так же, как и любая другая индустрия.Игры должны приносить прибыль. Их нужно продавать. Продаются новые технологии. Поскольку звук или механика не могут использовать технологию более изматывающим образом, чем они уже есть, новые технологии в играх практически равны лучшей графике. Я думаю, что в эволюции игровой индустрии должен был наступить переломный момент, когда баланс между графикой и игровым процессом серьезно нарушился. Сегодня все ждут от графики хотя бы приличного уровня. Вы знаете, сколько это значит? Я вам скажу.Если концепция готова, 3D-художник тратит около 20 дней на создание модели одного персонажа для FPS. Теперь умножьте это на количество символов и на зарплату моделиста. С 30 моделями это более 2 лет работы для одного человека, и я могу вас заверить, что создатели 3D-моделей не работают за миску риса в день. И это только моделирование персонажей. Добавьте к этому все ресурсы окружающей среды, концепт-арты, всю анимацию, шейдеры, освещение и физику, и вы можете умножить целое число на десять.И поскольку наши воображаемые подсчеты некоторое время назад уже превысили цену Ferrari F12, позвольте мне напомнить вам, что мы говорим только о «приличном уровне графики», что означает около 7/10. У игр нет неограниченного бюджета. Есть только два решения, чтобы заставить его работать с ограниченным бюджетом. Либо вы сокращаете количество ресурсов и делаете игру короче и / или более линейной, либо соглашаетесь с плохой графикой. Могу вас заверить, что 9 из 10 продюсеров выберут вариант с меньшим содержанием контента.
К счастью, есть игры, которые идут вразрез с этой тенденцией. Новый римейк XCOM получил очень плохие оценки графики, но сохранил впечатляющую мета-оценку (89) и имел коммерческий успех. И все благодаря упрощенному игровому процессу 20-летней давности. Dark Souls играет в той же лиге — тот же мета-персонаж, одна из самых любимых игр последних нескольких лет, продано почти 2 миллиона копий. И все это с — давайте смотреть правде в глаза — дерьмовой графикой. Тем не менее, игровой процесс остался. Это вселяет в нас надежду, что в ближайшем будущем все больше и больше студий откажутся от гонки за самой потрясающей графикой и сосредоточатся на том, о чем идет речь в играх — на игровом процессе.Мы просто должны помнить, что для того, чтобы студия решила двигаться в этом направлении, должна быть потребность рынка. Если большинство игроков продолжат покупать игры для своей графики, большинство разработчиков продолжат выпускать глазные конфеты с заполнителями игрового процесса.
игровой дизайн, game industry,
Оцените публикацию: {[[‘]]}Разработка игр с помощью React, Redux и SVG
TL; DR: В этой серии статей вы узнаете, как заставить React и Redux управлять множеством элементов SVG для создания игры.Знания, полученные в этой серии, также позволят вам создавать другие типы анимации, которые оркестрируются React и Redux, а не только игры. Вы можете найти окончательный код, разработанный в этой статье, в следующем репозитории GitHub: Aliens Go Home — Part 3
Реализация функции Leaderboard в вашей игре React
Первое, что вы сделаете, чтобы ваша игра выглядела как настоящая. состоит в том, чтобы реализовать функцию таблицы лидеров. Эта функция позволит игрокам войти в систему, чтобы ваша игра могла отслеживать их максимальный результат и отображать их ранг.
Интеграция React и Auth0
Чтобы Auth0 управлял личными данными ваших игроков, у вас должна быть учетная запись Auth0. Если у вас его еще нет, вы можете зарегистрировать бесплатную учетную запись Auth0 здесь .
После создания учетной записи вам просто нужно создать приложение Auth0 для представления вашей игры. Для этого перейдите на страницу приложений на панели инструментов Auth0 и нажмите кнопку Create Application . Панель управления покажет вам форму, в которой вам нужно будет указать имя вашего приложения и его тип .Вы можете ввести Aliens, Go Home! в качестве имени и выберите тип одностраничного веб-приложения (в конце концов, ваша игра — это SPA, основанная на React). Затем вы можете нажать Create .
Когда вы нажмете эту кнопку, панель управления перенаправит вас на вкладку Quick Start вашего нового приложения. Поскольку в этой статье вы узнаете, как интегрировать React и Auth0, вам не нужно использовать эту вкладку. Вместо этого вам нужно будет использовать вкладку Settings , так что перейдите к ней.
На этой вкладке вам нужно будет сделать три вещи. Первый — добавить значение http: // localhost: 3000
в поле с именем Allowed Callback URLs . Как поясняется на приборной панели, после аутентификации игрока Auth0 перезвонит только одному из URL-адресов в этом поле . Итак, если вы собираетесь опубликовать свою игру в Интернете, обязательно добавьте туда ее общедоступный URL-адрес (например, http://aliens-go-home.digituz.com.br
).
После ввода всех ваших URL-адресов в это поле нажмите кнопку Сохранить или нажмите ctrl
+ s
(если вы используете MacBook, вам нужно будет вместо этого нажать команду
+ s
).
Последние две вещи, которые вам нужно сделать, это скопировать значения из полей Domain и Client ID . Однако перед использованием этих значений вам нужно будет немного кодировать.
Для начала вам нужно будет ввести следующую команду в корневом каталоге вашей игры, чтобы установить пакет auth0-web
:
npm i [email protected]
Как вы увидите, этот пакет упрощает интеграцию Auth0 и SPA.
Следующим шагом является добавление кнопки входа в вашу игру, чтобы ваши игроки могли аутентифицироваться через Auth0. Для этого создайте новый файл с именем Login.jsx
внутри каталога ./src/components
со следующим кодом:
import React from 'react';
импортировать PropTypes из 'prop-types';
const Login = (props) => {
const button = {
х: -300,
y: -600,
ширина: 600,
высота: 300,
стиль: {
заливка: 'прозрачный',
курсор: 'указатель',
},
onClick: реквизит.аутентифицировать,
};
const text = {
textAnchor: 'средний',
х: 0,
y: -440,
стиль: {
fontFamily: '"Joti One", курсив',
fontSize: 45,
заполнить: '# e3e3e3',
курсор: 'указатель',
},
onClick: props.authenticate,
};
возвращение (
<текст {... текст}>
Авторизуйтесь, чтобы участвовать!
);
};
Login.propTypes = {
аутентифицировать: PropTypes.func.isRequired,
};
экспорт по умолчанию Логин;
Компонент, который вы только что создали, не зависит от того, что он будет делать при нажатии.Вы определите это действие при добавлении его в компонент Canvas
. Итак, откройте файл Canvas.jsx
и обновите его следующим образом:
импортировать логин из './Login';
импортировать {signIn} из auth0-web;
const Canvas = (props) => {
возвращение (
);
};
Как видите, в этой новой версии вы импортировали компонент Login
и функцию signIn
из пакета auth0-web
.Затем вы добавили свой новый компонент в блок кода, который отображается только в том случае, если игроки еще не начали игру. Кроме того, вы указали, что при нажатии кнопки входа в систему должна запускаться функция входа
.
После внесения этих изменений последнее, что вам нужно сделать, это настроить auth0-web
с вашими свойствами приложения Auth0. Для этого откройте файл App.js
и обновите его следующим образом:
импортировать * как Auth0 из auth0-web;
Auth0.configure ({
домен: 'YOUR_AUTH0_DOMAIN',
clientID: 'YOUR_AUTH0_CLIENT_ID',
redirectUri: 'http: // localhost: 3000 /',
responseType: 'токен id_token',
scope: 'openid profile manage: points',
});
class App extends Component {
componentDidMount () {
const self = this;
Auth0.handleAuthCallback ();
Auth0.subscribe ((auth) => {
console.log (авторизация);
});
}
}
Примечание: Вы должны заменить
YOUR_AUTH0_DOMAIN
иYOUR_AUTH0_CLIENT_ID
значениями, скопированными из полей Domain и Client ID вашего приложения Auth0.Кроме того, при публикации игры в Интернете вам также необходимо будет заменить значениеredirectUri на
.
Усовершенствования в этом файле довольно просты. Этот список суммирует их:
-
configure
: Вы использовали эту функцию для настройки пакетаauth0-web
со свойствами вашего приложения Auth0. -
handleAuthCallback
: Вы активировали эту функцию в хуке жизненного цикла компонентаcomponentDidMount
, чтобы оценить, возвращается ли игрок из Auth0 после аутентификации.Эта функция просто пытается получить токены из URL-адреса и, в случае успеха, получает профиль игрока и сохраняет все в локальном хранилище -
подписка
: вы использовали эту функцию для регистрации, если игрок аутентифицирован или нет (истина,
для аутентификации иложь,
в противном случае).
Вот и все, ваша игра уже использует Auth0 в качестве службы управления идентификацией. Если вы запустите приложение сейчас ( npm start
) и перейдете к нему в браузере ( http: // localhost: 3000
), вы увидите кнопку входа в систему.Нажав на нее, вы перейдете на страницу входа Auth0, где вы сможете войти в систему.
После завершения процесса входа Auth0 снова перенаправит вас в вашу игру, где функция handleAuthCallback получит ваши токены. Затем, когда вы сообщили своему приложению в
console.log
о любых изменениях в состоянии аутентификации, вы сможете увидеть, как оно регистрирует true
в консоли браузера.
«Защита игр с помощью Auth0 проста и безболезненна.«
Tweet This
Создание компонента React для таблицы лидеров
Теперь, когда вы настроили Auth0 в качестве своей системы управления идентификацией, вам нужно будет создать компоненты, которые будут отображать таблицу лидеров и максимальное количество очков для текущего игрока. Для этого , вы создадите два компонента: Leaderboard
и Rank
. Вам нужно будет разделить эту функцию на два компонента, потому что, как вы увидите, не так просто показать данные игрока (например, максимальный счет, имя, должность и рисунок) красивым способом.Это тоже несложно, но вам придется набрать хороший объем кода. Таким образом, если добавить все в один компонент, это будет выглядеть неуклюже.
Поскольку в вашей игре еще нет игроков, первое, что вам нужно сделать, это определить некоторые фиктивные данные для заполнения таблицы лидеров. Лучшее место для этого - компонент Canvas
. Кроме того, поскольку вы собираетесь обновить холст, вы можете пойти дальше и заменить компонент Login
на Leaderboard
(вы добавите Login
в Leaderboard через мгновение):
импортировать таблицу лидеров из './ Доска почета ';
const Canvas = (props) => {
const таблица лидеров = [
{id: 'd4', maxScore: 82, имя: 'Адо Кукич', изображение: 'https://twitter.com/KukicAdo/profile_image',},
{id: 'a1', maxScore: 235, имя: 'Бруно Кребс', изображение: 'https://twitter.com/brunoskrebs/profile_image',},
{id: 'c3', maxScore: 99, имя: 'Diego Poza', изображение: 'https://twitter.com/diegopoza/profile_image',},
{id: 'b2', maxScore: 129, имя: 'Jeana Tahnk', изображение: 'https://twitter.com/jeanatahnk/profile_image',},
{id: 'e5', maxScore: 34, имя: 'Jenny Obrien', изображение: 'https: // twitter.com / jenny_obrien / profile_image ',},
{id: 'f6', maxScore: 153, имя: 'Kim Maida', изображение: 'https://twitter.com/KimMaida/profile_image',},
{id: 'g7', maxScore: 55, имя: 'Люк Олифф', изображение: 'https://twitter.com/mroliff/profile_image',},
{id: 'h8', maxScore: 146, имя: 'Себастьян Пейротт', изображение: 'https://twitter.com/speyrott/profile_image',},
];
возвращение (
);
};
В новой версии этого файла вы определили константу под названием таблица лидеров
, которая содержит массив поддельных игроков.Эти проигрыватели имеют следующие свойства: id
, maxScore
, name
и picture
. Затем внутри элемента svg
вы добавили компонент Leaderboard
со следующими параметрами:
-
currentPlayer
: определяет текущий игрок. На данный момент вы используете одного из фальшивых проигрывателей, определенных ранее, чтобы увидеть, как все работает. Цель передачи этого параметра — сделать так, чтобы ваша таблица лидеров выделяла текущего игрока. -
Authenticate
: это тот же параметр, который вы добавляли в компонентLogin
в предыдущей версии. -
таблица лидеров
: Это множество поддельных игроков. Ваша таблица лидеров будет использовать ее для отображения текущего рейтинга.
Теперь вам нужно определить компонент Leaderboard
. Для этого создайте новый файл с именем Leaderboard.jsx
в каталоге ./src/components
и добавьте в него следующий код:
import React from 'react';
импортировать PropTypes из 'prop-types';
импортировать логин из './Авторизоваться';
импорт ранга из "./Rank";
const Leaderboard = (props) => {
const style = {
заливка: 'прозрачный',
инсульт: 'черный',
strokeDasharray: '15',
};
const leaderboardTitle = {
fontFamily: '"Joti One", курсив',
fontSize: 50,
заполнить: '# 88da85',
курсор: 'по умолчанию',
};
let Leaderboard = props.leaderboard || [];
таблица лидеров = leaderboard.sort ((предыдущая, следующая) => {
if (prev.maxScore === next.maxScore) {
вернуть предыдущее имя <= следующее имя? 1: -1;
}
возврат пред.maxScore ({
...член,
ранг: индекс + 1,
currentPlayer: member.id === props.currentPlayer.id,
})). filter ((член, индекс) => {
if (index <3 || member.id === props.currentPlayer.id) return member;
return null;
});
возвращение (
Доска почета
{
реквизит.currentPlayer && leaderboard.map ((player, idx) => {
const position = {
х: -100,
y: -530 + (70 * idx)
};
return
})
}
{
! props.currentPlayer &&
}
);
};
Leaderboard.propTypes = {
currentPlayer: PropTypes.shape ({
id: PropTypes.string.isRequired,
maxScore: PropTypes.number.isRequired,
name: PropTypes.string.isRequired,
изображение: PropTypes.string.isRequired,
}),
аутентифицировать: PropTypes.func.isRequired,
таблица лидеров: PropTypes.arrayOf (PropTypes.shape ({
id: PropTypes.string.isRequired,
maxScore: PropTypes.number.isRequired,
name: PropTypes.string.isRequired,
изображение: PropTypes.string.isRequired,
рейтинг: PropTypes.number,
})),
};
Leaderboard.defaultProps = {
currentPlayer: нуль,
таблица лидеров: ноль,
};
экспортировать таблицу лидеров по умолчанию;
Не бойтесь! Код этого компонента довольно прост:
- Вы определяете константу
leaderboardTitle
, чтобы установить, как будет выглядеть заголовок таблицы лидеров. - Вы определяете константу
dashedRectangle
для стилизации элементаrect
, который будет работать как контейнер таблицы лидеров. - Вы вызываете функцию
sort
переменнойprops.leaderboard
, чтобы упорядочить ранжирование. После этого ваша таблица лидеров будет иметь наивысший максимальный балл вверху и самый низкий максимальный балл внизу. Кроме того, если между двумя игроками ничья, вы размещаете их по именам. - Вы вызываете функцию
map
в результате предыдущего шага (функцияsort
), чтобы дополнить игроков их рангомcurrentPlayer
.Вы будете использовать этот флаг, чтобы выделить строку, в которой появляется текущий игрок. - Вы используете функцию
filter
для результата предыдущего шага (функцияmap
), чтобы удалить всех, кто не входит в тройку лучших игроков. Фактически, вы позволяете текущему игроку оставаться в последнем массиве, если он не принадлежит к этой группе выбора. - Наконец, вы просто перебираете отфильтрованный массив, чтобы отобразить элементы
ранга
, если игрок вошел в систему (props.currentPlayer && leaderboard.map
) или с отображением кнопкиLogin
в противном случае.
Затем последнее, что вам нужно сделать, это создать компонент React Rank
. Для этого создайте новый файл с именем Rank.jsx
рядом с файлом Leaderboard.jsx
со следующим кодом:
import React from 'react';
импортировать PropTypes из 'prop-types';
const Rank = (props) => {
const {x, y} = props.position;
const rectId = 'rect' + реквизиты.player.rank;
const clipId = 'клип' + props.player.rank;
const pictureStyle = {
высота: 60,
ширина: 60,
};
const textStyle = {
fontFamily: '"Joti One", курсив',
fontSize: 35,
заполнить: '# e3e3e3',
курсор: 'по умолчанию',
};
если (props.player.currentPlayer) textStyle.fill = '# e9ea64';
const pictureProperties = {
стиль: pictureStyle,
х: х - 140,
y: y - 40,
href: props.player.picture,
clipPath: `url (# $ {clipId})`,
};
const frameProperties = {
ширина: 55,
высота: 55,
RX: 30,
x: pictureProperties.Икс,
y: pictureProperties.y,
};
возвращение (
<используйте xlinkHref = {'#' + rectId} />
<использовать xlinkHref = {'#' + rectId} strokeWidth = "2" stroke = "black" />
{props.player.rank} º
<изображение {... pictureProperties} />
{props.player.name}
{props.player.maxScore}
);
};
Rank.propTypes = {
player: PropTypes.shape ({
id: PropTypes.string.isRequired,
maxScore: PropTypes.number.isRequired,
name: PropTypes.string.isRequired,
изображение: PropTypes.string.isRequired,
rank: PropTypes.number.isRequired,
currentPlayer: PropTypes.bool.isRequired,
}).требуется для,
position: PropTypes.shape ({
x: PropTypes.number.isRequired,
y: PropTypes.number.isRequired
}).требуется для,
};
экспортировать ранг по умолчанию;
В этом коде тоже нечего бояться. Единственная необычная вещь, которую вы добавляете в этот компонент, — это элемент clipPath
и прямоугольник
внутри элемента defs
для создания закругленного портрета.
С этими новыми файлами вы можете перейти в свое приложение ( http: // localhost: 3000/
), чтобы увидеть новую функцию таблицы лидеров.
8 игр и платформ, которые учат детей программировать
Наши коллеги подготовили для родителей специальный материал. Используя эти платформы, дети могут создавать свои собственные миры или игры, основанные на «Звездных войнах» или «Майнкрафте».
ЛОГОТИПЛоготип — один из первых языков программирования, созданных для обучения детей. Он был разработан в 1967 году Сеймуром Папертом и ученым Идит Харел.LOGO был первым языком программирования, в котором использовался метод «черепашьей графики», который позже использовался как в образовательных целях, так и в профессиональной графике. Пользователь с помощью команд управляет одной или несколькими черепахами, которые оставляют за собой следы. Цель состоит в том, чтобы настроить команды так, чтобы черепахи создавали узор.
Windows имеет бесплатную образовательную среду программирования FMSLogo, которая широко используется в школах Великобритании и Австралии. Для Mac OS X есть бесплатная программа ACSLogo.
ЦАРАПИНА
Scratch — популярная программа для обучения детей программированию. Он переведен на 50 языков. Scratch основан на идеях языка программирования Logo и конструктора Lego. С его помощью вы можете создавать мультфильмы и 2D флеш игры. В меню доступны готовые персонажи, которые можно редактировать. С помощью скриптов, представленных в виде пазла, можно программировать движения и речь, изменять внешний вид, реакции на действия пользователя и другие параметры.Текущая версия доступна в Интернете и использует Adobe Flash Player (который является бесплатным).
«Scratch отлично подходит для обучения детей, хотя в этой среде можно писать настоящие программы, например, для управления роботами. На официальном сайте написано, что среда программирования создана для детей от 8 до 16 лет, но ею могут пользоваться все желающие, в том числе младшие дети с родителями »- блог Ализара на Habrahabr.ru
ГРУЗОВЫЙ БОТ
Cargo-Bot — первая игра, полностью созданная на iPad.Задача состоит в том, чтобы запрограммировать кран так, чтобы он располагал контейнеры в правильном порядке. Вместо кода в игре используются кубики с действиями, которые необходимо выстроить в специальном поле в определенном порядке. Затем кран выполняет указанные действия. Цель состоит в том, чтобы выполнить задание, используя как можно меньше кубиков. Игра на английском языке предназначена для детей от 11 лет и младше.
СТРОИТЕЛЬ КОДОВ ДЛЯ MINECRAFT
Code Builder позволяет писать модификации для Minecraft, т.е.е. изменить окружение, время суток, задать действия для персонажей и т. д. В меню доступны три редактора — MakeCode (встроенный), Scratch (как веб-приложение) и Tynker (есть библиотека готовых скриптов) . Это приложение является частью программы Minecraft Education, поэтому вы должны сначала зарегистрироваться в программе, а затем загрузить Minecraft Education Edition и Code Builder. Это бесплатная демонстрационная версия на английском языке.
БЛОКОВЫЕ ИГРЫ ИЗ GOOGLE
Blockly — это библиотека Google, которая позволяет создавать веб-приложения и приложения для Android из готовых блоков.Разработчики создали серию игр для детей, которые позволяют им шаг за шагом углубиться в основы библиотеки. Каждая игра учит индивидуальным принципам: как задать цвет, придать форму объекту, привести его в движение, реагировать на движение других объектов и т. Д. Программа состоит из блоков, отвечающих за необходимые функции. Затем пользователь видит, как это выглядит в JavaScript. В каждой игре 10 уровней. Например, в Pond Tutor после прохождения уровня предлагается повторить программу JavaScript.Последняя игра «Пруд» — это битва между четырьмя утками в пруду. Задача игрока — запрограммировать свою утку так, чтобы она реагировала на других уток, стреляла в них и в конечном итоге побеждала.
«Blockly идеально подходит для начала программирования даже для самых маленьких детей, потому что нет необходимости читать длинные задания и инструкции. Пока вы пытаетесь помочь желтому человечку выбраться из лабиринта, на самом деле вы пишете свой первый код JavaScript », — Newtonew.com
TYNKER
Tynker — игровая платформа, которая позволяет программировать роботов и создавать игры и приложения.Также возможно создать свой собственный мод для Майнкрафт. Ребенок учится программировать блоками на основе определенных команд, а затем переходит на JavaScript и Python. Платформа используется в 60 тысячах школ по всему миру. Есть бесплатные функции и подписка, которая включает онлайн-курсы, мобильные курсы и другие бонусы. Он доступен только на английском языке.
ИГРОВАЯ ЛАБОРАТОРИЯ KODU
Kodu — это визуальный дизайнер Microsoft, позволяющий создавать трехмерные игры. Пользователь создает игровые миры, знакомит персонажей и устанавливает правила взаимодействия с другими персонажами и объектами.Программа распространяется бесплатно. Он доступен только на английском языке.
CODE.ORG
Code.org — это некоммерческая организация, целью которой является обучение программированию детей и студентов со всего мира. На сайте проекта есть открытый доступ к урокам и курсам по основам информатики и программирования для детей дошкольного возраста и школьников разного возраста. Есть возможность публиковать свой код и проекты для обсуждения и совместной работы. Также дети могут создавать моды на Майнкрафт, игры по мотивам «Звездных войн», «Холодное сердце» и других мультфильмов.Проект поддерживают крупные технологические компании, такие как Apple и Microsoft. Code.org также проводит ежегодный «Час кода» — короткую образовательную программу по информатике, предназначенную для детей и подростков. «Час кода» уже прошел в 180 странах мира.
.