Как сделать ММО RPG игру C#/Unity? Видео инструкция для программистов
Часто в геймдев приходят с желанием создать свою MMO игру.
Тем, кто начинает, быстро становится понятно, что дело это не простое. В этой серии видео уроков я освещу самые основные элементы ММО игр Подходит для программистов от уровня junior++
У меня 8 лет опыта в разработке сингл/онлайн игр, хочу поделиться им с вами)
Я не уверен, что меня не забанят, т.к. это не статья а ссылки на видео, но делал я это для рускоязычного gamedev сообщества, поэтому рискну выложить на dtf. В результате получится расширяемый каркас для mmo игр, или отправная точка для размышлений о собственной архитектуре MMO RPG.
Архитектура игры следующая:
Как сделать ММО RPG игру C#/Unity? Финал. Физика box2d
Не подходит для серьезного видео про профайлинг памяти. Этот ролик можно сделать позже на искусственном примере.
По ролику с базой данных: я не придумал как его сделать интересным 🙁 пока на паузе.
Время интегрировать физику!
Как создать MMO игру с нуля. 8 — Физика box2d
Спасибо что посмотрели!
Как сделать ММО RPG игру. Боевая система
В будущем я планирую продолжить видео, как в формате серий, так и отдельные видео на интересные мне темы. Если у вас есть свои идеи, можете предложить в комментариях. Я могу рассказать про: Unity, сервер, шейдеры, C# и другие технические темы в геймдеве.
Как создать видеоигру, не имея опыта программирования
Даже если вам плохо дается программирование, вам все равно доступно множество инструментов для Unity, удобных для художников и дизайнеров, а также ресурсов в Asset Store, нативно интегрирующихся в интерфейс редактора.
На этой странице
- Создавайте в Unity не программируя
- Visual scripting с Bolt
- Visual scripting с PlayMaker
- Визуальный скриптинг с Adventure Creator
- Учитесь основам программирования с Unity
- Unity для художников и дизайнеров
Создавайте в Unity не программируя
Да, большая часть интерактивного контента, созданного в Unity, опирается на текстовые программы. Unity поддерживает язык программирования C#, в котором нужно понимать два аспекта: логика и синтаксис. Логику можно описать словами «что должно произойти», а синтаксис — это язык, позволяющий передать логику.
Но если у вас нет опыта работы в Unity или в программировании, а вы просто хотите понять базовые принципы и понятия, то мы советуем вам загрузить бесплатную версию редактора Unity, выбрав вариант «Новые пользователи» на странице «Начало работы». Во время загрузки вы сможете выбрать готовый шаблон Microgame, который автоматически откроется в редакторе после запуска.
Сразу же после загрузки Microgame вы сможете вносить небольшие изменения, следуя интерактивным руководствам в редакторе, шаг за шагом знакомящим вас с вашими первыми творческими задачами в Unity.
Освоив руководства, вы сможете продолжить работу над Microgame, используя нашу коллекцию пакетов Mod, каждый из которых позволяет развивать вашу игру простыми и приятными способами.
Кроме того, в магазине Asset Store опубликовано множество инструментов, позволяющих с легкостью решить большинство задач, не имея существенного опыта программирования. Взгляните на три лучших ресурса в следующих разделах.

Visual scripting с Bolt
Bolt, бесплатный для всех версий Unity, — это инструмент воплощения ваших идей в творческом, удобном интерфейсе системы визуального программирования, созданной лауреатом престижных премий, разработчиком программ и игр Лазло Бонином. Между Bolt и Unity нет никакого интегрирующего слоя, что упрощает их взаимодействие. Bolt ускоряет ваши навыки прототипирования, позволяет быстрее воплотить идеи в жизнь.
«Я хотел создать графическое средство визуального проектирования для визуалов: тех, кому нравится хороший дизайн и отзывчивость интерфейса, тех, кто хочет с первого взгляда определять точный момент и место, где возникла ошибка или предупреждение» (Лазло Бонин, издатель Bolt).
Bolt в действии
Лазло Бонин приступил к разработке Bolt еще в то время, когда он и его студия все еще работали над сюжетным приложением Ephemera с возможностью исследования окружающего мира. Им нужен был графический интерфейс для машин состояний, чтобы художники и аниматоры могли внести изменения в структуру сцены и игрового процесса, не отвлекая программистов от основной работы над ключевыми системами.
Bolt открывает непосредственный доступ к классам вашего собственного персонажа, к классам предметов и многому другому. Вы просто вызываете функции в интерфейсе и задаете атрибуты.
«Ни мне, ни моим пользователям не требуется никаких дополнительных действий — Bolt подхватывает все автоматически. Он напрямую анализирует и считывает всю кодовую базу и показывает доступные варианты».

