Как стать автором
Обновить
235.07

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

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

Сначала показывать
Порог рейтинга

Мы 12 лет делали текстовую Zero Player MMORPG на русском языке, иногда я писал об этом на Хабре (1, 2, 3, 4).

Теперь мы открываем лор игры под лицензией CC BY 4.0.

Сайт с лором: https://the-tale.notion.site/

Что мы шарим:

  • 195 художественных описаний монстров;

  • 403 художественных описания артефактов;

  • 177 описаний дополнительных существ (спутники героев);

  • 85 художественных текстов о разных аспектах жизни во вселенной игры;

  • 25 текстов с описанием логики мира, частично художественных, частично технических;

  • Pixelart sprite sheets для карты и некоторые иконки.

Лицензия CC BY 4.0 значит, что вы можете почти всё: копировать и распространять, изменять и перерабатывать — даже в коммерческих целях. При условии, что указываете лицензию, оригинальных авторов и внесённые изменения.

Мы с друзьями надеемся, что наши наработки окажутся полезными начинающим разработчикам и авторам.

P.S. За всё время в игру активно играло 39 000 человек, игроки написали больше 1 000 фанфиков, создали огромное количество фанарта, несколько текстовых квестов по миру игры, и оставили больше 270 000 сообщений на форуме. Поэтому, пусть лор и не уровня ААА игр, есть основания предполагать, что он достаточно увлекательный.

Теги:
Всего голосов 2: ↑2 и ↓0+3
Комментарии1
Orkstar Games, Inc.
Orkstar Games, Inc.

Обещанная статья о том как я примазался к самой успешной игровой студии в Мире и создал логотип для сообщества. В конце галерея уродов от нейросети с моими комментариями:
https://vk.com/@orkstargames-kak-ya-primazalsya-k-samoi-uspeshnoi-videoigrovoi-studii-v-m

Теги:
Всего голосов 7: ↑1 и ↓6-5
Комментарии0

📝 Заметка про собеседования 📝

Уровень материала: 🦉 #management

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

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

1️⃣ Я стараюсь проводить собеседования наименее ресурсозатратно и для себя, и для кандидата. Мои целевые показатели — 30 мин на интервью, 30 мин на подготовку (но реальные медианные будут побольше 👺). Подготовка — это осмотр резюме, изучение информации о кандидате и прошлых местах работы в сети, знакомство с проектами и кодом.

2️⃣ Для меня код (если нужен программист) — ключевой и самый говорящий фактор. ТЗ я давать не люблю: стараюсь обходиться петами кандидатов. Но если посмотреть нечего или нет проектов с релевантными технологиями, то выдаю ТЗ на какие-то отдельные конкретные моменты, которые бы мне хотелось прояснить. Или посмотреть, насколько хорошо удастся разобраться с новой технологией.

Правда, если кандидатов много, то всё приходится усреднять и ставить на поток. Иначе основной рабочий процесс будет саботирован. Главное, чтобы на ТЗ уходило минимальное количество времени. В конце концов, и мне же это потом смотреть. Поэтому с каждой новой волной найма я стараюсь оптимизировать коллекцию заданий.

3️⃣ Интервью — самый дорогой этап с точки зрения времени и организации, поэтому он обычно остаётся на самый конец (чтобы оставалась возможность до него не дойти). Но если попадается интересное резюме, то могу сразу и перейти к нему, пропустив или отложив этап «кода».

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

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

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

————————————

#gamedev #development #hiring #interview #геймдев #разработка #найм #собеседование #рекомендация #статья

Теги:
Рейтинг0
Комментарии0

🏗️ Темы по архитектуре для инженеров ПО💪

Уровень материала: 🐓 #senior

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

✍ По схеме у меня есть ряд пробелов, которые я планирую заполнить. Но с большей частью за свою карьеру я в том или ином виде успел повзаимодействовать.

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

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

