Letter-Setter. Записки одной разработки. Часть 2

Получив примерное представление о том, что из себя должна будет представлять игра, я начал этап прототипирования.

Разработка игр

Получив примерное представление о том, что из себя должна будет представлять игра, я начал этап прототипирования.

Что такое вершинный буфер? Как создать трёхмерный объект и отрисовать его на экран? Для чего нужен формат вершин и как с ним работает вертексный шейдер? Как работает буфер глубины и что такое борьба за глубину? Как это влияет на полупрозрачность и почему важен порядок отрисовки объектов на экран? Как посчитать координаты камеры и задать перспективу? Для чего нужны матрицы и как ими пользоваться? Что такое отсечение и зачем оно нужно?

Из новостей: Concord закрыли через 2 недели после релиза, продажи Wukong превысили 18 миллионов копий, авторы Enotria смогли связаться с командой Xbox
Из интересностей: словечко про детерминизм замолвим, как не сделать своей игры за 10 лет и заработать 430к баксов, строки в игровых движках.

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

Представьте себе сложное переплетение складок, натяжение ткани, развевающейся на ветру. А теперь представьте, что вы пытаетесь воспроизвести всё это в виртуальной среде. На первый взгляд эта задача кажется обманчиво простой, но даже в ней есть свои подводные камни. В основе моделирования тканей лежит тонкий баланс между физической точностью и вычислительной эффективностью.
Моделирование ткани в основном сводится к решению задачи Коши, которая заключается в нахождении будущего состояния системы с учетом ее начальных условий и управляющих дифференциальных уравнений. В данном контексте положения и скорости частиц в ткани определяются такими силами, как гравитация, ветер и внутренние ограничения, которые и описываются диффурами. Хотя метод Эйлера часто является базовым подходом к решению подобных задач, он часто не подходит для моделирования ткани из-за своей неустойчивости и склонности к накоплению ошибок с течением времени, особенно в динамических системах с быстро меняющимися силами.
Метод Эйлера аппроксимирует будущее положение, основываясь только на текущем состоянии, что приводит к нереалистичному растяжению и артефактам в моделировании. Напротив, интеграция Верле, учитывающая как текущее, так и предыдущее положение частиц, отличается большей стабильностью и точностью, что делает ее более надежным методом решения задачи Коши в физике тканей.


Я всех категорически приветствую! Бывало ли у тебя ощущение, что ты настолько устал от компьютерных игр, что не хочется даже пытаться вникать в них? Запрос «во что можно поиграть» в поисковой строке на первом месте, а игровое времяпрепровождение с друзьями проходит «на автопилоте». Я постараюсь поделиться с вами всеми своими наблюдениями и экспериментами в надежде, что это поможет именно тебе.

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

Исторически потребность в строках и их использование в игровых движках было довольно ограниченое, кроме, разве что, локализации ресурсов, где была необходимость полноценной поддержки чего-то отличного от набора ASCII символов. Но, при желании, даже эти ресуры разработчики умудрялись упаковать в доступные 200 элементов набора ASCII, а учитывая что игра обычно запускается только в одной локали, то никаких потребностей в конвертации не было. Но есть тут и отличия от стандарта, стараниями Sony практически с начала нулевых, еще до 20 стандарта разработчикам игр были доступны несколько моделей символьных литералов. Стандартый ASCII на PS1 и частичная поддержка Unicode (ISO 10646), с выпуском сдк для второй плойки добавили поддержку UTF-16 и UTF-32, а после выхода PS3 добавили поддержку UTF-8.

Всем привет! Я Денис, выпускник программы Менеджмент игровых проектов и основатель игровой инди-студии ISG.
Три года назад я приступил к разработке своего пет‑проекта — мобильной игры Transmigratio (лат. — переселение). Я хотел создать некую песочницу, в которой можно будет симулировать человеческую историю в духе Civilization, но без управления одним из народов. Хотелось сделать 4X, но без десятков тумблеров и переключателей — такое интерактивное шоу, в которое игрок может вмешиваться, а может и просто наблюдать. На обучении в Высшей школе бизнеса опытные геймдизайнеры справедливо заметили, что просто наблюдение будет скучным для большинства игроков, и показатели вовлечённости будут неприлично низкими. Поэтому я решил добавить ещё и активные игровые механики, чтобы улучшить перспективы проекта. Примерно в этот момент я начал понимать, что это будет не просто пет‑проект, а начало моей геймдев‑карьеры. Да, обучение во взрослом возрасте отлично помогает вправить мозги!