Visual scripting с PlayMaker
Если вы — дизайнер или художник, который хочет реализовать свои творческие возможности без программирования, то PlayMaker поможет вам в этом. С этим средством вы сможете быстро создать прототип игрового процесса и алгоритмы поведения ИИ, а также графы анимации и интерактивные объекты. Этот инструмент для визуального программирования также использовался в разработке таких игр, как Hearthstone, INSIDE и Dreamfall Chapters.
«Playmaker — это самый логичный и интуитивно понятный способ реализации различных функций наших игр для всех, кто не связан с программированием!» Андреас Н Грёнтвед, INSIDE
PlayMaker в действии
Playmaker — это инструмент визуального программирования, позволяющий работать с визуальным представлением скриптов, не обращая внимания на текстовое содержание. Логика представлена взаимосвязанными друг с другом графами, а синтаксис строится автоматически, с помощью готовых шаблонов Action, выбираемых пользователем.
Такой инструмент, как PlayMaker, интегрированный в Unity, открывает разработчикам, работающим над сюжетом, взаимодействиями между персонажами и объектами, возможность реализовать нужные алгоритмы, не углубляясь в синтаксис языка программирования.
Хотите увидеть PlayMaker в действии? Посмотрите видеоролики, где рассказывается, как реализовать интерактивность с помощью visual scripting и PlayMaker.
Многие создатели игр часами корпели над синтаксисом кода и потратили кучу времени на устранение ошибок компилятора, но вам это совершенно необязательно. Сосредоточьтесь на том, что важно для вас.

Визуальный скриптинг с Adventure Creator
Adventure Creator будет вам полезен, если вы хотите создать 2D-, 2,5D- или 3D-игру в Unity без программирования. Система визуальных скриптов и интуитивный редактор позволяют новичкам создать всю игру от начала до конца, не тратя время на программирование, а также помогают программистам внедрять и проверять на практике собственные решения.
«Это невероятно! Здесь есть все инструменты для создания игры жанра point-n-click профессионального качества без единой вручную написанной строчки кода. Кроме того, редактор очень полезен, он помог мне устранить множество ошибок и реализовать сложные идеи» (Эш Дентон, Capital).
Adventure Creator в действии
Еще один инструмент, упрощающий жизнь простым пользователям, художникам и дизайнерам в Unity, рассмотрен в истории Эша Дентона.
Он работал над роликами для Inside XBox, а также является одним из авторов серии роликов Thank You for Playing.
Благодаря сообществу Unity он узнал об Adventure Creator, открытом и гибком инструменте, который помог поместить 2D-персонажей в трехмерный мир. Этот инструмент замечателен для художников и простых пользователей тем, что позволяет создавать события и кнопки с помощью графов, а диспетчер сцены выстраивает логику сцены, включая горячие точки, навигацию и триггеры.