🎥 Можно ещё побродить по YouTube-каналу S0ER'а. Видео не выходили давно, но контента там уже накопилось много. Например, я недавно пересматривал видео по KISS, чтобы освежить в памяти некоторые красноречивые пункты.

🕸 Схема в текстовом виде:

Архитектура:

|- Требования:

|---- Функциональные

|---- Нефункциональные

|---- Производные

|---- Пользовательские истории

|- Принципы:

|---- Границы: толстые, тонкие

|---- YAGNI

|---- KISS

|---- DRY

|- Подходы:

|---- Проектные

|---- Продуктовые

|- Методология:

|---- DDD: тактика, стратегия

|---- Agile: SCRUM, экстремальное программирование

|---- Waterfall: сверху вниз, снизу вверх

|- Процессы:

|---- Документирование: BPMN, UML

|---- Проектирование: ADR, C4

|---- Выпуск: версионирование, CI/CD

|- Уровень предприятия:

|---- ITIL

|---- PRINCE2

|- Облачная архитектура

|- Проектирование и разработка:

|---- Уровень кода:

|------- Шаблоны проектирования (GoF)

|------- Парадигмы:

|---------- ООП: SOLID, GRASP, DI

|---------- ФП

|---- Уровень приложения:

|------- Концепции:

|---------- Реактивная архитектура

|---------- Чистая архитектура

|---------- Порты и адаптеры

|---------- Feature Sliced

|------- Структура:

|---------- Монолит

|---------- Сервис

|---------- Микросервис

|---------- Микроядро/плагин

|------- Данные:

|---------- Потоки данных: CQRS, Конвейер/pipe, pub/sub, SAGA

|---------- Целостность: BASE, ACID

|---- Системный уровень:

|------- Данные: Data Lake, Data Mesh

————————————

#gamedev #development #architecture #roadmap #software #геймдев #разработка #архитектура #по #рекомендация

Теги:
Всего голосов 3: ↑1 и ↓20
Комментарии3

🏗️ Cell-Based Architecture и EventBus 🚌

Уровень материала: 🐥 #middle

Сейчас будет немного спорный контент: так и не смог ёмко и лаконично выразить мысль, а раздувать статью из этого не хочется. Но всё же. Просматривал небольшую обзорную статью про Cell-Based Architecture из своего бэклога. И глаз зацепился об одну занятную мелочь.

Эта мелочь — EventBus. Про него можно посмотреть, например, тут и тут. Что я хотел отметить: обрати внимание на положение EventBus'а на схеме. Сейчас маленько «сову на глобус», но замени клетки на отдельные логические модули из своего игрового проекта — у них, как и у клеток, тоже должен быть высокий Cohesion (и низкий Coupling по GRASP'у). Это могут быть, например, CoreGame и MetaGame или Presentation-слой и Business-слой. И посмотри на положение EventBus'а ещё раз.

EventBus — это один из способов коммуникации между модулями. Он «связывает» большие самодостаточные модули между собой, обеспечивая им низкий Coupling, что позволяет им быть отдельными переиспользуемыми образованиями, а не одним большим неразрывным «куском кода».

Он не находится внутри модуля. У модуля есть только тычка Events для общения с EventBus. А внутри модуля коммуникация производится более явно. В т.ч. через «классические» события, которые не требуют дополнительных слоёв абстракций, как в EventBus.

Почему-то так сложилось, и почему-то преимущественно в геймдеве (в других сферах, по крайней мере, я не встречал), что на его основе пытаются стряпать проекты прям «от и до». Пример: тык. Даже на дорогостоящих курсах про это рассказывают.

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

Чтобы убедиться, достаточно самостоятельно «сунуть пальцы в розетку». Вот инструкция:

  • сделать проект на >5000 строк собственного кода на основе EventBus,

  • запланировать масштабную геймплейную фичу,

  • забыть о проекте на две недельки,

  • вернуться в проект и сделать эту фичу,

  • оценить пережитый опыт от 0 до 10 по шкале «спасибо, до свидания».

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

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

————————————

