TechCave

Описание сайта

Разработка компьютерных игр

Основная информация

Разработка компьютерных игр — процесс создания компьютерных игр (видеоигр).

Рейтинг: 0
Создана 2 года назад
Владелец root

Стена группы

Загрузка...
1 год назад
#

Эффект дизеринга в трёхмерной игре



image

Создатель Papers, Please Лукас Поуп работает над новым трёхмерным проектом Return of the Obra Dinn, в котором пытается с помощью эффекта дизеринга воссоздать в игре ощущение старинной книги.

Для начала краткое объяснение: Obra Dinn выполняет внутренний рендеринг всего в 8-битной палитре в градациях серого, а затем на этапе постобработки преобразует конечные выходные данные в 1-битные значения. Преобразование из 8-битного в 1-битный цвет выполняется сравнением каждого пикселя исходного изображения с соответствующей точкой в тайловом паттерне дизеринга. Если значение пикселя изображения больше значения точки паттерна дизеринга, то выходному биту присваивается значение 1, в противном случае оно равно 0. Выходные данные упрощаются до 1-битных значений, а глаз зрителя объединяет пиксели, аппроксимируя из них больше битов.

Источник
1 год назад
#

Игра на Unity, с открытым кодом



Черная пятница, черная пятница… надоело. Объявляю свой личный Белый понедельник — за пару ночей написал небольшую игру и выкладываю ее код на всеобщее пользование, со скидкой 90%. Зачем мне это надо? Ну я вижу следующие плюсы — тот самый открытый код для поиска работы (да да, сейчас я нахожусь в активном поиске), почитать в комментариях о своих косяках, наконец то сменить статус на Хабре.

Источник
Den
1 год назад
#

Библия движений Doom. Часть 2



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



SlideMove: cкользкие моменты

До настоящего момента, все рассмотренные трюки с движением персонажа в игре опирались на дискретную природу перемещения в движке DOOM. Теперь же мы копнем код игры гораздо глубже, и доберемся до функции с невинным названием P_SlideMove. Функция содержит комментарий, предупреждающий неосторожного читателя кода, что перед ним «полнейшая неразбериха». Не знаю, добавил этот комментарий John Carmack или же Bernd Kreimeier, но он весьма и весьма точен.

Источник
1 год назад
#

Ретроспектива: Heroes of Might & Magic III



image

Heroes of Might & Magic III через полтора года исполняется 20 лет. Игра, покорившая не одно поколение своим волшебством, не потеряла своей привлекательности и сегодня — многие называют её «новыми шахматами», утверждая, что превзойти «магическую» формулу третьих «Героев» с тех пор так никому и не удалось.

Сегодня вашему вниманию предлагается рассказ о том, как появились на свет
HoMM III и её наследники. Учитывая, что знания, проливающие свет на события тех дней, всегда могут кануть в Лету, и их не спасет даже
The Internet Archive (что уже произошло с некоторыми интервью) — а сама серия, по слухам, волей Ubisoft отправлена в глубокую «заморозку» из-за
неважных финансовых показателей последней части франшизы — лучше сделать это сегодня, чем завтра.

Мой рассказ является реконструкцией событий, происходивших два десятилетия назад, и в его основе лежат десятки источников — поэтому он может содержать некоторые неточности; к счастью, история пока сохранила для нас достаточно сведений про то, как New World Computing и 3DO смогли произвести на свет игру, удавшуюся настолько, что мы годы спустя продолжаем в неё играть. Узнаете вы и про то, что произошло после выпуска третьих «Героев».

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


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

Источник
1 год назад
#

Рисователь биомов: наполняем содержанием огромный мир





Как преобразовать карту высот с верхней картинки в лес с нижней?

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

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

Если посмотреть на типичную игру с открытым миром, то можно увидеть в действии принцип Парето — 20% контента составляют основной путь игрока, а 80% — это фон. Основной путь игрока должен отличаться высоким качеством и художественным содержанием, потому что игроки проведут на нём бо́льшую часть времени. Фоны, в том числе обширные леса или пустыни вокруг главных городов, не требуют такого внимания к деталям. Эти 80% представляют собой отличную цель для умных инструментов размещения содержимого, которые слегка жертвуют качеством и художественным оформлением в пользу скорости и простоты создания контента.

Источник
1 год назад
#

В «Налог на Гугл» внесли изменения



image