Учитесь основам программирования с Unity
Если вы хотите узнать о принципах программирования в Unity, то рекомендуем вам ознакомиться со следующими бесплатными ресурсами на сайте Learn:
- «Набор для творчества: основы программирования» — в этом коротком проекте для начинающих вы познакомитесь с основами программирования на C# для Unity в контексте игры жанра Action-RPG.
- «Творите, программируя» — в рамках данного официального курса от Unity вы познакомитесь с принципом «Творите, программируя», с нуля создавая ваши собственные проекты на C#.
- Руководства по C#: коллекция коротких руководств, объясняющих принципы работы скриптов на C# в Unity, для начинающих и других пользователей. Начните с руководств по C# для начинающих, а затем переходите к руководствам по C# для пользователей среднего уровня.
Кроме того, вы можете подписаться на Learn Premium, где опубликованы как материалы по программированию от нашей команды, так и одобренные Unity курсы партнерских платформ, включая Coursera, Udemy, Pluralsight и Pathstream.
И наконец, наши пользователи готовы поделиться с вами бесплатными обучающими ресурсами по программированию в Unity, включая Brackeys, Code Monkey, и Jabrils.
Unity для художников и дизайнеров
Редактор Unity — это инструмент совместного творчества художников, дизайнеров, разработчиков и других сотрудников студии. Здесь есть инструменты для дизайна 2D- и 3D-сцен, работы с сюжетом и анимационными роликами, освещением, звуковым оформлением, спрайтами и системами частиц, а также невероятно функциональная система анимации. Смотрите обзор функций:
Unity Asset Store предлагает тысячи других ресурсов, дополнительно ускоряющих вашу разработку: персонажи, текстуры, окружения, ассеты для анимации, 3D-модели и звуковое оформление, а также расширения для редактора и готовые проекты.
Как создавать игры. Часть 1.

15.12.2022

Сложность: высокая

12 мин.

236

Вспомните свою первую игру, вы запускаете ее и отправляетесь в поход сражаться с монстрами. Со временем вы добираетесь до финального босса и побеждаете его без особого труда. Ваш герой теперь не новобранец, как это было вначале, а опытный ветеран с крутым оружием. После победы прошло несколько дней, а игровой процесс затянул настолько, что проведенные часы прошли незаметно. И наконец, вы задаетесь вопросом, как создавать игры с увлекательным сюжетом, в которые все захотят поиграть?
Здесь мы постараемся ответить на вопрос, как создать игру самому на компьютере . Перечислим, что нужно для старта, дадим некоторые советы по разработке игр, а также как сделать так, чтобы игроки возвращались к игре спустя время. Также вы узнаете, как правильно войти в игровую индустрию, какую литературы выбрать для изучения и как заработать на своем проекте.
Как создавать игры – первый проект
№ 1. С чего начать?
Большинство начинающих разработчиков не представляют, с какой стороны подойти. Они ставят цель создать что-нибудь глобальное.
Столкнувшись с первыми трудностями, разработчик откладывает проект до лучших времен, но эти времена не наступают, то нет времени, то просто лень. Вся проблема заключается в постановке цели, многие хотят сразу создать очередную “Убийцу Diablo 2”, однако плохо понимают, как это сделать.
Здесь рекомендуется начать с малых проектов, а дальше расти профессионально. Например, создать несколько примитивных игр, такие как 2048 или небольшую стрелялку с видом сверху, где персонажи это квадраты которые атакуют друг друга.
Как к этому вопросу подошли создатели Battle Brothers?
Все персонажи здесь неподвижные картинки. Анимации здесь нет, весь упор сделан на реиграбельность.

Общая картина такова, что глобальный проект всегда делать трудно особенно одному. Если цель все же создать “убийцу Diablo 2”, то разбейте проект на несколько частей. Приведем пример. У некроманта есть заклинание “костяной щит”. Как он устроен? C математической точки зрения, несколько объектов вращаются вокруг персонажа так же, как планеты вокруг солнца.