#gamedev #development #architecture #eventbus #геймдев #разработка #архитектура #рекомендация #статья

Теги:
Рейтинг0
Комментарии0

♾️ Рекомендация видео по старту в CI/CD ♾️

Уровень материала: 🐓 #senior

У Артёма Шумейко ещё не очень давно вышло два видео, посвящённых CI/CD. Одно теоретическое, другое — практическое. И вот второе мне очень даже понравилось — хочется им поделиться. К тому же ранее я уже рекомендовал его видео по деплою приложений, а CI/CD можно рассматривать как автоматизацию этого процесса.

🤔 При чём тут геймдев:

Указанный уровень материала очень условный. Вопросы CI/CD "официально" не входят в область GameDev-специальности, а уж тем более middle-уровня. Но навык это незатейливый и очень полезный на любом уровне специализации. Полезный и для корпоративной жизни, и для личной — навести автоматизацию на своих петах тоже удобно. А достопочтенному senior'у как-будто бы даже зазорно не уметь в такое хотя бы на уровне теории.

В больших компашках на 100+ человек обычно есть выделенные devops-человечки. И обычно они постоянно заняты, т.к. обязанностей у них предостаточно. Оперативно решить вопросики с CI\CD малого масштаба можно самостоятельно — тут и поможет накопленная экспертиза.

Или можно угодить в коллектив поменьше или того страшнее — собрать его самому. Тогда автоматизируешь рутину и повысишь эффективность команды или ты, или никто.

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

☝️ Что хорошего в видео:

Этот ролик — пока самое лучшее из того, что я видел вводного по теме. Он короткий, он по делу, он ёмкий и понятный, он легко и интересно смотрится, он наглядный и качественно сделанный.

Показан весь путь автоматизации: от самого процесса выбора, аренды и настройки сервера до непосредственного автоматизированного деплоя приложения. Хоть тут же повторяй, даже если понятия не имеешь, где и как брать сервера.

И сам пример хорошо демонстрирует для чего нужен CI/CD, для чего нужны тесты, почему важно это всё автоматизировать и почаще гонять.

Gitlab, возможно, не самое популярное решение в геймдеве: я обычно встречаю Jenkins и TeamCity (и изредка Unity Build Automation). И т.к. сборка игрового проекта занятие продолжительное и тяжеловесное, то и сборки делаются не так часто, как об этом пишут применительно к другим сферам. Особенно если проектов много, а машинок для сборки — чуть-чуть или вообще одна. Но на уровне идеи это всё не имеет значения: процессы примерно одинаковые во всех системах и для разной природы проектов. А как выглядит дашборд и какие цифры ставить в настройках — дело наживное.

—————————————

#gamedev #development #backend #infrastructure #devops #cicd #геймдев #разработка #бэкенд #девопс #инфраструктура #автоматизация #рекомендация #видео

Теги:
Рейтинг0
Комментарии0

🧠 Инсайты про применение LLM 🧠

Уровень материала: 🦉 #management

Пока в столице гремел РЭД, я на выходных посещал другую локальную конференцию — KD Conf. Помимо приятного чувства, что на конференцию не надо никуда лететь/ехать, подхватил два интересных инсайта про внедрение LLM-моделей в процессы:

📃 Можно валидировать ГДД:

  • Проверить документ на противоречивость информации.

  • Проверить документ на достаточность информации.

  • Отформатировать документ под конкретный отдел. Т.е. переоформить так, чтобы с доком было удобно работать программистам, художникам и т.д.

🏷️ Можно валидировать описания для задач:

  • Проверить, что описание соответствует шаблону.

  • Проверить, что информация релевантная, а не ради удовлетворения шаблона.

  • Проверить, что предоставленной информации достаточно для выполнения задачи.

Делать это можно вручную, по необходимости, или автоматизированно через API.

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

В этой схеме есть две явные проблемы — это конфиденциальность🛡️ и стоимость запросов 💵
Решается это развёртыванием внутренней корпоративной LLM. На конференции я чаще всего слышал про Llama от Meta. И мы в команде тоже как раз смотрим в сторону этого решения.

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