Не прошло и года с даты вступления в силу поправок в Налоговый кодекс, которые СМИ окрестили «Налогом на Гугл», как в него внесены существенные изменения.

Опубликован
Федеральный закон от 27.11.2017 N 335-ФЗ, которым изменен порядок исчисления налога с услуг в электронной форме, оказываемых иностранными организациями.

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

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

Источник
1 год назад
#

Разработчики о самых грязных программных трюках в играх



image

Когда время заканчивается, разработчики выдохлись, а загадочные проблемы продолжают появляться, иногда требуются нестандартные решения. Когда вам любой ценой нужно завершить проект, то на кону стоит всё… В паре классических статей, изначально опубликованных в дружественном журнале Game Developer magazine, мы изучили несколько потрясающих примеров таких решений из реальной жизни. Эти нестареющие шедевры можно прочитать
здесь (
перевод на Хабре) и
здесь.

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

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

Источник
1 год назад
#

Логика камеры в 2D-платформере



image

Правильно настроить поведение камеры в классическом 2D-платформере не так просто, как может казаться.

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

Например, если камера сдвигается вверх при каждом прыжке персонажа, то это запросто может вызвать тошноту. Кроме того, при мгновенном разгоне и остановке персонажа камера может резко дёргаться.

В нашей новой игре
Tiny Thor мы экспериментировали с различными вариантами. Я хочу рассказать о том, на каких техниках мы в результате остановились.

Источник
1 год назад
#

Создание ремейков игр с помощью эмуляции: proof of concept



image

Введение

«В моё время игры были лучше. Они были интереснее, потому что геймплей считался более важным, чем графика».
— Геймеры, рождённые в любом десятилетии


Каким бы ни было «ваше время», думаю, вы в какой-то степени согласны с этим мнением. Для меня это был период с середины 80-х до середины 90-х, когда я проводил бесчисленные часы за
Sir Fred,
Atic Atac,
Airborne Ranger,
Monkey Island,
Twilight: 2000,
Stunts,
Gunship 2000,
Twinsen’s Adventure,
Dark Sun,
Challenge for Ancient Empires, серией the
X-Wing и очень многими другими играми.

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

Сыграть в remastered-версию. Некоторые игры настолько потрясающи и собрали настолько преданную базу фанатов, что выпускается официальное «новое издание». Это точно такая же игра, но с современной графикой. Отличным примером таких игр может быть замечательная
Monkey Island Special Edition.

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

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

Источник
1 год назад
#

Повторное использование кода — как это бывает на практике



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

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

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

Источник
1 год назад
#

Проектирование системы для считывания данных с устройств ввода (Часть первая)



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

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

//обновления данных, полученных с устройств ввода
cotrols->Update()
...
void Player::Move()
{
  if (controls->MouseButonPressed(0))
  {
     ...
  }

  if (controls->KeyPressed(KEY_SPACE))
  {
     ... 
  }

  if (controls->JoystickButtonPressed(0))
  {
     ...
  }
}


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

Что можно предложить для решения проблемы?

Источник
1 год назад
#

Чтобы научиться мыслить как программист, надо научиться мыслить как не программист



Это как бы ответ на статью
lxsmkv
«Задача о переправе». Наиболее запоминающаяся часть той статьи — это огромная (в сопоставлении с сложностью задачи) таблица, в которой выражена модель задачи.

Попробуем придумать что-то попроще.

Источник
1 год назад
#

Трёхмерная графика с нуля. Часть 2: растеризация



image

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

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

Тогда как это
удаётся играм?

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

Источник
1 год назад
#

WebGL: перевод игры с мобильной платформы на десктопную



Создание десктопной версии мобильной игры стало настоящей исследовательской миссией для краснодарской студии Plarium. В этой статье мы расскажем, как перешли на технологию WebGL при переносе проекта Vikings: War of Clans на новую платформу.

image

Источник
1 год назад
#

Как я получил 365K загрузок в App Store за две недели (и почему после этого ушёл из геймдева)





Я не стал успешным разработчиком игр. Моя самая популярная игра
Frantic Architect достигла всего 410 678 бесплатных установок, прежде чем была удалена из App Store; она ни в какое сравнение не идёт с
Flappy Bird или
2048.

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

Вместо этого я бросил её.

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

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

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

Источник
14 15 17 18

Авторизация

Войти с помощью

Пользователи

GeekBrains

КАРКАМ

Нетология