Искусственная глупость: искусство намеренных ошибок

Автор: admin от 29-07-2017, 12:35, посмотрело: 312

Искусственная глупость: искусство намеренных ошибок



Всё должно быть изложено так просто, как только возможно, но не проще.

— Альберт Эйнштейн


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



Частая ошибка в разработке и реализации систем ИИ в компьютерных играх заключается в слишком сложном дизайне. Разработчику ИИ легко увлечься созданием умного игрового персонажа и потерять из виду конечную цель, а именно создание развлекающей игры. Если у игрока есть иллюзия того, что компьютерный противник делает что-то умное, то неважно, каким образом ИИ (если он есть) создаёт эту иллюзию. Признак хорошего программиста ИИ — способность противостоять искушению добавить интеллекта туда, где он не нужен, и распознавание ситуаций, в которых достаточно более «дешёвых» и простых решений. Программирование ИИ часто больше похоже на искусство, чем на науку. Способность различать моменты, в которых достаточно дешёвых трюков, и тех, где требуется более сложний ИИ, даётся непросто. Например, программист, обладая полным доступом ко всем структурам игровых данных, легко может читерить, сделав NPC всезнающими. NPC могут знать, где находятся враги, где лежит оружие или амуниция, не видя их. Однако, игроки часто распознают такие дешёвые трюки. Даже если они не могут определить саму природу читерства, у них может создаться ощущение, что поведение NPC не похоже на естественное.
->

Категория: Программирование / Веб-разработка

 

Геймджем для Lua-разработчиков на движках Corona и Defold

Автор: admin от 28-07-2017, 23:20, посмотрело: 543

Геймджем для Lua-разработчиков на движках Corona и Defold

Партнеры и друзья Appodeal, Corona Labs совместно с Defold и DevGAMM Минск, объявляют о старте геймджема #CoronaDefoldJam на базе Lua. Джем пройдет с 28 июля по 30 сентября 2017 на платформе itch.io. Требование к участникам только одно — игры в рамках джема должны быть созданы на Corona или Defold. Если вы никогда не использовали эти движки, не страшно: обе платформы просты для изучения и обладают очень дружелюбными сообществами, которые всегда помогут разобраться. В общем, #CoronaDefoldJam — идеальный повод освоить новые инструменты для создания игр; тем более, что джем поддерживает легендарный Джон Ромеро.

->

Категория: Веб-разработка / Game Development / Android / iOS

 

Методология и руководство по стилю кода компании Ronimo

Автор: admin от 28-07-2017, 13:35, посмотрело: 306

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

Категория: Программирование / Веб-разработка

 

Пиратство и четыре валюты

Автор: admin от 26-07-2017, 19:20, посмотрело: 257

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



Пиратство и четыре валюты
Известный всем денежный доллар.



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