————————————

#gamedev #development #llm #ai #pipeline #геймдев #разработка #процессы #управление #ии #вопрос

Теги:
Рейтинг0
Комментарии0

🗞️ Свежая стажировка в геймдеве 🗞️

✍️ Коллеги из Unigine опубликовали объявление на новую стажировку. В этот раз для технических писателей. Про то, кто это такой и зачем, можно почитать ещё свежую статью на Хабре, уже старенький доклад от самих же Unigine и информацию в самом объявлении.

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

—————————————

#development #gamedev #intern #engine #techwriter #news #разработка #стажировка #геймдев #рекомендация #новости

Теги:
Рейтинг0
Комментарии0

⏱ Природа DeltaTime ⏱

Уровень материала: 🐣 #junior

Интересная коротенькая статья про то, как устроено deltaTime в игровых движках. Никакого откровения нет, если внимательно прочитать само определение параметра в документации к движку (например, Unity). Но всё равно найдутся те, для кого это может оказаться неожиданностью.

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

Рекомендую также заглянуть в Appendix — там есть ссылки на более углубленные статьи: про нюансы отрисовки, общение между CPU и GPU, способы определения deltaTime, влияние параметра maxQueuedFrames и особенности работы при vSync.

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

p.s. может потребоваться VPN.

—————————————
#gamedev #development #graphics #gpu #cpu #render #разработка #геймдев #статья #рекомендация

Теги:
Всего голосов 1: ↑1 и ↓0+1
Комментарии1

📅 MidUp #4 📅

🎄 Последняя в этом году подборка GameDev и IT мероприятий, которые встретил в чатах, группах и просто в сети. Митапы, конференции, фестивали, джемы, конкурсы и другое.
>> предыдущая подборка <<

🔹🔹 Декабрь: 🔹🔹

🧑‍💻🎤🎫 2 и 3 декабря. Мск [Offline] [Online] HighLoad++ 2024. "Сколково". Билеты от 41 000 ₽.

🧑‍💻🎤🆓 3 декабря. Екатеринбург [Offline] Frontend Meetup. Технохаб Сбера. Бесплатно.

🧑‍💻🎤🆓 5 декабря. Вологда. [Offline] Sber IT Talk. Картинная галерея. Бесплатно.

🧑‍💻🎤🆓 5 декабря. Мск [Offline] [Online] OS DevConf. Бесплатно.

🧑‍💻🎤🎫 6—7 декабря. Спб [Offline] [Online] Питерский промпт. Airportcity Plaza. Билеты от 4 900 ₽.

🧑‍💻🎤🎫 6 декабря Мск. [Offline] RustCon. Holiday Inn. Билеты от 20 000 ₽.

🧑‍💻🎤🎫 6 декабря Мск. [Offline] [Online] Conversations 2024. Radisson Blu Olympiyskiy Hotel. Билеты от 34 900 ₽.

👾🏆🆓 5-8 декабря [Online] GamePush Profit Jam. Бесплатно.

👾🎤🆓 7 декабря. Спб. [Offline] [Online] Митап геймдев изнутри. Точка Кипения. Бесплатно.

👾🎤🆓 8 декабря. Мск. [Online] Индикатор Шрёдингера. Библиотека для молодёжи. Бесплатно.

👾🎤🆓 8 декабря. Мск. [Offline] Лекция по Level Art. Artplay. Бесплатно.

👾🎤🆓 11 декабря. Спб. [Offline] [Online] Selectel GameDev Meetup. Цветочная, 19. Бесплатно.

🧑‍💻🎤🆓 11-13 декабря. Мск [Offline] [Online] AI Journey. Офис Сбербанк. Бесплатно.

🧑‍💻🎤🆓 12 декабря. Мск [Offline] Киберсъезд. Кибердом. Бесплатно.