В сети можно найти примеры, где одни объекты вращаются вокруг других. Взяв один из таких примеров за основу, вам останется только установить предел прочности (HP) у “костяного щита”, также добавить монстров которые будут атаковать героя. При атаке здоровье щита будет уменьшаться, когда дойдет до нуля щит исчезнет. Все эти примеры по отдельности можно найти в интернете.
В конце статьи будет список книг, включая и программирование физики в играх.
№ 2. Платформа
Под какую платформу создать свою игру ? Этот вопрос волнует многих. Здесь следует заранее сделать выбор, потому что языки программирования (которые потребуется учить) отличаются. Например.
- Мобильные устройства – Java.
- ПК – C++ и С#
- Браузерные игры – JavaScript. Когда подразумеваются игры, запускаемые в браузере, то это не бойцовский клуб (БК) который давно устарел, а динамические игры, созданные на HTML5.
Окружающий мир в игре, какой он будет? 3d, 2d или изометрия? С этим тоже нужно определиться. Ниже перечислим движки и библиотеки, позволяющие проектировать каждый вид миров.
№ 3. Выбор жанра
Допустим, вы прочитали несколько хороших книг по разработке игр, запустили пару несложных проектов и собираетесь приступить к более серьезному делу. Остается выбрать жанр. Для этого надо присмотреться к тому, что сейчас пользуется спросом. Делаем запрос в Гугле. В 2022 году пользователи предпочитают шутеры и гонки.

№ 4. Сюжетная линия
Придумайте несколько персонажей со своей историей. Все действующие лица будут состязаться в гонках или сражаться на поле боя, в зависимости от жанра.
Когда дело касается RPG, придется поработать над историей городов, придумать название и даты основания. Если в гонках все просто, и главные персонажи это водители крутых машин, то в RPG встречается сотни персонажей и десяток городов. Что в этом случае делать? Первые несколько недель посвятите творчеству. Придумайте сюжет, название населенных пунктов и имена персонажей, все это запишите, чтобы не забыть.
За основу можно взять реально существующие населенные пункты переставить слоги местами и получить новые город, который можно использовать в игре.
Например, был “Гальштат” а стал “Тальгаш”.

Дополнительный инструмент, который будет полезен это “генератор никнеймов”. Устанавливаете параметры и нажимаете “Генерировать”. Поменяйте некоторые буквы и эти имена будут носить персонажи компьютерной игры.

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

С другой стороны при наличии сободного времени можно поработать и над графикой сделать её 3d.

Все зависит от платформы, для которой собираетесь делать игру. Для ПК, желательно разработать современную крутую графику, для браузеров соответственно графика похуже. Управление игрой должно быть удобным, чтобы пользователь смог сразу разобраться. Если перед игрой требуется сначала проштудировать “трехсот страничный” манул, чтобы понять куда идти и что делать, то с большей долей вероятности игроку такой проект будет неинтересен. Вот несколько правил как сделать интерфейс удобным.
- Обычно пользователь просматривает информацию слева направо и сверху вниз (по диагонали), это следует учитывать. Верхний левый угол приоритетный, туда следует поместить самый важный элемент, например кнопку, на которую следует обратить внимание в первую очередь, а чуть ниже и правее дополнительные окна с заданием или с другой информацией.
- Упор на картинки. Сначала игрок воспринимает картинки потом текст. Элементы интерфейса (инвентарь, характеристики) нужно оформить в качестве иконок, а текст оставить для меню, подсказок и заданий.
- Большое количество объектов игрок воспринимает плохо. Если на одном экране по 20-30 иконок, с этим нужно что-то делать. Например, сгруппировать их. Распределить по категориям. Как, например, в Dota2.
1 – теги героя, 2 – скилы, 3 – скины, 4 – магазин.

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