Мы хотим, чтобы интеграция наших инструментов была максимально простой и понятной. Поэтому запускаем серию статей, в которых будем делиться советами по работе с RuStore Billing SDK и созданию плагинов для разных платформ и игровых движков.
Интеграция RuStore Billing SDK в игры на движке Defold может быть немного сложнее, чем нативный вариант. SDK написан на Kotlin, и взаимодействие системы скриптинга Defold на Lua с нативным SDK требует использования JNI (Java Native Interface).
Меня зовут Роман Пельмегов, я работаю разработчиком в RuStore.
В этой статье расскажу, как мы интегрировали платежные функции RuStore в Defold. Вы узнаете, как создать плагин и подключить нативные Android-библиотеки, чтобы упростить работу с SDK.

Всем привет! Для тех кто не знает, меня зовут Ш. Сергей!
Я хоть и программирую на Pascal/Assembler, но думаю что для людей, использующих другие ЯП, данная информация может быть полезна. Полностью рассмотреть вопросы оптимизации программ/игр практически не возможно, думаю для этого надо написать достаточно не малую книгу и всё равно что-нибудь да будет упущено.
Помните, оптимизация - это достаточно не простая задача. Код, который хотят оптимизировать, могут перебирать десятки раз и практически не получить результата. А иногда малейшие изменения в коде, могут дать хороший результат. Потому, желательно знать и понимать как можно оптимизировать код и стоит ли заниматься этим в данный момент.

Привет!
В этой статье я попытаюсь в подробностях объяснить, как именно работают Blueprint функции с точки зрения C++ кода. Разберем разницу в C++ реализации между Blueprint функциями и C++ функциями, а также будет разобран пример одной из "Blueprint схем".

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

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

Что такое вершинный буфер? Как создать трехмерный объект и отрисовать его на экран? Для чего нужен формат вершин и как с ним работает вертексный шейдер? Как работает буфер глубины и что такое борьба за глубину? Как это влияет на полупрозрачность и почему важен порядок отрисовки объектов на экран? Как посчитать координаты камеры и задать перспективу? Для чего нужны матрицы и как ими пользоваться? Что такое отсечение и зачем оно нужно?

Жизнь отечественных геймеров в конце 80-х — начале 90-х годов была очень непростой. Из советских электронных развлечений были разве что клоны Pong вроде «Видеоспорта», карманные электронные игры типа «Ну, погоди!» (тоже клоны, но уже серии Game & Watch от Nintendo), несколько десятков советских компьютеров с довольно ограниченным набором софта да несколько сотен (!) клонов британского компьютера ZX Spectrum.
И сегодня я хочу рассказать вам о YRGB — международном конкурсе по разработке ретро‑игр, который Яндекс проводит с 2019 года. Участникам необходимо разработать самостоятельную игру, свободную от авторских прав, для платформ ZX Spectrum 48K/128K. Так что если вы когда‑нибудь делали игры или хотите попробовать, но опасаетесь масштаба современных платформ, этот пост для вас.

Из новостей: GameNGen сгенерировал Doom, Bloodborne запустили на ПК, Remedy и Annapurna объявили о сотрудничестве для работы над Control 2, новые возможности для показа контента на странице в Steam.
Из интересностей: история одной опечатки в Street Fighter II The World Warrier, 100 полезных советов по Unreal Engine 5, Motion Capture кошачьих врагов для Black Myth: Wukong.

Для чего нужна система сохранений? Какие задачи решает? Что происходят внутри? Как реализовать? Какие варианты существуют? Как адаптироваться к постоянно меняющемуся контексту? Какие современные особенности нужно учитывать?
Сегодня я собираюсь продолжить рассказ про свой 3D рендер в командной строке Windows и разобрать те темы, которых не коснулся в 1 Части.
На этот раз в статье будет больше кода и меньше математики (а также много скриншотов).