🧑‍💻🎤🆓 14 декабря. Мск [Offline] [Online] DevRel Conf. T-Space. Бесплатно.

🧑‍💻🎤🆓 14 декабря. Мск [Offline] Ночь опенсорс библиотек. Библиотека иностранной литературы. Бесплатно.

👾🍻🆓 14 декабря. Екатеринбург [Offline] Ural Game Night. Бесплатно.

👾🏆🆓 17 декабря. Калининград [Offline] ART GameJam. Резаниум. Бесплатно.

👾🍻🆓 19 декабря. Новосибирск [Offline] GameDev Meetup. Shredder Pizza. Бесплатно.

👾🎤🆓 21 декабря. Спб [Offline] Новогодний митап. Библиотека №5. Бесплатно.

👾🍻🆓 26 декабря. Новосибирск [Online] Покажи и Расскажи. Бесплатно.

Знаешь какие-то ещё интересные события, особенно в регионах — оставляй информацию в комментариях 👇

—————————————

#it #development #gamedev #gamejam #meetup #conference #разработка #айти #геймдев #конференция #митап #событие #подборка

Теги:
Всего голосов 1: ↑1 и ↓0+1
Комментарии0

🆓 Бесплатные курсы с YouTube 🆓

Уровень материала: 🎓 #education

На YouTube-канале CodeMonkey недавно вышло два больших видео, два бесплатных курса. Это 12-часовой курс по C# и 7-часовой курс по DOTS. Я их ещё не просмотрел и не могу объективно оценить. Но если вдруг какой-то подобный контент был как раз нужен — возможно это оно. Ранее там же выходил ещё курс по C# Intermediate.

# Про C#:

Видео по C# для меня интереса не представляет. Полистал, вроде всё адекватно, примеры нормальные. Видел пример реализации [Flags] для enum через побитовый сдвиг — очень полезная штука, почему-то её при обучении любят игнорировать.

✨ Про DOTS:

А вот видео по DOTS я, пожалуй, затестирую лично, но уже в новом году — пока катастрофически загружен. Напомню, что DOTS — это не только ECS-фреймворк, но и целый стек технологий, часть которых доступно и вне ECS (например, Burst Compiler и Job System).

Из ECS-решений ранее я пробовал DOTSEntitasLeoECS и Morpeh — и последний мне нравится больше всех, пусть он и не самый производительный. А DOTS нравился меньше всех. Интересно будет посмотреть, что в нём изменилось и что он из себя представляет сейчас.

📖 Про подобные курсы в целом:

Помнится, год назад Сакутин тоже выпускал подобные YouTube-курсы по C# и по Unity. Я их не смотрел, ничего сказать не могу. Видел только в чатах отзывы проходивших, что классическое «обо всём и ни о чём». Что, на самом деле, ожидаемо. 7–12 часов — это капля в море, особенно для Unity. Можно только успеть «тегов» набросать и по верхам пробежаться.

Так что это всё не более чем помощь в самообучении и практике. Только самостоятельное копошение в теме сможет чему-то научить. Не нужно ждать, что такие короткоформатные курсы смогут резко прокачать. Только подскажут и направят, не более.

🔖 Рекомендация от себя:

Пользуясь случаем, порекламлю мой любимый ресурс по C# (и не только) — Metanit. Удобный, качественный, бесплатный, масштабный. Он не заменит всё на свете, но это очень хороший дополнительный ресурс, который удобно использовать параллельно с другими ресурсами и к которому удобно возвращаться потом.

Сам по нему учился, параллельно с кучей других профильных книг. В «своё время» выел там весь контент по C#. Пригодилось ли мне это?

  • С практической точки зрения: что повседневно не использую, то уже, конечно, не помню совершенно.

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

—————————————

#unity #gamedev #development #ecs #programming #csharp #code #разработка #геймдев #обучение #образование #курсы #программирование #рекомендация

Теги:
Всего голосов 3: ↑2 и ↓1+1
Комментарии1