Я предлагаю такие обозначения:




  • ($Д) Денежные доллары

  • ($В) Временные доллары

  • ($Г) Доллары головной боли [в оригинале «Pain-in-the-butt-dollars»]

  • ($Ч) Доллары честности



  • Игрок делает выбор купить или спиратить игру на основании того, сколько «стоит» каждая услуга (а не продукт!) в этих четырёх валютах, а также в зависимости от ценности для игрока каждой из них.
    ->

    Категория: Программирование / Веб-разработка

     

    Анализ исходного кода Doom 3

    Автор: admin от 26-07-2017, 11:15, посмотрело: 314

    Анализ исходного кода Doom 3



    23 ноября 2011 года id Software поддержала собственную традицию и опубликовала исходный код своего предыдущего движка.



    На сей раз настало время idTech4, который использовался в Prey, в Quake 4 и, разумеется, в Doom 3. Всего за несколько часов было создано больше 400 форков репозитория на GitHub, люди начали исследовать внутренние механизмы игры или портировать её на другие платформы. Я тоже решил поучаствовать и создал Intel-версию для Mac OS X, которую Джон Кармак любезно прорекламировал.



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



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

    Категория: Программирование / Веб-разработка

     

    MMO с нуля. С помощью Netty и Unreal Engine. Часть 1

    Автор: admin от 25-07-2017, 12:15, посмотрело: 965

    Всем привет! В нескольких статьях я хотел бы поделиться опытом создания подобия ММО игры используя Unreal Engine и Netty. Возможно архитектура и мой опыт кому-то пригодится и поможет начать создавать свой игровой сервер в противовес unreal dedicated server, который слегка прожорлив или заменить собой фреймворки для разработки многопользовательских игр такие как Photon.



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




    • Часть 1. Общая картина, сборка библиотек, подготовка клиента и сервера к обмену сообщениями

    • Часть 2. Наращивание игрового функционала

    • Часть 3. Бонус материал. HLSL шейдеры в Unreal Engine, генерация ландшафтной сетки с помощью алгоритма Diamond Square, динамическая подгрузка моделей из сети



    MMO с нуля. С помощью Netty и Unreal Engine. Часть 1 ->

    Категория: Программирование / Веб-разработка

     

    Создание шейдера дыма на GLSL

    Автор: admin от 24-07-2017, 14:35, посмотрело: 275

    Создание шейдера дыма на GLSL

    [Дым на КДПВ несколько сложнее получаемого в туториале.]



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



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



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

    Категория: Программирование / Веб-разработка

     

    Дайджест интересных материалов для мобильного разработчика #213 (17 — 23 июля)

    Автор: admin от 23-07-2017, 22:00, посмотрело: 358

    В новом дайджесте мы исследуем локализацию, дизайн (для) пальцев, применение CallKit и ARKit, пропажу букв в Android Wear, тестирование приложений и силу минимализма, уроки роста Instagram и новый умный термостат Microsoft.



    Дайджест интересных материалов для мобильного разработчика #213 (17 — 23 июля) ->

    Категория: Веб-разработка / Microsoft / Android / iOS

     

    learnopengl. Урок 2.2 — Основы освещения

    Автор: admin от 23-07-2017, 19:25, посмотрело: 689

    learnopengl. Урок 2.2 — Основы освещенияРаспространение света в реальном мире это чрезвычайно сложное явление, зависящее от слишком многих факторов, и, располагая ограниченными вычислительными ресурсами, мы не можем себе позволить учитывать в расчетах все нюансы. Поэтому освещение в OpenGL основано на использовании приближенных к реальности упрощенных математических моделей, которые выглядят достаточно похожими, но рассчитываются гораздо проще. Эти модели освещения описывают физику света исходя из нашего понимания его природы. Одна из этих моделей называется моделью освещения по Фонгу (Phong). Модель Фонга состоит из трех главных компонентов: фонового (ambient), рассеянного/диффузного (diffuse) и бликового (specular). Ниже вы можете видеть, что они из себя представляют:



    learnopengl. Урок 2.2 — Основы освещения

    ->

    Категория: Программирование / Веб-разработка

     

    Постмортем Super Meat Boy

    Автор: admin от 22-07-2017, 13:25, посмотрело: 261

    Постмортем Super Meat Boy




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



    Потом я вырос… но мало что поменялось.



    Super Meat Boy начинался как простой прототип на Flash, который мы в свободное время с моим другом из Интернета Джоном Макэнти (Jon McEntee) создали за три недели. Я не представлял, что он станет одной из моих самых популярных игр на Flash, не говоря уже о выпуске полномасштабной консольной игры.



    В 2008 году меня наняли Microsoft и Nintendo, чтобы я создал что-нибудь для их Интернет-магазинов. Изначально я хотел сделать для Microsoft Gish 2, а Nintendo больше заинтересовала расширенная версия Aether, но главным фактором, повлиявшим на меня, стала случайно завязавшаяся дружба.



    Я познакомился с Томми Рефенесом в 2008 году. За долгие годы я успел поработать с множеством программистов, и отношения между художниками и программистами всегда были немного отчуждёнными. Работа с Томми напоминала общение с лучшим другом из колледжа, мы чудили и выкидывали трюки, бесившие всех вокруг. Я сразу понял, что любой наш совместный проект будет интересным, именно так и получился Super Meat Boy.
    ->

    Категория: Программирование / Веб-разработка