Рубрика «разработка игр» - 170

image

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

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

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

В этой статье описывается подход к дизайну и реализации высокоточной сенсорной системы для ИИ в игре от первого лица с упором на стелс. Описанные здесь техники взяты из опыта разработки ИИ для Thief: The Dark Project, а также из ознакомления с кодом Half-Life. В первой части статьи изложены базовые концепции чувств ИИ на мотивирующем примере Half-Life. Во второй части излагаются более строгие требования к сенсорным системам в дизайне стелс-игр и описывается система, созданная для Thief.
Читать полностью »

OGL3

Класс 3D-модели

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

Читать полностью »

Продолжение рассказа про то, как ковался «Swordbreaker The Game», в этой части будет рассказ про запуск первой демки, локализацию, про то как мы пытались податься на indie-gogo, и немножечко котиков. :)

image

Читать полностью »

Укрощение Змейки с помощью реактивных потоков - 1

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

Хотя это не самая простая тема, но как только мы сумеем ее понять, мы спросим себя, как мы могли без нее жить?
Читать полностью »

В наши дни существует много игровых движков. Двумерные, трехмерные, нативные и на скриптах. На первый взгляд уже сделано все что нужно и можно просто делать игру. Однако по статистике около половины из топ 100 мобильных игр сделаны на своих движках. Почему многие крупные студии делают проекты исключительно на своих технологиях? Что их не устраивает в тех движках, что сейчас есть? Чтобы ответить на этот вопрос нужно понять зачем нужен движок, какие они вообще бывают и чем отличаются.

Зачем в 2017 году писать свой движок для мобильных игр? - 1
Читать полностью »

В 2015 году к ЕРАМ присоединилась геймдев-студия Signus Labs. Внутри ЕРАМ она стала подразделением Virtual Reality, Augmented Reality and Game Experience Delivery. Там разрабатывают игровые решения для бизнеса.

Зачем корпорациям клиенты-игроки, что за игры делают в ЕРАМ и как устроена работа геймдизайнеров и VR/AR-разработчиков?

Зачем бизнесу игры и при чем тут ЕРАМ - 1

Читать полностью »

image

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

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

В этом туториале используется язык программирования ActionScript 3.0, но применяемые техники и концепции можно легко преобразовать в любой другой язык, предоставляющий доступ к низкоуровневому API работы со звуком.
Читать полностью »

Нижеизложенный материал, вероятно, знаком, или даже хорошо известен, программистам, имевшим опыт работы с OpenGL, между тем, я счел уместным напомнить о модели oblique frustum, отчасти наблюдая (и разделяя) интерес читателей Хабра к вопросам OpenGL и в целом трёхмерного моделирования, отчасти из несогласия с позицией некоторых разработчиков вроде «…чтобы это использовать, вовсе не обязательно разбираться в том, как работает матрица проекции», отчасти из уважения и благодарности к Эрику Ленгелу|Eric Lengyel, изобретательная мысль которого обогатила приемы работы в среде OpenGL.

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

Несмотря на то, что я, вслед за Эриком Ленгелом, более придерживался при изложении материала представлений OpenGL, все последующие рассуждения легко распространяются на любые другие системы трёхмерного моделирования.
Читать полностью »

13 сентября в Контуре отмечали День программиста. В самом большом офисе разработки играли в Pac-Man и пытались съесть 280 коробок с пиццей. Одновременно полторы тысячи человек рисовали пиксели в онлайне. В этом посте четыре разработчика рассказывают, как делали праздник.

Как мы отмечали 256 день года и рисовали пиксели через API - 1

Часть 1. Рассказывает Игорь green_hippo, который стырил идею на Reddit

День программиста у нас отмечает вся компания, а не только разработчики. Поэтому была нужна идея для онлайновой игры, в которой могут участвовать все желающие. Я вспомнил, что в апреле прошёл Reddit Place — социальный эксперимент по коллективному рисованию на холсте 1000×1000 пикселей, в котором участвовал миллион человек.

Я решил, что надо сделать свой Place, с таймлапсом и API.

Читать полностью »

Привет, Друзья!

Я написал библиотеку поисков путей на произвольных графах, и хотел бы поделиться ей с вами: http://github.com/anvaka/ngraph.path

Пример использования на огромном графе:

Поиграться с демо можно здесь: https://anvaka.github.io/ngraph.path.demo/

В библиотеке используется мало-известный вариант A* поиска, который называется NBA*. Это двунаправленный поиск, с расслабленными требованиями к функции-эвристике, и очень агрессивным критерием завершения. Не смотря на свою малоизвестность у алгоритма отличная скорость сходимости к оптимальному решению.

Описание разных вариантов A* уже не раз встречалось на хабре. Мне очень понравилось вот это, потому повторяться в этой статье я не буду. Под катом расскажу подробнее почему библиотека работает быстро и о том, как было сделано демо.

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js