📝 Заметка про шорткаты в Rider и Unity 📝

Уровень материала: 🐣 #junior

Кто из лагеря Visual Studio уже успел попробовать теперь уже бесплатную версию Rider? Внутри много интересного: тесная интеграция с движками, шустрый и настраиваемый анализатор кода, полезные подсказки и автодополнения, генератор кода, мощный отладчик и всякое другое.

Даже простое знакомство с настройками может затянуться не на один час (при этом они удобно скомпонованы, и поиск по ним работает отлично). Но что важно — у Rider очень гибкая система шорткатов и хоткеев.

❓ Зачем это нужно? Для удобства. Конечно, для эффективности тоже. Но главное — для удобства. Нажатие на клавиши значительно быстрее, чем аналогичное действие совершённое мышкой. И требует меньше внимания. Мышку нужно перехватить, передвинуть, навести на меню, потом на вложенное меню, кликнуть и вернуть руку обратно (если нет навыка однорукой печати).

Rider позволяет полностью отказаться от мыши и сосредоточиться на работе. Захотел что-то сделать – стукнул пальцами и моментально увидел результат. При доведении до автоматизма, это превращается в настоящую магию, как-будто IDE управляется силой мысли. И это доставляет определённый кайф от работы.

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

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

⚙ Рекомендую также заглянуть в настройках во вкладку Keymap, где можно через поиск найти практически любое действие в IDE, которому можно назначить свой шорткат. Что-то часто приходится делать мышкой? Или на видео показывают полезный шорткат, который у тебя не срабатывает? Зайди в Keymap, найди нужное действие и назначь желаемую комбинацию.

Если запоминать комбинации не хочется, достаточно запомнить название операции и использовать поиск по Action'ам. Также в запоминании шорткатов может помочь плагин Key Promoter X (или может раздражать, если шорткаты игнорировать).

🤹 Шорткаты есть во всех программах. И везде они помогают сделать работу более комфортной (и эффективной). Не только в Rider и не только в IDE стоит уделять этому внимание. В т.ч. горячие клавиши есть и в Unity. И я рекомендую посмотреть их официальный тутор. Уверен, что ты сможешь узнать что-то новое, потому что в Unity далеко не все полезные возможности «лежат на поверхности». Также у них есть Shortcuts Manager, куда стоит периодически заглядывать.

—————————————————

#gamedev #development #rider #unity #code #programming #hotkey #shortcut #хоткеи #шорткаты #горячиеклавиши #разработка #геймдев #код #рекомендация #видео

Теги:
Рейтинг0
Комментарии0

Про хранение конфигураций уровня и не только

Уровень материала: 🐣 #junior
<тестирую раздел Посты. этот материал уже можно было встретить в моём Telegram>

В рекомендации отправляю видео, которое показывает два любопытных подхода:

1. Хранение конфигурации уровня в ScriptableObject, а не в отдельной сцене.
2. Анимированное появление тайлов уровня.

И внутри есть ряд ещё более мелких интересных деталей.

📋 1. Хранение конфигурации уровня:

С этим я столкнулся в самом начале своей карьеры, т.к. начал с матч-3 направления, которое славится большим количеством уровней. По неопытности я хранил каждый настроенный уровень в отдельной сцене. Это привело к тому, что 10 таких уровней раздули билд без существенного контента до 100Мб.

Поизучав предметную область подробнее, я пришёл к тому, чтобы для уровня иметь одну сцену, а её наполнение формировать по данным из некоторого файла. Я использовал XML, т.к. тогда это было популярно (позднее для настройки уровня был подключен Tiled, который как раз умел экспортировать в XML). Билд тут же сдулся до 20Мб. А подход подарил невероятное количество всяческих бенефитов.

ScriptableObject — это тоже некоторый файл с данными (а точнее YAML или Binary, в зависимости от настроек Unity), который Unity умеет красиво отрисовывать в инспекторе.

А вот пример ассета (с ёмким описанием), который конвертирует уровень в JSON.