- Огромное количество информации. Большая ошибка сделать текст в виде портянки с прокруткой, особенно если в игре присутствует открытый мир. Лучше написать коротко и по делу. Например “победить дракона в скалистой пустоши”. Если в одном задании несколько условий, “победить дракона”, “вернуться за вознаграждением” и т.д., а также требуется написать краткую историю возникновения всех драконов, то здесь следует разделить окно на три части. Справа – основное задание, посередине – условия, слева – маловажная информация. Например, такая как история возникновения всех драконов (читать необязательно).
- Отсутствие единого стиля. Случается так, что при создании дизайна интерфейса, начинающий художник работает над каждым элементом по отдельности, забывая, что они должны быть выполнены в одном стиле. Избежать этих ошибок можно, если периодически проверять, как они сморятся вместе. Также следует рассчитать заранее размер, чтобы не столкнутся с проблемой, что прогресс бар или иконки не влезают, иначе придется все перерисовывать.
- Неработающие кнопки. Это распространенная проблема всех начинающих разработчиков, при прохождении иногда требуется заблокировать некоторые кнопки. К примеру, чтобы игрок не смог сбежать с поля боя через портал, когда сражение происходит с боссом. Зачастую после победы над боссом многие разработчики забывает снять блокировку. В итоге оставшуюся часть игры герою приходится перемещаться по карте пешком. Чтобы такого не произошло, в первую очередь тестируйте, как работают кнопки на определенных этапах прохождения.
- Слишком яркий дизайн интерфейса. Конечно, когда красивая графика, то и панель управления хочется сделать на высоком уровне. Однако перегибать палку не стоит, иначе все эти краски будут выходить на передний план, отвлекая игрока от действительно важных элементов.
- Отсутствует акцент на объектах. Аналогичная ситуация как и в предыдущем пункте только наоборот, элементы похожи друг на друга и мало чем отличаются. Зачастую игрок не может понять кнопка это или же часть интерфейса. Чтобы этого не произошло, следует иконки делать ярче, а панель управления в темных или серых тонах.
- Сложное управление. Одно дело, когда вы делаете Файтинг, где нужно зажать “20 кнопок”, чтобы произвести мощный удар, другое дело, когда шутер. В стрелялке следует сделать управление максимально простым.
После того как мы разобрали основные пункты, которых следует придерживаться при разработке игры, перейдем к движкам.
Движок игры
Код взаимодействует с персонажем, где при нажатии кнопок, главный герой бегает, прыгает, карабкается, плавает, стреляет и делает другие действия. Все это называется “физика”.
Без современных движков разработать собственную физику в разы сложнее. В начале определяем, какой мир будем создавать (2d или 3d) и для какой платформы – ПК, мобильный или браузерный, потом выбираем движок
Перечислим движки, предназначенные для создания игр на ПК и Смартфонов.
- Unity – подходит для разработки 2d и мобильных игр. Бесплатный, в том случае, если заработок составляет меньше 100тыс долларов, если удается заработать больше, то требуется купить подписку. В Unity большое количество туториалов и имеется широкое сообщество, где можно пообщаться с коллегами и получить ответы на вопросы.
Языки : C++, C#, UnityScript
- Unreal Engine – рассчитан на более крутую графику. Если задача сконцентрироваться на 3d, где изначально делаем красиво с крутыми эффектами, то рекомендуется выбрать Unreal Engine. За использование движка оплата составляет 5% с игры при условии, когда доход свыше 3тыс. долларов за квартал.
Языки : C++, Blueprints
- Game Maker Studio – предназначен для двухмерных игр. Удобно делать бродилки с видом “сбоку” или шутеры с видом “сверху”. Бесплатная версия ограничена в функционале, при запуске откомпилированной игры появляется логотип. Однако после регистрации и обновления, ограничения снимаются, а логотип исчезает.
Язык: Delphi
- Godot Engine – в движке Godot можно создавать игры двухмерные и трехмерные. Программа распространяется в виде исполняемого файла, размер который составляет 100 мб. Установка не требуется, запустить ПО можно из любой директории.
Языки : C#, GDScript, GDVisual
Если вас интересует вопрос, какая программа для создания игр на пк на русском языке для новичков существует? То предлагаю ознакомиться с Dark Basic .
- Dark Basic – самый древний движок. Выбор для тех, кто не располагает мощным железом и хочет просто попрактиковаться в создании небольших проектов. Занимает мало ресурсов. Поддержки в интернете найти трудно, но она и не нужна, все уроки на русском языке и они встроены в саму программу. Последнее обновление выпустили в 2010 году, поэтому игры визуально будут казаться устаревшими.
Язык : Basic

Если перечисленные движки кажутся вам слишком сложными, и вы хотите попытаться использовать что-нибудь попроще, то можно попробовать движки, встроенные в игры. Самые популярные из них, которые даже со временем не устарели, это Warcrft 3 Editor и SeriousSam Engine. По Serious Sam до сих пор пишут статьи и выпускают новые карты.

Продолжение этого увлекательного повествования тут. Переходи!