🎲 2. Анимированное появление тайлмапа:

Если уровень строится из тайлов, то это отличная возможность за "дёшево" сделать его эффектное появление. Например, как в видео, от точки позиции игрока плавно появить все тайлики в порядке удаления. Также можно и в целом оживить тайловое окружение, реагируя на разнообразные действия игрока.

✨ 3. Полезные мелочи:

В видео можно подглядеть:

  • Как удалять элементы из списка, чтобы в for не делать лишних декрементов и в foreach не получить исключение InvalidOperationException “Collection was modified”. Подробнее про это можно также почитать в этом материале.

  • Использование sqrMagnitude при сравнении дистанций для оптимизации вычислений. Про сравнение с обычным magnitude — тут (я тоже проводил подобные замеры: данные всё ещё актуальны).

  • Как оформлять Coroutine для анимаций: нейминг, аргументы, содержание.

  • Использование AnimationCurve для контроля плавности анимации.

  • Использование Lerp для реализации анимации.

—————————————

#gamedev #development #animation #scene #loading #геймдев #разработка #анимации #загрузка #рекомендация #видео

Теги:
Всего голосов 2: ↑1 и ↓1+2
Комментарии0

Ближайшие события

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

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

https://www.frontiersin.org/journals/psychology/articles/10.3389/fpsyg.2024.1430926/full

Теги:
Рейтинг0
Комментарии0

До сих пор сложно поверить, что с релиза Bioshock Infinite прошло аж 11 лет. Это был не просто культурный феномен, захлестнувший миллионы людей по всему миру. Нам подарили очень личное и эмоциональное приключение для каждого игрока, который вместе с Букером и Элизабет ворвался в Колумбию. Но после того, как вы узнаете об истории разработки Bioshock Infinite, вам будет казаться, что случилось чудо.

Оригинальная статья (и на Хабре тоже)🠔 
Ютуб 🠔

Теги:
Всего голосов 10: ↑7 и ↓3+6
Комментарии0

В этом посте я хочу рассказать о библиотеке, которая дает мне надежду, надежду на светлое будущее! Где я могу создать свой игровой фреймворк или движок. Зачем это нужно и причем здесь SDL3? Представим что вы одинокий странник в мире разработки игр.

Концентрированные проблемы:

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

Встречайте SDL3 с GPU! Это вам не рендерер, это полноценная абстракция над такими api как Vulkan, DirectX 12, Metal и в будущем WebGPU.Один из авторов SDL, заметил проблему и поднял ее достаточно давно. OpenGL легаси, а современные api крайне сложны. Там были взлеты и падения, но главное это появилось.

Концентрированные плюсы:

Огромное сообщество, а значит и покрытие устройств. Включает поддержку консолей. API от окна до камер и геймпадов. Есть шанс что сообщество будет поверх этого делать свои библиотеки. Imgui из коробки работает с SDL. C API, используйте на любимом языке программирования и с любимыми шейдерами. Идеальный баланс между простым и сложным.

Доступна версия 3.1.6 (Pre-release), релизной ожидается 3.2.0

Чем больше возможностей, тем лучше геймплей!

Теги:
Всего голосов 7: ↑7 и ↓0+15
Комментарии0

ИИ-специалистов и разработчиков игр будут готовить в колледжах

источник: https://roskomsvoboda.org/ru/post/russia-colleges-ai-game-dev-training/

тизер:

Минпросвещения собирается расширить перечень специальностей среднего профессионального образования.

Разработчики компьютерных игр и специалисты по работе с искусственным интеллектом (ИИ) появятся в российском перечне профессий и специальностей среднего профессионального образования. Это следует из проекта приказа Министерства просвещения, опубликованного на официальном сайте для размещения информации о подготовке нормативных правовых актов.

Начиная с 2025/2026 учебного года получить профессию разработчика игр смогут молодые люди как после девятого, так и после 11-го класса. Выпускники колледжей смогут работать в соответствии с профстандартом «Связь, информационные и коммуникационные технологии».

Федеральный образовательный стандарт среднего профессионального образования по специальности «Разработка компьютерных игр, дополненной и виртуальной реальности» включает, кроме самих игр, изучение разработки программных модулей, иммерсивных и мультимедийных приложений, тестирования информационных систем, 3D-моделирование и визуализацию компонентов системы.

Дата окончания общественного обсуждения документа — 6 ноября текущего года.

Колледжам будет непросто найти педагогов по таким дисциплинам, но это возможно, считает директор спортивно-методического центра «Кафедра киберспорта» [...]

Теги:
Рейтинг0
Комментарии1

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

На картинке можно увидеть зоны хода луча, когда он выключен, это Horizontal Retrace и Vertical Retrace, соответственно интервал между строками и между следующими кадрами. В эти интервалы можно выполнять код, который будет делать что-то интересное для нас. Тут будем переключать таблицы символов. Зачем это нужно? Есть текстовый режим графики 40х24 с пятью цветами, который можно использовать для игр, но мы сильно ограничены в рисовании контента динамически, так как это по сути спрайты ориентированные по знакоместам. Символы в XL/XE представлены таблицей в 128 штук (1024 байт) и мы можем рисовать изображение внутри кодовой таблицы, а потом выводить символы в виде текста. Кажется, что 128 символов не хватит чтобы заполнить экран в 40х24=960 байт, вот тут мы и получаем профит.

Новый экран будет (условно) выглядеть так:

ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890!@#$

И так 24 раза. После каждых 8 строк сканирования (1 знакоместо) мы сдвигаем кодовую таблицу на 40*8 байт, где уже готово изображение для второй порции строк и т.д. То есть рисуем в памяти где участок для кодовой таблицы, а видеочип рисует их как символы. Мы получаем динамическую генерацию экрана и 5 цветов.

Когда я такое придумал, то думал, что это изобретение века, но потом нашёл информацию о таком способе: Источник 1, источник 2.

Теги:
Всего голосов 2: ↑2 и ↓0+5
Комментарии0

Как добавить кастомные поля в инспектор любого AssetImporter

ModelImporter с полем Enum, сохраняемым для каждой модели
ModelImporter с полем Enum, сохраняемым для каждой модели

Здесь базовый класс, который я использую, чтобы добавить поля в любой встроенный инспектор: GitHub | CustomOverrideEditor

Может быть непросто показать всё, что изначально рисовал встроенный инспектор (например, в примере с ModelImporter, у меня исчезли кнопки «Apply/Revert»), но имея доступ к декомпилированному коду, через рефлексию я успешно все отрисовал

В ваших пользовательских полях вам также придется обрабатывать mixed values вручную, потому что у вас нет общего SerializedObject. Вы можете создать ScriptableObject для каждого AssetImporter.userData, но это может крайне медленно, при выделении множества объектов одновременно

Код полной реализации с картинки-примера, ModelImporter с полем Enum, сохраняемым для каждой модели: GitHub Gist | Source code

Теги:
Всего голосов 2: ↑2 и ↓0+4
Комментарии0

[Микро-Пост-Мортем] После двух лет разработки зарелизил свою ретро экшн игру. Получился Action Roguelike Deckbuilder с сотней мини-игр.

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

Пришлось принимать сложное решение - добавлять "мета-игру". Отдельную игровую механику, связывающую разрозненные аркады (2.5D Top-Down). За прохождение мини-игр стали выдаваться картриджи, наделяющие способностями и дающие разнообразное оружие. Игра превратилась в Action Roguelike Deckbuilder с сотней мини-игр.

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

Один год заняла разработка ста аркадных мини-игр и еще один год - 2.5D Top-Down мета-игра. Такой вот вышел проект. Решил поделиться эмоцией. Steam страничка: https://store.steampowered.com/app/2722640/CoinOp_Vice/

Теги:
Всего голосов 14: ↑14 и ↓0+24
Комментарии4